diff --git a/README.md b/README.md index 8ee0df4f..e4d87ba8 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,69 @@ -# Pacsoi POC +# SolidLab's User Managed Access -This repository contains a demonstrator for the [SolidLab project](https://solidlab.be/) on managing trust-flows in decentralized data storage systems such as Solid. +This repository contains SolidLab research artefacts on use of UMA in the Solid ecosystem. -## Cloning the repository +## Packages -To run the demonstrator, you will have to clone the repository. -``` -git clone -b project/pacsoi-poc1 git@github.com:SolidLabResearch/user-managed-access.git +- [`@solidlab/uma`](packages/uma): Experimental and opinionated implementation of [UMA Grants](https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-grant-2.0.html) and [UMA Federation](https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-federated-authz-2.0.html). -cd user-managed-access/ -``` +- [`@solidlab/uma-css`](packages/css): UMA modules for the [Community Solid Server](https://github.com/CommunitySolidServer/CommunitySolidServer/). -## Getting started - -### Setting up the Authorization Server +- [`@solidlab/ucp`](packages/ucp): Usage Control Policy decision/enforcement component. -Before starting, make sure you are on the correct branch (pacsoi-poc1). -See the above command to clone only the relevant branch for the demonstrator. +## Getting started -In order to run the demonstrator you need to perform the following steps. +In order to run this project you need to perform the following steps. 1. Ensure that you are using Node.js 20 or higher, e.g. by running `nvm use`. (see [.nvmrc](./.nvmrc)) 2. Enable Node.js Corepack with `corepack enable`. -3. Run `yarn install` in the project root to install the requirements. -4. Run `yarn build` in the project root to build. -5. Run `yarn run start:demo` in the project root to start all services. +3. Run `yarn install` in the project root (this will automatically call `yarn build`). +4. Run `yarn start`. + +This will boot up a UMA server and compatible Community Solid Server instance. + +You can then execute the following flows: + +- `yarn script:public`: `GET` the public `/alice/profile/card` without redirection to the UMA server; +- `yarn script:private`: `PUT` some text to the private `/alice/private/resource.txt`, protected by a simple WebID check; +- `yarn script:uma-ucp`: `PUT` some text to the private `/alice/other/resource.txt`, protected by a UCP enforcer checking WebIDs according to policies in `packages/uma/config/rules/policy/`. +- `yarn script:registration`: `POST`, `GET` and `DELETE` some text to/from `/alice/public/resource.txt` to test the correct creation and deletion of resource registrations on the UNA server. +- `yarn script:ucp-enforcement`: Run the UCP enforcer in a script (`scripts/test-ucp-enforcement.ts`). This does not need the servers to be started. + +`yarn script:flow` runs all flows in sequence. + +As we are still in the progress of documenting everything, +the above scripts are the best way to learn about how everything works. + +## Demonstration + +Instead of running `yarn start`, you can run `yarn start:demo` to start the server with an alternative configuration. +With this configuration you can run the `script:demo`, +which runs with experimental contracts. + +## Implemented features + +The packages in this project currently only support a fixed UMA AS per CSS RS. +Authorization can be done with a simple, unverified, WebID embedded in the ticket +using the [WebIdAuthorizer](packages/uma/src/policies/authorizers/WebIdAuthorizer.ts) +or the [PolicyBasedAuthorizer](packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts) +which supports simple ODRL policies. + +### Usage control policy enforcement + +Used for creating a modular engine that calculates which access modes are granted based on: + +- Usage Control Rules +- Interpretation of those rules +- The request of the Requested Party together with all its claims + +For more information, you can check out its [own repository](https://github.com/woutslabbinck/ucp-enforcement) which has three engines that use [ODRL rules](https://www.w3.org/TR/odrl-model/). + +A test script is provided for a CRUD ODRL engine: `yarn script:ucp-enforcement`. +In the [script](./scripts/test-ucp-enforcement.ts) a read Usage Control Rule (in ODRL) is present together with N3 interpretation rules. +Then a read request is performed using the engine, which results in a list of grants. This list is then printed to the console. -### Docker +## Next steps -The docker is not working atm. -I am trying to get it working, but there seem to be some problems with the internal networking. +More advanced ODRL evaluation can be found in the `feat/ODRL-evaluator` branch. diff --git a/packages/css/config/app/init/base/init.json b/packages/css/config/app/init/base/init.json deleted file mode 100644 index 9f9b1285..00000000 --- a/packages/css/config/app/init/base/init.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "import": [ - "css:config/app/init/initializers/base-url.json", - "css:config/app/init/initializers/logger.json", - "css:config/app/init/initializers/server.json", - "css:config/app/init/initializers/version.json", - "css:config/app/init/initializers/workers.json", - "css:config/app/init/migration/base.json", - - "uma-css:config/app/init/initializers/seeding.json" - ], - "@graph": [ - { - "comment": "These initializers will be all be executed sequentially when starting the server.", - "@id": "urn:solid-server:default:Initializer", - "@type": "SequenceHandler", - "handlers": [ - { - "@id": "urn:solid-server:default:LoggerInitializer" - }, - { - "@id": "urn:solid-server:default:EarlyProcessParallelInitializer" - }, - { - "@id": "urn:solid-server:default:PrimaryInitializer" - }, - { - "@id": "urn:solid-server:default:WorkerInitializer" - } - ] - }, - { - "comment": "This wrapped sequence handler will be executed ONLY BY THE PRIMARY PROCESS when starting the server.", - "@id": "urn:solid-server:default:PrimaryInitializer", - "@type": "ProcessHandler", - "executeOnPrimary": true, - "clusterManager": { - "@id": "urn:solid-server:default:ClusterManager" - }, - "source": { - "comment": "These initializers will all be executed sequentially when starting the server.", - "@id": "urn:solid-server:default:PrimarySequenceInitializer", - "@type": "SequenceHandler", - "handlers": [ - { - "@id": "urn:solid-server:default:CleanupInitializer" - }, - { - "@id": "urn:solid-server:default:MigrationInitializer" - }, - { - "@id": "urn:solid-server:default:BaseUrlVerifier" - }, - { - "@id": "urn:solid-server:default:PrimaryParallelInitializer" - }, - { - "@id": "urn:solid-server:default:SeededAccountInitializer" - }, - { - "@id": "urn:solid-server:default:ModuleVersionVerifier" - }, - { - "@id": "urn:solid-server:default:WorkerManager" - } - ] - } - }, - { - "comment": "This wrapped sequence handler will be executed ONLY BY THE WORKER PROCESSES when starting the server.", - "@id": "urn:solid-server:default:WorkerInitializer", - "@type": "ProcessHandler", - "executeOnPrimary": false, - "clusterManager": { - "@id": "urn:solid-server:default:ClusterManager" - }, - "source": { - "comment": "These initializers will all be executed sequentially when starting the server.", - "@id": "urn:solid-server:default:WorkerSequenceInitializer", - "@type": "SequenceHandler", - "handlers": [ - { - "@id": "urn:solid-server:default:WorkerParallelInitializer" - }, - { - "@id": "urn:solid-server:default:ServerInitializer" - } - ] - } - }, - { - "comment": "Initializers that need to cleanup or do anything else before something writes to the backend should be added here.", - "@id": "urn:solid-server:default:CleanupInitializer", - "@type": "SequenceHandler", - "handlers": [] - } - ] -} diff --git a/packages/css/config/app/init/default.json b/packages/css/config/app/init/default.json deleted file mode 100644 index 0a1482d1..00000000 --- a/packages/css/config/app/init/default.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "import": [ - "uma-css:config/app/init/base/init.json" - ], - "@graph": [ - { - "comment": "These handlers are called for all processes whenever the server is started, and can be used to ensure that all necessary resources for booting are available.", - "@id": "urn:solid-server:default:EarlyProcessParallelInitializer", - "@type": "ParallelHandler", - "handlers": [] - }, - { - "comment": "These handlers are called only for the Primary process whenever the server is started, and can be used to ensure that all necessary resources for booting are available. (in singlethreaded mode, these are always called)", - "@id": "urn:solid-server:default:PrimaryParallelInitializer", - "@type": "ParallelHandler", - "handlers": [] - }, - { - "comment": "These handlers are called only for the workers processes whenever the server is started, and can be used to ensure that all necessary resources for booting are available. (in singlethreaded mode, these are always called)", - "@id": "urn:solid-server:default:WorkerParallelInitializer", - "@type": "ParallelHandler", - "handlers": [] - } - ] -} diff --git a/packages/css/config/app/init/initialize-intro.json b/packages/css/config/app/init/initialize-intro.json deleted file mode 100644 index 38aba3c1..00000000 --- a/packages/css/config/app/init/initialize-intro.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "import": [ - "css:config/app/init/initializers/root.json", - - "uma-css:config/app/init/default.json" - ], - "@graph": [ - { - "comment": "Initializes the root container resource.", - "@id": "urn:solid-server:default:PrimaryParallelInitializer", - "@type": "ParallelHandler", - "handlers": [ - { - "@id": "urn:solid-server:default:RootInitializer" - } - ] - }, - { - "@id": "urn:solid-server:default:RootFolderGenerator", - "@type": "StaticFolderGenerator", - "templateFolder": "@css:templates/root/intro" - } - ] -} diff --git a/packages/css/config/app/init/initializers/seeding.json b/packages/css/config/app/init/initializers/seeding.json deleted file mode 100644 index 58601231..00000000 --- a/packages/css/config/app/init/initializers/seeding.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "@graph": [ - { - "comment": "Initializer that instantiates all the seeded accounts and pods.", - "@id": "urn:solid-server:default:SeededAccountInitializer", - "@type": "SeededAccountInitializer", - "accountStore": { - "@id": "urn:solid-server:default:AccountStore" - }, - "passwordStore": { - "@id": "urn:solid-server:default:PasswordStore" - }, - "podCreator": { - "@id": "urn:solid-server:default:PodCreator" - }, - "configFilePath": { - "@id": "urn:solid-server:default:variable:seedConfig" - } - } - ] -} diff --git a/packages/css/config/default.json b/packages/css/config/default.json index b7d1b836..4b6d6bec 100644 --- a/packages/css/config/default.json +++ b/packages/css/config/default.json @@ -4,21 +4,29 @@ "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" ], "import": [ + "css:config/app/init/initialize-intro.json", "css:config/app/main/default.json", "css:config/app/variables/default.json", + "css:config/http/handler/default.json", "css:config/http/middleware/default.json", "css:config/http/notifications/all.json", "css:config/http/server-factory/http.json", "css:config/http/static/default.json", "css:config/identity/access/public.json", "css:config/identity/email/default.json", + "css:config/identity/handler/default.json", "css:config/identity/oidc/default.json", "css:config/identity/ownership/token.json", "css:config/identity/pod/static.json", + "css:config/ldp/authentication/dpop-bearer.json", + "uma-css:config/ldp/authorization/uma.json", + "css:config/ldp/handler/default.json", "css:config/ldp/metadata-parser/default.json", + "css:config/ldp/metadata-writer/default.json", "css:config/ldp/modes/default.json", "css:config/storage/backend/memory.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", @@ -27,15 +35,8 @@ "css:config/util/representation-conversion/default.json", "css:config/util/resource-locker/memory.json", "css:config/util/variables/default.json", - "uma-css:config/uma/default.json", - "uma-css:config/http/handler/default.json", - "uma-css:config/ldp/authentication/uma.json", - "uma-css:config/ldp/authorization/uma.json", - "uma-css:config/ldp/handler/uma.json", - "uma-css:config/ldp/metadata-writer/uma.json", - "uma-css:config/identity/handler/default.json", - "uma-css:config/app/init/initialize-intro.json", - "css:config/storage/location/pod.json" + + "uma-css:config/uma/default.json" ], "@graph": [ { diff --git a/packages/css/config/http/handler/default.json b/packages/css/config/http/handler/default.json deleted file mode 100644 index 44914a54..00000000 --- a/packages/css/config/http/handler/default.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "import": [ - "css:config/http/handler/handlers/storage-description.json" - ], - "@graph": [ - { - "comment": "These are all the handlers a request will go through until it is handled.", - "@id": "urn:solid-server:default:HttpHandler", - "@type": "SequenceHandler", - "handlers": [ - { - "@id": "urn:solid-server:default:Middleware" - }, - { - "@id": "urn:solid-server:default:BaseHttpHandler", - "@type": "WaterfallHandler", - "handlers": [ - { - "@id": "urn:solid-server:default:JwksHandler", - "@type": "JwksHandler", - "path": "/.well-known/jwks.json", - "generator": { - "@id": "urn:solid-server:default:JwkGenerator" - } - }, - { - "@id": "urn:solid-server:default:StaticAssetHandler" - }, - { - "@id": "urn:solid-server:default:OidcHandler" - }, - { - "@id": "urn:solid-server:default:NotificationHttpHandler" - }, - { - "@id": "urn:solid-server:default:StorageDescriptionHandler" - }, - { - "@id": "urn:solid-server:default:AuthResourceHttpHandler" - }, - { - "@id": "urn:solid-server:default:IdentityProviderHandler" - }, - { - "@id": "urn:solid-server:default:LdpHandler" - } - ] - } - ] - } - ] -} diff --git a/packages/css/config/identity/handler/base/default.json b/packages/css/config/identity/handler/base/default.json deleted file mode 100644 index 05608c21..00000000 --- a/packages/css/config/identity/handler/base/default.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "import": [ - "css:config/identity/handler/base/adapter-factory.json", - "css:config/identity/handler/base/jwks.json", - "css:config/identity/handler/base/provider-factory.json", - - "uma-css:config/identity/handler/storage/default.json" - ], - "@graph": [ - { - "comment": "Routes all IDP related requests to the relevant handlers.", - "@id": "urn:solid-server:default:IdentityProviderHandler", - "@type": "RouterHandler", - "baseUrl": { - "@id": "urn:solid-server:default:variable:baseUrl" - }, - "targetExtractor": { - "@id": "urn:solid-server:default:TargetExtractor" - }, - "allowedPathNames": [ - "^/.account/.*" - ], - "handler": { - "@id": "urn:solid-server:default:IdentityProviderParsingHandler" - } - }, - { - "comment": "Handles IDP input parsing.", - "@id": "urn:solid-server:default:IdentityProviderParsingHandler", - "@type": "ParsingHttpHandler", - "requestParser": { - "@id": "urn:solid-server:default:RequestParser" - }, - "errorHandler": { - "@id": "urn:solid-server:default:ErrorHandler" - }, - "responseWriter": { - "@id": "urn:solid-server:default:ResponseWriter" - }, - "operationHandler": { - "comment": "Handles IDP input authorization. Permission reader should be set to allow all if no authorization is needed.", - "@type": "AuthorizingHttpHandler", - "@id": "urn:solid-server:default:IdentityProviderAuthorizingHandler", - "credentialsExtractor": { - "@id": "urn:solid-server:default:CredentialsExtractor" - }, - "modesExtractor": { - "@id": "urn:solid-server:default:ModesExtractor" - }, - "authorizer": { - "@id": "urn:solid-server:default:Authorizer" - }, - "operationHandler": { - "@id": "urn:solid-server:default:IdentityProviderHttpHandler" - } - } - }, - { - "comment": "Handles IDP handler behaviour.", - "@id": "urn:solid-server:default:IdentityProviderHttpHandler", - "@type": "IdentityProviderHttpHandler", - "providerFactory": { - "@id": "urn:solid-server:default:IdentityProviderFactory" - }, - "cookieStore": { - "@id": "urn:solid-server:default:CookieStore" - }, - "handler": { - "@id": "urn:solid-server:default:InteractionHandler" - } - } - ] -} diff --git a/packages/css/config/identity/handler/default.json b/packages/css/config/identity/handler/default.json deleted file mode 100644 index eb578361..00000000 --- a/packages/css/config/identity/handler/default.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "import": [ - "css:config/identity/handler/routing/default.json", - "css:config/identity/handler/storage/password.json", - "css:config/identity/handler/enable/account.json", - "css:config/identity/handler/enable/client-credentials.json", - "css:config/identity/handler/enable/password.json", - "css:config/identity/handler/enable/pod.json", - "css:config/identity/handler/enable/webid.json", - - "uma-css:config/identity/handler/base/default.json" - ], - "@graph": [ - { - "comment": "Enables all account-related features." - } - ] -} diff --git a/packages/css/config/identity/handler/storage/account/default.json b/packages/css/config/identity/handler/storage/account/default.json deleted file mode 100644 index 050777d7..00000000 --- a/packages/css/config/identity/handler/storage/account/default.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "@graph": [ - { - "@id": "urn:solid-server:default:AccountStore", - "@type": "BaseAccountStore", - "storage": { - "@id": "urn:solid-server:default:AccountStorage" - } - } - ] -} diff --git a/packages/css/config/identity/handler/storage/default.json b/packages/css/config/identity/handler/storage/default.json deleted file mode 100644 index 5ad34397..00000000 --- a/packages/css/config/identity/handler/storage/default.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "import": [ - "uma-css:config/identity/handler/storage/account/default.json" - ], - "@graph": [ - { - "@id": "urn:solid-server:default:AccountStorage", - "@type": "BaseLoginAccountStorage", - "storage": { - "@id": "urn:solid-server:default:IndexedStorage", - "@type": "WrappedIndexedStorage", - "valueStorage": { - "@type": "ContainerPathStorage", - "relativePath": "/accounts/data/", - "source": { - "@id": "urn:solid-server:default:KeyValueStorage" - } - }, - "indexStorage": { - "@type": "ContainerPathStorage", - "relativePath": "/accounts/index/", - "source": { - "@id": "urn:solid-server:default:KeyValueStorage" - } - } - } - }, - { - "@id": "urn:solid-server:default:AccountStore" - }, - { - "@id": "urn:solid-server:default:WebIdStore", - "@type": "BaseWebIdStore", - "storage": { - "@id": "urn:solid-server:default:AccountStorage" - } - }, - { - "@id": "urn:solid-server:default:CookieStore", - "@type": "BaseCookieStore", - "storage": { - "@id": "urn:solid-server:default:CookieStorage", - "@type": "WrappedExpiringStorage", - "source": { - "@type": "ContainerPathStorage", - "relativePath": "/accounts/cookies/", - "source": { - "@id": "urn:solid-server:default:KeyValueStorage" - } - } - } - }, - { - "@id": "urn:solid-server:default:PodStore", - "@type": "BasePodStore", - "storage": { - "@id": "urn:solid-server:default:AccountStorage" - }, - "manager": { - "@id": "urn:solid-server:default:PodManager" - } - }, - { - "@id": "urn:solid-server:default:ClientCredentialsStore", - "@type": "BaseClientCredentialsStore", - "storage": { - "@id": "urn:solid-server:default:AccountStorage" - } - }, - { - "comment": "Initialize all the stores. Also necessary on primary thread for pod seeding.", - "@id": "urn:solid-server:default:PrimaryParallelInitializer", - "@type": "ParallelHandler", - "handlers": [ - { - "@id": "urn:solid-server:default:AccountStore" - }, - { - "@id": "urn:solid-server:default:ClientCredentialsStore" - }, - { - "@id": "urn:solid-server:default:PodStore" - }, - { - "@id": "urn:solid-server:default:WebIdStore" - } - ] - }, - { - "comment": "Initialize all the stores.", - "@id": "urn:solid-server:default:EarlyProcessParallelInitializer", - "@type": "ParallelHandler", - "handlers": [ - { - "@id": "urn:solid-server:default:AccountStore" - }, - { - "@id": "urn:solid-server:default:ClientCredentialsStore" - }, - { - "@id": "urn:solid-server:default:PodStore" - }, - { - "@id": "urn:solid-server:default:WebIdStore" - } - ] - } - ] -} diff --git a/packages/css/config/ldp/authentication/uma.json b/packages/css/config/ldp/authentication/uma.json deleted file mode 100644 index 7b13db68..00000000 --- a/packages/css/config/ldp/authentication/uma.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "@graph": [ - { - "comment": "Caches the credentials based on the incoming request.", - "@id": "urn:solid-server:default:CredentialsExtractor", - "@type": "CachedHandler", - "source": { - "comment": "Supports UMA tokens, or no credentials.", - "@type": "UnionCredentialsExtractor", - "extractors": [ - { - "comment": "Extracts information from UMA access tokens.", - "@id": "urn:solid-server:default:UMATokenExtractor", - "@type": "UmaTokenExtractor", - "client": { - "@id": "urn:solid-server:default:UmaClient" - }, - "targetExtractor": { - "@id": "urn:solid-server:default:TargetExtractor" - }, - "ownerUtil": { - "@id": "urn:solid-server:default:OwnerUtil" - }, - "introspect": false - }, - { - "@type": "PublicCredentialsExtractor" - } - ] - } - } - ] -} diff --git a/packages/css/config/ldp/authorization/uma.json b/packages/css/config/ldp/authorization/uma.json index 6d39877b..097515dd 100644 --- a/packages/css/config/ldp/authorization/uma.json +++ b/packages/css/config/ldp/authorization/uma.json @@ -8,14 +8,9 @@ ], "@graph": [ { - "comment": "In case of WebACL authorization the ACL resources determine authorization.", + "comment": "There are no auth-specific resources, but this ID still has to exist.", "@id": "urn:solid-server:default:AuthResourceHttpHandler", - "@type": "RouterHandler", - "args_baseUrl": { "@id": "urn:solid-server:default:variable:baseUrl" }, - "args_targetExtractor": { "@id": "urn:solid-server:default:TargetExtractor" }, - "args_allowedMethods": [ "*" ], - "args_allowedPathNames": [ "^/.*\\.acl$" ], - "args_handler": { "@id": "urn:solid-server:default:LdpHandler" } + "@type": "UnsupportedAsyncHandler" } ] - } \ No newline at end of file + } diff --git a/packages/css/config/ldp/handler/uma.json b/packages/css/config/ldp/handler/uma.json deleted file mode 100644 index 52e56d0a..00000000 --- a/packages/css/config/ldp/handler/uma.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "import": [ - "css:config/ldp/handler/components/authorizer.json", - "css:config/ldp/handler/components/error-handler.json", - "css:config/ldp/handler/components/operation-handler.json", - "css:config/ldp/handler/components/operation-metadata.json", - "css:config/ldp/handler/components/preferences.json", - "css:config/ldp/handler/components/request-parser.json", - "css:config/ldp/handler/components/response-writer.json" - ], - "@graph": [ - { - "comment": "The main entry point into the main Solid behaviour.", - "@id": "urn:solid-server:default:LdpHandler", - "@type": "ParsingHttpHandler", - "args_requestParser": { "@id": "urn:solid-server:default:RequestParser" }, - "args_errorHandler": { "@id": "urn:solid-server:default:ErrorHandler" }, - "args_responseWriter": { "@id": "urn:solid-server:default:ResponseWriter" }, - "args_operationHandler": { - "@type": "AuthorizingHttpHandler", - "args_credentialsExtractor": { "@id": "urn:solid-server:default:CredentialsExtractor" }, - "args_modesExtractor": { "@id": "urn:solid-server:default:ModesExtractor" }, - "args_permissionReader": { "@id": "urn:solid-server:default:PermissionReader" }, - "args_authorizer": { - "comment": "Requests UMA ticket when authorization fails.", - "@id": "urn:solid-server:default:UmaAuthorizer", - "@type": "UmaAuthorizer", - "authorizer": { "@id": "urn:solid-server:default:Authorizer" }, - "umaClient": { "@id": "urn:solid-server:default:UmaClient" }, - "ownerUtil": { "@id": "urn:solid-server:default:OwnerUtil" } - }, - "args_operationHandler": { "@id": "urn:solid-server:default:OperationHandler" } - } - } - ] -} \ No newline at end of file diff --git a/packages/css/config/ldp/metadata-writer/uma.json b/packages/css/config/ldp/metadata-writer/uma.json deleted file mode 100644 index 108fed9a..00000000 --- a/packages/css/config/ldp/metadata-writer/uma.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "import": [ - "css:config/ldp/metadata-writer/writers/allow-accept.json", - "css:config/ldp/metadata-writer/writers/content-type.json", - "css:config/ldp/metadata-writer/writers/cookie.json", - "css:config/ldp/metadata-writer/writers/link-rel.json", - "css:config/ldp/metadata-writer/writers/link-rel-metadata.json", - "css:config/ldp/metadata-writer/writers/mapped.json", - "css:config/ldp/metadata-writer/writers/modified.json", - "css:config/ldp/metadata-writer/writers/range.json", - "css:config/ldp/metadata-writer/writers/storage-description.json", - "uma-css:config/ldp/metadata-writer/writers/uma-ticket.json" - ], - "@graph": [ - { - "comment": "Adds metadata to the response based on the RDF metadata.", - "@id": "urn:solid-server:default:MetadataWriter", - "@type": "ParallelHandler", - "handlers": [ - { - "@id": "urn:solid-server:default:MetadataWriter_AllowAccept" - }, - { - "@id": "urn:solid-server:default:MetadataWriter_ContentType" - }, - { - "@id": "urn:solid-server:default:MetadataWriter_LinkRel" - }, - { - "@id": "urn:solid-server:default:MetadataWriter_LinkRelMetadata" - }, - { - "@id": "urn:solid-server:default:MetadataWriter_Cookie" - }, - { - "@id": "urn:solid-server:default:MetadataWriter_Mapped" - }, - { - "@id": "urn:solid-server:default:MetadataWriter_Modified" - }, - { - "@id": "urn:solid-server:default:MetadataWriter_Range" - }, - { - "@id": "urn:solid-server:default:MetadataWriter_StorageDescription" - }, - { - "@id": "urn:solid-server:default:MetadataWriter_UmaTicket" - } - ] - } - ] -} \ No newline at end of file diff --git a/packages/css/config/ldp/metadata-writer/writers/uma-ticket.json b/packages/css/config/ldp/metadata-writer/writers/uma-ticket.json deleted file mode 100644 index 706681fc..00000000 --- a/packages/css/config/ldp/metadata-writer/writers/uma-ticket.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" - ], - "@graph": [ - { - "comment": "Returns the UMA ticket in case of an unauthorized request.", - "@id": "urn:solid-server:default:MetadataWriter_UmaTicket", - "@type": "UmaTicketMetadataWriter" - } - ] -} \ No newline at end of file diff --git a/packages/css/config/uma/default.json b/packages/css/config/uma/default.json index 7fb40233..59fffc44 100644 --- a/packages/css/config/uma/default.json +++ b/packages/css/config/uma/default.json @@ -1,141 +1,20 @@ { "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" ], - "@graph": [ - { - "@id": "urn:solid-server:default:ServerConfigurator", - "@type": "ParallelHandler", - "handlers": [ - { - "@id": "urn:solid-server:default:StatusDependantServerConfigurator", - "@type": "StatusDependantServerConfigurator", - "dependants": [ - { "@id": "urn:solid-server:default:UmaFetcher" } - ], - "statusMap": [ - { - "StatusDependantServerConfigurator:_statusMap_key": "listening", - "StatusDependantServerConfigurator:_statusMap_value": true - }, - { - "StatusDependantServerConfigurator:_statusMap_key": "close", - "StatusDependantServerConfigurator:_statusMap_value": false - }, - { - "StatusDependantServerConfigurator:_statusMap_key": "error", - "StatusDependantServerConfigurator:_statusMap_value": false - } - ] - } - ] - }, - { - "comment": "Returns the UMA ticket in case of an unauthorized request.", - "@id": "urn:solid-server:default:UmaClient", - "@type": "UmaClient", - "umaIdStore": { - "@id": "urn:solid-server:default:UmaIdStore", - "@type": "MemoryMapStorage" - }, - "fetcher": { - "@id": "urn:solid-server:default:UmaFetcher", - "@type": "PausableFetcher", - "fetcher": { - "@type": "RetryingFetcher", - "fetcher": { - "@type": "SignedFetcher", - "fetcher": { - "@type": "BaseFetcher" - }, - "baseUrl": { "@id": "urn:solid-server:default:variable:baseUrl" }, - "keyGen": { "@id": "urn:solid-server:default:JwkGenerator" } - }, - "retries": 150, - "exponent": 3, - "retryOn": [401, 500] - } - } - }, - { - "@id": "urn:solid-server:default:OwnerUtil", - "@type": "OwnerUtil", - "podStore": { - "@id": "urn:solid-server:default:PodStore" - }, - "accountStore": { - "@id": "urn:solid-server:default:AccountStore" - }, - "storageStrategy": { - "@id": "urn:solid-server:default:StorageLocationStrategy" - }, - "umaPatStore": { - "@id": "urn:solid-server:default:UmaPatStore", - "@type": "MemoryMapStorage" - }, - "umaServerURL": { - "@id": "urn:solid-server:uma:variable:AuthorizationServer" - } - }, - { - "comment": "Listens to the activities emitted by the MonitoringStore.", - "@id": "urn:solid-server:default:ResourceRegistrar", - "@type": "ResourceRegistrar", - "store": { - "@id": "urn:solid-server:default:ResourceStore" - }, - "ownerUtil": { - "@id": "urn:solid-server:default:OwnerUtil" - }, - "umaClient": { - "@id": "urn:solid-server:default:UmaClient" - } - }, - { - "comment": "The ResourceRegistrar is added to the list of Initializers so Components.js finds and instantiates it.", - "@id": "urn:solid-server:default:PrimaryParallelInitializer", - "@type": "ParallelHandler", - "handlers": [ - { - "@id": "urn:solid-server:default:ResourceRegistrar" - } - ] - }, - { - "@id": "urn:solid-server-app-setup:default:CliExtractor", - "@type": "YargsCliExtractor", - "parameters": [ - { - "@type": "YargsParameter", - "name": "authServer", - "options": { - "alias": "a", - "requiresArg": true, - "type": "string", - "describe": "The URL of the UMA Authorization Server." - } - } - ] - }, { - "comment": "Converts an input key/value object into an object mapping values to Components.js variables", - "@id": "urn:solid-server-app-setup:default:ShorthandResolver", - "@type": "CombinedShorthandResolver", - "resolvers": [ - { - "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:uma:variable:AuthorizationServer", - "CombinedShorthandResolver:_resolvers_value": { - "@type": "KeyExtractor", - "key": "authServer", - "defaultValue": "http://localhost:4000" - } - } - ] - }, - { - "comment": "URL of the UMA Authorization Server.", - "@id": "urn:solid-server:uma:variable:AuthorizationServer", - "@type": "Variable" - } + "import": [ + "uma-css:config/uma/overrides/account-seeding.json", + "uma-css:config/uma/overrides/account-store.json", + "uma-css:config/uma/overrides/authorization-handler.json", + "uma-css:config/uma/overrides/jwks.json", + "uma-css:config/uma/overrides/token-extractor.json", + "uma-css:config/uma/overrides/www-auth.json", + + "uma-css:config/uma/parts/cli.json", + "uma-css:config/uma/parts/client.json", + "uma-css:config/uma/parts/fetcher.json", + "uma-css:config/uma/parts/owner-util.json", + "uma-css:config/uma/parts/resource-registrar.json", + "uma-css:config/uma/parts/server-configurator.json" ] } diff --git a/packages/css/config/uma/overrides/account-seeding.json b/packages/css/config/uma/overrides/account-seeding.json new file mode 100644 index 00000000..c3050657 --- /dev/null +++ b/packages/css/config/uma/overrides/account-seeding.json @@ -0,0 +1,23 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "comment": "Replace the account seeder with the UMA version so the AS is taken into account.", + "@id": "urn:solid-server:override:SeededAccountInitializer", + "@type": "Override", + "overrideInstance": { + "@id": "urn:solid-server:default:SeededAccountInitializer" + }, + "overrideParameters": { + "comment": "Initializer that instantiates all the seeded accounts and pods.", + "@type": "UmaSeededAccountInitializer", + "accountStore": { "@id": "urn:solid-server:default:AccountStore" }, + "passwordStore": { "@id": "urn:solid-server:default:PasswordStore" }, + "podCreator": { "@id": "urn:solid-server:default:PodCreator" }, + "configFilePath": { "@id": "urn:solid-server:default:variable:seedConfig" } + } + } + ] +} diff --git a/packages/css/config/uma/overrides/account-store.json b/packages/css/config/uma/overrides/account-store.json new file mode 100644 index 00000000..dcbba5de --- /dev/null +++ b/packages/css/config/uma/overrides/account-store.json @@ -0,0 +1,21 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "comment": "Replace the account store with the UMA version that stores AS settings.", + "@id": "urn:solid-server:override:AccountStore", + "@type": "Override", + "overrideInstance": { + "@id": "urn:solid-server:default:AccountStore" + }, + "overrideParameters": { + "@type": "UmaAccountStore", + "storage": { + "@id": "urn:solid-server:default:AccountStorage" + } + } + } + ] +} diff --git a/packages/css/config/uma/overrides/authorization-handler.json b/packages/css/config/uma/overrides/authorization-handler.json new file mode 100644 index 00000000..b3a4d4a8 --- /dev/null +++ b/packages/css/config/uma/overrides/authorization-handler.json @@ -0,0 +1,34 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "comment": "Replace the authorization handler with UMA support.", + "@id": "urn:solid-server:override:LdpHandler", + "@type": "Override", + "overrideInstance": { + "@id": "urn:solid-server:default:LdpHandler" + }, + "overrideParameters": { + "@type": "ParsingHttpHandler", + "operationHandler": { + "@type": "AuthorizingHttpHandler", + "credentialsExtractor": { "@id": "urn:solid-server:default:CredentialsExtractor" }, + "modesExtractor": { "@id": "urn:solid-server:default:ModesExtractor" }, + "permissionReader": { "@id": "urn:solid-server:default:PermissionReader" }, + "authorizer": { + "comment": "Requests UMA ticket when authorization fails.", + "@id": "urn:solid-server:default:UmaAuthorizer", + "@type": "UmaAuthorizer", + "authorizer": { "@id": "urn:solid-server:default:Authorizer" }, + "umaClient": { "@id": "urn:solid-server:default:UmaClient" }, + "ownerUtil": { "@id": "urn:solid-server:default:OwnerUtil" } + }, + "operationHandler": { "@id": "urn:solid-server:default:OperationHandler" } + } + } + } + ] +} diff --git a/packages/css/config/uma/overrides/jwks.json b/packages/css/config/uma/overrides/jwks.json new file mode 100644 index 00000000..1221f095 --- /dev/null +++ b/packages/css/config/uma/overrides/jwks.json @@ -0,0 +1,27 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "comment": "Add JWKS handler to list of base handlers so the server exposes its public key.", + "@id": "urn:solid-server:override:BaseHttpHandler", + "@type": "Override", + "overrideInstance": { "@id": "urn:solid-server:default:BaseHttpHandler" }, + "overrideSteps": [{ + "@type": "OverrideListInsertAt", + "overrideParameter": { "@id": "WaterfallHandler:_handlers" }, + "overrideTarget": 0, + "overrideValue": { + "@id": "urn:solid-server:default:JwksHandler", + "@type": "JwksHandler", + "path": "/.well-known/jwks.json", + "generator": { + "@id": "urn:solid-server:default:JwkGenerator" + } + } + }] + } + ] +} diff --git a/packages/css/config/uma/overrides/token-extractor.json b/packages/css/config/uma/overrides/token-extractor.json new file mode 100644 index 00000000..dd51c3e5 --- /dev/null +++ b/packages/css/config/uma/overrides/token-extractor.json @@ -0,0 +1,23 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "comment": "Replace the DPoP authentication with UMA authentication.", + "@id": "urn:solid-server:override:AccessTokenExtractor", + "@type": "Override", + "overrideInstance": { + "@id": "urn:solid-server:default:AccessTokenExtractor" + }, + "overrideParameters": { + "comment": "Extracts information from UMA access tokens.", + "@type": "UmaTokenExtractor", + "client": { "@id": "urn:solid-server:default:UmaClient" }, + "targetExtractor": { "@id": "urn:solid-server:default:TargetExtractor" }, + "ownerUtil": { "@id": "urn:solid-server:default:OwnerUtil" }, + "introspect": false + } + } + ] +} diff --git a/packages/css/config/uma/overrides/www-auth.json b/packages/css/config/uma/overrides/www-auth.json new file mode 100644 index 00000000..95402403 --- /dev/null +++ b/packages/css/config/uma/overrides/www-auth.json @@ -0,0 +1,20 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "comment": "Replace WWW-Authenticate metadata writer with the UMA version.", + "@id": "urn:solid-server:override:MetadataWriter_WwwAuth", + "@type": "Override", + "overrideInstance": { + "@id": "urn:solid-server:default:MetadataWriter_WwwAuth" + }, + "overrideParameters": { + "comment": "Returns the UMA ticket in case of an unauthorized request.", + "@id": "urn:solid-server:default:MetadataWriter_UmaTicket", + "@type": "UmaTicketMetadataWriter" + } + } + ] +} diff --git a/packages/css/config/uma/parts/cli.json b/packages/css/config/uma/parts/cli.json new file mode 100644 index 00000000..5a4b3cd6 --- /dev/null +++ b/packages/css/config/uma/parts/cli.json @@ -0,0 +1,44 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "@id": "urn:solid-server-app-setup:default:CliExtractor", + "@type": "YargsCliExtractor", + "parameters": [ + { + "@type": "YargsParameter", + "name": "authServer", + "options": { + "alias": "a", + "requiresArg": true, + "type": "string", + "describe": "The URL of the UMA Authorization Server." + } + } + ] + }, + { + "comment": "Converts an input key/value object into an object mapping values to Components.js variables", + "@id": "urn:solid-server-app-setup:default:ShorthandResolver", + "@type": "CombinedShorthandResolver", + "resolvers": [ + { + "CombinedShorthandResolver:_resolvers_key": "urn:solid-server:uma:variable:AuthorizationServer", + "CombinedShorthandResolver:_resolvers_value": { + "@type": "KeyExtractor", + "key": "authServer", + "defaultValue": "http://localhost:4000" + } + } + ] + }, + { + "comment": "URL of the UMA Authorization Server.", + "@id": "urn:solid-server:uma:variable:AuthorizationServer", + "@type": "Variable" + } + ] +} diff --git a/packages/css/config/uma/parts/client.json b/packages/css/config/uma/parts/client.json new file mode 100644 index 00000000..8946838a --- /dev/null +++ b/packages/css/config/uma/parts/client.json @@ -0,0 +1,20 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "comment": "Provides support for interactions with the UMA AS.", + "@id": "urn:solid-server:default:UmaClient", + "@type": "UmaClient", + "umaIdStore": { + "@id": "urn:solid-server:default:UmaIdStore", + "@type": "MemoryMapStorage" + }, + "fetcher": { + "@id": "urn:solid-server:default:UmaFetcher" + } + } + ] +} diff --git a/packages/css/config/uma/parts/fetcher.json b/packages/css/config/uma/parts/fetcher.json new file mode 100644 index 00000000..2e36441d --- /dev/null +++ b/packages/css/config/uma/parts/fetcher.json @@ -0,0 +1,26 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "comment": "Adds additional features when performing HTTP requests", + "@id": "urn:solid-server:default:UmaFetcher", + "@type": "PausableFetcher", + "fetcher": { + "@type": "RetryingFetcher", + "fetcher": { + "@type": "SignedFetcher", + "fetcher": { + "@type": "BaseFetcher" + }, + "baseUrl": { "@id": "urn:solid-server:default:variable:baseUrl" }, + "keyGen": { "@id": "urn:solid-server:default:JwkGenerator" } + }, + "retries": 150, + "exponent": 3, + "retryOn": [401, 500] + } + } + ] +} diff --git a/packages/css/config/uma/parts/owner-util.json b/packages/css/config/uma/parts/owner-util.json new file mode 100644 index 00000000..b772de56 --- /dev/null +++ b/packages/css/config/uma/parts/owner-util.json @@ -0,0 +1,29 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "comment": "Provides utility for interacting with pod owner metadata", + "@id": "urn:solid-server:default:OwnerUtil", + "@type": "OwnerUtil", + "podStore": { + "@id": "urn:solid-server:default:PodStore" + }, + "accountStore": { + "@id": "urn:solid-server:default:AccountStore" + }, + "storageStrategy": { + "@id": "urn:solid-server:default:StorageLocationStrategy" + }, + "umaPatStore": { + "@id": "urn:solid-server:default:UmaPatStore", + "@type": "MemoryMapStorage" + }, + "umaServerURL": { + "@id": "urn:solid-server:uma:variable:AuthorizationServer" + } + } + ] +} diff --git a/packages/css/config/uma/parts/resource-registrar.json b/packages/css/config/uma/parts/resource-registrar.json new file mode 100644 index 00000000..b1b3ce30 --- /dev/null +++ b/packages/css/config/uma/parts/resource-registrar.json @@ -0,0 +1,32 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "comment": "Listens to the activities emitted by the MonitoringStore.", + "@id": "urn:solid-server:default:ResourceRegistrar", + "@type": "ResourceRegistrar", + "store": { + "@id": "urn:solid-server:default:ResourceStore" + }, + "ownerUtil": { + "@id": "urn:solid-server:default:OwnerUtil" + }, + "umaClient": { + "@id": "urn:solid-server:default:UmaClient" + } + }, + { + "comment": "The ResourceRegistrar is added to the list of Initializers so Components.js finds and instantiates it.", + "@id": "urn:solid-server:default:PrimaryParallelInitializer", + "@type": "ParallelHandler", + "handlers": [ + { + "@id": "urn:solid-server:default:ResourceRegistrar" + } + ] + } + ] +} diff --git a/packages/css/config/uma/parts/server-configurator.json b/packages/css/config/uma/parts/server-configurator.json new file mode 100644 index 00000000..c22226dc --- /dev/null +++ b/packages/css/config/uma/parts/server-configurator.json @@ -0,0 +1,36 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "@graph": [ + { + "@id": "urn:solid-server:default:ServerConfigurator", + "@type": "ParallelHandler", + "handlers": [ + { + "comment": "Informs relevant components of changes to the server state", + "@id": "urn:solid-server:default:StatusDependantServerConfigurator", + "@type": "StatusDependantServerConfigurator", + "dependants": [ + { "@id": "urn:solid-server:default:UmaFetcher" } + ], + "statusMap": [ + { + "StatusDependantServerConfigurator:_statusMap_key": "listening", + "StatusDependantServerConfigurator:_statusMap_value": true + }, + { + "StatusDependantServerConfigurator:_statusMap_key": "close", + "StatusDependantServerConfigurator:_statusMap_value": false + }, + { + "StatusDependantServerConfigurator:_statusMap_key": "error", + "StatusDependantServerConfigurator:_statusMap_value": false + } + ] + } + ] + } + ] +} diff --git a/packages/css/package.json b/packages/css/package.json index fff14dd8..77fbab42 100644 --- a/packages/css/package.json +++ b/packages/css/package.json @@ -67,11 +67,11 @@ "demo:start": "yarn run community-solid-server -m . -c ./config/demo.json -f ./tmp -a http://localhost:4000/ -l debug" }, "dependencies": { - "@solid/community-server": "^7.0.4", + "@solid/community-server": "^7.1.7", "@solidlab/derived-resources-component": "^1.0.2", "@solidlab/uma": "workspace:^", "@types/n3": "^1.16.4", - "componentsjs": "^5.4.2", + "componentsjs": "^5.5.1", "fetch-retry": "^6.0.0", "http-message-signatures": "^1.0.4", "jose": "^5.2.2", diff --git a/packages/css/src/identity/interaction/account/util/AccountSettings.ts b/packages/css/src/identity/interaction/account/util/AccountSettings.ts new file mode 100644 index 00000000..5ccbe87f --- /dev/null +++ b/packages/css/src/identity/interaction/account/util/AccountSettings.ts @@ -0,0 +1,31 @@ +import { ACCOUNT_SETTINGS_REMEMBER_LOGIN } from '@solid/community-server'; + +/** + * Settings parameter containing the URL of the user's Authorization Server. + */ +export const ACCOUNT_SETTINGS_AUTHZ_SERVER = 'authzServer'; + +/** + * Settings parameter containing the Personal Access Token (PAT) of the user at their AS. + */ +export const ACCOUNT_SETTINGS_AS_TOKEN = 'asToken'; + +/** + * Settings parameter containing the private key of the user. + */ +export const ACCOUNT_SETTINGS_KEYS = 'keys'; + +export const UMA_ACCOUNT_STORAGE_DESCRIPTION = { + [ACCOUNT_SETTINGS_REMEMBER_LOGIN]: 'boolean?', + [ACCOUNT_SETTINGS_AUTHZ_SERVER]: 'string?', + [ACCOUNT_SETTINGS_AS_TOKEN]: 'string?', + [ACCOUNT_SETTINGS_KEYS]: 'string[]?', +} as const; + +// Duplication but needed to get around Components.js limitations +export type UMA_ACCOUNT_STORAGE_TYPE = { + [ACCOUNT_SETTINGS_REMEMBER_LOGIN]: 'boolean?', + [ACCOUNT_SETTINGS_AUTHZ_SERVER]: 'string?', + [ACCOUNT_SETTINGS_AS_TOKEN]: 'string?', + [ACCOUNT_SETTINGS_KEYS]: 'string[]?', +} diff --git a/packages/css/src/identity/interaction/account/util/AccountStore.ts b/packages/css/src/identity/interaction/account/util/AccountStore.ts deleted file mode 100644 index e730385c..00000000 --- a/packages/css/src/identity/interaction/account/util/AccountStore.ts +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Settings parameter used to determine if the user wants the login to be remembered. - */ -export const ACCOUNT_SETTINGS_REMEMBER_LOGIN = 'rememberLogin'; - -/** - * Settings parameter containing the URL of the user's Authorization Server. - */ -export const ACCOUNT_SETTINGS_AUTHZ_SERVER = 'authzServer'; - -/** - * Settings parameter containing the Personal Access Token (PAT) of the user at their AS. - */ -export const ACCOUNT_SETTINGS_AS_TOKEN = 'asToken'; - -/** - * Settings parameter containing the private key of the user. - */ -export const ACCOUNT_SETTINGS_KEYS = 'keys'; - -export type AccountSettings = { - [ACCOUNT_SETTINGS_REMEMBER_LOGIN]?: boolean, - [ACCOUNT_SETTINGS_AUTHZ_SERVER]?: string, - [ACCOUNT_SETTINGS_AS_TOKEN]?: string, - [ACCOUNT_SETTINGS_KEYS]?: string[], -}; - -/* eslint-disable ts/method-signature-style */ -/** - * Used to store account data. - */ -export interface AccountStore { - /** - * Creates a new and empty account. - * Since this account will not yet have a login method, - * implementations should restrict what is possible with this account, - * and should potentially have something in place to clean these accounts up if they are unused. - */ - create: () => Promise; - - /** - * Finds the setting of the account with the given identifier. - * @param id - The account identifier. - * @param setting - The setting to find the value of. - */ - getSetting(id: string, setting: T): Promise; - - /** - * Updates the settings for the account with the given identifier to the new values. - * @param id - The account identifier. - * @param setting - The setting to update. - * @param value - The new value for the setting. - */ - updateSetting(id: string, setting: T, value: AccountSettings[T]): Promise; -} diff --git a/packages/css/src/identity/interaction/account/util/BaseAccountStore.ts b/packages/css/src/identity/interaction/account/util/BaseAccountStore.ts deleted file mode 100644 index 881eaa3c..00000000 --- a/packages/css/src/identity/interaction/account/util/BaseAccountStore.ts +++ /dev/null @@ -1,63 +0,0 @@ - -import { Initializer, getLoggerFor, createErrorMessage, InternalServerError } from '@solid/community-server'; -import { AccountLoginStorage, ACCOUNT_TYPE } from './LoginStorage'; -import { ACCOUNT_SETTINGS_AS_TOKEN, ACCOUNT_SETTINGS_AUTHZ_SERVER, ACCOUNT_SETTINGS_KEYS, - ACCOUNT_SETTINGS_REMEMBER_LOGIN, AccountSettings, AccountStore } from './AccountStore'; -import { ValueType } from '../../../../storage/keyvalue/IndexedStorage'; - -export const ACCOUNT_STORAGE_DESCRIPTION = { - [ACCOUNT_SETTINGS_REMEMBER_LOGIN]: 'boolean?', - [ACCOUNT_SETTINGS_AUTHZ_SERVER]: 'string?', - [ACCOUNT_SETTINGS_AS_TOKEN]: 'string?', - [ACCOUNT_SETTINGS_KEYS]: 'string[]?', -} as const; - -/** - * A {@link AccountStore} that uses an {@link AccountLoginStorage} to keep track of the accounts. - * Needs to be initialized before it can be used. - */ -export class BaseAccountStore extends Initializer implements AccountStore { - private readonly logger = getLoggerFor(this); - - private readonly storage: AccountLoginStorage<{ [ACCOUNT_TYPE]: typeof ACCOUNT_STORAGE_DESCRIPTION }>; - private initialized = false; - - public constructor(storage: AccountLoginStorage) { - super(); - this.storage = storage as typeof this.storage; - } - - // Initialize the type definitions - public async handle(): Promise { - if (this.initialized) { - return; - } - try { - await this.storage.defineType(ACCOUNT_TYPE, ACCOUNT_STORAGE_DESCRIPTION, false); - this.initialized = true; - } catch (cause: unknown) { - throw new InternalServerError(`Error defining account in storage: ${createErrorMessage(cause)}`, { cause }); - } - } - - public async create(): Promise { - const { id } = await this.storage.create(ACCOUNT_TYPE, {}); - this.logger.debug(`Created new account ${id}`); - - return id; - } - - public async getSetting(id: string, setting: T): Promise { - const account = await this.storage.get(ACCOUNT_TYPE, id); - if (!account) { - return; - } - const { id: unused, ...settings } = account; - return settings[setting]; - } - - public async updateSetting(id: string, setting: T, value: AccountSettings[T]): - Promise { - await this.storage.setField(ACCOUNT_TYPE, id, setting, value as ValueType); - } -} diff --git a/packages/css/src/identity/interaction/account/util/LoginStorage.ts b/packages/css/src/identity/interaction/account/util/LoginStorage.ts deleted file mode 100644 index b30fafa2..00000000 --- a/packages/css/src/identity/interaction/account/util/LoginStorage.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { - IndexedStorage, - IndexTypeCollection, - StringKey, - ValueTypeDescription, -} from '../../../../storage/keyvalue/IndexedStorage'; - -export const ACCOUNT_TYPE = 'account'; - -/** - * A {@link IndexedStorage} where the `defineType` function - * takes an extra parameter to indicate if the type corresponds to a login method. - * This is useful for storages that want to add extra requirements based on the data being edited. - * - * In practice, we use this because we want to require accounts to have at least 1 login method. - */ -export interface LoginStorage> extends Omit, 'defineType'> { - /** - * Defines a type in the storage, just like in an {@link IndexedStorage}, - * but additionally it needs to be indicated if the type corresponds to a login method or not. - * - * @param type - Type to define. - * @param description - Description of the type. - * @param isLogin - Whether this type corresponds to a login method or not. - */ - defineType: >(type: TType, description: T[TType], isLogin: boolean) => Promise; -} - -/** - * A {@link LoginStorage} with specific typings to ensure other types can reference account IDs - * without actually needing to specify it explicitly in their storage type. - */ -export type AccountLoginStorage>>> = - LoginStorage; diff --git a/packages/css/src/identity/interaction/account/util/UmaAccountStore.ts b/packages/css/src/identity/interaction/account/util/UmaAccountStore.ts new file mode 100644 index 00000000..cb53f21f --- /dev/null +++ b/packages/css/src/identity/interaction/account/util/UmaAccountStore.ts @@ -0,0 +1,12 @@ +import { AccountLoginStorage, AccountStore, GenericAccountStore } from '@solid/community-server'; +import { UMA_ACCOUNT_STORAGE_DESCRIPTION, UMA_ACCOUNT_STORAGE_TYPE } from './AccountSettings'; + +/** + * A {@link AccountStore} that uses an {@link AccountLoginStorage} to keep track of the accounts. + * Needs to be initialized before it can be used. + */ +export class UmaAccountStore extends GenericAccountStore { + public constructor(storage: AccountLoginStorage>) { + super(storage, UMA_ACCOUNT_STORAGE_DESCRIPTION); + } +} diff --git a/packages/css/src/index.ts b/packages/css/src/index.ts index 6fb27d2d..dc844c56 100644 --- a/packages/css/src/index.ts +++ b/packages/css/src/index.ts @@ -5,21 +5,15 @@ export * from './authorization/UmaPermissionReader'; export * from './http/output/metadata/UmaTicketMetadataWriter'; -// export * from './identity/configuration/JwksKeyHolder'; -// export * from './identity/configuration/InMemoryJwksKeyHolder'; +export * from './identity/interaction/account/util/AccountSettings'; +export * from './identity/interaction/account/util/UmaAccountStore'; -export * from './identity/interaction/account/util/AccountStore'; -export * from './identity/interaction/account/util/BaseAccountStore'; -export * from './identity/interaction/account/util/LoginStorage'; - -export * from './init/SeededAccountInitializer'; +export * from './init/UmaSeededAccountInitializer'; export * from './server/description/AccountSettingsStorageDescriber'; export * from './server/middleware/JwksHandler'; -export * from './storage/keyvalue/IndexedStorage'; - export * from './uma/ResourceRegistrar'; export * from './uma/UmaClient'; diff --git a/packages/css/src/init/SeededAccountInitializer.ts b/packages/css/src/init/UmaSeededAccountInitializer.ts similarity index 86% rename from packages/css/src/init/SeededAccountInitializer.ts rename to packages/css/src/init/UmaSeededAccountInitializer.ts index 52843483..2cade024 100644 --- a/packages/css/src/init/SeededAccountInitializer.ts +++ b/packages/css/src/init/UmaSeededAccountInitializer.ts @@ -1,9 +1,19 @@ +import { + AccountStore, + createErrorMessage, + getLoggerFor, + Initializer, + PasswordStore, + PodCreator, + URL_SCHEMA +} from '@solid/community-server'; import { readJson } from 'fs-extra'; import { array, object, string } from 'yup'; -import { PasswordStore, PodCreator, URL_SCHEMA, getLoggerFor, - createErrorMessage, Initializer} from '@solid/community-server'; -import { ACCOUNT_SETTINGS_AUTHZ_SERVER, ACCOUNT_SETTINGS_KEYS, - type AccountStore } from '../identity/interaction/account/util/AccountStore' +import { + ACCOUNT_SETTINGS_AUTHZ_SERVER, + ACCOUNT_SETTINGS_KEYS, + UMA_ACCOUNT_STORAGE_TYPE +} from '../identity/interaction/account/util/AccountSettings'; const inSchema = array().of(object({ email: string().trim().email().lowercase().required(), @@ -24,7 +34,7 @@ export interface SeededAccountInitializerArgs { /** * Creates the accounts. */ - accountStore: AccountStore; + accountStore: AccountStore; /** * Adds the login methods. */ @@ -44,10 +54,10 @@ export interface SeededAccountInitializerArgs { * These accounts have exactly 1 email/password login method, and 0 or more pods. * The pod settings that can be defined are identical to those of the {@link CreatePodHandler}. */ -export class SeededAccountInitializer extends Initializer { +export class UmaSeededAccountInitializer extends Initializer { protected readonly logger = getLoggerFor(this); - private readonly accountStore: AccountStore; + private readonly accountStore: AccountStore; private readonly passwordStore: PasswordStore; private readonly podCreator: PodCreator; private readonly configFilePath?: string; diff --git a/packages/css/src/server/description/AccountSettingsStorageDescriber.ts b/packages/css/src/server/description/AccountSettingsStorageDescriber.ts index afc054e7..0444a6a8 100644 --- a/packages/css/src/server/description/AccountSettingsStorageDescriber.ts +++ b/packages/css/src/server/description/AccountSettingsStorageDescriber.ts @@ -1,16 +1,15 @@ import type { NamedNode, Quad, Quad_Object, Term } from '@rdfjs/types'; +import type { AccountSettings, AccountStore, PodStore, ResourceIdentifier } from '@solid/community-server'; +import { StorageDescriber } from '@solid/community-server'; import { DataFactory } from 'n3'; import { stringToTerm } from 'rdf-string'; -import type { PodStore, ResourceIdentifier } from '@solid/community-server'; -import { StorageDescriber } from '@solid/community-server'; -import quad = DataFactory.quad; import namedNode = DataFactory.namedNode; -import type { AccountStore, AccountSettings } from '../../identity/interaction/account/util/AccountStore'; +import quad = DataFactory.quad; /** * Adds triples to the storage description resource, based on the settings of - * the account that created the storage. - * + * the account that created the storage. + * * The resource identifier of the storage is used as subject. */ export class AccountSettingsStorageDescriber extends StorageDescriber { @@ -22,15 +21,15 @@ export class AccountSettingsStorageDescriber extends StorageDescriber { terms: Record, ) { super(); - + const termMap = new Map(); for (const [ predicate, settingsKey ] of Object.entries(terms)) { - + const predTerm = stringToTerm(predicate); if (predTerm.termType !== 'NamedNode') { throw new Error('Predicate needs to be a named node.'); } - + termMap.set(predTerm, settingsKey); } @@ -51,7 +50,7 @@ export class AccountSettingsStorageDescriber extends StorageDescriber { } private async* generateTriples(subject: NamedNode, account: string): AsyncGenerator { - + for (const [ predicate, settingsKey ] of this.terms.entries()) { const settingsValue = await this.accountStore.getSetting(account, settingsKey); diff --git a/packages/css/src/storage/keyvalue/IndexedStorage.ts b/packages/css/src/storage/keyvalue/IndexedStorage.ts deleted file mode 100644 index 18acdeb5..00000000 --- a/packages/css/src/storage/keyvalue/IndexedStorage.ts +++ /dev/null @@ -1,204 +0,0 @@ -/** - * The key that needs to be present in all output results of {@link IndexedStorage}. - */ -export const INDEX_ID_KEY = 'id'; - -/** - * Used to define the value of a key in a type entry of a {@link IndexedStorage}. - * Valid values are `"string"`, `"boolean"`, `"number"` and `"id:TYPE"`, - * with TYPE being one of the types in the definition. - * In the latter case this means that key points to an identifier of the specified type. - * A `[]` can be appended to the type to indicate the value is an array. - * A `?` can be appended to the type to indicate this key is optional. - */ -export type ValueTypeDescription = - `${('string' | 'boolean' | 'number' | (TType extends string ? `${typeof INDEX_ID_KEY}:${TType}` : never))}${ - '[]' | ''}${ - '?' | ''}`; - -/** - * Converts a {@link ValueTypeDescription} to the type it should be interpreted as. - */ -export type ValueType = - (T extends `${infer E extends ValueTypeDescription}[]${'?'|''}` ? ValueType[] : - T extends 'boolean' | 'boolean?' ? boolean : T extends 'number' | 'number?' ? number : string) | - (T extends `${string}?` ? undefined : never); - -/** - * Used to filter on optional keys in a {@link IndexedStorage} definition. - */ -export type OptionalKey = {[K in keyof T ]: T[K] extends `${string}?` ? K : never }[keyof T]; - -/** - * Converts a {@link IndexedStorage} definition of a specific type - * to the typing an object would have that is returned as an output on function calls. - */ -export type TypeObject> = { - -readonly [K in Exclude>]: ValueType; -} & { - -readonly [K in keyof TDesc]?: ValueType; -} & { [INDEX_ID_KEY]: string }; - -/** - * Input expected for `create()` call in {@link IndexedStorage}. - * This is the same as {@link TypeObject} but without the index key. - */ -export type CreateTypeObject> = Omit, typeof INDEX_ID_KEY>; - -/** - * Key of an object that is also a string. - */ -export type StringKey = keyof T & string; - -/** - * The description of a single type in an {@link IndexedStorage}. - */ -export type IndexTypeDescription = Record>; - -/** - * The full description of all the types of an {@link IndexedStorage}. - */ -export type IndexTypeCollection = Record>; - -// This is necessary to prevent infinite recursion in types -type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ...0[]]; - -/** - * Object that represents a valid query starting from a specific type on an {@link IndexedStorage}. - * The keys of the object need to be one or more keys from the starting type, - * with the values being corresponding valid values of an object of that type. - * If the value definition of a key is one that contains the identifier of a different type, - * the value in the query can also be a nested object that has the same IndexedQuery requirements for that type. - * This can be done recursively. - * - * E.g., if the storage has the following definition: - *```ts - * { - * account: {}, - * pod: { baseUrl: 'string', account: 'id:account' }, - * pod: { owner: 'string', pod: 'id:pod' }, - * } - *``` - * A valid query on the `pod` type could be `{ pod: '123456' }`, - * but also `{ pod: { baseUrl: 'http://example.com/pod/', account: { id: '789' }}}`. - */ -export type IndexedQuery, TType extends keyof T, TDepth extends number = 10> = - [TDepth] extends [never] ? never : - {[K in keyof T[TType] | typeof INDEX_ID_KEY]?: - ValueType | - (T[TType][K] extends `${typeof INDEX_ID_KEY}:${infer U}` ? IndexedQuery : never) - }; - -/* eslint-disable ts/method-signature-style */ -/** - * A storage solution that allows for more complex queries than a key/value storage - * and allows setting indexes on specific keys. - */ -export interface IndexedStorage> { - /** - * Informs the storage of the definition of a specific type. - * A definition is a key/value object with the values being a valid {@link ValueTypeDescription}. - * Generally, this call needs to happen for every type of this storage, - * and before any calls are made to interact with the data. - * - * @param type - The type to define. - * @param description - A description of the values stored in objects of that type. - */ - defineType>(type: TType, description: T[TType]): Promise; - - /** - * Creates an index on a key of the given type, to allow for better queries involving those keys. - * Similar to {@link IndexedStorage.defineType} these calls need to happen first. - * - * @param type - The type to create an index on. - * @param key - The key of that type to create an index on. - */ - createIndex>(type: TType, key: StringKey): Promise; - - /** - * Creates an object of the given type. - * The storage will generate an identifier for the newly created object. - * - * @param type - The type to create. - * @param value - The value to set for the created object. - * - * @returns A representation of the newly created object, including its new identifier. - */ - create>(type: TType, value: CreateTypeObject): Promise>; - - /** - * Returns `true` if the object of the given type with the given identifier exists. - * - * @param type - The type of object to get. - * @param id - The identifier of that object. - * - * @returns Whether this object exists. - */ - has>(type: TType, id: string): Promise; - - /** - * Returns the object of the given type with the given identifier. - * - * @param type - The type of object to get. - * @param id - The identifier of that object. - * - * @returns A representation of the object, or `undefined` if there is no object of that type with that identifier. - */ - get>(type: TType, id: string): Promise | undefined>; - - /** - * Finds all objects matching a specific {@link IndexedQuery}. - * - * @param type - The type of objects to find. - * @param query - The query to execute. - * - * @returns A list of objects matching the query. - */ - find>(type: TType, query: IndexedQuery): Promise<(TypeObject)[]>; - - /** - * Similar to {@link IndexedStorage.find}, but only returns the identifiers of the found objects. - * - * @param type - The type of objects to find. - * @param query - The query to execute. - * - * @returns A list of identifiers of the matching objects. - */ - findIds>(type: TType, query: IndexedQuery): Promise; - - /** - * Sets the value of a specific object. - * The identifier in the object is used to identify the object. - * - * @param type - The type of the object to set. - * @param value - The new value for the object. - */ - set>(type: TType, value: TypeObject): Promise; - - /** - * Sets the value of one specific field in an object. - * - * @param type - The type of the object to update. - * @param id - The identifier of the object to update. - * @param key - The key to update. - * @param value - The new value for the given key. - */ - setField, TKey extends StringKey>( - type: TType, id: string, key: TKey, value: ValueType): Promise; - - /** - * Deletes the given object. - * This will also delete all objects that reference that object if the corresponding key is not optional. - * - * @param type - The type of the object to delete. - * @param id - The identifier of the object. - */ - delete>(type: TType, id: string): Promise; - - /** - * Returns an iterator over all objects of the given type. - * - * @param type - The type to iterate over. - */ - entries>(type: TType): AsyncIterableIterator>; -} diff --git a/packages/css/src/util/OwnerUtil.ts b/packages/css/src/util/OwnerUtil.ts index b67c83a9..d192c59d 100644 --- a/packages/css/src/util/OwnerUtil.ts +++ b/packages/css/src/util/OwnerUtil.ts @@ -1,6 +1,16 @@ -import { KeyValueStorage, PodStore, ResourceIdentifier, StorageLocationStrategy, WrappedSetMultiMap, - getLoggerFor } from '@solid/community-server'; -import { ACCOUNT_SETTINGS_AUTHZ_SERVER, type AccountStore } from '../identity/interaction/account/util/AccountStore'; +import { + AccountStore, + getLoggerFor, + KeyValueStorage, + PodStore, + ResourceIdentifier, + StorageLocationStrategy, + WrappedSetMultiMap +} from '@solid/community-server'; +import { + ACCOUNT_SETTINGS_AUTHZ_SERVER, + UMA_ACCOUNT_STORAGE_TYPE +} from '../identity/interaction/account/util/AccountSettings'; /** * ... @@ -8,15 +18,9 @@ import { ACCOUNT_SETTINGS_AUTHZ_SERVER, type AccountStore } from '../identity/in export class OwnerUtil { protected readonly logger = getLoggerFor(this); - /** - * ... - * - * @param podStore - * @param storageStrategy - */ public constructor( protected podStore: PodStore, - protected accountStore: AccountStore, + protected accountStore: AccountStore, protected storageStrategy: StorageLocationStrategy, protected umaPatStore: KeyValueStorage, protected umaServerURL: string, @@ -59,7 +63,7 @@ export class OwnerUtil { public async findCommonOwner(resources: Iterable): Promise { const resourceSet = new Set(resources); const ownerMap = new WrappedSetMultiMap(); - + for (const target of resourceSet) { const storage = await this.findStorage(target); const owners = await this.findOwners(storage); @@ -82,7 +86,7 @@ export class OwnerUtil { this.logger.verbose(`Using UMA Authorization Server at ${this.umaServerURL} for WebID ${webid}.`) return this.umaServerURL.endsWith('/') ? this.umaServerURL + 'uma' : this.umaServerURL + '/uma' - // Dunno if it makes sense to code this as retrieving it from the WebID at this point? + // Dunno if it makes sense to code this as retrieving it from the WebID at this point? // I think we are far off from dynamically attaching multiple auth servers to a single solid server. // TODO: softcode diff --git a/packages/uma/package.json b/packages/uma/package.json index adfeaddc..84d3c918 100644 --- a/packages/uma/package.json +++ b/packages/uma/package.json @@ -62,10 +62,10 @@ "dependencies": { "@httpland/authorization-parser": "^1.1.0", "@solid/access-token-verifier": "^1.2.0", - "@solid/community-server": "^7.0.4", + "@solid/community-server": "^7.1.7", "@solidlab/ucp": "workspace:^", "@types/n3": "^1.16.4", - "componentsjs": "^5.4.2", + "componentsjs": "^5.5.1", "get-jwks": "^9.0.1", "http-message-signatures": "^1.0.4", "jose": "^5.2.2", diff --git a/screencast/trust-flows-demo.mp4 b/screencast/trust-flows-demo.mp4 deleted file mode 100644 index b9ba8b3d..00000000 Binary files a/screencast/trust-flows-demo.mp4 and /dev/null differ diff --git a/yarn.lock b/yarn.lock index 6eaad3a2..a7b2adf1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -698,21 +698,7 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-dereference-http@npm:^2.0.2, @comunica/actor-dereference-http@npm:^2.10.0": - version: 2.10.0 - resolution: "@comunica/actor-dereference-http@npm:2.10.0" - dependencies: - "@comunica/bus-dereference": "npm:^2.10.0" - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/core": "npm:^2.10.0" - cross-fetch: "npm:^4.0.0" - relative-to-absolute-iri: "npm:^1.0.7" - stream-to-string: "npm:^1.2.0" - checksum: 10c0/ec792e4e87e63adf64803f2426ab1316dc6c96c6ce815b4ae58aeba1bd882b5561d47dddafe12b00f5e0db66302adc4660988a72293ea717563d2d0b736815eb - languageName: node - linkType: hard - -"@comunica/actor-dereference-http@npm:^2.10.2": +"@comunica/actor-dereference-http@npm:^2.0.2, @comunica/actor-dereference-http@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-dereference-http@npm:2.10.2" dependencies: @@ -750,33 +736,7 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-http-fetch@npm:^2.0.1": - version: 2.10.0 - resolution: "@comunica/actor-http-fetch@npm:2.10.0" - dependencies: - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/context-entries": "npm:^2.10.0" - "@comunica/mediatortype-time": "npm:^2.10.0" - abort-controller: "npm:^3.0.0" - cross-fetch: "npm:^4.0.0" - checksum: 10c0/0624b7a12c646b8a8541d39a4ae867dd28d2a5aaeece48f49f7b38ae24712eea6c8c83199734b5aa0495b23caae0cb0978147aa707b64662aa3cafbd735a0a1b - languageName: node - linkType: hard - -"@comunica/actor-http-fetch@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-http-fetch@npm:2.10.1" - dependencies: - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/context-entries": "npm:^2.10.0" - "@comunica/mediatortype-time": "npm:^2.10.0" - abort-controller: "npm:^3.0.0" - cross-fetch: "npm:^4.0.0" - checksum: 10c0/a75f3d5d58b49a0903e2f4745e4b185ee2ba967e2710608b49ce09f0529227c6181c9f12550da6ea47754eae8d7abe0fe494e3976106b13fb4cc80f37427ccd2 - languageName: node - linkType: hard - -"@comunica/actor-http-fetch@npm:^2.10.2": +"@comunica/actor-http-fetch@npm:^2.0.1, @comunica/actor-http-fetch@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-http-fetch@npm:2.10.2" dependencies: @@ -789,19 +749,7 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-http-proxy@npm:^2.0.1, @comunica/actor-http-proxy@npm:^2.10.0": - version: 2.10.0 - resolution: "@comunica/actor-http-proxy@npm:2.10.0" - dependencies: - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/context-entries": "npm:^2.10.0" - "@comunica/mediatortype-time": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - checksum: 10c0/f271e40cd6ad6ed3ee1465ec8ec78f1ad99e8921d02e6704d06c3f8c41c01006a6088c7babcff27aa27e738430706fad605e39879627c68cfa25c6e333d88445 - languageName: node - linkType: hard - -"@comunica/actor-http-proxy@npm:^2.10.2": +"@comunica/actor-http-proxy@npm:^2.0.1, @comunica/actor-http-proxy@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-http-proxy@npm:2.10.2" dependencies: @@ -813,19 +761,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-http-wayback@npm:^2.10.0": - version: 2.10.0 - resolution: "@comunica/actor-http-wayback@npm:2.10.0" - dependencies: - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/context-entries": "npm:^2.10.0" - "@comunica/core": "npm:^2.10.0" - cross-fetch: "npm:^4.0.0" - stream-to-string: "npm:^1.2.0" - checksum: 10c0/854b822bcd7f5de70cf667757041b3cfa3fcb1aa1a035056503dbb7057f3d7ad5d218d943d1284f01e40b5006040b4dec5555317f63ee48e62e97d5a8d318c09 - languageName: node - linkType: hard - "@comunica/actor-http-wayback@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-http-wayback@npm:2.10.2" @@ -839,40 +774,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-init-query@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-init-query@npm:2.10.1" - dependencies: - "@comunica/actor-http-proxy": "npm:^2.10.0" - "@comunica/bus-context-preprocess": "npm:^2.10.0" - "@comunica/bus-http-invalidate": "npm:^2.10.0" - "@comunica/bus-init": "npm:^2.10.0" - "@comunica/bus-optimize-query-operation": "npm:^2.10.0" - "@comunica/bus-query-operation": "npm:^2.10.1" - "@comunica/bus-query-parse": "npm:^2.10.0" - "@comunica/bus-query-result-serialize": "npm:^2.10.0" - "@comunica/context-entries": "npm:^2.10.0" - "@comunica/core": "npm:^2.10.0" - "@comunica/logger-pretty": "npm:^2.10.0" - "@comunica/runner": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - "@types/yargs": "npm:^17.0.24" - asynciterator: "npm:^3.8.1" - negotiate: "npm:^1.0.1" - process: "npm:^0.11.10" - rdf-quad: "npm:^1.5.0" - rdf-string: "npm:^1.6.1" - sparqlalgebrajs: "npm:^4.2.0" - streamify-string: "npm:^1.0.1" - yargs: "npm:^17.7.2" - dependenciesMeta: - process: - optional: true - checksum: 10c0/ab53055f88057d38a01d5aaf29432c080fe56357eaac2f6fedad592b30cbc862afb6c55d81c390a0c5fc984e049887ee1487d891fa218414d09d5d8981c70a04 - languageName: node - linkType: hard - "@comunica/actor-init-query@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-init-query@npm:2.10.2" @@ -1321,29 +1222,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-query-operation-sparql-endpoint@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-query-operation-sparql-endpoint@npm:2.10.1" - dependencies: - "@comunica/bindings-factory": "npm:^2.10.1" - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/bus-query-operation": "npm:^2.10.1" - "@comunica/bus-rdf-resolve-quad-pattern": "npm:^2.10.0" - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/context-entries": "npm:^2.10.0" - "@comunica/core": "npm:^2.10.0" - "@comunica/mediatortype-httprequests": "npm:^2.10.0" - "@comunica/metadata": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - asynciterator: "npm:^3.8.1" - fetch-sparql-endpoint: "npm:^4.1.0" - rdf-data-factory: "npm:^1.1.1" - sparqlalgebrajs: "npm:^4.2.0" - checksum: 10c0/268636c8339eba3cd03eb24e17498b0c2a62df340d6a0b28b86377c9087adc4967303708d6611925cd088224bdb5a06f65e606c257b1919018bf02e95cad4a94 - languageName: node - linkType: hard - "@comunica/actor-query-operation-sparql-endpoint@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-query-operation-sparql-endpoint@npm:2.10.2" @@ -1396,21 +1274,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-query-operation-update-clear@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-query-operation-update-clear@npm:2.10.1" - dependencies: - "@comunica/bus-query-operation": "npm:^2.10.1" - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - rdf-data-factory: "npm:^1.1.1" - sparqlalgebrajs: "npm:^4.2.0" - checksum: 10c0/c3e1b7e6dfbff23810a6af8591f4363aea9f49ab58cc510c4e48fbb7c9577465f86f629ac343f55fa30552183efb50ecf867bd50c52ed3e18da7986f17cac926 - languageName: node - linkType: hard - "@comunica/actor-query-operation-update-clear@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-query-operation-update-clear@npm:2.10.2" @@ -1450,19 +1313,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-query-operation-update-create@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-query-operation-update-create@npm:2.10.1" - dependencies: - "@comunica/bus-query-operation": "npm:^2.10.1" - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - sparqlalgebrajs: "npm:^4.2.0" - checksum: 10c0/fb460f186a4a7fef7409560ce069374ce2750866587a285d6cb6f674a9c5564f13504b2eef9751ebc8e7703187d783e709f8d50e26d5cf388db28f450875cafd - languageName: node - linkType: hard - "@comunica/actor-query-operation-update-create@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-query-operation-update-create@npm:2.10.2" @@ -1476,23 +1326,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-query-operation-update-deleteinsert@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-query-operation-update-deleteinsert@npm:2.10.1" - dependencies: - "@comunica/actor-query-operation-construct": "npm:^2.10.1" - "@comunica/bindings-factory": "npm:^2.10.1" - "@comunica/bus-query-operation": "npm:^2.10.1" - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - asynciterator: "npm:^3.8.1" - sparqlalgebrajs: "npm:^4.2.0" - checksum: 10c0/4c13003b8de8c27815a6520fa349f39be6d29721f0a6e71114341138d3a97f9a52cb0ed52a3652498c8eb54b5b9739592a459f79d63a0e595cdb1a5de8980e12 - languageName: node - linkType: hard - "@comunica/actor-query-operation-update-deleteinsert@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-query-operation-update-deleteinsert@npm:2.10.2" @@ -1510,21 +1343,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-query-operation-update-drop@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-query-operation-update-drop@npm:2.10.1" - dependencies: - "@comunica/bus-query-operation": "npm:^2.10.1" - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - rdf-data-factory: "npm:^1.1.1" - sparqlalgebrajs: "npm:^4.2.0" - checksum: 10c0/ca18870858dae1ae0a7ceaf6aeb9202958392eb65338c22a67317248d914b0bde1693748a7dc7c90cea5e5e529364f81852ba4501b44ac155fd10f40f808bd3e - languageName: node - linkType: hard - "@comunica/actor-query-operation-update-drop@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-query-operation-update-drop@npm:2.10.2" @@ -1540,21 +1358,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-query-operation-update-load@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-query-operation-update-load@npm:2.10.1" - dependencies: - "@comunica/bus-query-operation": "npm:^2.10.1" - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/context-entries": "npm:^2.10.0" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - rdf-data-factory: "npm:^1.1.1" - sparqlalgebrajs: "npm:^4.2.0" - checksum: 10c0/7c953f60f7ff955dfcdfd385ce44d9687fe7121c472ac0ac9cd218f1990e7f14cf219642ae11087ba3fd018f3468b8e7c53bad0dc52e869c5c9ef6f83c737a48 - languageName: node - linkType: hard - "@comunica/actor-query-operation-update-load@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-query-operation-update-load@npm:2.10.2" @@ -1672,21 +1475,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-query-result-serialize-sparql-json@npm:^2.10.0": - version: 2.10.0 - resolution: "@comunica/actor-query-result-serialize-sparql-json@npm:2.10.0" - dependencies: - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/bus-http-invalidate": "npm:^2.10.0" - "@comunica/bus-query-result-serialize": "npm:^2.10.0" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - readable-stream: "npm:^4.4.2" - checksum: 10c0/b89c7ebeed30cfe9e55e06908ae4ad4f4688c595228f1f394b5061c2087cea680d2744af40e7bb1864177e524a7bde4b3dc152aee5cf2bdd77b9e4371644cbe5 - languageName: node - linkType: hard - "@comunica/actor-query-result-serialize-sparql-json@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-query-result-serialize-sparql-json@npm:2.10.2" @@ -1727,21 +1515,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-query-result-serialize-stats@npm:^2.10.0": - version: 2.10.0 - resolution: "@comunica/actor-query-result-serialize-stats@npm:2.10.0" - dependencies: - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/bus-http-invalidate": "npm:^2.10.0" - "@comunica/bus-query-result-serialize": "npm:^2.10.0" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - process: "npm:^0.11.10" - readable-stream: "npm:^4.4.2" - checksum: 10c0/97ad6423c611fdb557b39c4ba2f627f93f87ac874a9d99d06f4dc7c7d2f7cfb3ae8814d28d45e65701cfadad375594da1d772c30e2463545b5f25d9dc1dd0307 - languageName: node - linkType: hard - "@comunica/actor-query-result-serialize-stats@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-query-result-serialize-stats@npm:2.10.2" @@ -2165,23 +1938,7 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-rdf-parse-jsonld@npm:^2.0.1, @comunica/actor-rdf-parse-jsonld@npm:^2.10.0": - version: 2.10.0 - resolution: "@comunica/actor-rdf-parse-jsonld@npm:2.10.0" - dependencies: - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/bus-rdf-parse": "npm:^2.10.0" - "@comunica/context-entries": "npm:^2.10.0" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - jsonld-context-parser: "npm:^2.2.2" - jsonld-streaming-parser: "npm:^3.0.1" - stream-to-string: "npm:^1.2.0" - checksum: 10c0/0291356d77cc6a97bfd6ca92a6e65eea92a91a645c2af67f4fbe5d9880592b24caf35a25da0e114908cff1befa91354e0ecd051bc69f20a3b1c6bdc9583dd55c - languageName: node - linkType: hard - -"@comunica/actor-rdf-parse-jsonld@npm:^2.10.2": +"@comunica/actor-rdf-parse-jsonld@npm:^2.0.1, @comunica/actor-rdf-parse-jsonld@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-rdf-parse-jsonld@npm:2.10.2" dependencies: @@ -2297,26 +2054,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-rdf-resolve-hypermedia-sparql@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-rdf-resolve-hypermedia-sparql@npm:2.10.1" - dependencies: - "@comunica/bindings-factory": "npm:^2.10.1" - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/bus-rdf-resolve-hypermedia": "npm:^2.10.0" - "@comunica/bus-rdf-resolve-quad-pattern": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - asynciterator: "npm:^3.8.1" - fetch-sparql-endpoint: "npm:^4.0.0" - lru-cache: "npm:^10.0.0" - rdf-data-factory: "npm:^1.1.1" - rdf-terms: "npm:^1.11.0" - sparqlalgebrajs: "npm:^4.2.0" - checksum: 10c0/84691d1e50d2a44bad1f06bc38250f001a23d1b4f377dc92d3f550f48a64b1e831f94ecfcb1c39affe739c79a6b5a0f2cb754febbed84f4af605a25c2dd53fea - languageName: node - linkType: hard - "@comunica/actor-rdf-resolve-hypermedia-sparql@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-rdf-resolve-hypermedia-sparql@npm:2.10.2" @@ -2455,24 +2192,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-rdf-update-hypermedia-patch-sparql-update@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-rdf-update-hypermedia-patch-sparql-update@npm:2.10.1" - dependencies: - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/bus-rdf-update-hypermedia": "npm:^2.10.1" - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - asynciterator: "npm:^3.8.1" - cross-fetch: "npm:^4.0.0" - rdf-string-ttl: "npm:^1.3.2" - readable-stream: "npm:^4.4.2" - checksum: 10c0/08dc71646c7f96b0d337841b5594d5e77e7133ef3106f6c190be8395697cc026236710cffe4379f10bc137f831bad8d0742ce29f4138f04da99b181281773c20 - languageName: node - linkType: hard - "@comunica/actor-rdf-update-hypermedia-patch-sparql-update@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-rdf-update-hypermedia-patch-sparql-update@npm:2.10.2" @@ -2491,23 +2210,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-rdf-update-hypermedia-put-ldp@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-rdf-update-hypermedia-put-ldp@npm:2.10.1" - dependencies: - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/bus-rdf-serialize": "npm:^2.10.0" - "@comunica/bus-rdf-update-hypermedia": "npm:^2.10.1" - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - asynciterator: "npm:^3.8.1" - cross-fetch: "npm:^4.0.0" - checksum: 10c0/bb1fdde7ffa0eaa6f3726bc6e8ebac7d241bf90bb0f6b492e0bfea67e3f152b907412e42e06f82f3171d9cf76ed055dfa336c20f6ac17a564d5d12ca24f8e435 - languageName: node - linkType: hard - "@comunica/actor-rdf-update-hypermedia-put-ldp@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-rdf-update-hypermedia-put-ldp@npm:2.10.2" @@ -2525,24 +2227,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-rdf-update-hypermedia-sparql@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-rdf-update-hypermedia-sparql@npm:2.10.1" - dependencies: - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/bus-rdf-update-hypermedia": "npm:^2.10.1" - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - asynciterator: "npm:^3.8.1" - fetch-sparql-endpoint: "npm:^4.0.0" - rdf-string-ttl: "npm:^1.3.2" - stream-to-string: "npm:^1.2.0" - checksum: 10c0/1da848a68f08255734b4a10a86fbbea51e7eb2e23962acba60df1da02b01477ee8de0b36813c623eda6f38a8f85c1f37464d0425998227e21359ad6f871657d4 - languageName: node - linkType: hard - "@comunica/actor-rdf-update-hypermedia-sparql@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-rdf-update-hypermedia-sparql@npm:2.10.2" @@ -2561,23 +2245,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-rdf-update-quads-hypermedia@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-rdf-update-quads-hypermedia@npm:2.10.1" - dependencies: - "@comunica/bus-dereference-rdf": "npm:^2.10.0" - "@comunica/bus-http-invalidate": "npm:^2.10.0" - "@comunica/bus-rdf-metadata": "npm:^2.10.0" - "@comunica/bus-rdf-metadata-extract": "npm:^2.10.0" - "@comunica/bus-rdf-update-hypermedia": "npm:^2.10.1" - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - lru-cache: "npm:^10.0.0" - checksum: 10c0/f2476252212380c4b8293723b8fd59e198b058febc5a40761e0a7711ddabd433bc710fa0f577d606c20c0a7673375ce1f11ebd070401514a1db47a9191a76135 - languageName: node - linkType: hard - "@comunica/actor-rdf-update-quads-hypermedia@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-rdf-update-quads-hypermedia@npm:2.10.2" @@ -2595,21 +2262,6 @@ __metadata: languageName: node linkType: hard -"@comunica/actor-rdf-update-quads-rdfjs-store@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/actor-rdf-update-quads-rdfjs-store@npm:2.10.1" - dependencies: - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - asynciterator: "npm:^3.8.1" - rdf-data-factory: "npm:^1.1.1" - rdf-string: "npm:^1.6.1" - checksum: 10c0/a0babecf61adf8b8912a141da7f5278700e950a088c772e98e50fe6308f849748988e41aaa07cd7cf53422f6460d455e69152a519a927fc5ac4bf2f23b3fd547 - languageName: node - linkType: hard - "@comunica/actor-rdf-update-quads-rdfjs-store@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/actor-rdf-update-quads-rdfjs-store@npm:2.10.2" @@ -2692,20 +2344,7 @@ __metadata: languageName: node linkType: hard -"@comunica/bus-http@npm:^2.0.1, @comunica/bus-http@npm:^2.10.0": - version: 2.10.0 - resolution: "@comunica/bus-http@npm:2.10.0" - dependencies: - "@comunica/core": "npm:^2.10.0" - is-stream: "npm:^2.0.1" - readable-stream-node-to-web: "npm:^1.0.1" - readable-web-to-node-stream: "npm:^3.0.2" - web-streams-ponyfill: "npm:^1.4.2" - checksum: 10c0/dd1913b9ecc090f4a1fdbd07d645e6dcf7ff719eba372d8fe75fc999cd10d3478f6557d2541f1178d46f0b219d3156408181930143f046acf9ffb1784bb1e911 - languageName: node - linkType: hard - -"@comunica/bus-http@npm:^2.10.2": +"@comunica/bus-http@npm:^2.0.1, @comunica/bus-http@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/bus-http@npm:2.10.2" dependencies: @@ -2927,16 +2566,6 @@ __metadata: languageName: node linkType: hard -"@comunica/bus-rdf-update-hypermedia@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/bus-rdf-update-hypermedia@npm:2.10.1" - dependencies: - "@comunica/bus-rdf-update-quads": "npm:^2.10.1" - "@comunica/core": "npm:^2.10.0" - checksum: 10c0/ddc37e6504643e4976b467f43a498bd2734d358e76d9da71d75351e2d5a2ee90a65a33fca8d347a2e5ff8d02cd0f3bf816339ba2db4cb50655c4064d332f8786 - languageName: node - linkType: hard - "@comunica/bus-rdf-update-hypermedia@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/bus-rdf-update-hypermedia@npm:2.10.2" @@ -2947,22 +2576,6 @@ __metadata: languageName: node linkType: hard -"@comunica/bus-rdf-update-quads@npm:^2.10.1": - version: 2.10.1 - resolution: "@comunica/bus-rdf-update-quads@npm:2.10.1" - dependencies: - "@comunica/actor-rdf-resolve-quad-pattern-federated": "npm:^2.10.1" - "@comunica/bus-http": "npm:^2.10.0" - "@comunica/context-entries": "npm:^2.10.0" - "@comunica/core": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - "@rdfjs/types": "npm:*" - asynciterator: "npm:^3.8.1" - stream-to-string: "npm:^1.2.0" - checksum: 10c0/47756a2ec95b77495ff068e50482c93c4ab8939e6a5e05d8ee900742a2e7c56a87754b7561339088e48d19a6ecdd6ff2f1705b4467454442328f2238d6880c8f - languageName: node - linkType: hard - "@comunica/bus-rdf-update-quads@npm:^2.10.2": version: 2.10.2 resolution: "@comunica/bus-rdf-update-quads@npm:2.10.2" @@ -3261,167 +2874,23 @@ __metadata: "@comunica/mediator-race": "npm:^2.10.0" "@comunica/runner": "npm:^2.10.0" "@comunica/types": "npm:^2.10.0" - checksum: 10c0/a213e9a6851c763ed25138e37e91d82c2d108bdfd30730cf6dbd6f8fa35690248541db73a64fa188649e476f6493f7fc0474654ece91a1183aebd1b90a58e434 - languageName: node - linkType: hard - -"@comunica/query-sparql@npm:^2.10.2": - version: 2.10.2 - resolution: "@comunica/query-sparql@npm:2.10.2" - dependencies: - "@comunica/actor-context-preprocess-source-to-destination": "npm:^2.10.0" - "@comunica/actor-dereference-fallback": "npm:^2.10.0" - "@comunica/actor-dereference-http": "npm:^2.10.2" - "@comunica/actor-dereference-rdf-parse": "npm:^2.10.0" - "@comunica/actor-hash-bindings-sha1": "npm:^2.10.0" - "@comunica/actor-http-fetch": "npm:^2.10.2" - "@comunica/actor-http-proxy": "npm:^2.10.2" - "@comunica/actor-http-wayback": "npm:^2.10.2" - "@comunica/actor-init-query": "npm:^2.10.2" - "@comunica/actor-optimize-query-operation-bgp-to-join": "npm:^2.10.0" - "@comunica/actor-optimize-query-operation-join-bgp": "npm:^2.10.0" - "@comunica/actor-optimize-query-operation-join-connected": "npm:^2.10.0" - "@comunica/actor-query-operation-ask": "npm:^2.10.1" - "@comunica/actor-query-operation-bgp-join": "npm:^2.10.1" - "@comunica/actor-query-operation-construct": "npm:^2.10.1" - "@comunica/actor-query-operation-describe-subject": "npm:^2.10.1" - "@comunica/actor-query-operation-distinct-hash": "npm:^2.10.1" - "@comunica/actor-query-operation-extend": "npm:^2.10.1" - "@comunica/actor-query-operation-filter-sparqlee": "npm:^2.10.1" - "@comunica/actor-query-operation-from-quad": "npm:^2.10.1" - "@comunica/actor-query-operation-group": "npm:^2.10.1" - "@comunica/actor-query-operation-join": "npm:^2.10.1" - "@comunica/actor-query-operation-leftjoin": "npm:^2.10.1" - "@comunica/actor-query-operation-minus": "npm:^2.10.1" - "@comunica/actor-query-operation-nop": "npm:^2.10.1" - "@comunica/actor-query-operation-orderby-sparqlee": "npm:^2.10.1" - "@comunica/actor-query-operation-path-alt": "npm:^2.10.1" - "@comunica/actor-query-operation-path-inv": "npm:^2.10.1" - "@comunica/actor-query-operation-path-link": "npm:^2.10.1" - "@comunica/actor-query-operation-path-nps": "npm:^2.10.1" - "@comunica/actor-query-operation-path-one-or-more": "npm:^2.10.1" - "@comunica/actor-query-operation-path-seq": "npm:^2.10.1" - "@comunica/actor-query-operation-path-zero-or-more": "npm:^2.10.1" - "@comunica/actor-query-operation-path-zero-or-one": "npm:^2.10.1" - "@comunica/actor-query-operation-project": "npm:^2.10.1" - "@comunica/actor-query-operation-quadpattern": "npm:^2.10.1" - "@comunica/actor-query-operation-reduced-hash": "npm:^2.10.1" - "@comunica/actor-query-operation-service": "npm:^2.10.1" - "@comunica/actor-query-operation-slice": "npm:^2.10.1" - "@comunica/actor-query-operation-sparql-endpoint": "npm:^2.10.2" - "@comunica/actor-query-operation-union": "npm:^2.10.1" - "@comunica/actor-query-operation-update-add-rewrite": "npm:^2.10.1" - "@comunica/actor-query-operation-update-clear": "npm:^2.10.2" - "@comunica/actor-query-operation-update-compositeupdate": "npm:^2.10.1" - "@comunica/actor-query-operation-update-copy-rewrite": "npm:^2.10.1" - "@comunica/actor-query-operation-update-create": "npm:^2.10.2" - "@comunica/actor-query-operation-update-deleteinsert": "npm:^2.10.2" - "@comunica/actor-query-operation-update-drop": "npm:^2.10.2" - "@comunica/actor-query-operation-update-load": "npm:^2.10.2" - "@comunica/actor-query-operation-update-move-rewrite": "npm:^2.10.1" - "@comunica/actor-query-operation-values": "npm:^2.10.1" - "@comunica/actor-query-parse-graphql": "npm:^2.10.0" - "@comunica/actor-query-parse-sparql": "npm:^2.10.0" - "@comunica/actor-query-result-serialize-json": "npm:^2.10.0" - "@comunica/actor-query-result-serialize-rdf": "npm:^2.10.0" - "@comunica/actor-query-result-serialize-simple": "npm:^2.10.0" - "@comunica/actor-query-result-serialize-sparql-csv": "npm:^2.10.0" - "@comunica/actor-query-result-serialize-sparql-json": "npm:^2.10.2" - "@comunica/actor-query-result-serialize-sparql-tsv": "npm:^2.10.0" - "@comunica/actor-query-result-serialize-sparql-xml": "npm:^2.10.0" - "@comunica/actor-query-result-serialize-stats": "npm:^2.10.2" - "@comunica/actor-query-result-serialize-table": "npm:^2.10.0" - "@comunica/actor-query-result-serialize-tree": "npm:^2.10.0" - "@comunica/actor-rdf-join-entries-sort-cardinality": "npm:^2.10.0" - "@comunica/actor-rdf-join-inner-hash": "npm:^2.10.1" - "@comunica/actor-rdf-join-inner-multi-bind": "npm:^2.10.1" - "@comunica/actor-rdf-join-inner-multi-empty": "npm:^2.10.1" - "@comunica/actor-rdf-join-inner-multi-smallest": "npm:^2.10.1" - "@comunica/actor-rdf-join-inner-nestedloop": "npm:^2.10.1" - "@comunica/actor-rdf-join-inner-none": "npm:^2.10.1" - "@comunica/actor-rdf-join-inner-single": "npm:^2.10.1" - "@comunica/actor-rdf-join-inner-symmetrichash": "npm:^2.10.1" - "@comunica/actor-rdf-join-minus-hash": "npm:^2.10.1" - "@comunica/actor-rdf-join-minus-hash-undef": "npm:^2.10.1" - "@comunica/actor-rdf-join-optional-bind": "npm:^2.10.1" - "@comunica/actor-rdf-join-optional-nestedloop": "npm:^2.10.1" - "@comunica/actor-rdf-join-selectivity-variable-counting": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-accumulate-cancontainundefs": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-accumulate-cardinality": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-accumulate-pagesize": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-accumulate-requesttime": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-all": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-extract-allow-http-methods": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-extract-hydra-controls": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-extract-hydra-count": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-extract-hydra-pagesize": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-extract-patch-sparql-update": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-extract-put-accepted": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-extract-request-time": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-extract-sparql-service": "npm:^2.10.0" - "@comunica/actor-rdf-metadata-primary-topic": "npm:^2.10.0" - "@comunica/actor-rdf-parse-html": "npm:^2.10.0" - "@comunica/actor-rdf-parse-html-microdata": "npm:^2.10.0" - "@comunica/actor-rdf-parse-html-rdfa": "npm:^2.10.0" - "@comunica/actor-rdf-parse-html-script": "npm:^2.10.0" - "@comunica/actor-rdf-parse-jsonld": "npm:^2.10.2" - "@comunica/actor-rdf-parse-n3": "npm:^2.10.0" - "@comunica/actor-rdf-parse-rdfxml": "npm:^2.10.0" - "@comunica/actor-rdf-parse-shaclc": "npm:^2.10.0" - "@comunica/actor-rdf-parse-xml-rdfa": "npm:^2.10.0" - "@comunica/actor-rdf-resolve-hypermedia-links-next": "npm:^2.10.0" - "@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo": "npm:^2.10.0" - "@comunica/actor-rdf-resolve-hypermedia-none": "npm:^2.10.0" - "@comunica/actor-rdf-resolve-hypermedia-qpf": "npm:^2.10.0" - "@comunica/actor-rdf-resolve-hypermedia-sparql": "npm:^2.10.2" - "@comunica/actor-rdf-resolve-quad-pattern-federated": "npm:^2.10.1" - "@comunica/actor-rdf-resolve-quad-pattern-hypermedia": "npm:^2.10.1" - "@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source": "npm:^2.10.0" - "@comunica/actor-rdf-resolve-quad-pattern-string-source": "npm:^2.10.0" - "@comunica/actor-rdf-serialize-jsonld": "npm:^2.10.0" - "@comunica/actor-rdf-serialize-n3": "npm:^2.10.0" - "@comunica/actor-rdf-serialize-shaclc": "npm:^2.10.0" - "@comunica/actor-rdf-update-hypermedia-patch-sparql-update": "npm:^2.10.2" - "@comunica/actor-rdf-update-hypermedia-put-ldp": "npm:^2.10.2" - "@comunica/actor-rdf-update-hypermedia-sparql": "npm:^2.10.2" - "@comunica/actor-rdf-update-quads-hypermedia": "npm:^2.10.2" - "@comunica/actor-rdf-update-quads-rdfjs-store": "npm:^2.10.2" - "@comunica/bus-http-invalidate": "npm:^2.10.0" - "@comunica/bus-query-operation": "npm:^2.10.1" - "@comunica/config-query-sparql": "npm:^2.7.0" - "@comunica/core": "npm:^2.10.0" - "@comunica/logger-void": "npm:^2.10.0" - "@comunica/mediator-all": "npm:^2.10.0" - "@comunica/mediator-combine-pipeline": "npm:^2.10.0" - "@comunica/mediator-combine-union": "npm:^2.10.0" - "@comunica/mediator-join-coefficients-fixed": "npm:^2.10.1" - "@comunica/mediator-number": "npm:^2.10.0" - "@comunica/mediator-race": "npm:^2.10.0" - "@comunica/runner": "npm:^2.10.0" - "@comunica/runner-cli": "npm:^2.10.0" - "@comunica/types": "npm:^2.10.0" - process: "npm:^0.11.10" - bin: - comunica-dynamic-sparql: bin/query-dynamic.js - comunica-sparql: bin/query.js - comunica-sparql-http: bin/http.js - checksum: 10c0/284bb8c06e1e5429372cac74479144ed539675eea33f649aa1edfcae3fd6c6d2a097238a85a0ae1ef38423826fabb94b1be9156f54d67a525564aa7830c946d8 + checksum: 10c0/a213e9a6851c763ed25138e37e91d82c2d108bdfd30730cf6dbd6f8fa35690248541db73a64fa188649e476f6493f7fc0474654ece91a1183aebd1b90a58e434 languageName: node linkType: hard -"@comunica/query-sparql@npm:^2.9.0": - version: 2.10.1 - resolution: "@comunica/query-sparql@npm:2.10.1" +"@comunica/query-sparql@npm:^2.10.2, @comunica/query-sparql@npm:^2.9.0": + version: 2.10.2 + resolution: "@comunica/query-sparql@npm:2.10.2" dependencies: "@comunica/actor-context-preprocess-source-to-destination": "npm:^2.10.0" "@comunica/actor-dereference-fallback": "npm:^2.10.0" - "@comunica/actor-dereference-http": "npm:^2.10.0" + "@comunica/actor-dereference-http": "npm:^2.10.2" "@comunica/actor-dereference-rdf-parse": "npm:^2.10.0" "@comunica/actor-hash-bindings-sha1": "npm:^2.10.0" - "@comunica/actor-http-fetch": "npm:^2.10.1" - "@comunica/actor-http-proxy": "npm:^2.10.0" - "@comunica/actor-http-wayback": "npm:^2.10.0" - "@comunica/actor-init-query": "npm:^2.10.1" + "@comunica/actor-http-fetch": "npm:^2.10.2" + "@comunica/actor-http-proxy": "npm:^2.10.2" + "@comunica/actor-http-wayback": "npm:^2.10.2" + "@comunica/actor-init-query": "npm:^2.10.2" "@comunica/actor-optimize-query-operation-bgp-to-join": "npm:^2.10.0" "@comunica/actor-optimize-query-operation-join-bgp": "npm:^2.10.0" "@comunica/actor-optimize-query-operation-join-connected": "npm:^2.10.0" @@ -3452,16 +2921,16 @@ __metadata: "@comunica/actor-query-operation-reduced-hash": "npm:^2.10.1" "@comunica/actor-query-operation-service": "npm:^2.10.1" "@comunica/actor-query-operation-slice": "npm:^2.10.1" - "@comunica/actor-query-operation-sparql-endpoint": "npm:^2.10.1" + "@comunica/actor-query-operation-sparql-endpoint": "npm:^2.10.2" "@comunica/actor-query-operation-union": "npm:^2.10.1" "@comunica/actor-query-operation-update-add-rewrite": "npm:^2.10.1" - "@comunica/actor-query-operation-update-clear": "npm:^2.10.1" + "@comunica/actor-query-operation-update-clear": "npm:^2.10.2" "@comunica/actor-query-operation-update-compositeupdate": "npm:^2.10.1" "@comunica/actor-query-operation-update-copy-rewrite": "npm:^2.10.1" - "@comunica/actor-query-operation-update-create": "npm:^2.10.1" - "@comunica/actor-query-operation-update-deleteinsert": "npm:^2.10.1" - "@comunica/actor-query-operation-update-drop": "npm:^2.10.1" - "@comunica/actor-query-operation-update-load": "npm:^2.10.1" + "@comunica/actor-query-operation-update-create": "npm:^2.10.2" + "@comunica/actor-query-operation-update-deleteinsert": "npm:^2.10.2" + "@comunica/actor-query-operation-update-drop": "npm:^2.10.2" + "@comunica/actor-query-operation-update-load": "npm:^2.10.2" "@comunica/actor-query-operation-update-move-rewrite": "npm:^2.10.1" "@comunica/actor-query-operation-values": "npm:^2.10.1" "@comunica/actor-query-parse-graphql": "npm:^2.10.0" @@ -3470,10 +2939,10 @@ __metadata: "@comunica/actor-query-result-serialize-rdf": "npm:^2.10.0" "@comunica/actor-query-result-serialize-simple": "npm:^2.10.0" "@comunica/actor-query-result-serialize-sparql-csv": "npm:^2.10.0" - "@comunica/actor-query-result-serialize-sparql-json": "npm:^2.10.0" + "@comunica/actor-query-result-serialize-sparql-json": "npm:^2.10.2" "@comunica/actor-query-result-serialize-sparql-tsv": "npm:^2.10.0" "@comunica/actor-query-result-serialize-sparql-xml": "npm:^2.10.0" - "@comunica/actor-query-result-serialize-stats": "npm:^2.10.0" + "@comunica/actor-query-result-serialize-stats": "npm:^2.10.2" "@comunica/actor-query-result-serialize-table": "npm:^2.10.0" "@comunica/actor-query-result-serialize-tree": "npm:^2.10.0" "@comunica/actor-rdf-join-entries-sort-cardinality": "npm:^2.10.0" @@ -3508,7 +2977,7 @@ __metadata: "@comunica/actor-rdf-parse-html-microdata": "npm:^2.10.0" "@comunica/actor-rdf-parse-html-rdfa": "npm:^2.10.0" "@comunica/actor-rdf-parse-html-script": "npm:^2.10.0" - "@comunica/actor-rdf-parse-jsonld": "npm:^2.10.0" + "@comunica/actor-rdf-parse-jsonld": "npm:^2.10.2" "@comunica/actor-rdf-parse-n3": "npm:^2.10.0" "@comunica/actor-rdf-parse-rdfxml": "npm:^2.10.0" "@comunica/actor-rdf-parse-shaclc": "npm:^2.10.0" @@ -3517,7 +2986,7 @@ __metadata: "@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo": "npm:^2.10.0" "@comunica/actor-rdf-resolve-hypermedia-none": "npm:^2.10.0" "@comunica/actor-rdf-resolve-hypermedia-qpf": "npm:^2.10.0" - "@comunica/actor-rdf-resolve-hypermedia-sparql": "npm:^2.10.1" + "@comunica/actor-rdf-resolve-hypermedia-sparql": "npm:^2.10.2" "@comunica/actor-rdf-resolve-quad-pattern-federated": "npm:^2.10.1" "@comunica/actor-rdf-resolve-quad-pattern-hypermedia": "npm:^2.10.1" "@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source": "npm:^2.10.0" @@ -3525,11 +2994,11 @@ __metadata: "@comunica/actor-rdf-serialize-jsonld": "npm:^2.10.0" "@comunica/actor-rdf-serialize-n3": "npm:^2.10.0" "@comunica/actor-rdf-serialize-shaclc": "npm:^2.10.0" - "@comunica/actor-rdf-update-hypermedia-patch-sparql-update": "npm:^2.10.1" - "@comunica/actor-rdf-update-hypermedia-put-ldp": "npm:^2.10.1" - "@comunica/actor-rdf-update-hypermedia-sparql": "npm:^2.10.1" - "@comunica/actor-rdf-update-quads-hypermedia": "npm:^2.10.1" - "@comunica/actor-rdf-update-quads-rdfjs-store": "npm:^2.10.1" + "@comunica/actor-rdf-update-hypermedia-patch-sparql-update": "npm:^2.10.2" + "@comunica/actor-rdf-update-hypermedia-put-ldp": "npm:^2.10.2" + "@comunica/actor-rdf-update-hypermedia-sparql": "npm:^2.10.2" + "@comunica/actor-rdf-update-quads-hypermedia": "npm:^2.10.2" + "@comunica/actor-rdf-update-quads-rdfjs-store": "npm:^2.10.2" "@comunica/bus-http-invalidate": "npm:^2.10.0" "@comunica/bus-query-operation": "npm:^2.10.1" "@comunica/config-query-sparql": "npm:^2.7.0" @@ -3549,7 +3018,7 @@ __metadata: comunica-dynamic-sparql: bin/query-dynamic.js comunica-sparql: bin/query.js comunica-sparql-http: bin/http.js - checksum: 10c0/cecad48f38d3f7545ad39389c4387f600909d00672d464084028a5a7627e7407e447a4f2f8fefb54c37aa194bec5a2c44e9c41451e25b50bb9f0976b53be99c5 + checksum: 10c0/284bb8c06e1e5429372cac74479144ed539675eea33f649aa1edfcae3fd6c6d2a097238a85a0ae1ef38423826fabb94b1be9156f54d67a525564aa7830c946d8 languageName: node linkType: hard @@ -4141,6 +3610,13 @@ __metadata: languageName: node linkType: hard +"@isaacs/ttlcache@npm:^1.4.1": + version: 1.4.1 + resolution: "@isaacs/ttlcache@npm:1.4.1" + checksum: 10c0/6921de516917b02673a58e543c2b06fd04237cbf6d089ca22d6e98defa4b1e9a48258cb071d6b581284bb497bea687320788830541511297eecbe6e93a665bbf + languageName: node + linkType: hard + "@istanbuljs/load-nyc-config@npm:^1.0.0": version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" @@ -4711,12 +4187,13 @@ __metadata: languageName: node linkType: hard -"@solid/community-server@npm:^7.0.3, @solid/community-server@npm:^7.0.4": - version: 7.0.4 - resolution: "@solid/community-server@npm:7.0.4" +"@solid/community-server@npm:^7.0.3, @solid/community-server@npm:^7.1.7": + version: 7.1.7 + resolution: "@solid/community-server@npm:7.1.7" dependencies: "@comunica/context-entries": "npm:^2.8.2" "@comunica/query-sparql": "npm:^2.9.0" + "@isaacs/ttlcache": "npm:^1.4.1" "@rdfjs/types": "npm:^1.1.0" "@solid/access-control-policy": "npm:^0.1.3" "@solid/access-token-verifier": "npm:^2.1.0" @@ -4745,8 +4222,8 @@ __metadata: arrayify-stream: "npm:^2.0.1" async-lock: "npm:^1.4.0" bcryptjs: "npm:^2.4.3" - componentsjs: "npm:^5.4.2" - cookie: "npm:^0.5.0" + componentsjs: "npm:^5.5.1" + cookie: "npm:^0.7.0" cors: "npm:^2.8.5" cross-fetch: "npm:^4.0.0" ejs: "npm:^3.1.9" @@ -4763,7 +4240,7 @@ __metadata: marked: "npm:^9.1.0" mime-types: "npm:^2.1.35" n3: "npm:^1.17.1" - nodemailer: "npm:^6.9.6" + nodemailer: "npm:^6.9.9" oidc-provider: "npm:^8.4.0" proper-lockfile: "npm:^4.1.2" pump: "npm:^3.0.0" @@ -4785,7 +4262,7 @@ __metadata: yup: "npm:^1.3.2" bin: community-solid-server: bin/server.js - checksum: 10c0/40c6f2b0a77bbf56fadc9f75bcc1d10f97bbc04f37e26fe916363a4b21d53360a878e389031f2ddd2d0763b5d123dce8c4f7760b7d3497ec64bd70650d8c32da + checksum: 10c0/a9a28d268e49561508c3e24f2c337736d4ea0da9378e42e727553e292383de2d2bf0d95e422befe45527091d23a4091f2512f5dbafe494bb0c74f0ec62f92b41 languageName: node linkType: hard @@ -4820,11 +4297,11 @@ __metadata: version: 0.0.0-use.local resolution: "@solidlab/uma-css@workspace:packages/css" dependencies: - "@solid/community-server": "npm:^7.0.4" + "@solid/community-server": "npm:^7.1.7" "@solidlab/derived-resources-component": "npm:^1.0.2" "@solidlab/uma": "workspace:^" "@types/n3": "npm:^1.16.4" - componentsjs: "npm:^5.4.2" + componentsjs: "npm:^5.5.1" fetch-retry: "npm:^6.0.0" http-message-signatures: "npm:^1.0.4" jose: "npm:^5.2.2" @@ -4838,10 +4315,10 @@ __metadata: dependencies: "@httpland/authorization-parser": "npm:^1.1.0" "@solid/access-token-verifier": "npm:^1.2.0" - "@solid/community-server": "npm:^7.0.4" + "@solid/community-server": "npm:^7.1.7" "@solidlab/ucp": "workspace:^" "@types/n3": "npm:^1.16.4" - componentsjs: "npm:^5.4.2" + componentsjs: "npm:^5.5.1" get-jwks: "npm:^9.0.1" http-message-signatures: "npm:^1.0.4" jose: "npm:^5.2.2" @@ -5508,16 +4985,7 @@ __metadata: languageName: node linkType: hard -"@types/sparqljs@npm:^3.1.3": - version: 3.1.8 - resolution: "@types/sparqljs@npm:3.1.8" - dependencies: - rdf-js: "npm:^4.0.2" - checksum: 10c0/6e760b27a2aa3f8004306af4d5fa71ac28a572883004827d12082ec845acfd8ea5c13663585ced2477a191c3d1b9c3130cae4bc614ec9bd778a1863dc2148655 - languageName: node - linkType: hard - -"@types/sparqljs@npm:^3.1.6": +"@types/sparqljs@npm:^3.1.3, @types/sparqljs@npm:^3.1.6": version: 3.1.9 resolution: "@types/sparqljs@npm:3.1.9" dependencies: @@ -6142,15 +5610,6 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: "npm:^7.0.1" - checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381 - languageName: node - linkType: hard - "braces@npm:^3.0.3": version: 3.0.3 resolution: "braces@npm:3.0.3" @@ -6571,9 +6030,9 @@ __metadata: languageName: node linkType: hard -"componentsjs@npm:^5.0.1, componentsjs@npm:^5.3.2, componentsjs@npm:^5.4.2": - version: 5.4.2 - resolution: "componentsjs@npm:5.4.2" +"componentsjs@npm:^5.0.1, componentsjs@npm:^5.3.2, componentsjs@npm:^5.5.1": + version: 5.5.1 + resolution: "componentsjs@npm:5.5.1" dependencies: "@rdfjs/types": "npm:*" "@types/minimist": "npm:^1.2.0" @@ -6591,7 +6050,7 @@ __metadata: winston: "npm:^3.3.3" bin: componentsjs-compile-config: bin/compile-config.js - checksum: 10c0/3f538333e0260722d9c10675bc2b426a66965986500e5c2086c14829297fabfb553b9fc7f66eb35345f49a50ce42eae947c9ae56a1db5c77de017c7a75820ba5 + checksum: 10c0/10a19a7cf34ae515a57d7387755b5e2319bcbd5e14868e772702e44f10b09b3b1d2eb38671a410a364a02330d3f37949d195e04268672558780296278a0d2bfa languageName: node linkType: hard @@ -6682,10 +6141,10 @@ __metadata: languageName: node linkType: hard -"cookie@npm:^0.5.0": - version: 0.5.0 - resolution: "cookie@npm:0.5.0" - checksum: 10c0/c01ca3ef8d7b8187bae434434582288681273b5a9ed27521d4d7f9f7928fe0c920df0decd9f9d3bbd2d14ac432b8c8cf42b98b3bdd5bfe0e6edddeebebe8b61d +"cookie@npm:^0.7.0": + version: 0.7.2 + resolution: "cookie@npm:0.7.2" + checksum: 10c0/9596e8ccdbf1a3a88ae02cf5ee80c1c50959423e1022e4e60b91dd87c622af1da309253d8abdb258fb5e3eacb4f08e579dc58b4897b8087574eee0fd35dfa5d2 languageName: node linkType: hard @@ -7581,20 +7040,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" - dependencies: - "@nodelib/fs.stat": "npm:^2.0.2" - "@nodelib/fs.walk": "npm:^1.2.3" - glob-parent: "npm:^5.1.2" - merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.4" - checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845 - languageName: node - linkType: hard - -"fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": version: 3.3.3 resolution: "fast-glob@npm:3.3.3" dependencies: @@ -7712,15 +7158,6 @@ __metadata: languageName: node linkType: hard -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f - languageName: node - linkType: hard - "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -8302,14 +7739,7 @@ __metadata: languageName: node linkType: hard -"http-link-header@npm:^1.0.2": - version: 1.1.1 - resolution: "http-link-header@npm:1.1.1" - checksum: 10c0/a97b679e01e9f0860c823917c2c6637e3f0c06aa6cc0de4da98e1a433690e19b21323595889aa9347618134600bc7e2b0ff3cbeea7e4cea2f8cdae65dd9cc7f1 - languageName: node - linkType: hard - -"http-link-header@npm:^1.1.1": +"http-link-header@npm:^1.0.2, http-link-header@npm:^1.1.1": version: 1.1.3 resolution: "http-link-header@npm:1.1.3" checksum: 10c0/56698a9d3aee4d5319d1cdfe62ef5d7179f179ec1e6432d23c9e6a0c896be642ba47a4985a45419cff91008032aef920aca9df94ff9e763e646c83bf54b7243d @@ -8387,14 +7817,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0": - version: 5.3.0 - resolution: "ignore@npm:5.3.0" - checksum: 10c0/dc06bea5c23aae65d0725a957a0638b57e235ae4568dda51ca142053ed2c352de7e3bc93a69b2b32ac31966a1952e9a93c5ef2e2ab7c6b06aef9808f6b55b571 - languageName: node - linkType: hard - -"ignore@npm:^5.2.4": +"ignore@npm:^5.2.0, ignore@npm:^5.2.4": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 @@ -8408,17 +7831,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" - dependencies: - parent-module: "npm:^1.0.0" - resolve-from: "npm:^4.0.0" - checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3 - languageName: node - linkType: hard - -"import-fresh@npm:^3.3.0": +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.1 resolution: "import-fresh@npm:3.3.1" dependencies: @@ -9225,14 +8638,7 @@ __metadata: languageName: node linkType: hard -"jose@npm:^5.1.3": - version: 5.2.0 - resolution: "jose@npm:5.2.0" - checksum: 10c0/a5631e9a7148fb56c8feca8e00d1f03de6fa6e18e494fe62428b53bed525a9dba554ff3e860bdfc4aee60574194691015ba991557874ae826509c4c19dba4fea - languageName: node - linkType: hard - -"jose@npm:^5.2.2": +"jose@npm:^5.1.3, jose@npm:^5.2.2": version: 5.2.2 resolution: "jose@npm:5.2.2" checksum: 10c0/f6a439d41fa36e1c0a3a1554c1955ba656f37a7fc5e353bdcbda144cc9210fe513cc1b0480ec5bd5de50c0ec23714c82d82ae89f1b906656b683aa35ae075b68 @@ -9383,25 +8789,7 @@ __metadata: languageName: node linkType: hard -"jsonld-streaming-parser@npm:^3.0.1": - version: 3.3.0 - resolution: "jsonld-streaming-parser@npm:3.3.0" - dependencies: - "@bergos/jsonparse": "npm:^1.4.0" - "@rdfjs/types": "npm:*" - "@types/http-link-header": "npm:^1.0.1" - "@types/readable-stream": "npm:^2.3.13" - buffer: "npm:^6.0.3" - canonicalize: "npm:^1.0.1" - http-link-header: "npm:^1.0.2" - jsonld-context-parser: "npm:^2.4.0" - rdf-data-factory: "npm:^1.1.0" - readable-stream: "npm:^4.0.0" - checksum: 10c0/da92dae7a25dff8622e9c42f071c145b55771ea47f53b6d0221f0051edca3948c4cb6f74ffe7c1d161c7ea471d14c384784f1925735e8c31232d8244f9e4f8d0 - languageName: node - linkType: hard - -"jsonld-streaming-parser@npm:^3.3.0": +"jsonld-streaming-parser@npm:^3.0.1, jsonld-streaming-parser@npm:^3.3.0": version: 3.4.0 resolution: "jsonld-streaming-parser@npm:3.4.0" dependencies: @@ -9432,7 +8820,7 @@ __metadata: languageName: node linkType: hard -"jsonld@npm:^8.0.0, jsonld@npm:^8.3.1, jsonld@npm:^8.3.3": +"jsonld@npm:^8.0.0, jsonld@npm:^8.3.1, jsonld@npm:^8.3.3, jsonld@npm:^8.x.x": version: 8.3.3 resolution: "jsonld@npm:8.3.3" dependencies: @@ -9444,18 +8832,6 @@ __metadata: languageName: node linkType: hard -"jsonld@npm:^8.x.x": - version: 8.3.2 - resolution: "jsonld@npm:8.3.2" - dependencies: - "@digitalbazaar/http-client": "npm:^3.4.1" - canonicalize: "npm:^1.0.1" - lru-cache: "npm:^6.0.0" - rdf-canonize: "npm:^3.4.0" - checksum: 10c0/9c3596ffcde7e7ebeeaaa37f76b31f45f459552f4210adb16e9fc66781a94c4edf3d181cd6e5f758bd340c347f423c7c85a17387d60ef9d57a49a419cec6927e - languageName: node - linkType: hard - "jsonparse@npm:^1.2.0": version: 1.3.1 resolution: "jsonparse@npm:1.3.1" @@ -9748,20 +9124,13 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^10.0.0": +"lru-cache@npm:^10.0.0, lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": version: 10.1.0 resolution: "lru-cache@npm:10.1.0" checksum: 10c0/778bc8b2626daccd75f24c4b4d10632496e21ba064b126f526c626fbdbc5b28c472013fccd45d7646b9e1ef052444824854aed617b59cd570d01a8b7d651fc1e languageName: node linkType: hard -"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.0.3 - resolution: "lru-cache@npm:10.0.3" - checksum: 10c0/e1745db7682df7ea890aced922975528e9fd85897459e003ff3b71d7f69656792ddd9c50e852b7c461000b9c08a9370b110bfbe6e44de3d81f43c197eaa652b1 - languageName: node - linkType: hard - "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -9907,17 +9276,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: "npm:^3.0.2" - picomatch: "npm:^2.3.1" - checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff - languageName: node - linkType: hard - -"micromatch@npm:^4.0.8": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -9992,7 +9351,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.5": +"minimatch@npm:9.0.5, minimatch@npm:^9.0.1": version: 9.0.5 resolution: "minimatch@npm:9.0.5" dependencies: @@ -10019,15 +9378,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.1": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac - languageName: node - linkType: hard - "minimist-options@npm:4.1.0": version: 4.1.0 resolution: "minimist-options@npm:4.1.0" @@ -10273,10 +9623,10 @@ __metadata: languageName: node linkType: hard -"nodemailer@npm:^6.9.6": - version: 6.9.8 - resolution: "nodemailer@npm:6.9.8" - checksum: 10c0/9332587975240ac648e1295b1df15e339fcace3f7fab8af0382e7f2dd10e48296344dfa698d58f1667f220f7fe13c779d55d39144c9cd9ed6f5f559714183c75 +"nodemailer@npm:^6.9.9": + version: 6.10.0 + resolution: "nodemailer@npm:6.10.0" + checksum: 10c0/39fd35d65b021b94c968eeac82a66dd843021b6ba53c659d01b1dd4cda73b6a2f96e20facfe500efa4b8d3f1cb23df10245c6c86b2bde5f806691ed17ce87826 languageName: node linkType: hard @@ -10759,14 +10109,7 @@ __metadata: languageName: node linkType: hard -"pure-rand@npm:^6.0.0": - version: 6.0.4 - resolution: "pure-rand@npm:6.0.4" - checksum: 10c0/0fe7b12f25b10ea5b804598a6f37e4bcf645d2be6d44fe963741f014bf0095bdb6ff525106d6da6e76addc8142358fd380f1a9b8c62ea4d5516bf26a96a37c95 - languageName: node - linkType: hard - -"pure-rand@npm:^6.1.0": +"pure-rand@npm:^6.0.0, pure-rand@npm:^6.1.0": version: 6.1.0 resolution: "pure-rand@npm:6.1.0" checksum: 10c0/1abe217897bf74dcb3a0c9aba3555fe975023147b48db540aa2faf507aee91c03bf54f6aef0eb2bf59cc259a16d06b28eca37f0dc426d94f4692aeff02fb0e65 @@ -10933,39 +10276,7 @@ __metadata: languageName: node linkType: hard -"rdf-parse@npm:^2.0.0, rdf-parse@npm:^2.1.1, rdf-parse@npm:^2.3.2": - version: 2.3.2 - resolution: "rdf-parse@npm:2.3.2" - dependencies: - "@comunica/actor-http-fetch": "npm:^2.0.1" - "@comunica/actor-http-proxy": "npm:^2.0.1" - "@comunica/actor-rdf-parse-html": "npm:^2.0.1" - "@comunica/actor-rdf-parse-html-microdata": "npm:^2.0.1" - "@comunica/actor-rdf-parse-html-rdfa": "npm:^2.0.1" - "@comunica/actor-rdf-parse-html-script": "npm:^2.0.1" - "@comunica/actor-rdf-parse-jsonld": "npm:^2.0.1" - "@comunica/actor-rdf-parse-n3": "npm:^2.0.1" - "@comunica/actor-rdf-parse-rdfxml": "npm:^2.0.1" - "@comunica/actor-rdf-parse-shaclc": "npm:^2.6.2" - "@comunica/actor-rdf-parse-xml-rdfa": "npm:^2.0.1" - "@comunica/bus-http": "npm:^2.0.1" - "@comunica/bus-init": "npm:^2.0.1" - "@comunica/bus-rdf-parse": "npm:^2.0.1" - "@comunica/bus-rdf-parse-html": "npm:^2.0.1" - "@comunica/config-query-sparql": "npm:^2.0.1" - "@comunica/core": "npm:^2.0.1" - "@comunica/mediator-combine-pipeline": "npm:^2.0.1" - "@comunica/mediator-combine-union": "npm:^2.0.1" - "@comunica/mediator-number": "npm:^2.0.1" - "@comunica/mediator-race": "npm:^2.0.1" - "@rdfjs/types": "npm:*" - readable-stream: "npm:^4.3.0" - stream-to-string: "npm:^1.2.0" - checksum: 10c0/03793a5c02ec6f71f7cebbde47aed4480d7a9e51cb123ff8c9b9e1da1db3d4115a60d814b6fa305919f18d6bd89583d9378a3c9039b26b63bb2f15e6d3b5940e - languageName: node - linkType: hard - -"rdf-parse@npm:^2.3.3": +"rdf-parse@npm:^2.0.0, rdf-parse@npm:^2.1.1, rdf-parse@npm:^2.3.2, rdf-parse@npm:^2.3.3": version: 2.3.3 resolution: "rdf-parse@npm:2.3.3" dependencies: @@ -11029,17 +10340,7 @@ __metadata: languageName: node linkType: hard -"rdf-store-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "rdf-store-stream@npm:2.0.0" - dependencies: - "@rdfjs/types": "npm:*" - rdf-stores: "npm:^1.0.0" - checksum: 10c0/1d5527e6c989c10d2af058d8356df31fee8f72a0acc1e9ae41a26c15a225a7bdc0bf3446e624f7935236d69feace42c5fddecf674133a60027e58698a9bbd2d6 - languageName: node - linkType: hard - -"rdf-store-stream@npm:^2.0.1": +"rdf-store-stream@npm:^2.0.0, rdf-store-stream@npm:^2.0.1": version: 2.0.1 resolution: "rdf-store-stream@npm:2.0.1" dependencies: @@ -11220,20 +10521,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^4.0.0, readable-stream@npm:^4.1.0, readable-stream@npm:^4.3.0, readable-stream@npm:^4.4.2": - version: 4.4.2 - resolution: "readable-stream@npm:4.4.2" - dependencies: - abort-controller: "npm:^3.0.0" - buffer: "npm:^6.0.3" - events: "npm:^3.3.0" - process: "npm:^0.11.10" - string_decoder: "npm:^1.3.0" - checksum: 10c0/cf7cc8daa2b57872d120945a20a1458c13dcb6c6f352505421115827b18ac4df0e483ac1fe195cb1f5cd226e1073fc55b92b569269d8299e8530840bcdbba40c - languageName: node - linkType: hard - -"readable-stream@npm:^4.5.1": +"readable-stream@npm:^4.0.0, readable-stream@npm:^4.1.0, readable-stream@npm:^4.3.0, readable-stream@npm:^4.4.2, readable-stream@npm:^4.5.1": version: 4.5.2 resolution: "readable-stream@npm:4.5.2" dependencies: @@ -11507,7 +10795,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.7.0": +"semver@npm:7.7.0, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.7.0 resolution: "semver@npm:7.7.0" bin: @@ -11525,17 +10813,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.5.4 - resolution: "semver@npm:7.5.4" - dependencies: - lru-cache: "npm:^6.0.0" - bin: - semver: bin/semver.js - checksum: 10c0/5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e - languageName: node - linkType: hard - "serialize-error@npm:^8.0.1, serialize-error@npm:^8.1.0": version: 8.1.0 resolution: "serialize-error@npm:8.1.0" @@ -11724,7 +11001,7 @@ __metadata: languageName: node linkType: hard -"sparqlalgebrajs@npm:^4.0.0, sparqlalgebrajs@npm:^4.3.0": +"sparqlalgebrajs@npm:^4.0.0, sparqlalgebrajs@npm:^4.2.0, sparqlalgebrajs@npm:^4.3.0": version: 4.3.2 resolution: "sparqlalgebrajs@npm:4.3.2" dependencies: @@ -11743,25 +11020,6 @@ __metadata: languageName: node linkType: hard -"sparqlalgebrajs@npm:^4.2.0": - version: 4.3.1 - resolution: "sparqlalgebrajs@npm:4.3.1" - dependencies: - "@rdfjs/types": "npm:*" - "@types/sparqljs": "npm:^3.1.3" - fast-deep-equal: "npm:^3.1.3" - minimist: "npm:^1.2.6" - rdf-data-factory: "npm:^1.1.0" - rdf-isomorphic: "npm:^1.3.0" - rdf-string: "npm:^1.6.0" - rdf-terms: "npm:^1.10.0" - sparqljs: "npm:^3.7.1" - bin: - sparqlalgebrajs: bin/sparqlalgebrajs.js - checksum: 10c0/5510b3cb2c8263a5a9e44526e6388331888824d28faf5f2b22173475b2520766de71ce48b2d9c9cf85e808db85a45e966662f68f1acc1327ff4c149fda322f0f - languageName: node - linkType: hard - "sparqljs@npm:^3.1.2, sparqljs@npm:^3.7.1": version: 3.7.1 resolution: "sparqljs@npm:3.7.1" @@ -12336,45 +11594,7 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:^10.8.1": - version: 10.9.1 - resolution: "ts-node@npm:10.9.1" - dependencies: - "@cspotcode/source-map-support": "npm:^0.8.0" - "@tsconfig/node10": "npm:^1.0.7" - "@tsconfig/node12": "npm:^1.0.7" - "@tsconfig/node14": "npm:^1.0.0" - "@tsconfig/node16": "npm:^1.0.2" - acorn: "npm:^8.4.1" - acorn-walk: "npm:^8.1.1" - arg: "npm:^4.1.0" - create-require: "npm:^1.1.0" - diff: "npm:^4.0.1" - make-error: "npm:^1.1.1" - v8-compile-cache-lib: "npm:^3.0.1" - yn: "npm:3.1.1" - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-esm: dist/bin-esm.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: 10c0/95187932fb83f3901e22546bd2feeac7d2feb4f412f42ac3a595f049a23e8dcf70516dffb51866391228ea2dbcfaea039e250fb2bb334d48a86ab2b6aea0ae2d - languageName: node - linkType: hard - -"ts-node@npm:^10.9.2": +"ts-node@npm:^10.8.1, ts-node@npm:^10.9.2": version: 10.9.2 resolution: "ts-node@npm:10.9.2" dependencies: