From 5815ac0cbc86193d966b62e32d489c000b487358 Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Mon, 26 May 2025 17:23:08 +0100 Subject: [PATCH 1/5] feat: add shacl support --- package-lock.json | 360 +++++++++++++++++++++++++- packages/cli/package.json | 3 + packages/cli/src/util/forAllShapes.ts | 53 +++- 3 files changed, 414 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1cacd0a..c900258 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5782,6 +5782,97 @@ "fsevents": "^2.3.2" } }, + "node_modules/@jeswr/shacl2shex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@jeswr/shacl2shex/-/shacl2shex-1.1.0.tgz", + "integrity": "sha512-1lcPUqavU+Q1wCM+aF2JbHjTKoBZTNbA6n4P+EfmXDzNKK8UPJ6qRlyx6ICpHEw2wxoXhcFAYdtBUpQc/cxHnw==", + "license": "MIT", + "dependencies": { + "@ldo/ldo": "^0.0.1-alpha.24", + "@on2ts/ontologies-sh": "^1.0.51", + "@rdfjs/term-set": "^1.1.0", + "@rdfjs/types": "^1.1.0", + "@shexjs/neighborhood-rdfjs": "^1.0.0-alpha.29", + "@shexjs/validator": "^1.0.0-alpha.29", + "@shexjs/writer": "^1.0.0-alpha.27", + "event-emitter-promisify": "^1.1.0", + "n3": "^1.17.3", + "rdf-dereference": "^2.2.0", + "rdf-namespaces": "^1.12.0" + }, + "bin": { + "shacl2shex": "dist/bin/index.js" + } + }, + "node_modules/@jeswr/shacl2shex/node_modules/@ldo/dataset": { + "version": "0.0.1-alpha.24", + "resolved": "https://registry.npmjs.org/@ldo/dataset/-/dataset-0.0.1-alpha.24.tgz", + "integrity": "sha512-Jlh6DjvLN4gOOT8SYCKQaHZB8taeHvoriQRbF3s5CtYFf8Ne20job+02cToE1kVcBCinBrjZ/qnZ777wje+Z7A==", + "license": "MIT", + "dependencies": { + "@ldo/rdf-utils": "^0.0.1-alpha.24", + "@rdfjs/dataset": "^1.1.0", + "buffer": "^6.0.3", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@jeswr/shacl2shex/node_modules/@ldo/jsonld-dataset-proxy": { + "version": "0.0.1-alpha.29", + "resolved": "https://registry.npmjs.org/@ldo/jsonld-dataset-proxy/-/jsonld-dataset-proxy-0.0.1-alpha.29.tgz", + "integrity": "sha512-6r1tn/t82aJ6vjxEGyNSJTzQJgz1Z4Pu875o4EolXXJZCu7TiXBdsW6HyAuloqiIV5b6A2b+M6G0mOuObndooA==", + "license": "MIT", + "dependencies": { + "@ldo/rdf-utils": "^0.0.1-alpha.24", + "@ldo/subscribable-dataset": "^0.0.1-alpha.24", + "@rdfjs/data-model": "^1.2.0", + "@rdfjs/dataset": "^1.1.0", + "jsonld2graphobject": "^0.0.4" + } + }, + "node_modules/@jeswr/shacl2shex/node_modules/@ldo/ldo": { + "version": "0.0.1-alpha.29", + "resolved": "https://registry.npmjs.org/@ldo/ldo/-/ldo-0.0.1-alpha.29.tgz", + "integrity": "sha512-eci3e2FlaSoOWN5vzLQaJhrmznuuK89yTr/ZLvmWIK2bvsY8QOArAx8EiGgwvvrzvHpG7ezaoW1ThS/53QFiqQ==", + "license": "MIT", + "dependencies": { + "@ldo/dataset": "^0.0.1-alpha.24", + "@ldo/jsonld-dataset-proxy": "^0.0.1-alpha.29", + "@ldo/subscribable-dataset": "^0.0.1-alpha.24", + "@rdfjs/data-model": "^1.2.0", + "buffer": "^6.0.3", + "readable-stream": "^4.3.0" + } + }, + "node_modules/@jeswr/shacl2shex/node_modules/@ldo/rdf-utils": { + "version": "0.0.1-alpha.24", + "resolved": "https://registry.npmjs.org/@ldo/rdf-utils/-/rdf-utils-0.0.1-alpha.24.tgz", + "integrity": "sha512-L6gV/pS7107ODinnvvD4sUBb9VM/7IuVeFWZnN0Jmyk7XBiviPLVUvReO18UB7mambXweLS7efl+Z0W2NnsH1A==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^1.2.0", + "n3": "^1.17.1", + "rdf-string": "^1.6.3" + } + }, + "node_modules/@jeswr/shacl2shex/node_modules/@ldo/subscribable-dataset": { + "version": "0.0.1-alpha.24", + "resolved": "https://registry.npmjs.org/@ldo/subscribable-dataset/-/subscribable-dataset-0.0.1-alpha.24.tgz", + "integrity": "sha512-grQ0/pzdx4euBOTxMHqQqebOYBqrBbNS9Jk8sYFR4u/dEg8e6nIGz0E4beI83dHp/hT8fT18gs/gV4UxZzmphQ==", + "license": "MIT", + "dependencies": { + "@ldo/dataset": "^0.0.1-alpha.24", + "@ldo/rdf-utils": "^0.0.1-alpha.24" + } + }, + "node_modules/@jeswr/shacl2shex/node_modules/@rdfjs/types": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.1.2.tgz", + "integrity": "sha512-wqpOJK1QCbmsGNtyzYnojPU8gRDPid2JO0Q0kMtb4j65xhCK880cnKAfEOwC+dX85VJcCByQx5zOwyyfCjDJsg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", @@ -7289,6 +7380,46 @@ "@octokit/openapi-types": "^18.0.0" } }, + "node_modules/@on2ts/ontologies-sh": { + "version": "1.0.51", + "resolved": "https://registry.npmjs.org/@on2ts/ontologies-sh/-/ontologies-sh-1.0.51.tgz", + "integrity": "sha512-V0k+ZKupMjCQajCGkMVmILsxLq1uqHLY6V2xTmBJ0Y34q4dLZF6r1dX2NW1PZofekxLvx8VNNDsvynyPTDFp7g==", + "license": "MIT", + "dependencies": { + "@on2ts/ontologies-utils": "^1.0.51" + } + }, + "node_modules/@on2ts/ontologies-utils": { + "version": "1.0.51", + "resolved": "https://registry.npmjs.org/@on2ts/ontologies-utils/-/ontologies-utils-1.0.51.tgz", + "integrity": "sha512-xM4052l0OKxk73ERuWY+IObEIVgXxkwDOFZU3rlLK6GBDbReaGXSYK9DAJyqwk0R1FcyLZxjNdIDYN4WbMzpuA==", + "license": "MIT", + "dependencies": { + "@types/rdf-js": "^4.0.1", + "jsonld-streaming-parser": "^2.2.1" + } + }, + "node_modules/@on2ts/ontologies-utils/node_modules/canonicalize": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==", + "license": "Apache-2.0" + }, + "node_modules/@on2ts/ontologies-utils/node_modules/jsonld-streaming-parser": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/jsonld-streaming-parser/-/jsonld-streaming-parser-2.4.3.tgz", + "integrity": "sha512-ysuevJ+l8+Y4W3J/yQW3pa9VCBNDHo2tZkKmPAnfhfsmFMyxuueAeXMmTbpJZdrpagzeeDVr3A8EZVuHliQJ9A==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/http-link-header": "^1.0.1", + "canonicalize": "^1.0.1", + "http-link-header": "^1.0.2", + "jsonld-context-parser": "^2.1.3", + "jsonparse": "^1.3.1", + "rdf-data-factory": "^1.1.0" + } + }, "node_modules/@parcel/watcher": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", @@ -7873,6 +8004,69 @@ "string-argv": "~0.3.1" } }, + "node_modules/@shexjs/eval-simple-1err": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/@shexjs/eval-simple-1err/-/eval-simple-1err-1.0.0-alpha.29.tgz", + "integrity": "sha512-qizKDp+FPoOL9140VJglIbf9brgQdoPDrZ0t0vmTEdRQvY5+rF+H20nStAiPPK6XxC/AbIglv6/dImQWAMKuSw==", + "license": "MIT", + "dependencies": { + "@shexjs/eval-validator-api": "^1.0.0-alpha.29", + "@shexjs/term": "^1.0.0-alpha.27" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@shexjs/eval-threaded-nerr": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/@shexjs/eval-threaded-nerr/-/eval-threaded-nerr-1.0.0-alpha.29.tgz", + "integrity": "sha512-/RFl7SzEaiofdLd1qNidvpU4Yy4TZuMdO5DMPznHkIICjyJeKgg8Kx166VznZPVIa66Sxr/hG4ngkaWsHxWYwQ==", + "license": "MIT", + "dependencies": { + "@shexjs/eval-validator-api": "^1.0.0-alpha.29", + "@shexjs/term": "^1.0.0-alpha.27" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@shexjs/eval-validator-api": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/@shexjs/eval-validator-api/-/eval-validator-api-1.0.0-alpha.29.tgz", + "integrity": "sha512-5QCd6DvgBMOZvWZtixdsH/d4uXPzxYr4yv7C0wzVeBKRkB15KQd7Ccg8Bz9QbsIV1O9asxG1xoxGgYDkhZeBPg==", + "license": "MIT", + "dependencies": { + "@shexjs/term": "^1.0.0-alpha.27" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@shexjs/neighborhood-api": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/@shexjs/neighborhood-api/-/neighborhood-api-1.0.0-alpha.28.tgz", + "integrity": "sha512-rkIIt39z3z1gt+8xc3CJAKLBJ/OUE+8sP24Iqs9uZYuRvJitavd+L8oX5XcdpMduwJUqE6s+Rf/YUuN0VYn7Qw==", + "license": "MIT", + "dependencies": { + "@shexjs/term": "^1.0.0-alpha.27" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@shexjs/neighborhood-rdfjs": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/@shexjs/neighborhood-rdfjs/-/neighborhood-rdfjs-1.0.0-alpha.29.tgz", + "integrity": "sha512-6B4LMfTyQA5L42QI3+rlGxQEPywqLe4CFJDUm/bn6V3ldakajh/ZbPHod3DPjSLsJ7tYLZsRi9GPIPTgYgmZUw==", + "license": "MIT", + "dependencies": { + "@shexjs/eval-validator-api": "^1.0.0-alpha.29", + "@shexjs/term": "^1.0.0-alpha.27" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@shexjs/parser": { "version": "1.0.0-alpha.28", "resolved": "https://registry.npmjs.org/@shexjs/parser/-/parser-1.0.0-alpha.28.tgz", @@ -7916,6 +8110,35 @@ "node": ">=0.10.0" } }, + "node_modules/@shexjs/validator": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/@shexjs/validator/-/validator-1.0.0-alpha.29.tgz", + "integrity": "sha512-KO9Sf9ICpnoFFutiX59vx7o9eRnOPuKngKxfeyOzM3mKmKQXad0SOIbqRxRBaMgV/eXwhnIERhzvCK66EZMrFQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.1", + "@shexjs/eval-simple-1err": "^1.0.0-alpha.29", + "@shexjs/eval-threaded-nerr": "^1.0.0-alpha.29", + "@shexjs/eval-validator-api": "^1.0.0-alpha.29", + "@shexjs/neighborhood-api": "^1.0.0-alpha.28", + "@shexjs/term": "^1.0.0-alpha.27", + "@shexjs/visitor": "^1.0.0-alpha.27", + "@types/shexj": "^2.1.6", + "hierarchy-closure": "^1.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@shexjs/validator/node_modules/@rdfjs/data-model": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@rdfjs/data-model/-/data-model-2.1.0.tgz", + "integrity": "sha512-pnjwSqDCXxxJQPm3TyDaqoWynYYQBl1pZC7rIPhdck7RbcEVF8hIBg5vXXosUbNcW3qwyAEBtYGojoWRnxBPew==", + "license": "MIT", + "bin": { + "rdfjs-data-model-test": "bin/test.js" + } + }, "node_modules/@shexjs/visitor": { "version": "1.0.0-alpha.27", "resolved": "https://registry.npmjs.org/@shexjs/visitor/-/visitor-1.0.0-alpha.27.tgz", @@ -7925,6 +8148,18 @@ "node": ">=0.10.0" } }, + "node_modules/@shexjs/writer": { + "version": "1.0.0-alpha.27", + "resolved": "https://registry.npmjs.org/@shexjs/writer/-/writer-1.0.0-alpha.27.tgz", + "integrity": "sha512-VK4gIQdIuhlU2vU8HiZAvffj4zPzLrDjLaBS0uKiLS0VTSpee4rejLJs4HiXCfPXFY7xOdW+As9dBH7kKpXWew==", + "license": "MIT", + "dependencies": { + "relativize-url": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", @@ -9377,6 +9612,15 @@ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "license": "MIT" }, + "node_modules/@types/rdf-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/rdf-js/-/rdf-js-4.0.1.tgz", + "integrity": "sha512-S+28+3RoFI+3arls7dS813gYnhb2HiyLX+gs00rgIvCzHU93DaYajhx4tyT+XEO8SjtzZw90OF4OVdYXBwbvkQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/rdf-validate-shacl": { "version": "0.4.9", "resolved": "https://registry.npmjs.org/@types/rdf-validate-shacl/-/rdf-validate-shacl-0.4.9.tgz", @@ -14111,6 +14355,12 @@ "url": "https://github.com/eta-dev/eta?sponsor=1" } }, + "node_modules/event-emitter-promisify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/event-emitter-promisify/-/event-emitter-promisify-1.1.0.tgz", + "integrity": "sha512-uyHG8gjwYGDlKoo0Txtx/u1HI1ubj0FK0rVqI4O0s1EymQm4iAEMbrS5B+XFlSaS8SZ3xzoKX+YHRZk8Nk/bXg==", + "license": "MIT" + }, "node_modules/event-stream": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", @@ -18803,7 +19053,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, "engines": [ "node >= 0.2.0" ], @@ -23535,6 +23784,106 @@ "rdf-dereference": "bin/Runner.js" } }, + "node_modules/rdf-dereference-store": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/rdf-dereference-store/-/rdf-dereference-store-1.3.2.tgz", + "integrity": "sha512-T9lYzCjd3IF4NWzmL4nN/DOQMqghNv/mFrxg3/V0ADAsNVjqy/EU1W9HAgmR6jczLcZWxbp9ZEHMEXoIANVEuQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "^1.1.0", + "@types/n3": "^1.16.4", + "asynciterator": "^3.9.0", + "event-emitter-promisify": "^1.1.0", + "n3": "^1.17.3", + "rdf-dereference": "^3.0.0", + "rdf-parse": "^3.0.0", + "readable-stream": "^4.5.2" + } + }, + "node_modules/rdf-dereference-store/node_modules/@rdfjs/types": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.1.2.tgz", + "integrity": "sha512-wqpOJK1QCbmsGNtyzYnojPU8gRDPid2JO0Q0kMtb4j65xhCK880cnKAfEOwC+dX85VJcCByQx5zOwyyfCjDJsg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/rdf-dereference-store/node_modules/rdf-dereference": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rdf-dereference/-/rdf-dereference-3.0.0.tgz", + "integrity": "sha512-LxB1dP357S/NuivEfNa2YMbnY+k+hPNrvAx/p6CUaHhKv5wuqJHtfmbm8ahqbo/98CizjoFew5xT4WlqedXWYA==", + "license": "MIT", + "dependencies": { + "@comunica/actor-dereference-fallback": "^2.0.2", + "@comunica/actor-dereference-file": "^2.0.2", + "@comunica/actor-dereference-http": "^2.0.2", + "@comunica/actor-dereference-rdf-parse": "^2.6.0", + "@comunica/actor-http-fetch": "^2.0.1", + "@comunica/actor-http-proxy": "^2.0.1", + "@comunica/actor-rdf-parse-html": "^2.0.1", + "@comunica/actor-rdf-parse-html-microdata": "^2.0.1", + "@comunica/actor-rdf-parse-html-rdfa": "^2.0.1", + "@comunica/actor-rdf-parse-html-script": "^2.0.1", + "@comunica/actor-rdf-parse-jsonld": "^2.0.1", + "@comunica/actor-rdf-parse-n3": "^2.0.1", + "@comunica/actor-rdf-parse-rdfxml": "^2.0.1", + "@comunica/actor-rdf-parse-shaclc": "^2.6.0", + "@comunica/actor-rdf-parse-xml-rdfa": "^2.0.1", + "@comunica/bus-dereference": "^2.0.2", + "@comunica/bus-dereference-rdf": "^2.0.2", + "@comunica/bus-http": "^2.0.1", + "@comunica/bus-init": "^2.0.1", + "@comunica/bus-rdf-parse": "^2.0.1", + "@comunica/bus-rdf-parse-html": "^2.0.1", + "@comunica/config-query-sparql": "^2.0.1", + "@comunica/context-entries": "^2.8.1", + "@comunica/core": "^2.0.1", + "@comunica/mediator-combine-pipeline": "^2.0.1", + "@comunica/mediator-combine-union": "^2.0.1", + "@comunica/mediator-number": "^2.0.1", + "@comunica/mediator-race": "^2.0.1", + "@rdfjs/types": "*", + "process": "^0.11.10", + "rdf-string": "^1.6.0", + "stream-to-string": "^1.2.0" + }, + "bin": { + "rdf-dereference": "bin/Runner.js" + } + }, + "node_modules/rdf-dereference-store/node_modules/rdf-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rdf-parse/-/rdf-parse-3.0.0.tgz", + "integrity": "sha512-W+h4cEL299Va9XXmtbM6Cl3Mh6dMUgFC2a3q7nyohEOPjp/ZOxFS9zNfnJY1/5wnmaLXbydnJhahwkcnQ8kD/g==", + "license": "MIT", + "dependencies": { + "@comunica/actor-http-fetch": "^2.0.1", + "@comunica/actor-http-proxy": "^2.0.1", + "@comunica/actor-rdf-parse-html": "^2.0.1", + "@comunica/actor-rdf-parse-html-microdata": "^2.0.1", + "@comunica/actor-rdf-parse-html-rdfa": "^2.0.1", + "@comunica/actor-rdf-parse-html-script": "^2.0.1", + "@comunica/actor-rdf-parse-jsonld": "^2.0.1", + "@comunica/actor-rdf-parse-n3": "^2.0.1", + "@comunica/actor-rdf-parse-rdfxml": "^2.0.1", + "@comunica/actor-rdf-parse-shaclc": "^2.6.2", + "@comunica/actor-rdf-parse-xml-rdfa": "^2.0.1", + "@comunica/bus-http": "^2.0.1", + "@comunica/bus-init": "^2.0.1", + "@comunica/bus-rdf-parse": "^2.0.1", + "@comunica/bus-rdf-parse-html": "^2.0.1", + "@comunica/config-query-sparql": "^2.0.1", + "@comunica/core": "^2.0.1", + "@comunica/mediator-combine-pipeline": "^2.0.1", + "@comunica/mediator-combine-union": "^2.0.1", + "@comunica/mediator-number": "^2.0.1", + "@comunica/mediator-race": "^2.0.1", + "@rdfjs/types": "*", + "readable-stream": "^4.3.0", + "stream-to-string": "^1.2.0" + } + }, "node_modules/rdf-isomorphic": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/rdf-isomorphic/-/rdf-isomorphic-1.3.1.tgz", @@ -23568,6 +23917,12 @@ "rdf-data-factory": "^1.1.0" } }, + "node_modules/rdf-namespaces": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/rdf-namespaces/-/rdf-namespaces-1.12.0.tgz", + "integrity": "sha512-Fk48ltssXTmyXeoLqC0y85CEAhhWH+wvu7bkr9WxsKUyFDcKwWSHOK7CvRq3XRampy1qhSrOsIQ8U1gQDCh5MA==", + "license": "MIT" + }, "node_modules/rdf-object": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/rdf-object/-/rdf-object-1.14.0.tgz", @@ -30340,6 +30695,7 @@ "version": "1.0.0-alpha.21", "license": "MIT", "dependencies": { + "@jeswr/shacl2shex": "^1.1.0", "@ldo/ldo": "^1.0.0-alpha.21", "@ldo/schema-converter-shex": "^1.0.0-alpha.21", "@shexjs/parser": "^1.0.0-alpha.24", @@ -30350,6 +30706,8 @@ "loading-cli": "^1.1.0", "prettier": "^3.0.3", "prompts": "^2.4.2", + "rdf-dereference-store": "^1.3.2", + "rdf-namespaces": "^1.12.0", "ts-morph": "^24.0.0", "type-fest": "^2.19.0" }, diff --git a/packages/cli/package.json b/packages/cli/package.json index 29d1f48..b6687c5 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -40,6 +40,7 @@ "rimraf": "^3.0.2" }, "dependencies": { + "@jeswr/shacl2shex": "^1.1.0", "@ldo/ldo": "^1.0.0-alpha.21", "@ldo/schema-converter-shex": "^1.0.0-alpha.21", "@shexjs/parser": "^1.0.0-alpha.24", @@ -50,6 +51,8 @@ "loading-cli": "^1.1.0", "prettier": "^3.0.3", "prompts": "^2.4.2", + "rdf-dereference-store": "^1.3.2", + "rdf-namespaces": "^1.12.0", "ts-morph": "^24.0.0", "type-fest": "^2.19.0" }, diff --git a/packages/cli/src/util/forAllShapes.ts b/packages/cli/src/util/forAllShapes.ts index 7897b35..e84da86 100644 --- a/packages/cli/src/util/forAllShapes.ts +++ b/packages/cli/src/util/forAllShapes.ts @@ -1,5 +1,22 @@ import fs from "fs"; import path from "path"; +import { shaclStoreToShexSchema, writeShexSchema } from "@jeswr/shacl2shex"; +import derefStore from "rdf-dereference-store"; +import type { Store } from "n3"; +import { DataFactory as DF } from "n3"; +import { rdf } from "rdf-namespaces"; + +function hasMatch(store: Store, predicate: string, object: string) { + for (const _ in store.match( + null, + DF.namedNode(predicate), + DF.namedNode(object), + DF.defaultGraph(), + )) { + return true; + } + return false; +} export async function forAllShapes( shapePath: string, @@ -12,7 +29,7 @@ export async function forAllShapes( const shexFiles = shapeDir.filter( (file) => file.isFile() && file.name.endsWith(".shex"), ); - await Promise.all( + const shexPromise = Promise.all( shexFiles.map(async (file) => { const fileName = path.parse(file.name).name; // Get the content of each document @@ -23,4 +40,38 @@ export async function forAllShapes( await callback(fileName, shexC); }), ); + // See if any of the RDF files contain a SHACL shape + const shaclPromise = Promise.all( + shapeDir.map(async (file) => { + if (file.isFile()) { + try { + const store = await derefStore(path.join(shapePath, file.name), { + localFiles: true, + }); + // Make sure the RDF file contains a SHACL shape + if ( + hasMatch( + store.store, + rdf.type, + "http://www.w3.org/ns/shacl#NodeShape", + ) || + hasMatch( + store.store, + rdf.type, + "http://www.w3.org/ns/shacl#PropertyShape", + ) + ) { + const shex = await writeShexSchema( + await shaclStoreToShexSchema(store.store), + store.prefixes, + ); + await callback(shex, path.parse(file.name).name); + } + } catch (e) { + // no-op ignore invalid RDF file + } + } + }), + ); + await Promise.all([shexPromise, shaclPromise]); } From 066b18aaf21d5f00e5793abc397b113a4040a1cc Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Mon, 26 May 2025 17:26:01 +0100 Subject: [PATCH 2/5] chore: don't suppress shex conversion errors --- packages/cli/src/util/forAllShapes.ts | 43 ++++++++++++++------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/packages/cli/src/util/forAllShapes.ts b/packages/cli/src/util/forAllShapes.ts index e84da86..9703d5c 100644 --- a/packages/cli/src/util/forAllShapes.ts +++ b/packages/cli/src/util/forAllShapes.ts @@ -44,31 +44,32 @@ export async function forAllShapes( const shaclPromise = Promise.all( shapeDir.map(async (file) => { if (file.isFile()) { + let store: Awaited>; try { - const store = await derefStore(path.join(shapePath, file.name), { + store = await derefStore(path.join(shapePath, file.name), { localFiles: true, }); - // Make sure the RDF file contains a SHACL shape - if ( - hasMatch( - store.store, - rdf.type, - "http://www.w3.org/ns/shacl#NodeShape", - ) || - hasMatch( - store.store, - rdf.type, - "http://www.w3.org/ns/shacl#PropertyShape", - ) - ) { - const shex = await writeShexSchema( - await shaclStoreToShexSchema(store.store), - store.prefixes, - ); - await callback(shex, path.parse(file.name).name); - } } catch (e) { - // no-op ignore invalid RDF file + return; + } + // Make sure the RDF file contains a SHACL shape + if ( + hasMatch( + store.store, + rdf.type, + "http://www.w3.org/ns/shacl#NodeShape", + ) || + hasMatch( + store.store, + rdf.type, + "http://www.w3.org/ns/shacl#PropertyShape", + ) + ) { + const shex = await writeShexSchema( + await shaclStoreToShexSchema(store.store), + store.prefixes, + ); + await callback(shex, path.parse(file.name).name); } } }), From 502b75142e411b1efd2b2a91debd15c8e431ca1c Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Mon, 26 May 2025 17:57:07 +0100 Subject: [PATCH 3/5] fix: fix import and callback error --- package-lock.json | 776 +++++++++++++++++++++++--- packages/cli/package.json | 2 +- packages/cli/src/util/forAllShapes.ts | 8 +- 3 files changed, 713 insertions(+), 73 deletions(-) diff --git a/package-lock.json b/package-lock.json index c900258..e72761e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5873,6 +5873,15 @@ "@types/node": "*" } }, + "node_modules/@jeswr/stream-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@jeswr/stream-to-string/-/stream-to-string-2.0.0.tgz", + "integrity": "sha512-VmoW6xYRjVzdMr2njBObVSlUc5KCJT+gyuuH+tea9ZLE59XhgfLNc8ufN5Md38STxCyAJUDUVcCBfaOo11BfuA==", + "license": "MIT", + "dependencies": { + "event-emitter-promisify": "^1.1.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", @@ -23785,9 +23794,9 @@ } }, "node_modules/rdf-dereference-store": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/rdf-dereference-store/-/rdf-dereference-store-1.3.2.tgz", - "integrity": "sha512-T9lYzCjd3IF4NWzmL4nN/DOQMqghNv/mFrxg3/V0ADAsNVjqy/EU1W9HAgmR6jczLcZWxbp9ZEHMEXoIANVEuQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rdf-dereference-store/-/rdf-dereference-store-1.4.0.tgz", + "integrity": "sha512-VWobImdfxG46vBGzD8V/CJ6+zSC5FPt16Fe0PUyK+jUQG5hYbGDp0+U7fcaeK5Xif8y9kA0mXPUy2k/Qn9PWLg==", "license": "MIT", "dependencies": { "@rdfjs/types": "^1.1.0", @@ -23795,9 +23804,507 @@ "asynciterator": "^3.9.0", "event-emitter-promisify": "^1.1.0", "n3": "^1.17.3", - "rdf-dereference": "^3.0.0", - "rdf-parse": "^3.0.0", + "rdf-dereference": "^4.0.0", + "rdf-parse": "^4.0.0", + "readable-stream": "^4.5.2" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-abstract-mediatyped": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-mediatyped/-/actor-abstract-mediatyped-4.2.0.tgz", + "integrity": "sha512-+7NuPZQAi7iRJ1Cie9qqhbJjBv0/SadA/24+KrDVU4+4QM6n5usCKibA8D84Nqgt257IsrFrb2G7NndTZ6taww==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^4.2.0", + "@comunica/types": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-abstract-parse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-parse/-/actor-abstract-parse-4.2.0.tgz", + "integrity": "sha512-WUHr9Bhr3Z7eJ2GtSGnhj1xCXCarKkC82WPorlG+RhuPuryp152GtJYtdyBIR4pEetP2hL4n+VuvHjXY80LWbQ==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^4.2.0", + "readable-stream": "^4.5.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-dereference-fallback": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-dereference-fallback/-/actor-dereference-fallback-4.2.0.tgz", + "integrity": "sha512-MtDTZj1zUrzj8zte74+3KnMVaJrQfQm15AquK3g8XwJYwDEPJwT5bDRenb/TXlcG6qio9MamY4iYkgsCRPmPVQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-dereference": "^4.2.0", + "@comunica/core": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-dereference-file": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-dereference-file/-/actor-dereference-file-4.2.0.tgz", + "integrity": "sha512-Dq+y1gmZ/ExEqrEyTTBOg6h4nxNjivF35KjMexmnIS1tLD9+coaa0lOV3H5VyF40i+P/Bo9c0N940yYKoN30CQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-dereference": "^4.2.0", + "@comunica/core": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-dereference-http": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-dereference-http/-/actor-dereference-http-4.2.0.tgz", + "integrity": "sha512-FKyO0N15QKanXc5mHAdLTaI0BXEhs2A6uxGr0IwcAePaMFt+fjxlG/sz97PeSgVzoW60nLD21a29KVN6cTGbMg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-dereference": "^4.2.0", + "@comunica/bus-http": "^4.2.0", + "@comunica/core": "^4.2.0", + "@jeswr/stream-to-string": "^2.0.0", + "relative-to-absolute-iri": "^1.0.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-dereference-rdf-parse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-dereference-rdf-parse/-/actor-dereference-rdf-parse-4.2.0.tgz", + "integrity": "sha512-i8Buj5Vlf6C7cA59Y8DqPjVABSDQZtjOgME/dheGrLdGm04xES+MRBwjLIhYnXadBns0Kk/UjIsnSI+k6sEXdw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-dereference": "^4.2.0", + "@comunica/bus-dereference-rdf": "^4.2.0", + "@comunica/bus-rdf-parse": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-http-fetch": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-http-fetch/-/actor-http-fetch-4.2.0.tgz", + "integrity": "sha512-oZMNb01Jpc+e/0/b8+zRjQsNrEndfIiA6UpN0os4hROHw3QBw3ewT05g/GZUp7V+Fo/uSA4akUUqDsLKyZxRaw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^4.2.0", + "@comunica/context-entries": "^4.2.0", + "@comunica/core": "^4.2.0", + "@comunica/mediatortype-time": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-http-proxy": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-http-proxy/-/actor-http-proxy-4.2.0.tgz", + "integrity": "sha512-aKJEv7mkMJiMJRTxsqPyUfjczoKDT9u/0wIWzSdW215hdW5ITAla08fD+/yIqKAD/Nz9bdZo3CSLwIMrtENmEQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^4.2.0", + "@comunica/context-entries": "^4.2.0", + "@comunica/core": "^4.2.0", + "@comunica/mediatortype-time": "^4.2.0", + "@comunica/types": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-rdf-parse-html": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html/-/actor-rdf-parse-html-4.2.0.tgz", + "integrity": "sha512-g3WBPzZ76AnMqNc9EJ0NYrF/3YYyyv5xz07yLtoRPwseT/ADdXszMLnkqlrNvh0hoz2DV4RVBynW7X/3gcv83A==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^4.2.0", + "@comunica/bus-rdf-parse-html": "^4.2.0", + "@comunica/core": "^4.2.0", + "@comunica/types": "^4.2.0", + "@rdfjs/types": "*", + "htmlparser2": "^10.0.0", + "readable-stream": "^4.5.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-rdf-parse-html-microdata": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-microdata/-/actor-rdf-parse-html-microdata-4.2.0.tgz", + "integrity": "sha512-BcwVDfgtGKbXcdi7FHNzGiwOwZim629obfiHJsCFz/u+/ijQ9uQCbkBYILkvlNDBhJGhV2g+z0WdyJnnrVH6nA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse-html": "^4.2.0", + "@comunica/context-entries": "^4.2.0", + "@comunica/core": "^4.2.0", + "@comunica/types": "^4.2.0", + "microdata-rdf-streaming-parser": "^2.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-rdf-parse-html-rdfa": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-rdfa/-/actor-rdf-parse-html-rdfa-4.2.0.tgz", + "integrity": "sha512-frs09nzpFCpGV8w3MRT9SvHiBeeiMWnvVh/aJ1XKgzZh4sXYvUyf1nPMf5eUCa8tv3x4k1Rt+1ryd5nHyPRLOg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse-html": "^4.2.0", + "@comunica/context-entries": "^4.2.0", + "@comunica/core": "^4.2.0", + "@comunica/types": "^4.2.0", + "rdfa-streaming-parser": "^2.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-rdf-parse-html-script": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-script/-/actor-rdf-parse-html-script-4.2.0.tgz", + "integrity": "sha512-zbH9NSDPmufxJvbHdsQK3QwDf5Et/ywXElgCG+sPHdtJTqjKG/cuQSF3xwM1xYl++kLXR0KY3bz/EIQGRsq/OA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^4.2.0", + "@comunica/bus-rdf-parse-html": "^4.2.0", + "@comunica/context-entries": "^4.2.0", + "@comunica/core": "^4.2.0", + "@comunica/types": "^4.2.0", + "@rdfjs/types": "*", + "readable-stream": "^4.5.2", + "relative-to-absolute-iri": "^1.0.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-rdf-parse-jsonld": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-jsonld/-/actor-rdf-parse-jsonld-4.2.0.tgz", + "integrity": "sha512-qD+tuwx/E5z+c55hWrjtRWmS+tMw/ZPJgvNmD+DEUYf1LCeJ3WqjMEa3u783eVxNCXTJQ/CguVm5kZGKwG669w==", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^4.2.0", + "@comunica/bus-rdf-parse": "^4.2.0", + "@comunica/context-entries": "^4.2.0", + "@comunica/core": "^4.2.0", + "@comunica/types": "^4.2.0", + "@jeswr/stream-to-string": "^2.0.0", + "jsonld-context-parser": "^2.2.2", + "jsonld-streaming-parser": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-rdf-parse-n3": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-n3/-/actor-rdf-parse-n3-4.2.0.tgz", + "integrity": "sha512-auRylErX6t62VSa+CaBGej3QVTSCjbceA7cRs/3rIOZ8ctclFalelV8OMZMsPmgkK/pc4DeDXqcxVkUa9OKBSw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^4.2.0", + "@comunica/context-entries": "^4.2.0", + "@comunica/types": "^4.2.0", + "n3": "^1.17.0" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-rdf-parse-rdfxml": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-rdfxml/-/actor-rdf-parse-rdfxml-4.2.0.tgz", + "integrity": "sha512-0bhARRt80pEgVRDPb8xmtgKOrXS6ccV/XJMfmXTFEN2y5BCdXPKVazN/QEH7GBIrx/GkgQGXFwnprIvJlRJbag==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^4.2.0", + "@comunica/context-entries": "^4.2.0", + "rdfxml-streaming-parser": "^2.2.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-rdf-parse-shaclc": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-shaclc/-/actor-rdf-parse-shaclc-4.2.0.tgz", + "integrity": "sha512-qnTAFZEYofrwuhjGi1ToMs33BuUjvdklixQ9odEUcGTbUhrhCkcI2VqE7etDVkn3RlmEAHLseWHkCWEWWS167Q==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^4.2.0", + "@comunica/types": "^4.2.0", + "@jeswr/stream-to-string": "^2.0.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "readable-stream": "^4.5.2", + "shaclc-parse": "^1.4.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/actor-rdf-parse-xml-rdfa": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-xml-rdfa/-/actor-rdf-parse-xml-rdfa-4.2.0.tgz", + "integrity": "sha512-PMRVpUSGzUieRpW7ffkciaX+x+QkgtlD/2lu2Ru7EPo/NwM5yelshwdv7VDv/lYeWOKwrx01GQgTQSU8dPDeoQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^4.2.0", + "@comunica/context-entries": "^4.2.0", + "@comunica/types": "^4.2.0", + "rdfa-streaming-parser": "^2.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/bus-dereference": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-dereference/-/bus-dereference-4.2.0.tgz", + "integrity": "sha512-KWaGcrW9B0tWbgtG8gDK6nosdl94unyaaX5eCDSjTXqN6ZZA+NEDHbzRWypxcxbzMugAvyNwcAmC28KW+h9KCQ==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-mediatyped": "^4.2.0", + "@comunica/actor-abstract-parse": "^4.2.0", + "@comunica/context-entries": "^4.2.0", + "@comunica/core": "^4.2.0", + "@comunica/types": "^4.2.0", + "readable-stream": "^4.5.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/bus-dereference-rdf": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-dereference-rdf/-/bus-dereference-rdf-4.2.0.tgz", + "integrity": "sha512-RQvj/BMP9QD9v3ZR4vIYLLlRWawAhXDzCOZZ6oJnhmxSOW0NfdL3h5rFI03HVPpDfyWtV4ACKK8FNe6gOIeXZw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-dereference": "^4.2.0", + "@comunica/bus-rdf-parse": "^4.2.0", + "@comunica/core": "^4.2.0", + "@rdfjs/types": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/bus-http": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-http/-/bus-http-4.2.0.tgz", + "integrity": "sha512-ZCtufwu+xMFUlE8FvI1CrNncW6Npa44wWN+RMGu+X0qhP0DIu9DyUZlKJgwy1KcMfhqwbEQpsWf9kWlyW2IpCQ==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^4.2.0", + "@jeswr/stream-to-string": "^2.0.0", + "is-stream": "^2.0.1", + "readable-from-web": "^1.0.0", + "readable-stream-node-to-web": "^1.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/bus-init": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-init/-/bus-init-4.2.0.tgz", + "integrity": "sha512-AxX9fOI0xKjed4nbxz5ADLb5ILbBJPkvDuehvKOtK5i2fto+cUDg3V4QUVJEdSrCoreSwdSzmygG93NBOkqHrg==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^4.2.0", "readable-stream": "^4.5.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/bus-rdf-parse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-parse/-/bus-rdf-parse-4.2.0.tgz", + "integrity": "sha512-P92ACuOk2zicOfNDiRc8xAA/u3yw6pHKQDZWRs/XXJJQIyEU+9CAKA6URHcb0+ffnVtxHtiiqI2nsra7MRadIg==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-mediatyped": "^4.2.0", + "@comunica/actor-abstract-parse": "^4.2.0", + "@comunica/core": "^4.2.0", + "@rdfjs/types": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/bus-rdf-parse-html": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-parse-html/-/bus-rdf-parse-html-4.2.0.tgz", + "integrity": "sha512-pQPHa2IMPPuicQQYQ2IlgFuUa7JBPRohSe3uMhUfcAUv9aGZKcIrlFdXCQPnUc+HLNU/f/06HmcWiXtgS8YujQ==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^4.2.0", + "@rdfjs/types": "*" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/config-query-sparql": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/config-query-sparql/-/config-query-sparql-4.2.0.tgz", + "integrity": "sha512-WGX6Ocm6X0KN05cqcD5JGuDs1bRCkyohx3RqBKIHmugmms6sR2hTNspq+dZHJ4r9J50PUng0fG8E4rIFZFlHBQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/context-entries": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/context-entries/-/context-entries-4.2.0.tgz", + "integrity": "sha512-F9FDSHXUP9TT9urSC+oXo6oNJYV6Q7lDRVQPi4DL81M9S34iNgOBnTdOlHxExiEwVnRfKdTKkRii/qe4Zk7Gbg==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^4.2.0", + "@comunica/types": "^4.2.0", + "@rdfjs/types": "*", + "jsonld-context-parser": "^2.2.2", + "sparqlalgebrajs": "^4.3.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/core": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-4.2.0.tgz", + "integrity": "sha512-E4TfsxmBYgan9xPSCAom6B231EonTFxM/hEdFbRmVhuCv+Ids7d4UhGt3MENJDXH+UhURjqKpfzYySvAqYqVOA==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^4.2.0", + "immutable": "^4.3.7" + }, + "engines": { + "node": ">=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/mediator-combine-pipeline": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-combine-pipeline/-/mediator-combine-pipeline-4.2.0.tgz", + "integrity": "sha512-UYFBKR3bmFqJC+A9sx+kEsvGuILNimt/5yTC0yId56sjdwAaEEQz9iFLI1HqJS2T6weu81S/VXiYUpwp9DGJbg==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^4.2.0", + "@comunica/types": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/mediator-combine-union": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-combine-union/-/mediator-combine-union-4.2.0.tgz", + "integrity": "sha512-hdqtqmGb0aEW8sIcp3WvzziXAxPfGWYDBgH/QQIk2JVWc7auGWvddut2pQCGHyFrv6MXI0vbjj8g1UIaAMviBQ==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/mediator-number": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-number/-/mediator-number-4.2.0.tgz", + "integrity": "sha512-TYwcukPQLblV3sfkNMsl3oj3AXSzcGmB+tUYy/++kKohQ67xy2r0wfBo1Ij/6G4ZnzlMIuOWzQcXojFrnV9iWQ==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/mediator-race": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-race/-/mediator-race-4.2.0.tgz", + "integrity": "sha512-KHfRVB+Qfaou8tJeXrCrcw1NlTUD+xbi5/7qSwvRqEbbajW2B4cRYbw0VrTJDFUb1tva5IHQQGpMFJ/aHHpH5w==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/mediatortype-time": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediatortype-time/-/mediatortype-time-4.2.0.tgz", + "integrity": "sha512-t/IVwZPeb4hijIjdQKl/BS14HR7PXDgiv2Djq1f42596mluPjDemUG3suxx8VxBCGhG6Jckupg/WvvLYdW585w==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" + } + }, + "node_modules/rdf-dereference-store/node_modules/@comunica/types": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-4.2.0.tgz", + "integrity": "sha512-3Vf3FOUB/i7tdlghovHsgjoZbdqIgB0m01UGwpxCBHI/swbxcqhQzmKFjU9T3gNxurmsdqafF8Unoh9ZCwNuRw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.9.0", + "lru-cache": "^10.0.1", + "sparqlalgebrajs": "^4.3.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/comunica-association" } }, "node_modules/rdf-dereference-store/node_modules/@rdfjs/types": { @@ -23809,81 +24316,195 @@ "@types/node": "*" } }, - "node_modules/rdf-dereference-store/node_modules/rdf-dereference": { + "node_modules/rdf-dereference-store/node_modules/@types/node": { + "version": "18.19.103", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.103.tgz", + "integrity": "sha512-hHTHp+sEz6SxFsp+SA+Tqrua3AbmlAw+Y//aEwdHrdZkYVRWdvWD3y5uPZ0flYOkgskaFWqZ/YGFm3FaFQ0pRw==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/rdf-dereference-store/node_modules/@types/readable-stream": { + "version": "4.0.19", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.19.tgz", + "integrity": "sha512-6Tgd3lMocKwOul/kwAAgSebkhdMCLhRvcJ6CKHA6wdql2qNIwK6hw3Y4PZQxn9HcJogoC/1ZOmkFM7OZKH/VrA==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/rdf-dereference-store/node_modules/canonicalize": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==", + "license": "Apache-2.0" + }, + "node_modules/rdf-dereference-store/node_modules/entities": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", + "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/rdf-dereference-store/node_modules/htmlparser2": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, + "node_modules/rdf-dereference-store/node_modules/jsonld-streaming-parser": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonld-streaming-parser/-/jsonld-streaming-parser-4.0.1.tgz", + "integrity": "sha512-6M4y9YGgADk3nXJebbRrxEdMVBJ9bnz+peAvjTXUievopqaE8sg/qml/I6Sp1ln7rpOKffsNZWSre6B7N76szw==", + "license": "MIT", + "dependencies": { + "@bergos/jsonparse": "^1.4.0", + "@rdfjs/types": "*", + "@types/http-link-header": "^1.0.1", + "@types/readable-stream": "^4.0.0", + "buffer": "^6.0.3", + "canonicalize": "^1.0.1", + "http-link-header": "^1.0.2", + "jsonld-context-parser": "^3.0.0", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.0.0" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/rubensworks/" + } + }, + "node_modules/rdf-dereference-store/node_modules/jsonld-streaming-parser/node_modules/jsonld-context-parser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rdf-dereference/-/rdf-dereference-3.0.0.tgz", - "integrity": "sha512-LxB1dP357S/NuivEfNa2YMbnY+k+hPNrvAx/p6CUaHhKv5wuqJHtfmbm8ahqbo/98CizjoFew5xT4WlqedXWYA==", + "resolved": "https://registry.npmjs.org/jsonld-context-parser/-/jsonld-context-parser-3.0.0.tgz", + "integrity": "sha512-Kg6TVtBUdIm057ht/8WNhM9BROt+BeYaDGXbzrKaa3xA99csee+CsD8IMCTizRgzoO8PIzvzcxxCoRvpq1xNQw==", "license": "MIT", "dependencies": { - "@comunica/actor-dereference-fallback": "^2.0.2", - "@comunica/actor-dereference-file": "^2.0.2", - "@comunica/actor-dereference-http": "^2.0.2", - "@comunica/actor-dereference-rdf-parse": "^2.6.0", - "@comunica/actor-http-fetch": "^2.0.1", - "@comunica/actor-http-proxy": "^2.0.1", - "@comunica/actor-rdf-parse-html": "^2.0.1", - "@comunica/actor-rdf-parse-html-microdata": "^2.0.1", - "@comunica/actor-rdf-parse-html-rdfa": "^2.0.1", - "@comunica/actor-rdf-parse-html-script": "^2.0.1", - "@comunica/actor-rdf-parse-jsonld": "^2.0.1", - "@comunica/actor-rdf-parse-n3": "^2.0.1", - "@comunica/actor-rdf-parse-rdfxml": "^2.0.1", - "@comunica/actor-rdf-parse-shaclc": "^2.6.0", - "@comunica/actor-rdf-parse-xml-rdfa": "^2.0.1", - "@comunica/bus-dereference": "^2.0.2", - "@comunica/bus-dereference-rdf": "^2.0.2", - "@comunica/bus-http": "^2.0.1", - "@comunica/bus-init": "^2.0.1", - "@comunica/bus-rdf-parse": "^2.0.1", - "@comunica/bus-rdf-parse-html": "^2.0.1", - "@comunica/config-query-sparql": "^2.0.1", - "@comunica/context-entries": "^2.8.1", - "@comunica/core": "^2.0.1", - "@comunica/mediator-combine-pipeline": "^2.0.1", - "@comunica/mediator-combine-union": "^2.0.1", - "@comunica/mediator-number": "^2.0.1", - "@comunica/mediator-race": "^2.0.1", + "@types/http-link-header": "^1.0.1", + "@types/node": "^18.0.0", + "http-link-header": "^1.0.2", + "relative-to-absolute-iri": "^1.0.5" + }, + "bin": { + "jsonld-context-parse": "bin/jsonld-context-parse.js" + } + }, + "node_modules/rdf-dereference-store/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/rdf-dereference-store/node_modules/rdf-dereference": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rdf-dereference/-/rdf-dereference-4.0.0.tgz", + "integrity": "sha512-hv7uqIHTB9M/OnS69hrSwNVBo/4+CFLwdVCL6Lg7z0+KLDJChZmTK5e6CFQ8v0OL1TJTSETGx2/EORhOwuZfFQ==", + "license": "MIT", + "dependencies": { + "@comunica/actor-dereference-fallback": "^4.0.1", + "@comunica/actor-dereference-file": "^4.0.1", + "@comunica/actor-dereference-http": "^4.0.1", + "@comunica/actor-dereference-rdf-parse": "^4.0.1", + "@comunica/actor-http-fetch": "^4.0.1", + "@comunica/actor-http-proxy": "^4.0.1", + "@comunica/actor-rdf-parse-html": "^4.0.1", + "@comunica/actor-rdf-parse-html-microdata": "^4.0.1", + "@comunica/actor-rdf-parse-html-rdfa": "^4.0.1", + "@comunica/actor-rdf-parse-html-script": "^4.0.1", + "@comunica/actor-rdf-parse-jsonld": "^4.0.1", + "@comunica/actor-rdf-parse-n3": "^4.0.1", + "@comunica/actor-rdf-parse-rdfxml": "^4.0.1", + "@comunica/actor-rdf-parse-shaclc": "^4.0.1", + "@comunica/actor-rdf-parse-xml-rdfa": "^4.0.1", + "@comunica/bus-dereference": "^4.0.1", + "@comunica/bus-dereference-rdf": "^4.0.1", + "@comunica/bus-http": "^4.0.1", + "@comunica/bus-init": "^4.0.1", + "@comunica/bus-rdf-parse": "^4.0.1", + "@comunica/bus-rdf-parse-html": "^4.0.1", + "@comunica/config-query-sparql": "^4.0.1", + "@comunica/context-entries": "^4.0.1", + "@comunica/core": "^4.0.1", + "@comunica/mediator-combine-pipeline": "^4.0.1", + "@comunica/mediator-combine-union": "^4.0.1", + "@comunica/mediator-number": "^4.0.1", + "@comunica/mediator-race": "^4.0.1", "@rdfjs/types": "*", - "process": "^0.11.10", - "rdf-string": "^1.6.0", - "stream-to-string": "^1.2.0" + "rdf-data-factory": "^1.1.2", + "rdf-string": "^1.6.3", + "stream-to-string": "^1.2.1" }, "bin": { "rdf-dereference": "bin/Runner.js" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/rubensworks/" } }, "node_modules/rdf-dereference-store/node_modules/rdf-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rdf-parse/-/rdf-parse-3.0.0.tgz", - "integrity": "sha512-W+h4cEL299Va9XXmtbM6Cl3Mh6dMUgFC2a3q7nyohEOPjp/ZOxFS9zNfnJY1/5wnmaLXbydnJhahwkcnQ8kD/g==", - "license": "MIT", - "dependencies": { - "@comunica/actor-http-fetch": "^2.0.1", - "@comunica/actor-http-proxy": "^2.0.1", - "@comunica/actor-rdf-parse-html": "^2.0.1", - "@comunica/actor-rdf-parse-html-microdata": "^2.0.1", - "@comunica/actor-rdf-parse-html-rdfa": "^2.0.1", - "@comunica/actor-rdf-parse-html-script": "^2.0.1", - "@comunica/actor-rdf-parse-jsonld": "^2.0.1", - "@comunica/actor-rdf-parse-n3": "^2.0.1", - "@comunica/actor-rdf-parse-rdfxml": "^2.0.1", - "@comunica/actor-rdf-parse-shaclc": "^2.6.2", - "@comunica/actor-rdf-parse-xml-rdfa": "^2.0.1", - "@comunica/bus-http": "^2.0.1", - "@comunica/bus-init": "^2.0.1", - "@comunica/bus-rdf-parse": "^2.0.1", - "@comunica/bus-rdf-parse-html": "^2.0.1", - "@comunica/config-query-sparql": "^2.0.1", - "@comunica/core": "^2.0.1", - "@comunica/mediator-combine-pipeline": "^2.0.1", - "@comunica/mediator-combine-union": "^2.0.1", - "@comunica/mediator-number": "^2.0.1", - "@comunica/mediator-race": "^2.0.1", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rdf-parse/-/rdf-parse-4.0.0.tgz", + "integrity": "sha512-lNVuUKPVAdX9lJYYrJFhdQHFulYjk95BYvuNsE+eUs/M93sdsovH/Ga8bTAxagmpsoQ4LzMPa2YqeHX8ysltOA==", + "license": "MIT", + "dependencies": { + "@comunica/actor-http-fetch": "^4.0.1", + "@comunica/actor-http-proxy": "^4.0.1", + "@comunica/actor-rdf-parse-html": "^4.0.1", + "@comunica/actor-rdf-parse-html-microdata": "^4.0.1", + "@comunica/actor-rdf-parse-html-rdfa": "^4.0.1", + "@comunica/actor-rdf-parse-html-script": "^4.0.1", + "@comunica/actor-rdf-parse-jsonld": "^4.0.1", + "@comunica/actor-rdf-parse-n3": "^4.0.1", + "@comunica/actor-rdf-parse-rdfxml": "^4.0.1", + "@comunica/actor-rdf-parse-shaclc": "^4.0.1", + "@comunica/actor-rdf-parse-xml-rdfa": "^4.0.1", + "@comunica/bus-http": "^4.0.1", + "@comunica/bus-init": "^4.0.1", + "@comunica/bus-rdf-parse": "^4.0.1", + "@comunica/bus-rdf-parse-html": "^4.0.1", + "@comunica/config-query-sparql": "^4.0.1", + "@comunica/context-entries": "^4.0.1", + "@comunica/core": "^4.0.1", + "@comunica/mediator-combine-pipeline": "^4.0.1", + "@comunica/mediator-combine-union": "^4.0.1", + "@comunica/mediator-number": "^4.0.1", + "@comunica/mediator-race": "^4.0.1", "@rdfjs/types": "*", - "readable-stream": "^4.3.0", - "stream-to-string": "^1.2.0" + "rdf-data-factory": "^1.1.2", + "readable-stream": "^4.5.2", + "stream-to-string": "^1.2.1" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/rubensworks/" } }, + "node_modules/rdf-dereference-store/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, "node_modules/rdf-isomorphic": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/rdf-isomorphic/-/rdf-isomorphic-1.3.1.tgz", @@ -24599,6 +25220,25 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/readable-from-web": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readable-from-web/-/readable-from-web-1.0.0.tgz", + "integrity": "sha512-tei03fQhxqLEklpIvocFUR9hO42hiyYvdhwoNHAjJztPAQ8QS1NqF2AhLwzGxIGidPBJ4MCqB48wn7OAFCfhsQ==", + "license": "MIT", + "dependencies": { + "@types/readable-stream": "^4.0.0", + "readable-stream": "^4.0.0" + } + }, + "node_modules/readable-from-web/node_modules/@types/readable-stream": { + "version": "4.0.19", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.19.tgz", + "integrity": "sha512-6Tgd3lMocKwOul/kwAAgSebkhdMCLhRvcJ6CKHA6wdql2qNIwK6hw3Y4PZQxn9HcJogoC/1ZOmkFM7OZKH/VrA==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/readable-stream": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", @@ -30706,7 +31346,7 @@ "loading-cli": "^1.1.0", "prettier": "^3.0.3", "prompts": "^2.4.2", - "rdf-dereference-store": "^1.3.2", + "rdf-dereference-store": "^1.4.0", "rdf-namespaces": "^1.12.0", "ts-morph": "^24.0.0", "type-fest": "^2.19.0" diff --git a/packages/cli/package.json b/packages/cli/package.json index b6687c5..f53b6b9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -51,7 +51,7 @@ "loading-cli": "^1.1.0", "prettier": "^3.0.3", "prompts": "^2.4.2", - "rdf-dereference-store": "^1.3.2", + "rdf-dereference-store": "^1.4.0", "rdf-namespaces": "^1.12.0", "ts-morph": "^24.0.0", "type-fest": "^2.19.0" diff --git a/packages/cli/src/util/forAllShapes.ts b/packages/cli/src/util/forAllShapes.ts index 9703d5c..da1f5be 100644 --- a/packages/cli/src/util/forAllShapes.ts +++ b/packages/cli/src/util/forAllShapes.ts @@ -1,7 +1,7 @@ import fs from "fs"; import path from "path"; import { shaclStoreToShexSchema, writeShexSchema } from "@jeswr/shacl2shex"; -import derefStore from "rdf-dereference-store"; +import { dereferenceStore } from "rdf-dereference-store"; import type { Store } from "n3"; import { DataFactory as DF } from "n3"; import { rdf } from "rdf-namespaces"; @@ -44,9 +44,9 @@ export async function forAllShapes( const shaclPromise = Promise.all( shapeDir.map(async (file) => { if (file.isFile()) { - let store: Awaited>; + let store: Awaited>; try { - store = await derefStore(path.join(shapePath, file.name), { + store = await dereferenceStore(path.join(shapePath, file.name), { localFiles: true, }); } catch (e) { @@ -69,7 +69,7 @@ export async function forAllShapes( await shaclStoreToShexSchema(store.store), store.prefixes, ); - await callback(shex, path.parse(file.name).name); + await callback(path.parse(file.name).name, shex); } } }), From 3a88d54a7e453fbe203f75707253b6b0412a1972 Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Mon, 26 May 2025 17:59:32 +0100 Subject: [PATCH 4/5] chore: remove redundant comment --- packages/cli/src/util/forAllShapes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/util/forAllShapes.ts b/packages/cli/src/util/forAllShapes.ts index da1f5be..e1c0ec2 100644 --- a/packages/cli/src/util/forAllShapes.ts +++ b/packages/cli/src/util/forAllShapes.ts @@ -40,7 +40,7 @@ export async function forAllShapes( await callback(fileName, shexC); }), ); - // See if any of the RDF files contain a SHACL shape + const shaclPromise = Promise.all( shapeDir.map(async (file) => { if (file.isFile()) { From eb3ed8d8d749d04f5a7337a13f21673645bd0ea0 Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Mon, 26 May 2025 18:02:42 +0100 Subject: [PATCH 5/5] fix: fix dereferenceToStore name --- packages/cli/src/util/forAllShapes.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cli/src/util/forAllShapes.ts b/packages/cli/src/util/forAllShapes.ts index e1c0ec2..b1adf32 100644 --- a/packages/cli/src/util/forAllShapes.ts +++ b/packages/cli/src/util/forAllShapes.ts @@ -1,7 +1,7 @@ import fs from "fs"; import path from "path"; import { shaclStoreToShexSchema, writeShexSchema } from "@jeswr/shacl2shex"; -import { dereferenceStore } from "rdf-dereference-store"; +import { dereferenceToStore } from "rdf-dereference-store"; import type { Store } from "n3"; import { DataFactory as DF } from "n3"; import { rdf } from "rdf-namespaces"; @@ -44,9 +44,9 @@ export async function forAllShapes( const shaclPromise = Promise.all( shapeDir.map(async (file) => { if (file.isFile()) { - let store: Awaited>; + let store: Awaited>; try { - store = await dereferenceStore(path.join(shapePath, file.name), { + store = await dereferenceToStore(path.join(shapePath, file.name), { localFiles: true, }); } catch (e) {