All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- You can now specify
slugField
in model definitions to configure which field will be used to create slugs when minting urls.
SolidTypeRegistration.forClass
is now declared as an array.- Default
rdfContext
resolution changed to prioritize the vocab used inrdfsClass
if present.
v0.5.2 - 2023-11-03
- #17 Improved utilities to work with the type index, find more in the documentation for interoperability.
toTurtle
method inSolidModel
.requireFetch
static method inSolidModel
.
SolidContainer.fromTypeIndex
now returns an array of models, rather than a single instance or null.
SolidACLAuthorization.fetch
method has been deprecated, you should useSolidACLAuthorization.requireFetch
instead.
- Unsetting date values (previously it would write an invalid date instead).
v0.5.1 - 2023-03-10
cachesDocuments
config option toSolidEngine
(cache can be cleared callingclearCache
).
- Saving using latest operation date.
- Tree-shaking by declaring
"sideEffects": false
.
v0.5.0 - 2023-01-20
This is the first release after 2 years under development, so it's a huge update and the changes listed here are not exhaustive. However, although many of the internals have changed, the public API and core concepts are mostly the same. So upgrading should be mostly straightforward. In any case, you should test that everything is working as expected. And be sure to ask for assistance if you need it!
Also, make sure to check soukai's release notes, which also changed significantly.
- Authorization helpers (only for WAC).
- History tracking.
- Related models in the same document will be loaded automatically in relationships.
- Inverse relationships will be set automatically.
- New
SolidTypeIndex
andSolidTypeRegistration
models to help working with type indexes.
- Upgraded TypeScript to 4.1.
- Automatic timestamps have been moved to a separate RDF resource, so they'll be accessible from a
metadata
relationship instead of being directly within a model's attributes. Some shortcuts have been implemented such as getters and setters from the parent model, but not everything is backwards compatible. - Improved container creation algorithm, now it creates parent containers when necessary.
- Attribute casting for empty values (such as undefined, null, or empty arrays) has been improved.
- Renamed
SolidContainerModel
toSolidContainer
. - Replaced RDF library dependencies with @noeldemartin/solid-utils.
- Globbing. You can continue using it by setting
useGlobbing
to true inSolidEngine.setConfig
, but it is highly discouraged and it will be removed in future versions. - The
SoukaiSolid.loadSolidModels
has been deprecated in favour ofbootSolidModels
.
- The
MalformedDocumentError
class has been removed in favour ofMalformedSolidDocumentError
from the@noeldemartin/solid-utils
dependency.
- Creating and updating container metadata, now it requires a separate request.
v0.4.2 - 2021-03-28
- Relations initialization from JsonLD (models were sometimes duplicated on save).
v0.4.1 - 2021-01-25
soukai
dependency has been updated to 0.4.1.- #5
soukai
has been moved to peerDependencies. - #6 Fetch types so that it works with different libraries.
- There were some operations specific to NSS that have been removed.
- SolidDocument models no longer require having any rdf classes.
documents
relationship is now initialized empty for new container models.
- Some edge cases creating containers.
- Using collection url on saving fallback.
v0.4.0 - 2020-11-27
- Improved error handling with new
MalformedDocumentError
andNetworkError
classes. SolidEngine
now exposes metadata of the documents it reads throughSolidEngineListener
.- Added
usingSameDocument
method inSolidHasManyRelation
. - Exposed model document info through
getDocumentUrl
,getSourceDocumentUrl
, etc.
soukai
dependency has been updated to 0.4.0.- Refactored the way to store multiple models in a single document. Read the docs.
- Improved some internal interactions with the Solid server to use best practices (use describedBy header for containers, remove reserved container properties, and create documents with relative urls instead of absolute).
v0.3.0 - 2020-07-17
- New
SolidDocument
model. - Helper methods in relation instances. Read the docs to learn more.
loadSolidModels
method toSoukaiSolid
instance (the default export of the library). This should be called to load models defined bysoukai-solid
.- Support for storing multiple models in a single document. Read the docs and see SolidModel.test.ts for examples.
soukai
dependency has been updated to 0.3.0.- Replaced
rdflib
dependency withjsonld-streaming-parser
,jsonld-streaming-serializer
andn3
. - Extracted container functionality to
SolidContainerModel
, container models should extend this class. - Refactored engine document format generated by
SolidModel
, they now generate JSON-LD graphs. Data stored with engines other thanSolidEngine
needs to be migrated in the upgrade or the application will stop working. Read the docs for the reasons behind this refactor. SolidModel
class is now abstract (it should always have been).
v0.2.1 - 2019-12-01
- A bug where using urls of missing resources within a
$in
filter would throw an error.
v0.2.0 - 2019-08-05
- Support for features introduced in Soukai 0.2.0 (relationships and filters).
resourceUrls
implicit field to containers.mintsUrls
static property onSolidModel
to disable url minting of new models.
soukai
dependency has been updated to 0.2.0.solid-auth-client
dependency has been removed, theSolidEngine
constructor now takes a function to interact with Solid PODs.- License changed from GPL to MIT (read this to learn why).
SolidModel
attributes are now converted to JSON-LD before being sent to engines, this is related with a refactor on Soukai 0.2.0 where models have been decoupled from engines.- Some methods and arguments have changed, be sure to check out the new type definitions.
v0.1.0 - 2019-03-23
- Everything!