From d78858dbbc7e22c5b5834aee093ee035b97a5a21 Mon Sep 17 00:00:00 2001 From: jaxoncreed Date: Fri, 1 Sep 2023 18:35:56 -0400 Subject: [PATCH] Added rdf-util --- package-lock.json | 621 ++++++++---------- package.json | 3 +- .../dataset/example/extendedDatasetExample.ts | 4 +- packages/dataset/example/loadDataExample.ts | 15 +- .../example/subscribableDatasetExample.ts | 187 ------ packages/dataset/package.json | 1 - packages/dataset/src/ExtendedDataset.ts | 23 +- .../dataset/src/ExtendedDatasetFactory.ts | 2 +- .../src/createDatasetFromSerializedInput.ts | 43 +- packages/dataset/src/createExtendedDataset.ts | 4 +- ...reateExtendedDatasetFromSerializedInput.ts | 3 +- .../test/createExtendedDataset.test.ts | 2 +- packages/dataset/test/dataset.testHelper.ts | 15 +- packages/jsonld-dataset-proxy/package.json | 3 +- .../src/JsonldDatasetProxyBuilder.ts | 13 +- .../jsonld-dataset-proxy/src/ProxyContext.ts | 13 +- .../src/arrayProxy/ArrayProxy.ts | 5 +- .../src/arrayProxy/createArrayHandler.ts | 20 +- .../src/arrayProxy/modifyArray.ts | 7 +- packages/jsonld-dataset-proxy/src/graphOf.ts | 11 +- .../src/jsonldDatasetProxy.ts | 4 +- .../src/language/languageMapProxy.ts | 8 +- .../src/language/languageSet.ts | 18 +- .../src/language/languageUtils.ts | 19 +- .../src/language/languagesOf.ts | 2 +- .../src/subjectProxy/SubjectProxy.ts | 5 +- .../src/subjectProxy/createSubjectHandler.ts | 4 +- .../src/subjectProxy/deleteFromDataset.ts | 4 +- .../src/subjectProxy/getValueForKey.ts | 2 +- packages/jsonld-dataset-proxy/src/types.ts | 2 - .../jsonld-dataset-proxy/src/util/NodeSet.ts | 17 +- .../src/util/RawObject.ts | 2 +- .../src/util/addObjectToDataset.ts | 4 +- .../src/util/getNodeFromRaw.ts | 4 +- .../src/util/nodeToJsonldRepresentation.ts | 2 +- .../test/jsonldDatasetProxy.test.ts | 4 +- .../test/nodeToJsonRepresentation.test.ts | 2 +- .../test/nodeToString.test.ts | 2 +- packages/ldo/README.md | 3 +- packages/ldo/package.json | 4 +- packages/ldo/src/LdoDataset.ts | 2 +- packages/ldo/src/LdoDatasetFactory.ts | 2 +- packages/ldo/src/createLdoDataset.ts | 2 +- packages/ldo/src/datasetConverters.ts | 52 -- packages/ldo/src/methods.ts | 31 +- packages/ldo/src/parseRdf.ts | 4 +- packages/ldo/src/util.ts | 32 +- packages/ldo/test/LdoDataset.test.ts | 2 +- packages/ldo/test/methods.test.ts | 2 +- packages/rdf-utils/package.json | 2 +- packages/rdf-utils/src/datasetConverters.ts | 33 +- packages/rdf-utils/src/index.ts | 1 + packages/rdf-utils/src/serializedToQuad.ts | 0 packages/rdf-utils/src/serializedToQuads.ts | 43 ++ packages/solid-react/package.json | 1 - packages/solid-react/src/LdoProvider.tsx | 6 +- .../ldoHooks/helpers/TrackingProxyContext.ts | 8 +- .../src/ldoHooks/helpers/UpdateManager.ts | 66 +- .../solid-react/src/ldoHooks/useSubject.ts | 6 +- packages/solid-react/src/useLdo.ts | 5 +- packages/solid/package.json | 5 +- packages/solid/src/SolidLdoDataset.ts | 4 +- packages/solid/src/createSolidLdoDataset.ts | 32 +- .../resource/dataResource/DataResource.ts | 10 +- .../solid/src/util/splitChangesByGraph.ts | 18 +- .../example/extendedDatasetExample.ts | 65 -- .../example/loadDataExample.ts | 45 -- .../example/subscribableDatasetExample.ts | 5 +- packages/subscribable-dataset/package.json | 15 +- .../src/ProxyTransactionalDataset.ts | 10 +- .../src/WrapperSubscribableDataset.ts | 6 +- .../src/WrapperSubscribableDatasetFactory.ts | 2 +- .../src/createWrapperSubscribableDataset.ts | 2 +- ...rSubscribableDatasetFromSerializedInput.ts | 3 +- packages/subscribable-dataset/src/types.ts | 43 +- .../test/ProxyTransactionalDataset.test.ts | 4 +- .../test/WrapperSubscribableDataset.test.ts | 4 +- 77 files changed, 635 insertions(+), 1045 deletions(-) delete mode 100644 packages/dataset/example/subscribableDatasetExample.ts delete mode 100644 packages/ldo/src/datasetConverters.ts delete mode 100644 packages/rdf-utils/src/serializedToQuad.ts create mode 100644 packages/rdf-utils/src/serializedToQuads.ts delete mode 100644 packages/subscribable-dataset/example/extendedDatasetExample.ts delete mode 100644 packages/subscribable-dataset/example/loadDataExample.ts diff --git a/package-lock.json b/package-lock.json index 49e4cf7..d51fc1c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "packages": { "": { "name": "root", - "hasInstallScript": true, "workspaces": [ "packages/*" ], @@ -678,6 +677,7 @@ "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -696,6 +696,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -745,6 +746,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", @@ -761,6 +763,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -776,6 +779,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -791,6 +795,7 @@ "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", "peer": true, "dependencies": { "@babel/compat-data": "^7.20.5", @@ -810,6 +815,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", @@ -826,6 +832,7 @@ "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", @@ -842,6 +849,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -857,6 +865,7 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", "engines": { "node": ">=6.9.0" }, @@ -8669,6 +8678,20 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/arg": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", @@ -9540,6 +9563,19 @@ "ieee754": "^1.1.13" } }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -10661,6 +10697,20 @@ "typedarray": "^0.0.6" } }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", @@ -12332,9 +12382,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.506", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.506.tgz", - "integrity": "sha512-xxGct4GPAKSRlrLBtJxJFYy74W11zX6PO9GyHgl/U+2s3Dp0ZEwAklDfNHXOWcvH7zWMpsmgbR0ggEuaYAVvHA==" + "version": "1.4.508", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz", + "integrity": "sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==" }, "node_modules/emitter-component": { "version": "1.1.1", @@ -14841,9 +14891,9 @@ } }, "node_modules/fraction.js": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.4.tgz", - "integrity": "sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz", + "integrity": "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==", "engines": { "node": "*" }, @@ -18246,21 +18296,6 @@ "readable-stream": "^4.0.0" } }, - "node_modules/jsonld-streaming-parser/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/jsonld/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -21257,21 +21292,6 @@ "node": ">=12.0" } }, - "node_modules/n3/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -22207,14 +22227,14 @@ } }, "node_modules/object.getownpropertydescriptors": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", - "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", + "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", "dependencies": { - "array.prototype.reduce": "^1.0.5", + "array.prototype.reduce": "^1.0.6", "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "es-abstract": "^1.21.2", + "es-abstract": "^1.22.1", "safe-array-concat": "^1.0.0" }, "engines": { @@ -25705,16 +25725,18 @@ } }, "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/readdirp": { @@ -26611,9 +26633,9 @@ } }, "node_modules/shex-test": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/shex-test/-/shex-test-2.1.0.tgz", - "integrity": "sha512-Z2FO3qFgTTKwn03WbQfe2yHGDm6QaFDmbuKdrqRyqlYvGDsHqYrX4SP5I6XhI8vAJffOnQoj4WSorv5Yp9CT0g==", + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/shex-test/-/shex-test-0.5.8.tgz", + "integrity": "sha512-wfrhu/lb2zrr4MANpoGbqLbPaoL0yOoDTJp6n/Ewtk2iEeVQD8RLYXVCMLYdmo6ccue/I/yubcIqv4p2uarCbg==", "dev": true, "dependencies": { "n3": "^0.4.5", @@ -26632,14 +26654,6 @@ "node": ">=0.10.0" } }, - "node_modules/shexj-traverser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/shexj-traverser/-/shexj-traverser-2.0.1.tgz", - "integrity": "sha512-frI9XjL2m1i+eeOhGdtKCCI7XTLt0sQClxUAR6bLk7Mp8kqyPEap0wJekfQ4bBOwhneeJKukfVO7Wne8JlM9xA==", - "dependencies": { - "type-traverser": "^0.0.3" - } - }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -26976,6 +26990,19 @@ "wbuf": "^1.7.3" } }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -26996,6 +27023,20 @@ "readable-stream": "^3.0.0" } }, + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -27895,6 +27936,20 @@ "node": ">=6" } }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -28598,22 +28653,6 @@ "node": ">= 0.6" } }, - "node_modules/type-traverser": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/type-traverser/-/type-traverser-0.0.3.tgz", - "integrity": "sha512-FmL42Qyk0RpmhglbP3h/1UtplhANMcP1IiI1HvKysHfPgMN2Y3rqdHJypF7akHA7y/GdGnKFTE7CfICYd7iavg==", - "dependencies": { - "uuid": "^8.3.2" - } - }, - "node_modules/type-traverser/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/typed-array-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", @@ -30502,17 +30541,14 @@ "version": "0.0.0", "license": "MIT", "dependencies": { - "@rdfjs/data-model": "^1.2.0", + "@ldo/rdf-utils": "^0.0.0", "@rdfjs/dataset": "^1.1.0", "buffer": "^6.0.3", - "n3": "^1.10.0", "readable-stream": "^4.2.0" }, "devDependencies": { - "@rdfjs/types": "^1.0.1", "@types/jest": "^27.0.3", "@types/jsonld": "^1.5.6", - "@types/n3": "^1.10.4", "@types/rdfjs__dataset": "^1.0.4", "@types/readable-stream": "^2.3.13", "jest": "^27.4.5", @@ -30520,21 +30556,6 @@ "ts-node": "^9.1.1" } }, - "packages/dataset/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "packages/dataset/node_modules/ts-jest": { "version": "27.1.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", @@ -30930,28 +30951,6 @@ "tsc-watch": "^6.0.0" } }, - "packages/jsonld-dataset-proxy/node_modules/n3": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/n3/-/n3-0.4.5.tgz", - "integrity": "sha512-sv4bFeqVTTj9hT/OAdndpHpECxlkmpHxdnHUkhNgx3P3Tnw2WqpTUzMEeY+ELEoeW1q6Xqq9LNO0lu/zqogIZA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "packages/jsonld-dataset-proxy/node_modules/shex-test": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/shex-test/-/shex-test-0.5.8.tgz", - "integrity": "sha512-wfrhu/lb2zrr4MANpoGbqLbPaoL0yOoDTJp6n/Ewtk2iEeVQD8RLYXVCMLYdmo6ccue/I/yubcIqv4p2uarCbg==", - "dev": true, - "dependencies": { - "n3": "^0.4.5", - "xlsx": "^0.8.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "packages/jsonld-dataset-proxy/node_modules/ts-jest": { "version": "27.1.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", @@ -31035,21 +31034,6 @@ "ts-node": "^10.4.0" } }, - "packages/ldo/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "packages/ldo/node_modules/ts-jest": { "version": "27.1.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", @@ -31113,11 +31097,11 @@ "license": "MIT", "dependencies": { "@rdfjs/data-model": "^2.0.1", + "@rdfjs/types": "^1.1.0", "n3": "^1.17.1", "rdf-string": "^1.6.3" }, "devDependencies": { - "@rdfjs/types": "^1.1.0", "@types/jsonld": "^1.5.9" } }, @@ -31134,9 +31118,9 @@ "version": "0.0.0", "license": "MIT", "dependencies": { + "@ldo/traverser-shexj": "^0.0.0", "dts-dom": "^3.6.0", - "jsonld2graphobject": "^0.0.5", - "shexj-traverser": "^2.0.1" + "jsonld2graphobject": "^0.0.5" }, "devDependencies": { "@shexjs/parser": "^1.0.0-alpha.24", @@ -31160,6 +31144,28 @@ "uuid": "^8.3.2" } }, + "packages/schema-converter-shex/node_modules/n3": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/n3/-/n3-0.4.5.tgz", + "integrity": "sha512-sv4bFeqVTTj9hT/OAdndpHpECxlkmpHxdnHUkhNgx3P3Tnw2WqpTUzMEeY+ELEoeW1q6Xqq9LNO0lu/zqogIZA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "packages/schema-converter-shex/node_modules/shex-test": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/shex-test/-/shex-test-2.1.0.tgz", + "integrity": "sha512-Z2FO3qFgTTKwn03WbQfe2yHGDm6QaFDmbuKdrqRyqlYvGDsHqYrX4SP5I6XhI8vAJffOnQoj4WSorv5Yp9CT0g==", + "dev": true, + "dependencies": { + "n3": "^0.4.5", + "xlsx": "^0.8.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "packages/schema-converter-shex/node_modules/ts-jest": { "version": "27.1.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", @@ -32684,6 +32690,13 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "packages/solid/node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "peer": true + }, "packages/solid/node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", @@ -32835,13 +32848,6 @@ "node": ">=12" } }, - "packages/solid/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "peer": true - }, "packages/solid/node_modules/dedent": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", @@ -33553,13 +33559,6 @@ "node": ">=10.12.0" } }, - "packages/solid/node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true, - "peer": true - }, "packages/solid/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -33660,21 +33659,6 @@ "ts-node": "^9.1.1" } }, - "packages/subscribable-dataset/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "packages/subscribable-dataset/node_modules/ts-jest": { "version": "27.1.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", @@ -33996,6 +33980,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "packages/traverser-shexj/node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "packages/traverser-shexj/node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", @@ -34140,12 +34130,6 @@ "node": ">=12" } }, - "packages/traverser-shexj/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, "packages/traverser-shexj/node_modules/dedent": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", @@ -34829,12 +34813,6 @@ "node": ">=10.12.0" } }, - "packages/traverser-shexj/node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, "packages/traverser-shexj/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -38819,34 +38797,19 @@ "@ldo/dataset": { "version": "file:packages/dataset", "requires": { - "@rdfjs/data-model": "^1.2.0", + "@ldo/rdf-utils": "^0.0.0", "@rdfjs/dataset": "^1.1.0", - "@rdfjs/types": "^1.0.1", "@types/jest": "^27.0.3", "@types/jsonld": "^1.5.6", - "@types/n3": "^1.10.4", "@types/rdfjs__dataset": "^1.0.4", "@types/readable-stream": "^2.3.13", "buffer": "^6.0.3", "jest": "^27.4.5", - "n3": "^1.10.0", "readable-stream": "^4.2.0", "ts-jest": "^27.1.2", "ts-node": "^9.1.1" }, "dependencies": { - "readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - } - }, "ts-jest": { "version": "27.1.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", @@ -39090,22 +39053,6 @@ "tsc-watch": "^6.0.0" }, "dependencies": { - "n3": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/n3/-/n3-0.4.5.tgz", - "integrity": "sha512-sv4bFeqVTTj9hT/OAdndpHpECxlkmpHxdnHUkhNgx3P3Tnw2WqpTUzMEeY+ELEoeW1q6Xqq9LNO0lu/zqogIZA==", - "dev": true - }, - "shex-test": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/shex-test/-/shex-test-0.5.8.tgz", - "integrity": "sha512-wfrhu/lb2zrr4MANpoGbqLbPaoL0yOoDTJp6n/Ewtk2iEeVQD8RLYXVCMLYdmo6ccue/I/yubcIqv4p2uarCbg==", - "dev": true, - "requires": { - "n3": "^0.4.5", - "xlsx": "^0.8.0" - } - }, "ts-jest": { "version": "27.1.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", @@ -39153,18 +39100,6 @@ "ts-node": "^10.4.0" }, "dependencies": { - "readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - } - }, "ts-jest": { "version": "27.1.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", @@ -39195,7 +39130,7 @@ "requires": { "@rdfjs/data-model": "^2.0.1", "@rdfjs/types": "^1.1.0", - "@types/jsonld": "*", + "@types/jsonld": "^1.5.9", "n3": "^1.17.1", "rdf-string": "^1.6.3" }, @@ -39210,6 +39145,7 @@ "@ldo/schema-converter-shex": { "version": "file:packages/schema-converter-shex", "requires": { + "@ldo/traverser-shexj": "^0.0.0", "@shexjs/parser": "^1.0.0-alpha.24", "@types/jest": "^27.0.3", "@types/jsonld": "^1.5.6", @@ -39219,7 +39155,6 @@ "jsonld": "^5.2.0", "jsonld2graphobject": "^0.0.5", "shex-test": "^2.1.0", - "shexj-traverser": "^2.0.1", "ts-jest": "^27.1.2" }, "dependencies": { @@ -39234,6 +39169,22 @@ "uuid": "^8.3.2" } }, + "n3": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/n3/-/n3-0.4.5.tgz", + "integrity": "sha512-sv4bFeqVTTj9hT/OAdndpHpECxlkmpHxdnHUkhNgx3P3Tnw2WqpTUzMEeY+ELEoeW1q6Xqq9LNO0lu/zqogIZA==", + "dev": true + }, + "shex-test": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/shex-test/-/shex-test-2.1.0.tgz", + "integrity": "sha512-Z2FO3qFgTTKwn03WbQfe2yHGDm6QaFDmbuKdrqRyqlYvGDsHqYrX4SP5I6XhI8vAJffOnQoj4WSorv5Yp9CT0g==", + "dev": true, + "requires": { + "n3": "^0.4.5", + "xlsx": "^0.8.0" + } + }, "ts-jest": { "version": "27.1.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", @@ -39465,6 +39416,15 @@ "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" + }, + "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "peer": true + } } }, "@jest/types": { @@ -39585,13 +39545,6 @@ "wrap-ansi": "^7.0.0" } }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "peer": true - }, "dedent": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", @@ -40126,15 +40079,6 @@ "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0" - }, - "dependencies": { - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true, - "peer": true - } } }, "wrap-ansi": { @@ -41149,18 +41093,6 @@ "ts-node": "^9.1.1" }, "dependencies": { - "readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - } - }, "ts-jest": { "version": "27.1.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", @@ -41386,6 +41318,14 @@ "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" + }, + "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + } } }, "@jest/types": { @@ -41499,12 +41439,6 @@ "wrap-ansi": "^7.0.0" } }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, "dedent": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", @@ -42011,14 +41945,6 @@ "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0" - }, - "dependencies": { - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - } } }, "wrap-ansi": { @@ -44818,6 +44744,19 @@ "requires": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "arg": { @@ -45478,6 +45417,16 @@ "base64-js": "^1.3.1", "ieee754": "^1.1.13" } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } } } }, @@ -46329,6 +46278,19 @@ "inherits": "^2.0.3", "readable-stream": "^3.0.2", "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "confusing-browser-globals": { @@ -47518,9 +47480,9 @@ } }, "electron-to-chromium": { - "version": "1.4.506", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.506.tgz", - "integrity": "sha512-xxGct4GPAKSRlrLBtJxJFYy74W11zX6PO9GyHgl/U+2s3Dp0ZEwAklDfNHXOWcvH7zWMpsmgbR0ggEuaYAVvHA==" + "version": "1.4.508", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz", + "integrity": "sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==" }, "emitter-component": { "version": "1.1.1", @@ -49350,9 +49312,9 @@ "dev": true }, "fraction.js": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.4.tgz", - "integrity": "sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==" + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz", + "integrity": "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==" }, "freeport-async": { "version": "2.0.0", @@ -51908,20 +51870,6 @@ "jsonld-context-parser": "^2.3.0", "rdf-data-factory": "^1.1.0", "readable-stream": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - } - } } }, "jsonld2graphobject": { @@ -54215,20 +54163,6 @@ "requires": { "queue-microtask": "^1.1.2", "readable-stream": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - } - } } }, "nanoid": { @@ -54958,14 +54892,14 @@ } }, "object.getownpropertydescriptors": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", - "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", + "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", "requires": { - "array.prototype.reduce": "^1.0.5", + "array.prototype.reduce": "^1.0.6", "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "es-abstract": "^1.21.2", + "es-abstract": "^1.22.1", "safe-array-concat": "^1.0.0" } }, @@ -57416,13 +57350,15 @@ } }, "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" } }, "readdirp": { @@ -58092,9 +58028,9 @@ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==" }, "shex-test": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/shex-test/-/shex-test-2.1.0.tgz", - "integrity": "sha512-Z2FO3qFgTTKwn03WbQfe2yHGDm6QaFDmbuKdrqRyqlYvGDsHqYrX4SP5I6XhI8vAJffOnQoj4WSorv5Yp9CT0g==", + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/shex-test/-/shex-test-0.5.8.tgz", + "integrity": "sha512-wfrhu/lb2zrr4MANpoGbqLbPaoL0yOoDTJp6n/Ewtk2iEeVQD8RLYXVCMLYdmo6ccue/I/yubcIqv4p2uarCbg==", "dev": true, "requires": { "n3": "^0.4.5", @@ -58109,14 +58045,6 @@ } } }, - "shexj-traverser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/shexj-traverser/-/shexj-traverser-2.0.1.tgz", - "integrity": "sha512-frI9XjL2m1i+eeOhGdtKCCI7XTLt0sQClxUAR6bLk7Mp8kqyPEap0wJekfQ4bBOwhneeJKukfVO7Wne8JlM9xA==", - "requires": { - "type-traverser": "^0.0.3" - } - }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -58395,6 +58323,18 @@ "obuf": "^1.1.2", "readable-stream": "^3.0.6", "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "split": { @@ -58412,6 +58352,19 @@ "dev": true, "requires": { "readable-stream": "^3.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "sprintf-js": { @@ -59119,6 +59072,19 @@ "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "temp": { @@ -59630,21 +59596,6 @@ "mime-types": "~2.1.24" } }, - "type-traverser": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/type-traverser/-/type-traverser-0.0.3.tgz", - "integrity": "sha512-FmL42Qyk0RpmhglbP3h/1UtplhANMcP1IiI1HvKysHfPgMN2Y3rqdHJypF7akHA7y/GdGnKFTE7CfICYd7iavg==", - "requires": { - "uuid": "^8.3.2" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - } - } - }, "typed-array-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", diff --git a/package.json b/package.json index 752efaa..d1bafc0 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,7 @@ "test": "lerna run test", "build": "lerna run build", "demo-react": "lerna run start --scope @ldo/demo-react", - "lint": "lerna run lint", - "postinstall": "npm run build" + "lint": "lerna run lint" }, "devDependencies": { "@types/node": "^20.5.7", diff --git a/packages/dataset/example/extendedDatasetExample.ts b/packages/dataset/example/extendedDatasetExample.ts index b696017..cd28a9d 100644 --- a/packages/dataset/example/extendedDatasetExample.ts +++ b/packages/dataset/example/extendedDatasetExample.ts @@ -1,14 +1,14 @@ import { createDataset } from "../src"; -import { quad, namedNode, literal } from "@rdfjs/data-model"; // Required for advanced features: import { dataset as initializeDatasetCore } from "@rdfjs/dataset"; import { ExtendedDatasetFactory } from "../src"; +import { quad, namedNode, literal } from "@ldo/rdf-utils"; import type { Dataset, Quad, DatasetCoreFactory, DatasetCore, -} from "@rdfjs/types"; +} from "@ldo/rdf-utils"; /** * Create a dataset with default settings diff --git a/packages/dataset/example/loadDataExample.ts b/packages/dataset/example/loadDataExample.ts index 62fe024..a3fccf0 100644 --- a/packages/dataset/example/loadDataExample.ts +++ b/packages/dataset/example/loadDataExample.ts @@ -1,4 +1,4 @@ -import { serializedToDataset, serializedToSubscribableDataset } from "../src"; +import { serializedToDataset } from "../src"; async function run(): Promise { // Create an ExtendedDataset using Turtle @@ -31,14 +31,11 @@ async function run(): Promise { "@id": "https://jackson.solidcommunity.net/profile/card#me", }, ]; - const jsonLdDataset = await serializedToSubscribableDataset( - JSON.stringify(jsonLdData), - { - baseIRI: - "https://jackson.solidcommunity.net/IndividualChats/jackson.solidcommunity.net/index.ttl#", - format: "application/json-ld", - }, - ); + const jsonLdDataset = await serializedToDataset(JSON.stringify(jsonLdData), { + baseIRI: + "https://jackson.solidcommunity.net/IndividualChats/jackson.solidcommunity.net/index.ttl#", + format: "application/json-ld", + }); // Returns true because the input data describes the same triple. console.log(turtleDataset.equals(jsonLdDataset)); } diff --git a/packages/dataset/example/subscribableDatasetExample.ts b/packages/dataset/example/subscribableDatasetExample.ts deleted file mode 100644 index f2a35f9..0000000 --- a/packages/dataset/example/subscribableDatasetExample.ts +++ /dev/null @@ -1,187 +0,0 @@ -import type { DatasetChanges } from "../src"; -import { createSubscribableDataset } from "../src"; -import { quad, namedNode, literal } from "@rdfjs/data-model"; -import type { Dataset } from "@rdfjs/types"; - -// Create an empty subscribable dataset -const subscribableDataset = createSubscribableDataset(); -// Add some initial quads -subscribableDataset.addAll([ - quad( - namedNode("http://example.org/cartoons#Zuko"), - namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#type"), - namedNode("http://example.org/cartoons#Firebender"), - namedNode("http://example.org/cartoons"), - ), - quad( - namedNode("http://example.org/cartoons#Zuko"), - namedNode("http://example.org/cartoons#name"), - literal("Zuko"), - namedNode("http://example.org/cartoons"), - ), -]); -// Set up listeners -// Listener that will trigger whenever a quad containing the named -// node "http://example.org/cartoons#Zuko" is added or removed. -subscribableDataset.on( - namedNode("http://example.org/cartoons#Zuko"), - (zukoQuads: Dataset, changes: DatasetChanges) => { - console.log("ZUKO NODE CHANGED ============"); - console.log(zukoQuads.toString()); - console.log("Added Quads:"); - console.log(changes.added?.toString()); - console.log("Removed Quads:"); - console.log(changes.removed?.toString()); - console.log("\n\n"); - }, -); -// Listener that will trigger whenever a quad containing the named -// node "http://example.org/cartoons" is added or removed. This is -// useful for keeping track of the cartoons graph. -subscribableDataset.on( - namedNode("http://example.org/cartoons"), - (cartoonGraphQuads: Dataset, changes: DatasetChanges) => { - console.log("CARTOON GRAPH CHANGED ============"); - console.log(cartoonGraphQuads.toString()); - console.log("Added Quads:"); - console.log(changes.added?.toString()); - console.log("Removed Quads:"); - console.log(changes.removed?.toString()); - console.log("\n\n"); - }, -); - -// Modify the dataset -/* -Prints: -CARTOON GRAPH CHANGED ============ - . - "Zuko" . - . - "Katara" . - -Added Quads: - . - "Katara" . - -Removed Quads: -undefined - */ -subscribableDataset.addAll([ - quad( - namedNode("http://example.org/cartoons#Katara"), - namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#type"), - namedNode("http://example.org/cartoons#Waterbender"), - namedNode("http://example.org/cartoons"), - ), - quad( - namedNode("http://example.org/cartoons#Katara"), - namedNode("http://example.org/cartoons#name"), - literal("Katara"), - namedNode("http://example.org/cartoons"), - ), -]); - -/* -Prints: -ZUKO NODE CHANGED ============ - . - "Zuko" . - . - . - -Added Quads: - . - . - -Removed Quads: -undefined - -CARTOON GRAPH CHANGED ============ - . - "Zuko" . - . - . - "Katara" . - . - -Added Quads: - . - . - -Removed Quads: -undefined -*/ -subscribableDataset.addAll([ - quad( - namedNode("http://example.org/cartoons#Katara"), - namedNode("http://example.org/cartoons#hasEnemy"), - namedNode("http://example.org/cartoons#Zuko"), - namedNode("http://example.org/cartoons"), - ), - quad( - namedNode("http://example.org/cartoons#Zuko"), - namedNode("http://example.org/cartoons#hasEnemy"), - namedNode("http://example.org/cartoons#Katara"), - namedNode("http://example.org/cartoons"), - ), -]); - -// If there are many operation you want to do at once, use transactions. -// An update will not be triggered until the transaction is committed. -const transactionalDataset = subscribableDataset.startTransaction(); -// Delete all triples with a "hasEnemy" predicate -transactionalDataset.deleteMatches( - undefined, - namedNode("http://example.org/cartoons#hasEnemy"), - undefined, - undefined, -); -// Add "hasFrient" predicate -transactionalDataset.addAll([ - quad( - namedNode("http://example.org/cartoons#Katara"), - namedNode("http://example.org/cartoons#hasFriend"), - namedNode("http://example.org/cartoons#Zuko"), - namedNode("http://example.org/cartoons"), - ), - quad( - namedNode("http://example.org/cartoons#Zuko"), - namedNode("http://example.org/cartoons#hasFriend"), - namedNode("http://example.org/cartoons#Katara"), - namedNode("http://example.org/cartoons"), - ), -]); -/* -Prints: -ZUKO NODE CHANGED ============ - . - "Zuko" . - . - . - -Added Quads: - . - . - -Removed Quads: - . - . - -CARTOON GRAPH CHANGED ============ - . - "Zuko" . - . - . - "Katara" . - . - -Added Quads: - . - . - -Removed Quads: - . - . -*/ -transactionalDataset.commit(); diff --git a/packages/dataset/package.json b/packages/dataset/package.json index 1b9fb45..1062276 100644 --- a/packages/dataset/package.json +++ b/packages/dataset/package.json @@ -8,7 +8,6 @@ "watch": "tsc --watch", "test": "jest --coverage", "example:extendedDataset": "ts-node ./example/extendedDatasetExample.ts", - "example:subscribableDataset": "ts-node ./example/subscribableDatasetExample.ts", "example:loadData": "ts-node ./example/loadDataExample.ts", "prepublishOnly": "npm run test && npm run build", "lint": "eslint src/** --fix --no-error-on-unmatched-pattern" diff --git a/packages/dataset/src/ExtendedDataset.ts b/packages/dataset/src/ExtendedDataset.ts index fdc14be..b0b413b 100644 --- a/packages/dataset/src/ExtendedDataset.ts +++ b/packages/dataset/src/ExtendedDataset.ts @@ -1,13 +1,13 @@ -import type { - DatasetCore, - Dataset, - BaseQuad, - Stream, - Term, - DatasetCoreFactory, - Quad, -} from "@rdfjs/types"; -import { Writer } from "n3"; +import { + type DatasetCore, + type Dataset, + type BaseQuad, + type Stream, + type Term, + type DatasetCoreFactory, + type Quad, + datasetToString, +} from "@ldo/rdf-utils"; import { Readable } from "readable-stream"; /** @@ -309,8 +309,7 @@ export default class ExtendedDataset * No prior normalization is required, therefore the results for the same quads may vary depending on the Dataset implementation. */ toString(): string { - const writer = new Writer({ format: "N-Triples" }); - return writer.quadsToString(this.toArray() as Quad[]); + return datasetToString(this as Dataset, { format: "N-Triples" }); } /** diff --git a/packages/dataset/src/ExtendedDatasetFactory.ts b/packages/dataset/src/ExtendedDatasetFactory.ts index 7b0bd66..e7c8526 100644 --- a/packages/dataset/src/ExtendedDatasetFactory.ts +++ b/packages/dataset/src/ExtendedDatasetFactory.ts @@ -3,7 +3,7 @@ import type { BaseQuad, Dataset, DatasetCoreFactory, -} from "@rdfjs/types"; +} from "@ldo/rdf-utils"; import ExtendedDataset from "./ExtendedDataset"; /** diff --git a/packages/dataset/src/createDatasetFromSerializedInput.ts b/packages/dataset/src/createDatasetFromSerializedInput.ts index 5ecdc78..dc547c1 100644 --- a/packages/dataset/src/createDatasetFromSerializedInput.ts +++ b/packages/dataset/src/createDatasetFromSerializedInput.ts @@ -1,11 +1,9 @@ -import type { Dataset, DatasetFactory, Quad } from "@rdfjs/types"; -import type { ParserOptions } from "n3"; -import { Parser } from "n3"; -// import { Readable } from "readable-stream"; -// import ParserJsonld from "@rdfjs/parser-jsonld"; +import type { Dataset, DatasetFactory, Quad } from "@ldo/rdf-utils"; +import type { ParserOptions } from "@ldo/rdf-utils"; +import { serializedToQuads } from "@ldo/rdf-utils"; /** - * Creates a dataset with a string input that could be SON-LD, Turtle, N-Triples, TriG, RDF*, or N3. + * Creates a dataset with a string input that could be JON-LD, Turtle, N-Triples, TriG, RDF*, or N3. * @param datasetFactory A datasetFactory that will initialize a returned dataset.\ * @param data A string representation of RDF Data in JSON-LD, Turtle, N-Triples, TriG, RDF*, or N3. * @param options Parser options: { @@ -23,37 +21,6 @@ export default async function createDatasetFromSerializedInput< data: string, options?: ParserOptions, ): Promise { - // JSON-LD Parsing - if (options && options.format === "application/json-ld") { - throw new Error("Not Implemented"); - // return new Promise((resolve, reject) => { - // JSON.parse(data); - // const parserJsonld = new ParserJsonld(); - - // const input = new Readable({ - // read: () => { - // input.push(data); - // input.push(null); - // }, - // }); - - // const output = parserJsonld.import(input); - // const quads: Quad[] = []; - // output.on("data", (quad) => { - // quads.push(quad); - // }); - // output.on("end", () => { - // resolve((datasetFactory.dataset(quads) as unknown) as ReturnDataset); - // }); - // /* istanbul ignore next */ - // output.on("error", (err) => { - // /* istanbul ignore next */ - // reject(err); - // }); - // }); - } - // N3 Parsing - const parser = new Parser(options as ParserOptions); - const quads = parser.parse(data); + const quads = await serializedToQuads(data, options); return datasetFactory.dataset(quads) as unknown as ReturnDataset; } diff --git a/packages/dataset/src/createExtendedDataset.ts b/packages/dataset/src/createExtendedDataset.ts index 58c02be..636a459 100644 --- a/packages/dataset/src/createExtendedDataset.ts +++ b/packages/dataset/src/createExtendedDataset.ts @@ -3,10 +3,10 @@ import type { DatasetCoreFactory, DatasetCore, Quad, -} from "@rdfjs/types"; +} from "@ldo/rdf-utils"; import ExtendedDatasetFactory from "./ExtendedDatasetFactory"; import { dataset as initializeDatasetCore } from "@rdfjs/dataset"; -import type { ExtendedDataset } from "."; +import type ExtendedDataset from "./ExtendedDataset"; /** * Creates a dataset factory that generates ExtendedDatasets diff --git a/packages/dataset/src/createExtendedDatasetFromSerializedInput.ts b/packages/dataset/src/createExtendedDatasetFromSerializedInput.ts index 71f71ca..212b877 100644 --- a/packages/dataset/src/createExtendedDatasetFromSerializedInput.ts +++ b/packages/dataset/src/createExtendedDatasetFromSerializedInput.ts @@ -1,5 +1,4 @@ -import type { ParserOptions } from "n3"; -import type { Quad } from "@rdfjs/types"; +import type { ParserOptions, Quad } from "@ldo/rdf-utils"; import createDatasetFromSerializedInput from "./createDatasetFromSerializedInput"; import { createExtendedDatasetFactory } from "./createExtendedDataset"; import type ExtendedDataset from "./ExtendedDataset"; diff --git a/packages/dataset/test/createExtendedDataset.test.ts b/packages/dataset/test/createExtendedDataset.test.ts index 63994dd..a3db8bc 100644 --- a/packages/dataset/test/createExtendedDataset.test.ts +++ b/packages/dataset/test/createExtendedDataset.test.ts @@ -1,5 +1,5 @@ import { createDataset } from "../src"; -import { quad, namedNode } from "@rdfjs/data-model"; +import { quad, namedNode } from "@ldo/rdf-utils"; describe("createExtendedDataset", () => { it("creates a dataset when give another datset", () => { diff --git a/packages/dataset/test/dataset.testHelper.ts b/packages/dataset/test/dataset.testHelper.ts index 4d92159..957340d 100644 --- a/packages/dataset/test/dataset.testHelper.ts +++ b/packages/dataset/test/dataset.testHelper.ts @@ -1,12 +1,13 @@ -import { namedNode, literal, quad } from "@rdfjs/data-model"; -import type { Quad_Object, Quad_Predicate } from "n3"; +import { namedNode, literal, quad } from "@ldo/rdf-utils"; import type { + SubjectNode, + ObjectNode, + PredicateNode, BaseQuad, Dataset, - Quad_Subject, DatasetFactory, Quad, -} from "@rdfjs/types"; +} from "@ldo/rdf-utils"; import { Readable } from "stream"; export default function testDataset( @@ -476,9 +477,9 @@ export default function testDataset( initializeDataset(); const mappedDataset = dataset.map((curQuad) => { return quad( - curQuad.predicate as Quad_Subject, - curQuad.predicate as Quad_Predicate, - curQuad.predicate as Quad_Object, + curQuad.predicate as SubjectNode, + curQuad.predicate as PredicateNode, + curQuad.predicate as ObjectNode, ); }); expect(mappedDataset.size).toBe(2); diff --git a/packages/jsonld-dataset-proxy/package.json b/packages/jsonld-dataset-proxy/package.json index 6099331..0246444 100644 --- a/packages/jsonld-dataset-proxy/package.json +++ b/packages/jsonld-dataset-proxy/package.json @@ -23,7 +23,6 @@ }, "homepage": "https://github.com/o-development/jsonld-dataset-proxy#readme", "devDependencies": { - "@rdfjs/types": "^1.0.1", "@types/jest": "^27.0.3", "@types/jsonld": "^1.5.6", "@types/n3": "^1.10.4", @@ -40,8 +39,8 @@ ], "dependencies": { "@ldo/dataset": "^0.0.0", + "@ldo/rdf-utils": "^0.0.0", "@ldo/subscribable-dataset": "^0.0.0", - "@rdfjs/data-model": "^1.2.0", "jsonld2graphobject": "^0.0.4" } } diff --git a/packages/jsonld-dataset-proxy/src/JsonldDatasetProxyBuilder.ts b/packages/jsonld-dataset-proxy/src/JsonldDatasetProxyBuilder.ts index 5c29f75..f8fe8c9 100644 --- a/packages/jsonld-dataset-proxy/src/JsonldDatasetProxyBuilder.ts +++ b/packages/jsonld-dataset-proxy/src/JsonldDatasetProxyBuilder.ts @@ -1,8 +1,13 @@ -import { blankNode, namedNode } from "@rdfjs/data-model"; -import type { BlankNode, NamedNode } from "@rdfjs/types"; +import { blankNode, namedNode } from "@ldo/rdf-utils"; +import type { + BlankNode, + NamedNode, + GraphNode, + QuadMatch, +} from "@ldo/rdf-utils"; import type { LanguageOrdering } from "./language/languageTypes"; import type { ProxyContext } from "./ProxyContext"; -import type { GraphType, ObjectLike, QuadMatch } from "./types"; +import type { ObjectLike } from "./types"; /** * Helps build JSON LD Dataset Proxies for a specific dataset and context @@ -18,7 +23,7 @@ export class JsonldDatasetProxyBuilder { * Designates that all Jsonld Dataset Proxies created should write to the * specified graphs */ - write(...graphs: GraphType[]): JsonldDatasetProxyBuilder { + write(...graphs: GraphNode[]): JsonldDatasetProxyBuilder { return new JsonldDatasetProxyBuilder( this.proxyContext.duplicate({ writeGraphs: graphs }), ); diff --git a/packages/jsonld-dataset-proxy/src/ProxyContext.ts b/packages/jsonld-dataset-proxy/src/ProxyContext.ts index 1fa43bb..39ee048 100644 --- a/packages/jsonld-dataset-proxy/src/ProxyContext.ts +++ b/packages/jsonld-dataset-proxy/src/ProxyContext.ts @@ -1,10 +1,15 @@ -import type { BlankNode, Dataset, NamedNode } from "@rdfjs/types"; +import type { + BlankNode, + Dataset, + NamedNode, + GraphNode, + QuadMatch, +} from "@ldo/rdf-utils"; import type { ArrayProxyTarget } from "./arrayProxy/createArrayHandler"; import { createArrayHandler } from "./arrayProxy/createArrayHandler"; import { createSubjectHandler } from "./subjectProxy/createSubjectHandler"; import type { SubjectProxy } from "./subjectProxy/SubjectProxy"; import type { ArrayProxy } from "./arrayProxy/ArrayProxy"; -import type { GraphType, QuadMatch } from "./types"; import { _getUnderlyingArrayTarget } from "./types"; import type { ContextUtil } from "./ContextUtil"; import type { LanguageOrdering } from "./language/languageTypes"; @@ -12,7 +17,7 @@ import type { LanguageOrdering } from "./language/languageTypes"; export interface ProxyContextOptions { dataset: Dataset; contextUtil: ContextUtil; - writeGraphs: GraphType[]; + writeGraphs: GraphNode[]; languageOrdering: LanguageOrdering; prefilledArrayTargets?: ArrayProxyTarget[]; state?: Record; @@ -29,7 +34,7 @@ export class ProxyContext { readonly dataset: Dataset; readonly contextUtil: ContextUtil; - readonly writeGraphs: GraphType[]; + readonly writeGraphs: GraphNode[]; readonly languageOrdering: LanguageOrdering; public state: Record; diff --git a/packages/jsonld-dataset-proxy/src/arrayProxy/ArrayProxy.ts b/packages/jsonld-dataset-proxy/src/arrayProxy/ArrayProxy.ts index e44b2ce..a4bd96d 100644 --- a/packages/jsonld-dataset-proxy/src/arrayProxy/ArrayProxy.ts +++ b/packages/jsonld-dataset-proxy/src/arrayProxy/ArrayProxy.ts @@ -1,7 +1,6 @@ -import type { Dataset } from "@rdfjs/types"; +import type { Dataset, ObjectNode } from "@ldo/rdf-utils"; import type { ArrayProxyTarget } from "./createArrayHandler"; import type { - ObjectType, _getNodeAtIndex, _getUnderlyingArrayTarget, _getUnderlyingDataset, @@ -14,7 +13,7 @@ import type { ProxyContext } from "../ProxyContext"; export type ArrayProxy = Array & { readonly [_getUnderlyingDataset]: Dataset; readonly [_getUnderlyingMatch]: ArrayProxyTarget[0]; - readonly [_getNodeAtIndex]: (index: number) => ObjectType | undefined; + readonly [_getNodeAtIndex]: (index: number) => ObjectNode | undefined; readonly [_getUnderlyingArrayTarget]: ArrayProxyTarget; [_proxyContext]: ProxyContext; }; diff --git a/packages/jsonld-dataset-proxy/src/arrayProxy/createArrayHandler.ts b/packages/jsonld-dataset-proxy/src/arrayProxy/createArrayHandler.ts index 375db9b..5b307b7 100644 --- a/packages/jsonld-dataset-proxy/src/arrayProxy/createArrayHandler.ts +++ b/packages/jsonld-dataset-proxy/src/arrayProxy/createArrayHandler.ts @@ -1,10 +1,14 @@ -import type { NamedNode } from "@rdfjs/types"; +import { quad } from "@ldo/rdf-utils"; +import type { + NamedNode, + ObjectNode, + QuadMatch, + SubjectNode, +} from "@ldo/rdf-utils"; import type { ObjectJsonRepresentation } from "../util/nodeToJsonldRepresentation"; import { nodeToJsonldRepresentation } from "../util/nodeToJsonldRepresentation"; -import { quad } from "@rdfjs/data-model"; import type { ArrayMethodBuildersType } from "./arrayMethods"; import { arrayMethodsBuilders, methodNames } from "./arrayMethods"; -import type { ObjectType, QuadMatch, SubjectType } from "../types"; import { _getNodeAtIndex, _getUnderlyingArrayTarget, @@ -20,7 +24,7 @@ import { filterQuadsByLanguageOrdering } from "../language/languageUtils"; export type ArrayProxyTarget = [ quadMatch: QuadMatch, - curArray: ObjectType[], + curArray: ObjectNode[], isSubjectOriented?: boolean, isLangStringArray?: boolean, ]; @@ -38,12 +42,12 @@ function updateArrayOrder( quads.toArray().forEach((quad) => { // If this this a subject-oriented document if (target[2]) { - datasetObjects.add(quad.subject as SubjectType); + datasetObjects.add(quad.subject as SubjectNode); } else { - datasetObjects.add(quad.object as ObjectType); + datasetObjects.add(quad.object as ObjectNode); } }); - const processedObjects: ObjectType[] = []; + const processedObjects: ObjectNode[] = []; target[1].forEach((arrItem) => { if (datasetObjects.has(arrItem)) { processedObjects.push(arrItem); @@ -82,7 +86,7 @@ export function createArrayHandler( case _proxyContext: return proxyContext; case _getNodeAtIndex: - return (index: number): ObjectType | undefined => { + return (index: number): ObjectNode | undefined => { updateArrayOrder(target, proxyContext); return target[1][index]; }; diff --git a/packages/jsonld-dataset-proxy/src/arrayProxy/modifyArray.ts b/packages/jsonld-dataset-proxy/src/arrayProxy/modifyArray.ts index 3242356..00e3126 100644 --- a/packages/jsonld-dataset-proxy/src/arrayProxy/modifyArray.ts +++ b/packages/jsonld-dataset-proxy/src/arrayProxy/modifyArray.ts @@ -1,9 +1,8 @@ -import { defaultGraph } from "@rdfjs/data-model"; -import type { Quad } from "@rdfjs/types"; +import { defaultGraph } from "@ldo/rdf-utils"; +import type { Quad, ObjectNode } from "@ldo/rdf-utils"; import { ProxyTransactionalDataset } from "@ldo/subscribable-dataset"; import { createDatasetFactory } from "@ldo/dataset"; import type { ProxyContext } from "../ProxyContext"; -import type { ObjectType } from "../types"; import { addObjectToDataset } from "../util/addObjectToDataset"; import { getNodeFromRawObject, @@ -121,7 +120,7 @@ export function modifyArray( .map((addedValue) => { return getNodeFromRawValue(key, addedValue, proxyContext); }) - .filter((val) => val != undefined) as ObjectType[]) + .filter((val) => val != undefined) as ObjectNode[]) : []; // Allow the base array to be modified diff --git a/packages/jsonld-dataset-proxy/src/graphOf.ts b/packages/jsonld-dataset-proxy/src/graphOf.ts index 97afba5..33e15db 100644 --- a/packages/jsonld-dataset-proxy/src/graphOf.ts +++ b/packages/jsonld-dataset-proxy/src/graphOf.ts @@ -1,9 +1,10 @@ -import { namedNode } from "@rdfjs/data-model"; +import type { ObjectNode, GraphNode } from "@ldo/rdf-utils"; +import { namedNode } from "@ldo/rdf-utils"; import { getSubjectProxyFromObject, isSubjectProxy, } from "./subjectProxy/isSubjectProxy"; -import type { GraphType, ObjectLike, ObjectType } from "./types"; +import type { ObjectLike } from "./types"; import { _getNodeAtIndex, _getUnderlyingDataset, @@ -25,14 +26,14 @@ export function graphOf( object?: NonNullable extends Array ? number | ObjectLike : ObjectLike, -): GraphType[] { +): GraphNode[] { const subjectProxy = getSubjectProxyFromObject(subject); const proxyContext = subjectProxy[_proxyContext]; const subjectNode = subjectProxy[_getUnderlyingNode]; const predicateNode = namedNode( proxyContext.contextUtil.keyToIri(predicate as string), ); - let objectNode: ObjectType | null; + let objectNode: ObjectNode | null; if (object == null) { objectNode = null; } else if (typeof object === "number") { @@ -58,5 +59,5 @@ export function graphOf( predicateNode, objectNode, ); - return quads.toArray().map((quad): GraphType => quad.graph as GraphType); + return quads.toArray().map((quad): GraphNode => quad.graph as GraphNode); } diff --git a/packages/jsonld-dataset-proxy/src/jsonldDatasetProxy.ts b/packages/jsonld-dataset-proxy/src/jsonldDatasetProxy.ts index 9c49be3..e4eb108 100644 --- a/packages/jsonld-dataset-proxy/src/jsonldDatasetProxy.ts +++ b/packages/jsonld-dataset-proxy/src/jsonldDatasetProxy.ts @@ -1,5 +1,5 @@ -import { defaultGraph } from "@rdfjs/data-model"; -import type { Dataset } from "@rdfjs/types"; +import { defaultGraph } from "@ldo/rdf-utils"; +import type { Dataset } from "@ldo/rdf-utils"; import type { ContextDefinition } from "jsonld"; import { ContextUtil } from "./ContextUtil"; import { JsonldDatasetProxyBuilder } from "./JsonldDatasetProxyBuilder"; diff --git a/packages/jsonld-dataset-proxy/src/language/languageMapProxy.ts b/packages/jsonld-dataset-proxy/src/language/languageMapProxy.ts index 44fa2f8..dc40f32 100644 --- a/packages/jsonld-dataset-proxy/src/language/languageMapProxy.ts +++ b/packages/jsonld-dataset-proxy/src/language/languageMapProxy.ts @@ -1,6 +1,6 @@ -import { literal, quad } from "@rdfjs/data-model"; +import type { PredicateNode, SubjectNode } from "@ldo/rdf-utils"; +import { literal, quad } from "@ldo/rdf-utils"; import type { ProxyContext } from "../ProxyContext"; -import type { PredicateType, SubjectType } from "../types"; import { languageKeyToLiteralLanguage, quadsToLanguageQuadMap, @@ -12,8 +12,8 @@ import LanguageSet from "./languageSet"; export function createLanguageMapProxy< Target extends LanguageMap | LanguageSetMap, >( - subject: SubjectType, - predicate: PredicateType, + subject: SubjectNode, + predicate: PredicateNode, proxyContext: ProxyContext, isArray: boolean, ): Target { diff --git a/packages/jsonld-dataset-proxy/src/language/languageSet.ts b/packages/jsonld-dataset-proxy/src/language/languageSet.ts index 8026424..9795db3 100644 --- a/packages/jsonld-dataset-proxy/src/language/languageSet.ts +++ b/packages/jsonld-dataset-proxy/src/language/languageSet.ts @@ -1,20 +1,24 @@ -import type { Dataset, Literal } from "@rdfjs/types"; -import type { PredicateType, SubjectType } from "../types"; +import { literal, quad } from "@ldo/rdf-utils"; +import type { + Dataset, + Literal, + PredicateNode, + SubjectNode, +} from "@ldo/rdf-utils"; import type { LanguageKey } from "./languageTypes"; import type { LiteralObjectQuad } from "./languageUtils"; import { languageDeleteMatch, languageMatch } from "./languageUtils"; -import { literal, quad } from "@rdfjs/data-model"; import type { ProxyContext } from "../ProxyContext"; export default class LanguageSet implements Set { - private subject: SubjectType; - private predicate: PredicateType; + private subject: SubjectNode; + private predicate: PredicateNode; private languageKey: LanguageKey; private proxyContext: ProxyContext; constructor( - subject: SubjectType, - predicate: PredicateType, + subject: SubjectNode, + predicate: PredicateNode, languageKey: LanguageKey, proxyContext: ProxyContext, ) { diff --git a/packages/jsonld-dataset-proxy/src/language/languageUtils.ts b/packages/jsonld-dataset-proxy/src/language/languageUtils.ts index a30bc6a..fa2cb80 100644 --- a/packages/jsonld-dataset-proxy/src/language/languageUtils.ts +++ b/packages/jsonld-dataset-proxy/src/language/languageUtils.ts @@ -1,6 +1,13 @@ -import type { Dataset, Literal, Quad, Quad_Object } from "@rdfjs/types"; +import type { + Dataset, + Literal, + Quad, + ObjectNode, + PredicateNode, + SubjectNode, + Quad_Object, +} from "@ldo/rdf-utils"; import { createDataset } from "@ldo/dataset"; -import type { PredicateType, SubjectType } from "../types"; import type { LanguageKey, LanguageOrdering } from "./languageTypes"; /** @@ -13,8 +20,8 @@ import type { LanguageKey, LanguageOrdering } from "./languageTypes"; */ export function languageMatch( dataset: Dataset, - subject: SubjectType, - predicate: PredicateType, + subject: ObjectNode, + predicate: PredicateNode, languageKey: LanguageKey, ): Dataset { const literalLanguage = languageKeyToLiteralLanguage(languageKey); @@ -34,8 +41,8 @@ export function languageMatch( */ export function languageDeleteMatch( dataset: Dataset, - subject: SubjectType, - predicate: PredicateType, + subject: SubjectNode, + predicate: PredicateNode, languageKey: LanguageKey, ): void { const quadsToDelete = languageMatch(dataset, subject, predicate, languageKey); diff --git a/packages/jsonld-dataset-proxy/src/language/languagesOf.ts b/packages/jsonld-dataset-proxy/src/language/languagesOf.ts index 0a111b2..efba8d0 100644 --- a/packages/jsonld-dataset-proxy/src/language/languagesOf.ts +++ b/packages/jsonld-dataset-proxy/src/language/languagesOf.ts @@ -1,4 +1,4 @@ -import { namedNode } from "@rdfjs/data-model"; +import { namedNode } from "@ldo/rdf-utils"; import { getSubjectProxyFromObject } from "../subjectProxy/isSubjectProxy"; import type { ObjectLike } from "../types"; import { _getUnderlyingNode, _proxyContext } from "../types"; diff --git a/packages/jsonld-dataset-proxy/src/subjectProxy/SubjectProxy.ts b/packages/jsonld-dataset-proxy/src/subjectProxy/SubjectProxy.ts index 1c22472..be3f6d5 100644 --- a/packages/jsonld-dataset-proxy/src/subjectProxy/SubjectProxy.ts +++ b/packages/jsonld-dataset-proxy/src/subjectProxy/SubjectProxy.ts @@ -1,8 +1,7 @@ -import type { BlankNode, Dataset, NamedNode } from "@rdfjs/types"; +import type { BlankNode, Dataset, NamedNode, GraphNode } from "@ldo/rdf-utils"; import type { ContextDefinition } from "jsonld"; import type { ProxyContext } from "../ProxyContext"; import type { - GraphType, _getUnderlyingDataset, _getUnderlyingNode, _proxyContext, @@ -16,5 +15,5 @@ export type SubjectProxy = { readonly [_getUnderlyingDataset]: Dataset; readonly [_getUnderlyingNode]: NamedNode | BlankNode; [_proxyContext]: ProxyContext; - readonly [_writeGraphs]: GraphType[]; + readonly [_writeGraphs]: GraphNode[]; }; diff --git a/packages/jsonld-dataset-proxy/src/subjectProxy/createSubjectHandler.ts b/packages/jsonld-dataset-proxy/src/subjectProxy/createSubjectHandler.ts index bbf9df0..0547b46 100644 --- a/packages/jsonld-dataset-proxy/src/subjectProxy/createSubjectHandler.ts +++ b/packages/jsonld-dataset-proxy/src/subjectProxy/createSubjectHandler.ts @@ -1,5 +1,5 @@ -import type { BlankNode, NamedNode } from "@rdfjs/types"; -import { namedNode, quad } from "@rdfjs/data-model"; +import { namedNode, quad } from "@ldo/rdf-utils"; +import type { BlankNode, NamedNode } from "@ldo/rdf-utils"; import { addObjectToDataset } from "../util/addObjectToDataset"; import { deleteValueFromDataset } from "./deleteFromDataset"; import { diff --git a/packages/jsonld-dataset-proxy/src/subjectProxy/deleteFromDataset.ts b/packages/jsonld-dataset-proxy/src/subjectProxy/deleteFromDataset.ts index 381c226..098a459 100644 --- a/packages/jsonld-dataset-proxy/src/subjectProxy/deleteFromDataset.ts +++ b/packages/jsonld-dataset-proxy/src/subjectProxy/deleteFromDataset.ts @@ -1,5 +1,5 @@ -import type { Term } from "@rdfjs/types"; -import { namedNode, quad } from "@rdfjs/data-model"; +import { namedNode, quad } from "@ldo/rdf-utils"; +import type { Term } from "@ldo/rdf-utils"; import type { SubjectProxyTarget } from "./createSubjectHandler"; import type { ProxyContext } from "../ProxyContext"; diff --git a/packages/jsonld-dataset-proxy/src/subjectProxy/getValueForKey.ts b/packages/jsonld-dataset-proxy/src/subjectProxy/getValueForKey.ts index 37f5141..6113188 100644 --- a/packages/jsonld-dataset-proxy/src/subjectProxy/getValueForKey.ts +++ b/packages/jsonld-dataset-proxy/src/subjectProxy/getValueForKey.ts @@ -1,5 +1,5 @@ import type { SubjectProxyTarget } from "./createSubjectHandler"; -import { namedNode } from "@rdfjs/data-model"; +import { namedNode } from "@ldo/rdf-utils"; import { nodeToJsonldRepresentation } from "../util/nodeToJsonldRepresentation"; import type { SubjectProxy } from "./SubjectProxy"; import type { ArrayProxy } from "../arrayProxy/ArrayProxy"; diff --git a/packages/jsonld-dataset-proxy/src/types.ts b/packages/jsonld-dataset-proxy/src/types.ts index 05440f1..4f518b9 100644 --- a/packages/jsonld-dataset-proxy/src/types.ts +++ b/packages/jsonld-dataset-proxy/src/types.ts @@ -1,5 +1,3 @@ -import type { BlankNode, DefaultGraph, Literal, NamedNode } from "@rdfjs/types"; - export const _getUnderlyingNode = Symbol("_getUnderlyingNode"); export const _getUnderlyingMatch = Symbol("_getUnderlyingMatch"); export const _isSubjectOriented = Symbol("_isSubjectOriented"); diff --git a/packages/jsonld-dataset-proxy/src/util/NodeSet.ts b/packages/jsonld-dataset-proxy/src/util/NodeSet.ts index 271c07b..4d99ae4 100644 --- a/packages/jsonld-dataset-proxy/src/util/NodeSet.ts +++ b/packages/jsonld-dataset-proxy/src/util/NodeSet.ts @@ -1,5 +1,10 @@ -import type { BlankNode, DefaultGraph, Literal, NamedNode } from "@rdfjs/types"; -import type { ObjectType } from "../types"; +import type { + BlankNode, + DefaultGraph, + Literal, + NamedNode, + ObjectNode, +} from "@ldo/rdf-utils"; export function nodeToString( node: NamedNode | BlankNode | DefaultGraph | Literal | null | undefined, @@ -21,19 +26,19 @@ export function nodeToString( export class NodeSet { private set: Set = new Set(); - private map: Record = {}; + private map: Record = {}; - add(node: ObjectType) { + add(node: ObjectNode) { const key = nodeToString(node); this.set.add(key); this.map[key] = node; } - has(node: ObjectType): boolean { + has(node: ObjectNode): boolean { return this.set.has(nodeToString(node)); } - delete(node: ObjectType) { + delete(node: ObjectNode) { const key = nodeToString(node); delete this.map[key]; return this.set.delete(nodeToString(node)); diff --git a/packages/jsonld-dataset-proxy/src/util/RawObject.ts b/packages/jsonld-dataset-proxy/src/util/RawObject.ts index 2d710b4..2097e5d 100644 --- a/packages/jsonld-dataset-proxy/src/util/RawObject.ts +++ b/packages/jsonld-dataset-proxy/src/util/RawObject.ts @@ -1,4 +1,4 @@ -import type { BlankNode, NamedNode } from "@rdfjs/types"; +import type { BlankNode, NamedNode } from "@ldo/rdf-utils"; import { _getUnderlyingNode } from "../types"; import type { SubjectProxy } from "../subjectProxy/SubjectProxy"; diff --git a/packages/jsonld-dataset-proxy/src/util/addObjectToDataset.ts b/packages/jsonld-dataset-proxy/src/util/addObjectToDataset.ts index 7252503..13793b7 100644 --- a/packages/jsonld-dataset-proxy/src/util/addObjectToDataset.ts +++ b/packages/jsonld-dataset-proxy/src/util/addObjectToDataset.ts @@ -1,5 +1,5 @@ -import type { BlankNode, NamedNode } from "@rdfjs/types"; -import { literal, namedNode, quad } from "@rdfjs/data-model"; +import type { BlankNode, NamedNode } from "@ldo/rdf-utils"; +import { literal, namedNode, quad } from "@ldo/rdf-utils"; import { _getUnderlyingNode } from "../types"; import type { SubjectProxy } from "../subjectProxy/SubjectProxy"; import { getNodeFromRawObject, getNodeFromRawValue } from "./getNodeFromRaw"; diff --git a/packages/jsonld-dataset-proxy/src/util/getNodeFromRaw.ts b/packages/jsonld-dataset-proxy/src/util/getNodeFromRaw.ts index 4ea9a73..f9b285b 100644 --- a/packages/jsonld-dataset-proxy/src/util/getNodeFromRaw.ts +++ b/packages/jsonld-dataset-proxy/src/util/getNodeFromRaw.ts @@ -1,5 +1,5 @@ -import type { BlankNode, Literal, NamedNode } from "@rdfjs/types"; -import { namedNode, literal, blankNode } from "@rdfjs/data-model"; +import type { BlankNode, Literal, NamedNode } from "@ldo/rdf-utils"; +import { namedNode, literal, blankNode } from "@ldo/rdf-utils"; import type { ContextUtil } from "../ContextUtil"; import { _getUnderlyingNode } from "../types"; import type { RawObject, RawValue } from "./RawObject"; diff --git a/packages/jsonld-dataset-proxy/src/util/nodeToJsonldRepresentation.ts b/packages/jsonld-dataset-proxy/src/util/nodeToJsonldRepresentation.ts index d1dcd08..00f38b5 100644 --- a/packages/jsonld-dataset-proxy/src/util/nodeToJsonldRepresentation.ts +++ b/packages/jsonld-dataset-proxy/src/util/nodeToJsonldRepresentation.ts @@ -1,4 +1,4 @@ -import type { Literal, Quad_Object } from "@rdfjs/types"; +import type { Literal, Quad_Object } from "@ldo/rdf-utils"; import type { ProxyContext } from "../ProxyContext"; import type { SubjectProxy } from "../subjectProxy/SubjectProxy"; diff --git a/packages/jsonld-dataset-proxy/test/jsonldDatasetProxy.test.ts b/packages/jsonld-dataset-proxy/test/jsonldDatasetProxy.test.ts index 3698f77..a45c98c 100644 --- a/packages/jsonld-dataset-proxy/test/jsonldDatasetProxy.test.ts +++ b/packages/jsonld-dataset-proxy/test/jsonldDatasetProxy.test.ts @@ -25,8 +25,8 @@ import { tinyPatientDataWithBlankNodes, tinyPatientDataWithLanguageTags, } from "./patientExampleData"; -import { namedNode, quad, literal, defaultGraph } from "@rdfjs/data-model"; -import type { Dataset, NamedNode } from "@rdfjs/types"; +import { namedNode, quad, literal, defaultGraph } from "@ldo/rdf-utils"; +import type { Dataset, NamedNode } from "@ldo/rdf-utils"; import type { ContextDefinition } from "jsonld"; describe("jsonldDatasetProxy", () => { diff --git a/packages/jsonld-dataset-proxy/test/nodeToJsonRepresentation.test.ts b/packages/jsonld-dataset-proxy/test/nodeToJsonRepresentation.test.ts index 3ab4cc2..942f0b9 100644 --- a/packages/jsonld-dataset-proxy/test/nodeToJsonRepresentation.test.ts +++ b/packages/jsonld-dataset-proxy/test/nodeToJsonRepresentation.test.ts @@ -1,7 +1,7 @@ import { createDataset } from "@ldo/dataset"; import { ContextUtil } from "../src/ContextUtil"; import { nodeToJsonldRepresentation } from "../src/util/nodeToJsonldRepresentation"; -import { literal, defaultGraph } from "@rdfjs/data-model"; +import { literal, defaultGraph } from "@ldo/rdf-utils"; import { ProxyContext } from "../src"; describe("objectToJsonRepresentation", () => { diff --git a/packages/jsonld-dataset-proxy/test/nodeToString.test.ts b/packages/jsonld-dataset-proxy/test/nodeToString.test.ts index 1d05021..cb1afcf 100644 --- a/packages/jsonld-dataset-proxy/test/nodeToString.test.ts +++ b/packages/jsonld-dataset-proxy/test/nodeToString.test.ts @@ -1,4 +1,4 @@ -import { blankNode, defaultGraph, literal, namedNode } from "@rdfjs/data-model"; +import { blankNode, defaultGraph, literal, namedNode } from "@ldo/rdf-utils"; import { nodeToString } from "../src"; describe("nodeToString", () => { diff --git a/packages/ldo/README.md b/packages/ldo/README.md index 8593df2..eab60fb 100644 --- a/packages/ldo/README.md +++ b/packages/ldo/README.md @@ -352,9 +352,8 @@ commitTransaction(profile); ### `getDataset(linkedDataObject)` Returns the Linked Data Object's underlying RDFJS dataset. Modifying this dataset will change the Linked Data Object as well. ```typescript -import { Dataset } from "@rdfjs/types"; import { getDataset } from "ldo" -const dataset: Dataset = dataset(profile); +const dataset = getDataset(profile); ``` ## Sponsorship diff --git a/packages/ldo/package.json b/packages/ldo/package.json index 20296a8..3f63b87 100644 --- a/packages/ldo/package.json +++ b/packages/ldo/package.json @@ -22,7 +22,6 @@ }, "homepage": "https://github.com/o-development/ldo#readme", "devDependencies": { - "@rdfjs/types": "^1.1.0", "@types/jest": "^27.0.3", "@types/jsonld": "^1.5.6", "@types/n3": "^1.10.4", @@ -36,10 +35,9 @@ "dependencies": { "@ldo/dataset": "^0.0.0", "@ldo/jsonld-dataset-proxy": "^0.0.0", + "@ldo/rdf-utils": "^0.0.0", "@ldo/subscribable-dataset": "^0.0.0", - "@rdfjs/data-model": "^1.2.0", "buffer": "^6.0.3", - "n3": "^1.16.2", "readable-stream": "^4.3.0" }, "overrides": { diff --git a/packages/ldo/src/LdoDataset.ts b/packages/ldo/src/LdoDataset.ts index 75c734f..8acda73 100644 --- a/packages/ldo/src/LdoDataset.ts +++ b/packages/ldo/src/LdoDataset.ts @@ -1,4 +1,4 @@ -import type { Quad } from "@rdfjs/types"; +import type { Quad } from "@ldo/rdf-utils"; import jsonldDatasetProxy from "@ldo/jsonld-dataset-proxy"; import { WrapperSubscribableDataset } from "@ldo/subscribable-dataset"; import { LdoBuilder } from "./LdoBuilder"; diff --git a/packages/ldo/src/LdoDatasetFactory.ts b/packages/ldo/src/LdoDatasetFactory.ts index 7fc5588..a9ec3d8 100644 --- a/packages/ldo/src/LdoDatasetFactory.ts +++ b/packages/ldo/src/LdoDatasetFactory.ts @@ -1,4 +1,4 @@ -import type { DatasetFactory, Dataset, Quad } from "@rdfjs/types"; +import type { DatasetFactory, Dataset, Quad } from "@ldo/rdf-utils"; import { LdoDataset } from "./LdoDataset"; /** diff --git a/packages/ldo/src/createLdoDataset.ts b/packages/ldo/src/createLdoDataset.ts index fd12132..2e2b3e2 100644 --- a/packages/ldo/src/createLdoDataset.ts +++ b/packages/ldo/src/createLdoDataset.ts @@ -1,4 +1,4 @@ -import type { Dataset, DatasetFactory, Quad } from "@rdfjs/types"; +import type { Dataset, DatasetFactory, Quad } from "@ldo/rdf-utils"; import { createDataset } from "@ldo/dataset"; import { LdoDatasetFactory } from "./LdoDatasetFactory"; diff --git a/packages/ldo/src/datasetConverters.ts b/packages/ldo/src/datasetConverters.ts deleted file mode 100644 index 6a4fb7b..0000000 --- a/packages/ldo/src/datasetConverters.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type { Dataset } from "@rdfjs/types"; -import type { WriterOptions } from "n3"; -import { Writer } from "n3"; -// import SerializerJsonld from "@rdfjs/serializer-jsonld"; -// import { Readable } from "readable-stream"; - -export async function datasetToString( - dataset: Dataset, - options: WriterOptions, -): Promise { - return new Promise((resolve, reject) => { - const writer = new Writer(options); - for (const quad of dataset) { - writer.addQuad(quad); - } - writer.end(async (error, parsedString: string) => { - /* istanbul ignore if */ - if (error) { - return reject(error); - } - return resolve(parsedString); - }); - }); -} - -// export async function datasetToJsonLd( -// dataset: Dataset, -// context: ContextDefinition -// ): Promise { -// return new Promise((resolve, reject) => { -// const serializerJsonld = new SerializerJsonld(); -// const input = new Readable({ -// objectMode: true, -// read: () => { -// dataset.forEach((quad) => { -// input.push(quad); -// }); -// input.push(null); -// }, -// }); -// const output = serializerJsonld.import(input); - -// output.on("data", (jsonld) => { -// resolve(jsonld); -// }); -// /* istanbul ignore next */ -// output.on("error", (err) => { -// /* istanbul ignore next */ -// reject(err); -// }); -// }); -// } diff --git a/packages/ldo/src/methods.ts b/packages/ldo/src/methods.ts index 65352ae..8328f8b 100644 --- a/packages/ldo/src/methods.ts +++ b/packages/ldo/src/methods.ts @@ -1,18 +1,15 @@ -import type { Dataset } from "@rdfjs/types"; import type { JsonLdDocument } from "jsonld"; -import type { GraphType, InteractOptions } from "@ldo/jsonld-dataset-proxy"; +import type { GraphNode, DatasetChanges } from "@ldo/rdf-utils"; +import type { InteractOptions } from "@ldo/jsonld-dataset-proxy"; import { getProxyFromObject, _getUnderlyingDataset, _proxyContext, write as writeDependency, } from "@ldo/jsonld-dataset-proxy"; -import type { Quad, WriterOptions } from "n3"; -import type { - DatasetChanges, - SubscribableDataset, -} from "@ldo/subscribable-dataset"; -import { datasetToString } from "./datasetConverters"; +import type { SubscribableDataset } from "@ldo/subscribable-dataset"; +import type { WriterOptions, Dataset, Quad } from "@ldo/rdf-utils"; +import { changesToSparqlUpdate, datasetToString } from "@ldo/rdf-utils"; import type { LdoBase } from "./util"; import { canDatasetStartTransaction, @@ -26,7 +23,7 @@ export { setLanguagePreferences, } from "@ldo/jsonld-dataset-proxy"; -export function write(...graphs: (GraphType | string)[]): InteractOptions { +export function write(...graphs: (GraphNode | string)[]): InteractOptions { return writeDependency(...normalizeNodeNames(graphs)); } @@ -72,21 +69,7 @@ export function getDataset(ldo: LdoBase): Dataset { export async function toSparqlUpdate(ldo: LdoBase): Promise { const [dataset] = getTransactionalDatasetFromLdo(ldo); const changes = dataset.getChanges(); - let output = ""; - if (changes.removed) { - output += `DELETE DATA { ${await datasetToString(changes.removed, { - format: "N-Triples", - })} }`; - } - if (changes.added && changes.removed) { - output += "; "; - } - if (changes.added) { - output += `INSERT DATA { ${await datasetToString(changes.added, { - format: "N-Triples", - })} }`; - } - return output.replaceAll("\n", " "); + return changesToSparqlUpdate(changes); } export async function serialize( diff --git a/packages/ldo/src/parseRdf.ts b/packages/ldo/src/parseRdf.ts index f6feb37..9c952cb 100644 --- a/packages/ldo/src/parseRdf.ts +++ b/packages/ldo/src/parseRdf.ts @@ -1,6 +1,6 @@ -import type { Dataset } from "@rdfjs/types"; +import type { Dataset } from "@ldo/rdf-utils"; import type { JsonLdDocument } from "jsonld"; -import type { ParserOptions } from "n3"; +import type { ParserOptions } from "@ldo/rdf-utils"; import { createDatasetFromSerializedInput } from "@ldo/dataset"; import { createLdoDataset, createLdoDatasetFactory } from "./createLdoDataset"; import type { LdoDataset } from "./LdoDataset"; diff --git a/packages/ldo/src/util.ts b/packages/ldo/src/util.ts index 559cae3..d7e48d0 100644 --- a/packages/ldo/src/util.ts +++ b/packages/ldo/src/util.ts @@ -1,20 +1,16 @@ -import { namedNode } from "@rdfjs/data-model"; -import type { Dataset } from "@rdfjs/types"; -import type { - ArrayProxy, - GraphType, - ObjectType, - PredicateType, - SubjectProxy, - SubjectType, -} from "@ldo/jsonld-dataset-proxy"; +import { namedNode } from "@ldo/rdf-utils"; +import type { Dataset } from "@ldo/rdf-utils"; +import type { ArrayProxy, SubjectProxy } from "@ldo/jsonld-dataset-proxy"; import { getProxyFromObject, _getUnderlyingDataset, _proxyContext, } from "@ldo/jsonld-dataset-proxy"; -import type { Quad } from "n3"; -import type { SubscribableDataset, TransactionalDataset } from "@ldo/subscribable-dataset"; +import type { Quad, AnyNode } from "@ldo/rdf-utils"; +import type { + SubscribableDataset, + TransactionalDataset, +} from "@ldo/subscribable-dataset"; // eslint-disable-next-line @typescript-eslint/no-explicit-any export type LdoBase = Record; @@ -24,9 +20,9 @@ export type LdoBase = Record; * @param input A Node or string * @returns A node */ -export function normalizeNodeName< - NodeType extends SubjectType | PredicateType | ObjectType | GraphType, ->(input: NodeType | string): NodeType { +export function normalizeNodeName( + input: NodeType | string, +): NodeType { return (typeof input === "string" ? namedNode(input) : input) as NodeType; } @@ -35,9 +31,9 @@ export function normalizeNodeName< * @param inputs An array of nodes/strings * @returns An array of nodes */ -export function normalizeNodeNames< - NodeType extends SubjectType | PredicateType | ObjectType | GraphType, ->(inputs: (NodeType | string)[]): NodeType[] { +export function normalizeNodeNames( + inputs: (NodeType | string)[], +): NodeType[] { return inputs.map((input) => normalizeNodeName(input)); } diff --git a/packages/ldo/test/LdoDataset.test.ts b/packages/ldo/test/LdoDataset.test.ts index 651242f..64bbc3b 100644 --- a/packages/ldo/test/LdoDataset.test.ts +++ b/packages/ldo/test/LdoDataset.test.ts @@ -1,4 +1,4 @@ -import { literal, namedNode, quad } from "@rdfjs/data-model"; +import { literal, namedNode, quad } from "@ldo/rdf-utils"; import { createDataset } from "@ldo/dataset"; import type { SolidProfileShape } from "./profileData"; import { ProfileShapeType } from "./profileData"; diff --git a/packages/ldo/test/methods.test.ts b/packages/ldo/test/methods.test.ts index 9f1f6ad..ae036f9 100644 --- a/packages/ldo/test/methods.test.ts +++ b/packages/ldo/test/methods.test.ts @@ -1,4 +1,4 @@ -import { namedNode } from "@rdfjs/data-model"; +import { namedNode } from "@ldo/rdf-utils"; import type { SubjectProxy } from "@ldo/jsonld-dataset-proxy"; import { getProxyFromObject, diff --git a/packages/rdf-utils/package.json b/packages/rdf-utils/package.json index e8bab44..a979f73 100644 --- a/packages/rdf-utils/package.json +++ b/packages/rdf-utils/package.json @@ -22,11 +22,11 @@ }, "homepage": "https://github.com/o-development/devtool-boilerplate#readme", "devDependencies": { - "@rdfjs/types": "^1.1.0", "@types/jsonld": "^1.5.9" }, "dependencies": { "@rdfjs/data-model": "^2.0.1", + "@rdfjs/types": "^1.1.0", "n3": "^1.17.1", "rdf-string": "^1.6.3" } diff --git a/packages/rdf-utils/src/datasetConverters.ts b/packages/rdf-utils/src/datasetConverters.ts index 3a05bfb..54ebbee 100644 --- a/packages/rdf-utils/src/datasetConverters.ts +++ b/packages/rdf-utils/src/datasetConverters.ts @@ -1,31 +1,26 @@ -import type { Dataset } from "@rdfjs/types"; +import type { DatasetCore, Quad } from "@rdfjs/types"; import type { ContextDefinition, JsonLdDocument } from "jsonld"; -import type { WriterOptions } from "n3"; +import type { WriterOptions as WriterOptionsImport } from "n3"; import { Writer } from "n3"; // import SerializerJsonld from "@rdfjs/serializer-jsonld"; // import { Readable } from "readable-stream"; -export async function datasetToString( - dataset: Dataset, +export type WriterOptions = WriterOptionsImport; + +export function datasetToString( + dataset: DatasetCore, options: WriterOptions, -): Promise { - return new Promise((resolve, reject) => { - const writer = new Writer(options); - for (const quad of dataset) { - writer.addQuad(quad); - } - writer.end(async (error, parsedString: string) => { - /* istanbul ignore if */ - if (error) { - return reject(error); - } - return resolve(parsedString); - }); - }); +): string { + const writer = new Writer(options); + const quadArr: Quad[] = []; + for (const quad of dataset) { + quadArr.push(quad); + } + return writer.quadsToString(quadArr); } export async function datasetToJsonLd( - _dataset: Dataset, + _dataset: DatasetCore, _context: ContextDefinition, ): Promise { throw new Error("JSONLD serialization is not omplemented"); diff --git a/packages/rdf-utils/src/index.ts b/packages/rdf-utils/src/index.ts index fa7163b..f990b7c 100644 --- a/packages/rdf-utils/src/index.ts +++ b/packages/rdf-utils/src/index.ts @@ -3,3 +3,4 @@ export * from "@rdfjs/types"; export * from "@rdfjs/data-model"; export * from "./datasetChanges"; export * from "./datasetConverters"; +export * from "./serializedToQuads"; diff --git a/packages/rdf-utils/src/serializedToQuad.ts b/packages/rdf-utils/src/serializedToQuad.ts deleted file mode 100644 index e69de29..0000000 diff --git a/packages/rdf-utils/src/serializedToQuads.ts b/packages/rdf-utils/src/serializedToQuads.ts new file mode 100644 index 0000000..a0b4c0b --- /dev/null +++ b/packages/rdf-utils/src/serializedToQuads.ts @@ -0,0 +1,43 @@ +import type { Quad } from "@rdfjs/types"; +import type { ParserOptions as ParserOptionsImport } from "n3"; +import { Parser } from "n3"; + +export type ParserOptions = ParserOptionsImport; + +export async function serializedToQuads( + data: string, + options?: ParserOptions, +): Promise { + // JSON-LD Parsing + if (options && options.format === "application/json-ld") { + throw new Error("Not Implemented"); + // return new Promise((resolve, reject) => { + // JSON.parse(data); + // const parserJsonld = new ParserJsonld(); + + // const input = new Readable({ + // read: () => { + // input.push(data); + // input.push(null); + // }, + // }); + + // const output = parserJsonld.import(input); + // const quads: Quad[] = []; + // output.on("data", (quad) => { + // quads.push(quad); + // }); + // output.on("end", () => { + // resolve((datasetFactory.dataset(quads) as unknown) as ReturnDataset); + // }); + // /* istanbul ignore next */ + // output.on("error", (err) => { + // /* istanbul ignore next */ + // reject(err); + // }); + // }); + } + // N3 Parsing + const parser = new Parser(options as ParserOptions); + return parser.parse(data); +} diff --git a/packages/solid-react/package.json b/packages/solid-react/package.json index d816db6..bf553b7 100644 --- a/packages/solid-react/package.json +++ b/packages/solid-react/package.json @@ -26,7 +26,6 @@ "@babel/preset-env": "^7.22.10", "@babel/preset-react": "^7.22.5", "@babel/preset-typescript": "^7.22.11", - "@rdfjs/types": "^1.1.0", "@types/jest": "^29.0.3", "@types/jsonld": "^1.5.8", "@types/n3": "^1.10.4", diff --git a/packages/solid-react/src/LdoProvider.tsx b/packages/solid-react/src/LdoProvider.tsx index af0ccd7..75f5b22 100644 --- a/packages/solid-react/src/LdoProvider.tsx +++ b/packages/solid-react/src/LdoProvider.tsx @@ -5,11 +5,7 @@ import { createLdoDataset } from "@ldo/ldo"; import type { LdoContextData } from "./LdoContext"; import { LdoContextProvider } from "./LdoContext"; import { UpdateManager } from "./ldoHooks/helpers/UpdateManager"; -import { BinaryResourceStore } from "./document/resource/binaryResource/BinaryResourceStore"; -import { DataResourceStore } from "./document/resource/dataResource/DataResourceStore"; -import { ContainerResourceStore } from "./document/resource/dataResource/containerResource/ContainerResourceStore"; -import { AccessRulesStore } from "./document/accessRules/AccessRulesStore"; -import type { Dataset } from "@rdfjs/types"; +import type { Dataset } from "@ldo/rdf-utils"; export interface LdoProviderProps extends PropsWithChildren { fetch?: typeof fetch; diff --git a/packages/solid-react/src/ldoHooks/helpers/TrackingProxyContext.ts b/packages/solid-react/src/ldoHooks/helpers/TrackingProxyContext.ts index d127177..5568134 100644 --- a/packages/solid-react/src/ldoHooks/helpers/TrackingProxyContext.ts +++ b/packages/solid-react/src/ldoHooks/helpers/TrackingProxyContext.ts @@ -5,7 +5,7 @@ import type { } from "@ldo/jsonld-dataset-proxy"; import { ProxyContext } from "@ldo/jsonld-dataset-proxy"; import type { UpdateManager } from "./UpdateManager"; -import { namedNode } from "@rdfjs/data-model"; +import { namedNode } from "@ldo/rdf-utils"; export class TrackingProxyContext extends ProxyContext { private updateManager: UpdateManager; @@ -34,13 +34,13 @@ export class TrackingProxyContext extends ProxyContext { // Do Nothing } else if (key === "@id") { this.updateManager.registerListener( - [subject, null, null], + [subject, null, null, null], this.listener, ); } else if (!this.contextUtil.isArray(key)) { const predicate = namedNode(this.contextUtil.keyToIri(key)); this.updateManager.registerListener( - [subject, predicate, null], + [subject, predicate, null, null], this.listener, ); } @@ -66,7 +66,7 @@ export class TrackingProxyContext extends ProxyContext { ) => { if (qualifiedArrayMethods.has(key)) { this.updateManager.registerListener( - [target[0][0], target[0][1], target[0][2]], + [target[0][0], target[0][1], target[0][2], null], this.listener, ); } diff --git a/packages/solid-react/src/ldoHooks/helpers/UpdateManager.ts b/packages/solid-react/src/ldoHooks/helpers/UpdateManager.ts index 19e360a..e11f293 100644 --- a/packages/solid-react/src/ldoHooks/helpers/UpdateManager.ts +++ b/packages/solid-react/src/ldoHooks/helpers/UpdateManager.ts @@ -1,35 +1,27 @@ import type { DatasetChanges } from "@ldo/subscribable-dataset"; import { createDataset } from "@ldo/dataset"; +import { quadMatchToString } from "@ldo/rdf-utils"; import type { + Quad, QuadMatch, - SubjectType, - PredicateType, - ObjectType, -} from "@ldo/jsonld-dataset-proxy"; -import { nodeToString } from "@ldo/jsonld-dataset-proxy"; -import type { Quad } from "@rdfjs/types"; - -export type TripleMatch = [QuadMatch[0], QuadMatch[1], QuadMatch[2]]; + SubjectNode, + PredicateNode, + ObjectNode, +} from "@ldo/rdf-utils"; export class UpdateManager { - private tripleMatchListenerMap: Record void>> = {}; + private quadMatchListenerMap: Record void>> = {}; private listenerHashMap: Map<() => void, Set> = new Map(); - private tripleMatchToHash(tripleMatch: TripleMatch): string { - return `${nodeToString(tripleMatch[0])}${nodeToString( - tripleMatch[1], - )}${nodeToString(tripleMatch[2])}`; - } - - registerListener(tripleMatch: TripleMatch, callback: () => void): void { - const hash = this.tripleMatchToHash(tripleMatch); - if (!this.tripleMatchListenerMap[hash]) { - this.tripleMatchListenerMap[hash] = new Set(); + registerListener(quadMatch: QuadMatch, callback: () => void): void { + const hash = quadMatchToString(quadMatch); + if (!this.quadMatchListenerMap[hash]) { + this.quadMatchListenerMap[hash] = new Set(); } if (!this.listenerHashMap.has(callback)) { this.listenerHashMap.set(callback, new Set()); } - this.tripleMatchListenerMap[hash].add(callback); + this.quadMatchListenerMap[hash].add(callback); this.listenerHashMap.get(callback)?.add(hash); } @@ -37,7 +29,7 @@ export class UpdateManager { const hashSet = this.listenerHashMap.get(callback); if (hashSet) { hashSet.forEach((hash) => { - this.tripleMatchListenerMap[hash]?.delete(callback); + this.quadMatchListenerMap[hash]?.delete(callback); }); } } @@ -54,27 +46,27 @@ export class UpdateManager { // Cast the input because RDFJS types assume RDF 1.2 where a Subject can // be a Quad const quad = tempQuad as { - subject: SubjectType; - predicate: PredicateType; - object: ObjectType; + subject: SubjectNode; + predicate: PredicateNode; + object: ObjectNode; }; - const tripleMatches: TripleMatch[] = [ - [null, null, null], - [quad.subject, null, null], - [quad.subject, quad.predicate, null], - [quad.subject, null, quad.object], - [null, quad.predicate, null], - [null, quad.predicate, quad.object], - [null, null, quad.object], - [quad.subject, quad.predicate, quad.object], + const quadMatches: QuadMatch[] = [ + [null, null, null, null], + [quad.subject, null, null, null], + [quad.subject, quad.predicate, null, null], + [quad.subject, null, quad.object, null], + [null, quad.predicate, null, null], + [null, quad.predicate, quad.object, null], + [null, null, quad.object, null], + [quad.subject, quad.predicate, quad.object, null], ]; - tripleMatches.forEach((tripleMatch) => { - const hash = this.tripleMatchToHash(tripleMatch); - this.tripleMatchListenerMap[hash]?.forEach((callback) => { + quadMatches.forEach((quadMatch) => { + const hash = quadMatchToString(quadMatch); + this.quadMatchListenerMap[hash]?.forEach((callback) => { listenersToNotify.add(callback); }); - delete this.tripleMatchListenerMap[hash]; + delete this.quadMatchListenerMap[hash]; }); }); listenersToNotify.forEach((listener) => { diff --git a/packages/solid-react/src/ldoHooks/useSubject.ts b/packages/solid-react/src/ldoHooks/useSubject.ts index 704842a..7fb414c 100644 --- a/packages/solid-react/src/ldoHooks/useSubject.ts +++ b/packages/solid-react/src/ldoHooks/useSubject.ts @@ -1,4 +1,5 @@ -import type { SubjectType } from "@ldo/jsonld-dataset-proxy"; +import { defaultGraph } from "@ldo/rdf-utils"; +import type { SubjectNode } from "@ldo/rdf-utils"; import { ContextUtil, JsonldDatasetProxyBuilder, @@ -8,11 +9,10 @@ import { LdoBuilder } from "@ldo/ldo"; import { useLdoContext } from "../LdoContext"; import { useCallback, useEffect, useMemo, useState } from "react"; import { TrackingProxyContext } from "./helpers/TrackingProxyContext"; -import { defaultGraph } from "@rdfjs/data-model"; export function useSubject( shapeType: ShapeType, - subject: string | SubjectType, + subject: string | SubjectNode, ): [Type, undefined] | [undefined, Error] { const { dataset, updateManager } = useLdoContext(); diff --git a/packages/solid-react/src/useLdo.ts b/packages/solid-react/src/useLdo.ts index 9e95238..679ac32 100644 --- a/packages/solid-react/src/useLdo.ts +++ b/packages/solid-react/src/useLdo.ts @@ -8,16 +8,15 @@ import type { DataResource } from "./document/resource/dataResource/DataResource import type { BinaryResource } from "./document/resource/binaryResource/BinaryResource"; import type { ContainerResource } from "./document/resource/dataResource/containerResource/ContainerResource"; import type { AccessRules } from "./document/accessRules/AccessRules"; -import type { SubjectType } from "@ldo/jsonld-dataset-proxy"; import type { DatasetChanges } from "@ldo/subscribable-dataset"; -import type { Quad } from "@rdfjs/types"; +import type { Quad, SubjectNode } from "@ldo/rdf-utils"; export interface UseLdoReturn { changeData(input: Type, ...resources: Resource[]): Type; commitData(input: LdoBase): Promise; createData( shapeType: ShapeType, - subject: string | SubjectType, + subject: string | SubjectNode, ...resources: Resource[] ): Type; dataset: LdoDataset; diff --git a/packages/solid/package.json b/packages/solid/package.json index 98b20a9..c0e9363 100644 --- a/packages/solid/package.json +++ b/packages/solid/package.json @@ -24,16 +24,13 @@ "homepage": "https://github.com/o-development/devtool-boilerplate#readme", "devDependencies": { "@ldo/cli": "^0.0.0", - "@ldo/jsonld-dataset-proxy": "^0.0.0", - "@rdfjs/types": "^1.1.0", "@types/jest": "^29.0.3", "ts-jest": "^29.0.2" }, "dependencies": { - "@inrupt/solid-client": "^1.29.0", "@ldo/dataset": "^0.0.0", "@ldo/ldo": "^0.0.0", - "@ldo/subscribable-dataset": "^0.0.0", + "@ldo/rdf-utils": "^0.0.0", "cross-fetch": "^3.1.6" } } \ No newline at end of file diff --git a/packages/solid/src/SolidLdoDataset.ts b/packages/solid/src/SolidLdoDataset.ts index 93812db..71842c3 100644 --- a/packages/solid/src/SolidLdoDataset.ts +++ b/packages/solid/src/SolidLdoDataset.ts @@ -8,9 +8,9 @@ import type { DataResourceStore } from "./document/resource/dataResource/DataRes import type { ContainerResourceStore } from "./document/resource/dataResource/containerResource/ContainerResourceStore"; import type { AccessRulesStore } from "./document/accessRules/AccessRulesStore"; import type { BinaryResourceStore } from "./document/resource/binaryResource/BinaryResourceStore"; -import type { Dataset, DatasetFactory } from "@rdfjs/types"; +import type { Dataset, DatasetFactory } from "@ldo/rdf-utils"; import type { Resource } from "./document/resource/Resource"; -import { DocumentError } from "./document/errors/DocumentError"; +import type { DocumentError } from "./document/errors/DocumentError"; export interface SolidLdoDatasetArgs { dataResourceStore: DataResourceStore; diff --git a/packages/solid/src/createSolidLdoDataset.ts b/packages/solid/src/createSolidLdoDataset.ts index 3c1cdc8..fc161c4 100644 --- a/packages/solid/src/createSolidLdoDataset.ts +++ b/packages/solid/src/createSolidLdoDataset.ts @@ -1,5 +1,31 @@ -import { SolidLdoDataset } from "./SolidLdoDataset"; +import type { Dataset } from "@ldo/rdf-utils"; +import type { SolidLdoDataset } from "./SolidLdoDataset"; +import { AccessRulesStore } from "./document/accessRules/AccessRulesStore"; +import { BinaryResourceStore } from "./document/resource/binaryResource/BinaryResourceStore"; +import { DataResourceStore } from "./document/resource/dataResource/DataResourceStore"; +import { ContainerResourceStore } from "./document/resource/dataResource/containerResource/ContainerResourceStore"; -export function createSolidLdoDataset(): SolidLdoDataset { - throw new Error("Not Implemented"); +export interface CreateSolidLdoDatasetOptions { + fetch?: typeof fetch; + dataset?: Dataset; +} + +export function createSolidLdoDataset( + options?: CreateSolidLdoDatasetOptions, +): SolidLdoDataset { + const finalFetch = fetch || vbhyg + + // Ingnoring this because we're setting up circular dependencies + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const dependencies: LdoContextData = { + onDocumentError, + fetch: finalFetch, + dataset: ldoDataset, + updateManager: new UpdateManager(), + }; + const binaryResourceStore = new BinaryResourceStore(dependencies); + const dataResourceStore = new DataResourceStore(dependencies); + const containerResourceStore = new ContainerResourceStore(dependencies); + const accessRulesStore = new AccessRulesStore(dependencies); } diff --git a/packages/solid/src/document/resource/dataResource/DataResource.ts b/packages/solid/src/document/resource/dataResource/DataResource.ts index 78fc585..44b0a84 100644 --- a/packages/solid/src/document/resource/dataResource/DataResource.ts +++ b/packages/solid/src/document/resource/dataResource/DataResource.ts @@ -3,10 +3,12 @@ import type { ResourceDependencies } from "../Resource"; import { Resource } from "../Resource"; import { DocumentFetchError } from "../../errors/DocumentFetchError"; import { DocumentError } from "../../errors/DocumentError"; -import { namedNode, quad as createQuad } from "@rdfjs/data-model"; -import type { DatasetChanges } from "@ldo/subscribable-dataset"; -import type { Quad } from "@rdfjs/types"; -import { changesToSparqlUpdate } from "../../../util/changesToSparqlUpdate"; +import { + namedNode, + quad as createQuad, + changesToSparqlUpdate, +} from "@ldo/rdf-utils"; +import type { DatasetChanges, Quad } from "@ldo/rdf-utils"; import type { SolidLdoDataset } from "../../../SolidLdoDataset"; export interface DataResourceDependencies extends ResourceDependencies { diff --git a/packages/solid/src/util/splitChangesByGraph.ts b/packages/solid/src/util/splitChangesByGraph.ts index 3aebff2..5d119ab 100644 --- a/packages/solid/src/util/splitChangesByGraph.ts +++ b/packages/solid/src/util/splitChangesByGraph.ts @@ -1,25 +1,23 @@ -import type { DatasetChanges } from "@ldo/subscribable-dataset"; import { createDataset } from "@ldo/dataset"; -import type { GraphType } from "@ldo/jsonld-dataset-proxy"; -import type { Quad } from "@rdfjs/types"; -import { defaultGraph, namedNode, quad as createQuad } from "@rdfjs/data-model"; +import type { GraphNode, DatasetChanges, Quad } from "@ldo/rdf-utils"; +import { defaultGraph, namedNode, quad as createQuad } from "@ldo/rdf-utils"; -export function graphNodeToString(graphNode: GraphType): string { +export function graphNodeToString(graphNode: GraphNode): string { return graphNode.termType === "DefaultGraph" ? "defaultGraph()" : graphNode.value; } -export function stringToGraphNode(input: string): GraphType { +export function stringToGraphNode(input: string): GraphNode { return input === "defaultGraph()" ? defaultGraph() : namedNode(input); } export function splitChangesByGraph( changes: DatasetChanges, -): Map> { +): Map> { const changesMap: Record> = {}; changes.added?.forEach((quad) => { - const graphHash = graphNodeToString(quad.graph as GraphType); + const graphHash = graphNodeToString(quad.graph as GraphNode); if (!changesMap[graphHash]) { changesMap[graphHash] = {}; } @@ -32,7 +30,7 @@ export function splitChangesByGraph( }); changes.removed?.forEach((quad) => { - const graphHash = graphNodeToString(quad.graph as GraphType); + const graphHash = graphNodeToString(quad.graph as GraphNode); if (!changesMap[graphHash]) { changesMap[graphHash] = {}; } @@ -44,7 +42,7 @@ export function splitChangesByGraph( ); }); - const finalMap = new Map>(); + const finalMap = new Map>(); Object.entries(changesMap).forEach(([key, value]) => { finalMap.set(stringToGraphNode(key), value); }); diff --git a/packages/subscribable-dataset/example/extendedDatasetExample.ts b/packages/subscribable-dataset/example/extendedDatasetExample.ts deleted file mode 100644 index b696017..0000000 --- a/packages/subscribable-dataset/example/extendedDatasetExample.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { createDataset } from "../src"; -import { quad, namedNode, literal } from "@rdfjs/data-model"; -// Required for advanced features: -import { dataset as initializeDatasetCore } from "@rdfjs/dataset"; -import { ExtendedDatasetFactory } from "../src"; -import type { - Dataset, - Quad, - DatasetCoreFactory, - DatasetCore, -} from "@rdfjs/types"; - -/** - * Create a dataset with default settings - */ -const defaultDataset = createDataset(); - -/** - * Create a dataset with default settings and initialized values - */ -const initializedQuads = [ - quad( - namedNode("http://example.org/cartoons#Tom"), - namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#type"), - namedNode("http://example.org/cartoons#Cat"), - ), - quad( - namedNode("http://example.org/cartoons#Tom"), - namedNode("http://example.org/cartoons#name"), - literal("Tom"), - ), -]; -const defaultDataset2 = createDataset(initializedQuads); - -/** - * (Advanced Feature) Create a dataset by injecting a chosen datasetCore and datasetCoreFactory - */ -const datasetFactory: DatasetCoreFactory = { - dataset: (quads?: Dataset | Quad[]): DatasetCore => { - return initializeDatasetCore( - Array.isArray(quads) ? quads : quads?.toArray(), - ); - }, -}; -const extendedDatasetFactory = new ExtendedDatasetFactory(datasetFactory); -const customDataset = extendedDatasetFactory.dataset(initializedQuads); - -/** - * Do all the methods of the RDFJS Dataset interface. For a full list of methods, go to - * https://rdf.js.org/dataset-spec/#data-interfaces - */ -defaultDataset.add( - quad( - namedNode("http://example.org/cartoons#Miuki"), - namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#type"), - namedNode("http://example.org/cartoons#Cat"), - ), -); -const combinedDataset = defaultDataset.union(defaultDataset2); -const differenceDataset = combinedDataset.difference(customDataset); -// Prints true because "defaultDataset2" and "customDataset" have equal values -// combinedDataset = defaultDataset ∪ defaultDataset2 -// differenceDatasset = defaultDataset \ customDataset -// Therefore differenceDataset == defaultDataset -console.log(differenceDataset.equals(defaultDataset)); diff --git a/packages/subscribable-dataset/example/loadDataExample.ts b/packages/subscribable-dataset/example/loadDataExample.ts deleted file mode 100644 index 62fe024..0000000 --- a/packages/subscribable-dataset/example/loadDataExample.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { serializedToDataset, serializedToSubscribableDataset } from "../src"; - -async function run(): Promise { - // Create an ExtendedDataset using Turtle - const turtleData = ` - @prefix : <#>. - @prefix elem: . - @prefix card: . - - :this - elem:author card:me. - `; - const turtleDataset = await serializedToDataset(turtleData, { - baseIRI: - "https://jackson.solidcommunity.net/IndividualChats/jackson.solidcommunity.net/index.ttl#", - // NOTE: the "format" field isn't required because Turtle is the default parser - }); - - // Create a SubcribableDataset using JSON-LD - const jsonLdData = [ - { - "@id": - "https://jackson.solidcommunity.net/IndividualChats/jackson.solidcommunity.net/index.ttl#this", - "http://purl.org/dc/elements/1.1/author": [ - { - "@id": "https://jackson.solidcommunity.net/profile/card#me", - }, - ], - }, - { - "@id": "https://jackson.solidcommunity.net/profile/card#me", - }, - ]; - const jsonLdDataset = await serializedToSubscribableDataset( - JSON.stringify(jsonLdData), - { - baseIRI: - "https://jackson.solidcommunity.net/IndividualChats/jackson.solidcommunity.net/index.ttl#", - format: "application/json-ld", - }, - ); - // Returns true because the input data describes the same triple. - console.log(turtleDataset.equals(jsonLdDataset)); -} -run(); diff --git a/packages/subscribable-dataset/example/subscribableDatasetExample.ts b/packages/subscribable-dataset/example/subscribableDatasetExample.ts index f2a35f9..ad48329 100644 --- a/packages/subscribable-dataset/example/subscribableDatasetExample.ts +++ b/packages/subscribable-dataset/example/subscribableDatasetExample.ts @@ -1,7 +1,6 @@ -import type { DatasetChanges } from "../src"; import { createSubscribableDataset } from "../src"; -import { quad, namedNode, literal } from "@rdfjs/data-model"; -import type { Dataset } from "@rdfjs/types"; +import { quad, namedNode, literal } from "@ldo/rdf-utils"; +import type { Dataset, DatasetChanges } from "@ldo/rdf-utils"; // Create an empty subscribable dataset const subscribableDataset = createSubscribableDataset(); diff --git a/packages/subscribable-dataset/package.json b/packages/subscribable-dataset/package.json index 30e7ea8..d2f1664 100644 --- a/packages/subscribable-dataset/package.json +++ b/packages/subscribable-dataset/package.json @@ -7,9 +7,7 @@ "build": "tsc --project tsconfig.build.json", "watch": "tsc --watch", "test": "jest --coverage", - "example:extendedDataset": "ts-node ./example/extendedDatasetExample.ts", "example:subscribableDataset": "ts-node ./example/subscribableDatasetExample.ts", - "example:loadData": "ts-node ./example/loadDataExample.ts", "prepublishOnly": "npm run test && npm run build", "lint": "eslint src/** --fix --no-error-on-unmatched-pattern" }, @@ -24,26 +22,17 @@ }, "homepage": "https://github.com/o-development/o-dataset-pack#readme", "devDependencies": { - "@rdfjs/types": "^1.0.1", + "@rdfjs/dataset": "^1.1.0", "@types/jest": "^27.0.3", "@types/jsonld": "^1.5.6", - "@types/n3": "^1.10.4", "@types/rdfjs__dataset": "^1.0.4", - "@types/readable-stream": "^2.3.13", "jest": "^27.4.5", "ts-jest": "^27.1.2", "ts-node": "^9.1.1" }, "dependencies": { "@ldo/dataset": "^0.0.0", - "@rdfjs/data-model": "^1.2.0", - "@rdfjs/dataset": "^1.1.0", - "buffer": "^6.0.3", - "n3": "^1.10.0", - "readable-stream": "^4.2.0" - }, - "overrides": { - "readable-stream": "^4.2.0" + "@ldo/rdf-utils": "^0.0.0" }, "files": [ "dist" diff --git a/packages/subscribable-dataset/src/ProxyTransactionalDataset.ts b/packages/subscribable-dataset/src/ProxyTransactionalDataset.ts index 45b42ef..0395a79 100644 --- a/packages/subscribable-dataset/src/ProxyTransactionalDataset.ts +++ b/packages/subscribable-dataset/src/ProxyTransactionalDataset.ts @@ -1,9 +1,11 @@ -import type { Dataset, BaseQuad, Term, DatasetFactory } from "@rdfjs/types"; import type { - BulkEditableDataset, + Dataset, + BaseQuad, + Term, + DatasetFactory, DatasetChanges, - TransactionalDataset, -} from "./types"; +} from "@ldo/rdf-utils"; +import type { BulkEditableDataset, TransactionalDataset } from "./types"; import { ExtendedDataset } from "@ldo/dataset"; /** diff --git a/packages/subscribable-dataset/src/WrapperSubscribableDataset.ts b/packages/subscribable-dataset/src/WrapperSubscribableDataset.ts index ab9d827..a7f894a 100644 --- a/packages/subscribable-dataset/src/WrapperSubscribableDataset.ts +++ b/packages/subscribable-dataset/src/WrapperSubscribableDataset.ts @@ -1,15 +1,15 @@ import { EventEmitter } from "events"; +import { namedNode, blankNode, defaultGraph } from "@ldo/rdf-utils"; import type { + DatasetChanges, Dataset, BaseQuad, Stream, Term, DatasetFactory, -} from "@rdfjs/types"; -import { namedNode, blankNode, defaultGraph } from "@rdfjs/data-model"; +} from "@ldo/rdf-utils"; import type { SubscribableTerms, - DatasetChanges, nodeEventListener, SubscribableDataset, TransactionalDataset, diff --git a/packages/subscribable-dataset/src/WrapperSubscribableDatasetFactory.ts b/packages/subscribable-dataset/src/WrapperSubscribableDatasetFactory.ts index 785ee73..7c9a84e 100644 --- a/packages/subscribable-dataset/src/WrapperSubscribableDatasetFactory.ts +++ b/packages/subscribable-dataset/src/WrapperSubscribableDatasetFactory.ts @@ -1,4 +1,4 @@ -import type { DatasetFactory, BaseQuad, Dataset } from "@rdfjs/types"; +import type { DatasetFactory, BaseQuad, Dataset } from "@ldo/rdf-utils"; import WrapperSubscribableDataset from "./WrapperSubscribableDataset"; /** diff --git a/packages/subscribable-dataset/src/createWrapperSubscribableDataset.ts b/packages/subscribable-dataset/src/createWrapperSubscribableDataset.ts index 68833de..1c2333c 100644 --- a/packages/subscribable-dataset/src/createWrapperSubscribableDataset.ts +++ b/packages/subscribable-dataset/src/createWrapperSubscribableDataset.ts @@ -1,4 +1,4 @@ -import type { Dataset, DatasetFactory, Quad } from "@rdfjs/types"; +import type { Dataset, DatasetFactory, Quad } from "@ldo/rdf-utils"; import type { WrapperSubscribableDataset } from "."; import { createDataset } from "@ldo/dataset"; import WrapperSubscribableDatasetFactory from "./WrapperSubscribableDatasetFactory"; diff --git a/packages/subscribable-dataset/src/createWrapperSubscribableDatasetFromSerializedInput.ts b/packages/subscribable-dataset/src/createWrapperSubscribableDatasetFromSerializedInput.ts index 81d6b95..d1cca57 100644 --- a/packages/subscribable-dataset/src/createWrapperSubscribableDatasetFromSerializedInput.ts +++ b/packages/subscribable-dataset/src/createWrapperSubscribableDatasetFromSerializedInput.ts @@ -1,5 +1,4 @@ -import type { ParserOptions } from "n3"; -import type { Quad } from "@rdfjs/types"; +import type { ParserOptions, Quad } from "@ldo/rdf-utils"; import { createDatasetFromSerializedInput } from "@ldo/dataset"; import { createWrapperSubscribableDatasetFactory } from "./createWrapperSubscribableDataset"; import type WrapperSubscribableDataset from "./WrapperSubscribableDataset"; diff --git a/packages/subscribable-dataset/src/types.ts b/packages/subscribable-dataset/src/types.ts index c8c4a59..a4ec4ee 100644 --- a/packages/subscribable-dataset/src/types.ts +++ b/packages/subscribable-dataset/src/types.ts @@ -1,11 +1,9 @@ import type { Dataset, - NamedNode, - BlankNode, - DefaultGraph, BaseQuad, -} from "@rdfjs/types"; - + DatasetChanges, + QuadMatch, +} from "@ldo/rdf-utils"; /** * An event listeners for nodes @@ -47,7 +45,7 @@ export interface SubscribableDataset * @returns */ addListener( - eventName: DatasetEventMatch, + eventName: QuadMatch, listener: nodeEventListener, ): this; @@ -59,7 +57,7 @@ export interface SubscribableDataset * @returns true if the event had listeners, false otherwise. */ emit( - eventName: DatasetEventMatch, + eventName: QuadMatch, dataset: Dataset, datasetChanges: DatasetChanges, ): boolean; @@ -67,7 +65,7 @@ export interface SubscribableDataset /** * Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols. */ - eventNames(): DatasetEventMatch[]; + eventNames(): QuadMatch[]; /** * Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to events.defaultMaxListeners. @@ -77,42 +75,33 @@ export interface SubscribableDataset /** * Returns the number of listeners listening to the event named eventName. */ - listenerCount(eventName: DatasetEventMatch): number; + listenerCount(eventName: QuadMatch): number; /** * Returns a copy of the array of listeners for the event named eventName. */ - listeners(eventName: DatasetEventMatch): nodeEventListener[]; + listeners(eventName: QuadMatch): nodeEventListener[]; /** * Alias for emitter.removeListener() */ - off( - eventName: DatasetEventMatch, - listener: nodeEventListener, - ): void; + off(eventName: QuadMatch, listener: nodeEventListener): void; /** * Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times. */ - on( - eventName: DatasetEventMatch, - listener: nodeEventListener, - ): this; + on(eventName: QuadMatch, listener: nodeEventListener): this; /** * Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked. */ - once( - eventName: DatasetEventMatch, - listener: nodeEventListener, - ): this; + once(eventName: QuadMatch, listener: nodeEventListener): this; /** * Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times. */ prependListener( - eventName: DatasetEventMatch, + eventName: QuadMatch, listener: nodeEventListener, ): this; @@ -120,20 +109,20 @@ export interface SubscribableDataset * Adds a one-time listener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked. */ prependOnceListener( - eventName: DatasetEventMatch, + eventName: QuadMatch, listener: nodeEventListener, ): this; /** * Removes all listeners, or those of the specified eventName. */ - removeAllListeners(eventName: DatasetEventMatch): this; + removeAllListeners(eventName: QuadMatch): this; /** * Removes the specified listener from the listener array for the event named eventName. */ removeListener( - eventName: DatasetEventMatch, + eventName: QuadMatch, listener: nodeEventListener, ): this; @@ -145,7 +134,7 @@ export interface SubscribableDataset /** * Returns a copy of the array of listeners for the event named eventName, including any wrappers (such as those created by .once()). */ - rawListeners(eventName: DatasetEventMatch): nodeEventListener[]; + rawListeners(eventName: QuadMatch): nodeEventListener[]; /** * ================================================================== diff --git a/packages/subscribable-dataset/test/ProxyTransactionalDataset.test.ts b/packages/subscribable-dataset/test/ProxyTransactionalDataset.test.ts index 8a33d2f..aad1a29 100644 --- a/packages/subscribable-dataset/test/ProxyTransactionalDataset.test.ts +++ b/packages/subscribable-dataset/test/ProxyTransactionalDataset.test.ts @@ -1,13 +1,13 @@ +import { namedNode, literal, quad } from "@ldo/rdf-utils"; import type { Dataset, DatasetCoreFactory, Quad, DatasetCore, -} from "@rdfjs/types"; +} from "@ldo/rdf-utils"; import type { BulkEditableDataset } from "../src"; import { ExtendedDatasetFactory } from "@ldo/dataset"; import { ProxyTransactionalDataset } from "../src"; -import { namedNode, literal, quad } from "@rdfjs/data-model"; import datasetCoreFactory from "@rdfjs/dataset"; describe("ProxyTransactionalDataset", () => { diff --git a/packages/subscribable-dataset/test/WrapperSubscribableDataset.test.ts b/packages/subscribable-dataset/test/WrapperSubscribableDataset.test.ts index aed799a..ab6bec7 100644 --- a/packages/subscribable-dataset/test/WrapperSubscribableDataset.test.ts +++ b/packages/subscribable-dataset/test/WrapperSubscribableDataset.test.ts @@ -7,8 +7,8 @@ import { quad, defaultGraph, blankNode, -} from "@rdfjs/data-model"; -import type { Quad, BlankNode } from "@rdfjs/types"; +} from "@ldo/rdf-utils"; +import type { Quad, BlankNode } from "@ldo/rdf-utils"; import testDataset from "@ldo/dataset/test/dataset.testHelper"; describe("WrapperSubscribableDataset", () => {