diff --git a/processors/file-utils-ts/.eslintignore b/processors/file-utils-ts/.eslintignore new file mode 100644 index 0000000..dd87e2d --- /dev/null +++ b/processors/file-utils-ts/.eslintignore @@ -0,0 +1,2 @@ +node_modules +build diff --git a/processors/file-utils-ts/.eslintrc.json b/processors/file-utils-ts/.eslintrc.json new file mode 100644 index 0000000..bc3072f --- /dev/null +++ b/processors/file-utils-ts/.eslintrc.json @@ -0,0 +1,27 @@ +{ + "env": { + "browser": true, + "es2021": true + }, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "prettier" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module" + }, + "plugins": ["@typescript-eslint"], + "rules": { + "indent": ["error", 2], + "linebreak-style": ["error", "unix"], + "quotes": ["error", "double"], + "semi": ["error", "always"], + "@typescript-eslint/no-unused-vars": "warn", + "@typescript-eslint/ban-types": "off", + "default-case": "error", + "no-constant-condition": "off" + } +} diff --git a/processors/file-utils-ts/.gitignore b/processors/file-utils-ts/.gitignore new file mode 100644 index 0000000..53478c3 --- /dev/null +++ b/processors/file-utils-ts/.gitignore @@ -0,0 +1,178 @@ +# Outputs +lib + +# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore + +# Logs + +logs +_.log +npm-debug.log_ +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Caches + +.cache + +# Diagnostic reports (https://nodejs.org/api/report.html) + +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# Runtime data + +pids +_.pid +_.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover + +lib-cov + +# Coverage directory used by tools like istanbul + +coverage +*.lcov + +# nyc test coverage + +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) + +.grunt + +# Bower dependency directory (https://bower.io/) + +bower_components + +# node-waf configuration + +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) + +build/Release + +# Dependency directories + +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) + +web_modules/ + +# TypeScript cache + +*.tsbuildinfo + +# Optional npm cache directory + +.npm + +# Optional eslint cache + +.eslintcache + +# Optional stylelint cache + +.stylelintcache + +# Microbundle cache + +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history + +.node_repl_history + +# Output of 'npm pack' + +*.tgz + +# Yarn Integrity file + +.yarn-integrity + +# dotenv environment variable files + +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) + +.parcel-cache + +# Next.js build output + +.next +out + +# Nuxt.js build / generate output + +.nuxt +dist + +# Gatsby files + +# Comment in the public line in if your project uses Gatsby and not Next.js + +# https://nextjs.org/blog/next-9-1#public-directory-support + +# public + +# vuepress build output + +.vuepress/dist + +# vuepress v2.x temp and cache directory + +.temp + +# Docusaurus cache and generated files + +.docusaurus + +# Serverless directories + +.serverless/ + +# FuseBox cache + +.fusebox/ + +# DynamoDB Local files + +.dynamodb/ + +# TernJS port file + +.tern-port + +# Stores VSCode versions used for testing VSCode extensions + +.vscode-test + +# yarn v2 + +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store diff --git a/processors/file-utils-ts/.npmignore b/processors/file-utils-ts/.npmignore new file mode 100644 index 0000000..349c45f --- /dev/null +++ b/processors/file-utils-ts/.npmignore @@ -0,0 +1,2 @@ +* +!lib diff --git a/processors/file-utils-ts/.prettierignore b/processors/file-utils-ts/.prettierignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/processors/file-utils-ts/.prettierignore @@ -0,0 +1 @@ +node_modules diff --git a/processors/file-utils-ts/.prettierrc.json b/processors/file-utils-ts/.prettierrc.json new file mode 100644 index 0000000..c4664cb --- /dev/null +++ b/processors/file-utils-ts/.prettierrc.json @@ -0,0 +1,6 @@ +{ + "trailingComma": "all", + "tabWidth": 2, + "semi": true, + "singleQuote": false +} diff --git a/processors/file-utils-ts/index.ttl b/processors/file-utils-ts/index.ttl new file mode 100644 index 0000000..3b25c96 --- /dev/null +++ b/processors/file-utils-ts/index.ttl @@ -0,0 +1,80 @@ +@prefix rdf: . +@prefix rdfc: . +@prefix sh: . +@prefix xsd: . + +rdfc:FileUtilsTS + a rdfc:Package ; + rdfc:version "0.0.1" ; + rdfc:author "Jens Pots" ; + rdfc:description "Utility processors for interacting with the file system." ; + rdfc:repo "https://github.com/rdf-connect/orchestrator.git" ; + rdfc:license "MIT" ; + rdfc:prepare "npm run build" ; + rdfc:processors + rdfc:FileReaderTS , + rdfc:FileWriterTS . + +rdfc:FileReaderTS + a rdfc:Processor ; + rdfc:target rdfc:NodeRunner ; + rdfc:entrypoint <./build/FileReader.js> . + +rdfc:FileWriterTS + a rdfc:Processor ; + rdfc:target rdfc:NodeRunner ; + rdfc:entrypoint <./build/FileWriter.js> . + +[] + a sh:NodeShape ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:targetClass rdfc:FileReaderTS ; + sh:property [ + sh:maxCount 1 ; + sh:minCount 1 ; + sh:name "arguments" ; + sh:path rdfc:arguments ; + sh:node [ + sh:property [ + sh:maxCount 1 ; + sh:minCount 1 ; + sh:name "outgoing" ; + sh:path rdfc:outgoing ; + sh:class rdfc:Writer; + ], [ + sh:maxCount 1 ; + sh:minCount 1 ; + sh:name "path" ; + sh:path rdfc:path ; + sh:datatype xsd:string ; + ] ; + ] ; + ]. + +[] + a sh:NodeShape ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:targetClass rdfc:FileWriterTS ; + sh:property [ + sh:maxCount 1 ; + sh:minCount 1 ; + sh:name "arguments" ; + sh:path rdfc:arguments ; + sh:node [ + sh:property [ + sh:maxCount 1 ; + sh:minCount 1 ; + sh:name "incoming" ; + sh:path rdfc:incoming ; + sh:class rdfc:Reader; + ], [ + sh:maxCount 1 ; + sh:minCount 1 ; + sh:name "path" ; + sh:path rdfc:path ; + sh:datatype xsd:string ; + ] ; + ] ; + ]. diff --git a/processors/file-utils-ts/package-lock.json b/processors/file-utils-ts/package-lock.json new file mode 100644 index 0000000..49c7763 --- /dev/null +++ b/processors/file-utils-ts/package-lock.json @@ -0,0 +1,7979 @@ +{ + "name": "shacl-validator-ts", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "shacl-validator-ts", + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "@rdfjs/formats": "^4.0.0", + "@rdfjs/serializer-turtle": "^1.1.3", + "jvm-runner-ts": "file:../../runners/nodejs", + "rdf-ext": "^2.5.2", + "shacl-engine": "^1.0.0" + }, + "devDependencies": { + "@types/rdf-ext": "^2.5.0", + "@typescript-eslint/eslint-plugin": "^7.15.0", + "@typescript-eslint/parser": "^7.15.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "prettier": "^3.3.2", + "tsc-alias": "^1.8.10", + "typescript": "^5.5.3", + "vite-tsconfig-paths": "^4.3.2", + "vitest": "^2.0.0" + } + }, + "../../runners/nodejs": { + "name": "jvm-runner-ts", + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "@grpc/grpc-js": "^1.10.9", + "@grpc/proto-loader": "^0.7.13", + "require-from-url": "^3.1.3", + "rxjs": "^7.8.1" + }, + "bin": { + "client": "build/runtime/index.js" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^7.13.0", + "@typescript-eslint/parser": "^7.13.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "prettier": "^3.3.2", + "ts-proto": "^1.180.0", + "tsc-alias": "^1.8.10", + "typescript": "^5.5.3", + "vite": "^5.3.1", + "vite-tsconfig-paths": "^4.3.2", + "vitest": "^1.6.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@bergos/jsonparse": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@bergos/jsonparse/-/jsonparse-1.4.1.tgz", + "integrity": "sha512-vXIT0nzZGX/+yMD5bx2VhTzc92H55tPoehh1BW/FZHOndWGFddrH3MAfdx39FRc7irABirW6EQaGxIJYV6CGuA==", + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3" + } + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@comunica/actor-abstract-mediatyped": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-mediatyped/-/actor-abstract-mediatyped-3.2.0.tgz", + "integrity": "sha512-Nv78acoUv/+FnaKo1JB11E5OWwaKIQ9QiPKn9lQL0y+Lod8kNwJ3X7/D830qnutcIe3bl+sAqxvt9CQtyPP26g==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/actor-abstract-parse": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-parse/-/actor-abstract-parse-2.10.0.tgz", + "integrity": "sha512-0puCWF+y24EDOOAUUVVbC+tOf4UV+LzEbqi8T5v25jcVGCXyTqfra+bDywfrcv3adrVp18jLCJ46ycaH5xhy9Q==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "readable-stream": "^4.4.2" + } + }, + "node_modules/@comunica/actor-abstract-parse/node_modules/@comunica/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz", + "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.10.0", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@comunica/actor-abstract-parse/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-abstract-path": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-path/-/actor-abstract-path-3.2.0.tgz", + "integrity": "sha512-5s7UHAK14P65c68k+/5T3hViVPB9hDHXh9HsIGZnlKJtEBDCpnS0qurs4X/8ULCGRaKCeuWDNm6oy0k9Oae+vQ==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "rdf-data-factory": "^1.1.1", + "rdf-string": "^1.6.1", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-context-preprocess-convert-shortcuts": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-context-preprocess-convert-shortcuts/-/actor-context-preprocess-convert-shortcuts-3.2.0.tgz", + "integrity": "sha512-8cNZVmByELdJ4V49B7Aimo2gB18BGgQF4KTHJXV61OgP6101qy8EgoMXR8SqdA7YIilCoJUAxTdN2O6mE7k//Q==", + "license": "MIT", + "dependencies": { + "@comunica/bus-context-preprocess": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/actor-context-preprocess-query-source-identify": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-context-preprocess-query-source-identify/-/actor-context-preprocess-query-source-identify-3.2.0.tgz", + "integrity": "sha512-RrGUYu6yQoQv9SZwLQ/IpZ5GFOopkLDPquByaX9Ov0SMOlb3MJ93HFeiRGBwvNtjxrdqtWxyqhMJzz550zsBFw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-context-preprocess": "^3.2.0", + "@comunica/bus-http-invalidate": "^3.2.0", + "@comunica/bus-query-source-identify": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "lru-cache": "^10.0.0" + } + }, + "node_modules/@comunica/actor-context-preprocess-query-source-skolemize": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-context-preprocess-query-source-skolemize/-/actor-context-preprocess-query-source-skolemize-3.2.0.tgz", + "integrity": "sha512-QxW6VaKPZ2XN0PHVmfCb1H5n7NB0ZvOwYR5+YpqeqHhcrH93DUjSkzx3CDL4VDLK/C8DU46fVD4Xn+ONUyalFQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-context-preprocess": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/data-factory": "^3.1.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "rdf-data-factory": "^1.1.2", + "rdf-terms": "^1.11.0", + "sparqlalgebrajs": "^4.3.0" + } + }, + "node_modules/@comunica/actor-context-preprocess-set-defaults": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-context-preprocess-set-defaults/-/actor-context-preprocess-set-defaults-3.2.0.tgz", + "integrity": "sha512-mjnt2ifXQccMl6u3cvMiH/zWFcm6envHWCtJQfFayBROP4tCuvv1SEUThFiiVSVqAmmrcVxGEVQWFLu/6oY+/w==", + "license": "MIT", + "dependencies": { + "@comunica/bus-context-preprocess": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/actor-context-preprocess-source-to-destination": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-context-preprocess-source-to-destination/-/actor-context-preprocess-source-to-destination-3.2.0.tgz", + "integrity": "sha512-ph/n7obnwQ4VWOAaBlC7eZLZyrBXrmzFD1l6EfsB3lSbxhgmA2wvnIu/QlKxOp2KCErhu/ijnVQpe5i7ZHqU+Q==", + "license": "MIT", + "dependencies": { + "@comunica/bus-context-preprocess": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/actor-hash-bindings-sha1": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-hash-bindings-sha1/-/actor-hash-bindings-sha1-3.2.0.tgz", + "integrity": "sha512-sLeZXk2YFLEuZAzu8UsZwdehWwIblDiD+whiAqgTkfM9YMaD0w3YHAzyEVPgmknPSIKhrO3ZPafLTRei/DZeQg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-hash-bindings": "^3.2.0", + "@comunica/core": "^3.2.0", + "canonicalize": "^2.0.0", + "hash.js": "^1.1.7", + "rdf-string": "^1.6.1" + } + }, + "node_modules/@comunica/actor-http-fetch": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@comunica/actor-http-fetch/-/actor-http-fetch-2.10.2.tgz", + "integrity": "sha512-siHGx0TMVNb2gXvOroq0B3JE6uuS+4s+MsDkntqdBNVigwVYqLpNSKEaL5is8pputFfohJfDQY06lAHbfDNEcw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.10.2", + "@comunica/context-entries": "^2.10.0", + "@comunica/mediatortype-time": "^2.10.0", + "abort-controller": "^3.0.0", + "cross-fetch": "^4.0.0" + } + }, + "node_modules/@comunica/actor-http-fetch/node_modules/@comunica/bus-http": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@comunica/bus-http/-/bus-http-2.10.2.tgz", + "integrity": "sha512-MAYRF6uEBAuJ9dCPW2Uyne7w3lNwXFXKfa14XuPG5DFTDpgo/Z2pWupPrBsA1eIWMNJ6WOG6QyEv4rllSIBqlg==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "@smessie/readable-web-to-node-stream": "^3.0.3", + "is-stream": "^2.0.1", + "readable-stream-node-to-web": "^1.0.1", + "web-streams-ponyfill": "^1.4.2" + } + }, + "node_modules/@comunica/actor-http-fetch/node_modules/@comunica/context-entries": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/context-entries/-/context-entries-2.10.0.tgz", + "integrity": "sha512-lmCYCcXxW8C6ecFH2whZCt31NT1ejb0P/sbytK7f4ctyA06Q8iYFEcYE4eWOXMdpfkwkcnz31x9XL77OGeSC2Q==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "@comunica/types": "^2.10.0", + "@rdfjs/types": "*", + "jsonld-context-parser": "^2.2.2", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-http-fetch/node_modules/@comunica/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz", + "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.10.0", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@comunica/actor-http-fetch/node_modules/@comunica/mediatortype-time": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/mediatortype-time/-/mediatortype-time-2.10.0.tgz", + "integrity": "sha512-nBz1exxrja1Tj8KSlSevG4Hw2u09tTh6gtNfVjI76i/e7muu4RUWVhi9b8PcwBNAfuUqRl+5OgOSa2X4W+6QlA==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0" + } + }, + "node_modules/@comunica/actor-http-fetch/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-http-fetch/node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/@comunica/actor-http-fetch/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@comunica/actor-http-proxy": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-http-proxy/-/actor-http-proxy-3.2.0.tgz", + "integrity": "sha512-DToKOyQ7Twx01GUaWazUpMU145yWG+vqNu9IElzLK9xgd/Suoq4SM43zi9yqkAl98q7q3z7uIfsXsMZ583uTDA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/mediatortype-time": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/actor-init-query": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-init-query/-/actor-init-query-3.2.0.tgz", + "integrity": "sha512-Uvvz3yhaFHw82T/udiy54Wi7CEaizpy+L9FsOLe9E0h0pFCc5/P3ipPPd2T82lXFdEg/QwXsybTCoA5IpWj1jA==", + "license": "MIT", + "dependencies": { + "@comunica/actor-http-proxy": "^3.2.0", + "@comunica/bus-http-invalidate": "^3.2.0", + "@comunica/bus-init": "^3.2.0", + "@comunica/bus-query-process": "^3.2.0", + "@comunica/bus-query-result-serialize": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/logger-pretty": "^3.2.0", + "@comunica/runner": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.9.0", + "negotiate": "^1.0.1", + "rdf-quad": "^1.5.0", + "streamify-string": "^1.0.1", + "yargs": "^17.7.2" + }, + "optionalDependencies": { + "process": "^0.11.10" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-assign-sources-exhaustive": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-assign-sources-exhaustive/-/actor-optimize-query-operation-assign-sources-exhaustive-3.2.0.tgz", + "integrity": "sha512-EwgbY4upROw4My+OngknYSnDYmR+vv9GE1qzDMPNkYMU7kvwfciruAIY1MH24be8VwVCzQOJsCyZGacVDFARQA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-update-quads": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-bgp-to-join": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-bgp-to-join/-/actor-optimize-query-operation-bgp-to-join-3.2.0.tgz", + "integrity": "sha512-dD2bFU09oLVnmy87lQ6TrXBQzpfyioxWo5CUAAR7lJZg8ZK0wrS6wYzLEaEyAtrP4GgQKNb4Xh/vBAp26AyGNQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-describe-to-constructs-subject": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-describe-to-constructs-subject/-/actor-optimize-query-operation-describe-to-constructs-subject-3.2.0.tgz", + "integrity": "sha512-5rt7aH0lC7ZcAgkyVgrSv7v/SOSial4Oqc1E/t/TXRTqBfQS15yswVKZUdPB/mMiv9CLsHN8EBNsvPiEhmUbww==", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "rdf-data-factory": "^1.1.2", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-filter-pushdown": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-filter-pushdown/-/actor-optimize-query-operation-filter-pushdown-3.2.0.tgz", + "integrity": "sha512-ZW+AsMwkJairyob/sMn11jcr2xxAFu239ubF7t3Ag4es7/2F1Xm5MsWQZ2QWcmG1nJ/itFsB28Y90FwJ/bH7HA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "rdf-terms": "^1.11.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-group-sources": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-group-sources/-/actor-optimize-query-operation-group-sources-3.2.0.tgz", + "integrity": "sha512-IWa5EGm8UCFw7VILuOUgFhcBGsRZiXr8FCEM5AZTOVYePODVMT9RjgSYmohbOEomThBwhOdpzdXUcYWYR7AzGg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-join-bgp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-join-bgp/-/actor-optimize-query-operation-join-bgp-3.2.0.tgz", + "integrity": "sha512-pW6VN6Egc54TpJd6palZSb2GtxwMjDF8qn70PVXZs1slckhysKwUe2jWVe7yxsltDQdZT6QnjGbsj+dwpTPDhQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-join-connected": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-join-connected/-/actor-optimize-query-operation-join-connected-3.2.0.tgz", + "integrity": "sha512-Eri5VAfzj0607nE7e9VM1AL591iHSm3y1/pfxQZ4qKvScdE6tSvKvPVoKEcLF7pMte+NpRkKthtQoEHIpFGUWQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-prune-empty-source-operations": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-prune-empty-source-operations/-/actor-optimize-query-operation-prune-empty-source-operations-3.2.0.tgz", + "integrity": "sha512-ECkM0iVzwWcku2V4lmgXv52RN6tQd52weqK3CwmB+0NV0CSZ6pobn3S2eTWjHLcR46paZw7kVf7R+yMfKCFlHw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "rdf-data-factory": "^1.1.2", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-rewrite-add": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-rewrite-add/-/actor-optimize-query-operation-rewrite-add-3.2.0.tgz", + "integrity": "sha512-6x7V2/fuj2mejCn1R7WjJEdCtUDSsRzXgU3p1NlI3jfKKGUPP+a/fKBmzFXEEA9iRSf9pD2jZ99RwKiy21C1gg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.2", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-rewrite-copy": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-rewrite-copy/-/actor-optimize-query-operation-rewrite-copy-3.2.0.tgz", + "integrity": "sha512-mD+0m0ZXSdvuRLKaNbDBAS0FMARWtGg4mvTWZ5YjU/H30GTUMe6syVhyD5L+U33DXs8cxPKBH7hK1VIlbch29A==", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-rewrite-move": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-optimize-query-operation-rewrite-move/-/actor-optimize-query-operation-rewrite-move-3.2.0.tgz", + "integrity": "sha512-l9bmAcIZrMKtUe7xPu/cxf+mAMV0NFcpG+zzSyXMPKUkBLbIxo/jfl7r0DsOo/R2sfgmJcXg6J3A5s378YPO7w==", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-ask": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-ask/-/actor-query-operation-ask-3.2.0.tgz", + "integrity": "sha512-tDx72zMcIYltvU9L7jgyb97PECNNZZe4duYN4DA7E3zpJSmYygsElsKmSLHGU+X7msnCrdjJ8iMiZMuo5HuE+Q==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-bgp-join": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-bgp-join/-/actor-query-operation-bgp-join-3.2.0.tgz", + "integrity": "sha512-mNZCIe+iD3SSxoMRA7l2AyQm8WlyEasrc4l1hNi1KGt9Jtrvna6ilkeCkKYcmVQINHwe0bPzCzUSwxQL8Fhtnw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-construct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-construct/-/actor-query-operation-construct-3.2.0.tgz", + "integrity": "sha512-zdxG0wylMYGFHKP3AmCP75gCx9EFMk+ul9jQ4V5i746SnzoLY2sWbEF1exv6qT8VVuInROU0iDmdVtr+GcTuJA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "rdf-data-factory": "^1.1.1", + "rdf-terms": "^1.11.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-distinct-hash": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-distinct-hash/-/actor-query-operation-distinct-hash-3.2.0.tgz", + "integrity": "sha512-dJtUrHA8CCReJzLaceNPL0+NXJcXo0ac9S35um9U06Zx2HMARtzTk7QLrQB5j+qlAhkkmFFCtRfNP45kU+74SQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-hash-bindings": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-extend": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-extend/-/actor-query-operation-extend-3.2.0.tgz", + "integrity": "sha512-EzXwpAD3tHjrfeZLOceeD7FvEphLUtnMCQjlXunEJlDQ7Kfs1IVE0UPk2qqFPURTFUTsIE4eNREHopVnG5wL1A==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/expression-evaluator": "^3.1.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-filter": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-filter/-/actor-query-operation-filter-3.2.0.tgz", + "integrity": "sha512-9J4j0FHlYTybvppovwZgANZU+BS/3k38cgNSOB9rELuzeW/9DQCtGkZ37rqkczD0RK/PXOTAeN0lagbaskHqYA==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/expression-evaluator": "^3.1.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-from-quad": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-from-quad/-/actor-query-operation-from-quad-3.2.0.tgz", + "integrity": "sha512-m7pAnng2xAtARVVtDCln1vn7M6WwpZC841GMf12EfaYLdabJ7ixtFkCNToO4VoHQ915IiK1n6EkwOv5ZPu+lHg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-group": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-group/-/actor-query-operation-group-3.2.0.tgz", + "integrity": "sha512-0w1FIC37I09+s6BfJ7miFeQhkFZ0KpptP8LefskIpaLY3KwzHVLXxHw7R6Mir2ktQJUxA0vCQWy0JF1ERQOuiQ==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-hash-bindings": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/expression-evaluator": "^3.1.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-join": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-join/-/actor-query-operation-join-3.2.0.tgz", + "integrity": "sha512-F0gublbcoF0Q5JfGgY/cLm03rGxtB5Z1eAP+rwJwHKl1a50pi8NB6QdP7PHW/akzHIujS5qdeXWD0Fc+LUHqiA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-leftjoin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-leftjoin/-/actor-query-operation-leftjoin-3.2.0.tgz", + "integrity": "sha512-+9C5VAMsBYu1DyJCOPZdEJusbQIgP4KQ2fLO6Z/G8EnYUHQckZWuD3KST6iPmfq2e7IcJCjUbsmclogIMcLhFQ==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/expression-evaluator": "^3.1.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-minus": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-minus/-/actor-query-operation-minus-3.2.0.tgz", + "integrity": "sha512-EpTMCJanLzQ1w4Ez5TTyUrzsMcx8AtuYR4B4sxW9tDMhGIip0jvygOSobK/9ijRu6iNbqlEnx06yo2CY5/9A8w==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-nop": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-nop/-/actor-query-operation-nop-3.2.0.tgz", + "integrity": "sha512-UaObMdxe6fBrO8fLKwT1/M58xdBj6NJ0B80cjBIixsaAj5tfLWoCo4ElRW010o82HgfqMb6OZoSacszdOneBaA==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-orderby": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-orderby/-/actor-query-operation-orderby-3.2.0.tgz", + "integrity": "sha512-HBIdQPKkw9zjF/4S8XjJf9Ml3g2Qmwu23XfbtRb81lR+w3XowwGf0mnqNvP7PJvZXa3f6VpqeD4hf9d0vbSqNA==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/expression-evaluator": "^3.1.0", + "@comunica/types": "^3.2.0", + "asynciterator": "^3.9.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-path-alt": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-alt/-/actor-query-operation-path-alt-3.2.0.tgz", + "integrity": "sha512-g1G0Y6Ca6f8CMQBicRU39V1X0i5MkyXo4nxUHgcgAUZlX4H/mbTFL1ub2h/RRxxUlOeSIoJh4gu1927xiT/kDA==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^3.2.0", + "@comunica/actor-query-operation-union": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-metadata-accumulate": "^3.2.0", + "@comunica/types": "^3.2.0", + "asynciterator": "^3.9.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-path-inv": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-inv/-/actor-query-operation-path-inv-3.2.0.tgz", + "integrity": "sha512-LWX4v7Hdxn6ECJN5ziVzPnRFHrhnE/fxrwt5Xd0eEJ//gKa+Q2EvHWMr+fZ5d2aj5Gt5VORLXyR26nudU278Iw==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-path-link": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-link/-/actor-query-operation-path-link-3.2.0.tgz", + "integrity": "sha512-kFAPlIG1TXjc9pVuHGe++GtUduRdUnvED/rjCZRUyi5kQ3EAsRN/+mBnnA9K0IFvuqOXBTPyl/E6vX+jiVx41Q==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-path-nps": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-nps/-/actor-query-operation-path-nps-3.2.0.tgz", + "integrity": "sha512-3PccEuWOkCdG3V/8h0xuxemN1X2HAvddzuCG0IVqZXVa4LcEsqGy6WzUaDQ4nnoHO3WgTVNiuxzIsVsLYuoUpQ==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-path-one-or-more": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-one-or-more/-/actor-query-operation-path-one-or-more-3.2.0.tgz", + "integrity": "sha512-cWUsO2J+SO96zbe9OqTMwaU8zuvTP4EWmvK5oEH4Y77PooqxX0beN7Yxq+mOpeoatP9cF7GuUUE/aWLPS0ivlg==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^3.2.0", + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/types": "^3.2.0", + "asynciterator": "^3.9.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-path-seq": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-seq/-/actor-query-operation-path-seq-3.2.0.tgz", + "integrity": "sha512-O4eBLRwALAOd3Y92G6afjKRvls17T/6Q7Ed8d1LsAErGQd1UhkAkxnXRt/4y4gGSrrm9b0X2VovkZPFj6//okg==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-path-zero-or-more": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-zero-or-more/-/actor-query-operation-path-zero-or-more-3.2.0.tgz", + "integrity": "sha512-BVW7sbOYQgdAuOF7o7DZo9eDj88rslJH0IIVZK+wZa8qYv3N06wJTTe+hfGqAUDu/Upt5IMv7RpmcHeTgIRvIQ==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^3.2.0", + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/types": "^3.2.0", + "asynciterator": "^3.9.0", + "rdf-string": "^1.6.1", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-path-zero-or-one": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-path-zero-or-one/-/actor-query-operation-path-zero-or-one-3.2.0.tgz", + "integrity": "sha512-5gCr4SNcg8Rxrj5toGopfGQ22uEHxUcEELO7dp2myMpy+kbx5o3OfkhQLJ7b6or6wGIMpTazTpuytQi6jg5caQ==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^3.2.0", + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "asynciterator": "^3.9.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-project": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-project/-/actor-query-operation-project-3.2.0.tgz", + "integrity": "sha512-cmPSGqnSTuAmQgNDGkMn7hxcCe2cfjM42xqav34KItjZJ74zZmsjr9NKALArDDL60K8sUQ0d1zAWkZUqCTnkfg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/data-factory": "^3.1.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-reduced-hash": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-reduced-hash/-/actor-query-operation-reduced-hash-3.2.0.tgz", + "integrity": "sha512-79CcRBtjj8R9doin5LaglX86zYiuv08IrnJ1cz9jZYV84KlkL6W+IA4xbgo+8pOrd64oyuhKqrjbSPmwHR1lZQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-hash-bindings": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "lru-cache": "^10.0.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-service": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-service/-/actor-query-operation-service-3.2.0.tgz", + "integrity": "sha512-1ncG7gDzUqM7bkYAKw87WpV4BoWFbs+2q+CpvGVhK2mXEtyJ5BxDVvtsmYPoungiUoLi8dO2a05jwUuQDzjZYg==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-query-source-identify": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "asynciterator": "^3.9.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-slice": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-slice/-/actor-query-operation-slice-3.2.0.tgz", + "integrity": "sha512-7xmTTZvwoSxqjB1Dg8HDeql1cs63IU0lajDshyQB+7QjcjKk7okiiEIp1bJQ/bEK7cnQh3ghQy7ASBkX1a8IOw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-source": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-source/-/actor-query-operation-source-3.2.0.tgz", + "integrity": "sha512-1pCTabkSrtml5mI0JohFbNwNikv0nWJJgmCoEV5eHRqDZjoeWYWY3vNQ2DTBcugp61BOIFIvWjp2azQ3TngEmQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-union": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-union/-/actor-query-operation-union-3.2.0.tgz", + "integrity": "sha512-FXrns4QXpiXzXJA0R+zI1RH8N/urjduC6qZGST0Y7Rm20eHtMbrmzLjxoq2YXHKuyWUMUVuTKXwAaxVOdkNh/g==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-metadata-accumulate": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "rdf-terms": "^1.11.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-update-clear": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-clear/-/actor-query-operation-update-clear-3.2.0.tgz", + "integrity": "sha512-o2iJRRFcH4iu4MfGtd3eplLP29tBiXDI3A+99g2j8MFOjx9li1K76/i3hCp/IuArwRVvKKywHCH8b9zSzSKFig==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-update-quads": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-update-compositeupdate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-compositeupdate/-/actor-query-operation-update-compositeupdate-3.2.0.tgz", + "integrity": "sha512-A5EOe8R/GhkftPa4MZwkLhZ3DInr1yGZHd3PP+OLjOid4wPE+PUHjHqs/RGSe5tsUCD+8uld6uiyMR8zGh5Cdw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-update-create": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-create/-/actor-query-operation-update-create-3.2.0.tgz", + "integrity": "sha512-5q82/s9NSyo/PQpy9yws8Q5R3qIOIvd2HMXlkL6GrRzMOsSjCqZRFZn9Oek23YyM61O9G5DGReL9gb4s9kxcYg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-update-quads": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-update-deleteinsert": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-deleteinsert/-/actor-query-operation-update-deleteinsert-3.2.0.tgz", + "integrity": "sha512-+0hGNGWYHyplP58H0nkIg9k3xfVTqP/TDe1SCLs0YDL45MxVY259/rzwOmQU2hsNb9SY5UY0puTCuxP40+9N2A==", + "license": "MIT", + "dependencies": { + "@comunica/actor-query-operation-construct": "^3.2.0", + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-update-quads": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-update-drop": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-drop/-/actor-query-operation-update-drop-3.2.0.tgz", + "integrity": "sha512-JSi4kc1rANifUSgRwwlK2k19+RweoCOK2QflBfZZM3xoRtZ/NMs/dqONM9ULbmpzEhTexqm9ISZYniqt7DfKBQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-update-quads": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-update-load": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-update-load/-/actor-query-operation-update-load-3.2.0.tgz", + "integrity": "sha512-XXTb3HX415hI8VxRz/yZTGT3Zw7x/3pwHtrPy/py/jVb6FDLRkLDvjTC2t5Aq4faVddTOhy+RSdZjuvHMain2A==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-query-source-identify": "^3.2.0", + "@comunica/bus-rdf-update-quads": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-operation-values": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-operation-values/-/actor-query-operation-values-3.2.0.tgz", + "integrity": "sha512-gXx/E5Ny8qUjUr+LiIKgwIzDbr6lauyP6pSRsPkyWxb7/b1/V4HHoUWcXAH0r6T/v6t5Iz8vdHh0rnn/gXb//Q==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "asynciterator": "^3.9.0", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-query-parse-sparql": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-parse-sparql/-/actor-query-parse-sparql-3.2.0.tgz", + "integrity": "sha512-3Q0iWc4qiQwW5FdBgaBhMnW7TGjCvF147fkQ8rKF9O5DYsv5L+7m17W+ejTcRzazfuAhFq/m8aoOzjtxvs+9kA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-parse": "^3.2.0", + "@comunica/core": "^3.2.0", + "@types/sparqljs": "^3.1.3", + "sparqlalgebrajs": "^4.3.3", + "sparqljs": "^3.7.1" + } + }, + "node_modules/@comunica/actor-query-process-sequential": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-process-sequential/-/actor-query-process-sequential-3.2.0.tgz", + "integrity": "sha512-5Tuec7sL2YJ4NECl1gD771bF01gPUel7Be02KCzDCOjfLX1WgeJBCgNN24N2A+TTlEEikDmkdOXthRs9+fiJEg==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-context-preprocess": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-optimize-query-operation": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-query-parse": "^3.2.0", + "@comunica/bus-query-process": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "sparqlalgebrajs": "^4.3.0" + } + }, + "node_modules/@comunica/actor-query-source-identify-rdfjs": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-query-source-identify-rdfjs/-/actor-query-source-identify-rdfjs-3.2.0.tgz", + "integrity": "sha512-eltseOlfE3AblFK3vO8vYDmnm18JpcnOQUOjy3muJlNV1TrJb+Bol1ps7sfijm6Dwbyf860xG6LnCxcp7XOeLw==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-source-identify": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "rdf-data-factory": "^1.1.1", + "rdf-terms": "^1.11.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-rdf-join-entries-sort-cardinality": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-entries-sort-cardinality/-/actor-rdf-join-entries-sort-cardinality-3.2.0.tgz", + "integrity": "sha512-FJMQS0IvddMy6Cam+CYyAU7R9oaV8KCLjcY2cRMCsRpkUDoMZx5+8VMk0uMjLnkCDiYpW3Z1DLADcKbNdfOMcA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join-entries-sort": "^3.2.0", + "@comunica/core": "^3.2.0" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-hash": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-hash/-/actor-rdf-join-inner-hash-3.2.0.tgz", + "integrity": "sha512-T79SzUze9TB68TjA/VL298gADPbiYY+ZQfGhHrnKed4NTgT2UJf5A/MdwKlxTuE9VA4DehdOjWsoibxu0Q4u3w==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "asyncjoin": "^1.2.3" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-multi-bind": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-multi-bind/-/actor-rdf-join-inner-multi-bind-3.2.0.tgz", + "integrity": "sha512-1ZeiB45gLGY45ySHd2xUQX3068O7r7rZqCy0yiUa+wqqXXV+qSto7njJaL+6D6LvgZ2xIM0xqSLXJE7XkqQzJg==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/bus-rdf-join-entries-sort": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "asynciterator": "^3.9.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-multi-bind-source": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-multi-bind-source/-/actor-rdf-join-inner-multi-bind-source-3.2.0.tgz", + "integrity": "sha512-1ABdS4BwgcX4aS7txDW+alUi+5VBFa8Aq7zaRNf/uRWz5uhwGxUJ7bkvvt1xdLk1AnMZrGrKej5qTqfDdlSsTw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/bus-rdf-join-entries-sort": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-multi-empty": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-multi-empty/-/actor-rdf-join-inner-multi-empty-3.2.0.tgz", + "integrity": "sha512-WEFUYKyQqQNCtZnaWVL/DDS1EKZQNdPspy62v4zIc0gVq4bOYSsbIid6uXD85tYRiBwZXBV5zyUFtDhUGcwZbQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-multi-smallest": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-multi-smallest/-/actor-rdf-join-inner-multi-smallest-3.2.0.tgz", + "integrity": "sha512-f7cqFhj07arQvBBKCOdfvzYoC+Sf+SXGtPScmh1Q7y7V06vBEfw/8RebyNHFdMGzeJsgOikepQ8pV8VouRNKDA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/bus-rdf-join-entries-sort": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-multi-smallest-filter-bindings": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-multi-smallest-filter-bindings/-/actor-rdf-join-inner-multi-smallest-filter-bindings-3.2.0.tgz", + "integrity": "sha512-k7eT3oFb/ptdf7QYgSbtI9AynO/BmAhcYcrATwZVwH8oeT4wNgNYKGT2kf3ime0GIFrm96ghT+hcVlV/2Yo3JQ==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/bus-rdf-join-entries-sort": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-nestedloop": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-nestedloop/-/actor-rdf-join-inner-nestedloop-3.2.0.tgz", + "integrity": "sha512-YCRt5gMDznmEqg/bgj5m1BhIw0Syg51oC+PUMpi8x+yLBG4TCZ/QDzIGyYmuJZP3ZTSexGDOykB9FgXFCGFE4Q==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "asyncjoin": "^1.2.3" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-none": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-none/-/actor-rdf-join-inner-none-3.2.0.tgz", + "integrity": "sha512-kQBIyHxj24rgvZmddgSBdig+3rjmnkZE/eD77NNAlVlj0j+LqDimw8VngTzeXzXeezIvYFS/Pry5p7Gp9Knm6w==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/metadata": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-single": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-single/-/actor-rdf-join-inner-single-3.2.0.tgz", + "integrity": "sha512-4ZpmZ70xTh5mZhZZrV382Tn4vdLXDwVtjNrSBM2IyvuEEoJXFPAp7jYspMKSsyggLYBwo9QSo8b4V8wnx7IG/g==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-symmetrichash": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-inner-symmetrichash/-/actor-rdf-join-inner-symmetrichash-3.2.0.tgz", + "integrity": "sha512-7f92WPtAzftmbQh8l9/qUH+34k+mgci4wc650VposIClXhXhqDytX6lYUeA424jcvxwaern8TcZlxQ514T5ESw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "asyncjoin": "^1.2.3" + } + }, + "node_modules/@comunica/actor-rdf-join-minus-hash": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-minus-hash/-/actor-rdf-join-minus-hash-3.2.0.tgz", + "integrity": "sha512-BkViDtOsXgylgNTEWCrSAu3R0L1hzOpwWkBCK/meTkBFuxn+AZkq+C7A7NKU9RKvb4rflXmUBQUxFzrEMCfY6Q==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/actor-rdf-join-minus-hash-undef": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-minus-hash-undef/-/actor-rdf-join-minus-hash-undef-3.2.0.tgz", + "integrity": "sha512-IenqlNCS4Oa8D4NQiOKKc8XMXIpMG37ewb09W1SWEpagtv5hO0Upegh9IYBWVQqBGKNS2CUyR6QpuMtrggi0QA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "rdf-string": "^1.6.1" + } + }, + "node_modules/@comunica/actor-rdf-join-optional-bind": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-optional-bind/-/actor-rdf-join-optional-bind-3.2.0.tgz", + "integrity": "sha512-hopy6JJBQRaPF73julTHrlbR2M4nqus1xqh7HkZlURdn0V0PoXfzW0TTL/qBQfJo+k2qgPSATj4bShEjIAX6aQ==", + "license": "MIT", + "dependencies": { + "@comunica/actor-rdf-join-inner-multi-bind": "^3.2.0", + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-rdf-join-optional-hash": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-optional-hash/-/actor-rdf-join-optional-hash-3.2.0.tgz", + "integrity": "sha512-fE3bCnuvvwBS38iIyA3LyJrKAa7NW1YLQxul52h5syhTsLZRnoDa6L8W7JkF2+pooB3fX0vBUNBLyCST+/g+GQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "rdf-string": "^1.6.3" + } + }, + "node_modules/@comunica/actor-rdf-join-optional-nestedloop": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-optional-nestedloop/-/actor-rdf-join-optional-nestedloop-3.2.0.tgz", + "integrity": "sha512-pVhm9NhRKQTsHOoT9O9ZDzow6gPxHlRIKaBjR2GJXhM0Gl12Kac0KpymDWvOAMh0r4FbLHVecm58WlUS9r+VZg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0", + "asyncjoin": "^1.2.3" + } + }, + "node_modules/@comunica/actor-rdf-join-selectivity-variable-counting": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-join-selectivity-variable-counting/-/actor-rdf-join-selectivity-variable-counting-3.2.0.tgz", + "integrity": "sha512-B4RIpi2jW109nkZ6k7YA15LA+AtoXWHqaHh2R1pRDOpNjiCY6U65WuaAEAX4OXtV02OBA9R8wcAFNNGMf5VnEw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join-selectivity": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/mediatortype-accuracy": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/actor-rdf-metadata-accumulate-cancontainundefs": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-cancontainundefs/-/actor-rdf-metadata-accumulate-cancontainundefs-3.2.0.tgz", + "integrity": "sha512-O+F+eafJU/QOVH8mdhRuhbKmupB4bcQk3kFvwkry2PjUVO/wKyKWNULaZoXSe6DEEOtodUEH23JbFYJ+afSLLw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-accumulate": "^3.2.0", + "@comunica/core": "^3.2.0" + } + }, + "node_modules/@comunica/actor-rdf-metadata-accumulate-cardinality": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-cardinality/-/actor-rdf-metadata-accumulate-cardinality-3.2.0.tgz", + "integrity": "sha512-V+4S98cbEgAbGR+ioG+EFJzyffoU7+i0iN9QJnM/w5FGjnC91em+oxLU6KjCtrPAkq8i1vyZi0tT2sY2UbXqGg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-accumulate": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/actor-rdf-metadata-accumulate-pagesize": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-pagesize/-/actor-rdf-metadata-accumulate-pagesize-3.2.0.tgz", + "integrity": "sha512-32CV/hxmT5yO1b5T14gF6jVHHmfKszP/NtsK5Fm7OiHyVUdFmN+EIsKgwxyIqQ+P4J4dZfYpf6LffQPJWthUQA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-accumulate": "^3.2.0", + "@comunica/core": "^3.2.0" + } + }, + "node_modules/@comunica/actor-rdf-metadata-accumulate-requesttime": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-metadata-accumulate-requesttime/-/actor-rdf-metadata-accumulate-requesttime-3.2.0.tgz", + "integrity": "sha512-xpSdXkW1gIxPk0XRiCHh3AgbvAT5L3MBWoTt4UtzDjQsbeAb5nu5cztSodqRieVe/B75ips9M3hWWlGZZstr4w==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-accumulate": "^3.2.0", + "@comunica/core": "^3.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html/-/actor-rdf-parse-html-2.10.0.tgz", + "integrity": "sha512-zgImXKpc+BN1i6lQiN1Qhlb1HbKdMIeJMOys6qbzRIijdK8GkGGChwhQp7Cso3lY1Nf4K7M3jPLZeQXeED2w7g==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.10.0", + "@comunica/bus-rdf-parse-html": "^2.10.0", + "@comunica/core": "^2.10.0", + "@comunica/types": "^2.10.0", + "@rdfjs/types": "*", + "htmlparser2": "^9.0.0", + "readable-stream": "^4.4.2" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-microdata": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-microdata/-/actor-rdf-parse-html-microdata-2.10.0.tgz", + "integrity": "sha512-JLfiDauq4SmpI6TDS4HaHzI6iJe1j8lSk5FRRYK6YVEu8eO28jPmxQJiOiwbQiYqsjsV7kON/WIZSoUELoI4Ig==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse-html": "^2.10.0", + "@comunica/core": "^2.10.0", + "microdata-rdf-streaming-parser": "^2.0.1" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-microdata/node_modules/@comunica/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz", + "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.10.0", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-microdata/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-rdfa": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-rdfa/-/actor-rdf-parse-html-rdfa-2.10.0.tgz", + "integrity": "sha512-9K3iaws9+FGl50oZi53hqyzhwjNKZ3mIr2zg/TAJZoapKvc14cthH17zKSSJrqI/NgBStRmZhBBkXcwfu1CANw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse-html": "^2.10.0", + "@comunica/core": "^2.10.0", + "rdfa-streaming-parser": "^2.0.1" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-rdfa/node_modules/@comunica/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz", + "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.10.0", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-rdfa/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-script": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-html-script/-/actor-rdf-parse-html-script-2.10.0.tgz", + "integrity": "sha512-7XYqWchDquWnBLjG7rmmY+tdE81UZ8fPCU0Hn+vI39/MikNOpaiyr/ZYFqhogWFa9SkjmH0a7idVUzmjiwKRZQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.10.0", + "@comunica/bus-rdf-parse-html": "^2.10.0", + "@comunica/context-entries": "^2.10.0", + "@comunica/core": "^2.10.0", + "@comunica/types": "^2.10.0", + "@rdfjs/types": "*", + "readable-stream": "^4.4.2", + "relative-to-absolute-iri": "^1.0.7" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-script/node_modules/@comunica/context-entries": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/context-entries/-/context-entries-2.10.0.tgz", + "integrity": "sha512-lmCYCcXxW8C6ecFH2whZCt31NT1ejb0P/sbytK7f4ctyA06Q8iYFEcYE4eWOXMdpfkwkcnz31x9XL77OGeSC2Q==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "@comunica/types": "^2.10.0", + "@rdfjs/types": "*", + "jsonld-context-parser": "^2.2.2", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-script/node_modules/@comunica/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz", + "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.10.0", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-script/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html/node_modules/@comunica/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz", + "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.10.0", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-jsonld": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-jsonld/-/actor-rdf-parse-jsonld-2.10.2.tgz", + "integrity": "sha512-K4fvD0zMU22KkQCqIFVT5Oy2FREEZ9CAo9u6kOcsMxEvg9aHGIM6hkaXR8I+1JCx1mDuEj3zQ8joR4tQh8fYCw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.10.2", + "@comunica/bus-rdf-parse": "^2.10.0", + "@comunica/context-entries": "^2.10.0", + "@comunica/core": "^2.10.0", + "@comunica/types": "^2.10.0", + "jsonld-context-parser": "^2.2.2", + "jsonld-streaming-parser": "^3.0.1", + "stream-to-string": "^1.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-jsonld/node_modules/@comunica/bus-http": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@comunica/bus-http/-/bus-http-2.10.2.tgz", + "integrity": "sha512-MAYRF6uEBAuJ9dCPW2Uyne7w3lNwXFXKfa14XuPG5DFTDpgo/Z2pWupPrBsA1eIWMNJ6WOG6QyEv4rllSIBqlg==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "@smessie/readable-web-to-node-stream": "^3.0.3", + "is-stream": "^2.0.1", + "readable-stream-node-to-web": "^1.0.1", + "web-streams-ponyfill": "^1.4.2" + } + }, + "node_modules/@comunica/actor-rdf-parse-jsonld/node_modules/@comunica/context-entries": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/context-entries/-/context-entries-2.10.0.tgz", + "integrity": "sha512-lmCYCcXxW8C6ecFH2whZCt31NT1ejb0P/sbytK7f4ctyA06Q8iYFEcYE4eWOXMdpfkwkcnz31x9XL77OGeSC2Q==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "@comunica/types": "^2.10.0", + "@rdfjs/types": "*", + "jsonld-context-parser": "^2.2.2", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-jsonld/node_modules/@comunica/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz", + "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.10.0", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-jsonld/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-jsonld/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@comunica/actor-rdf-parse-n3": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-n3/-/actor-rdf-parse-n3-2.10.0.tgz", + "integrity": "sha512-o1MAbwJxW4Br2WCZdhFoRmAiOP4mfogeQqJ4nqlsOkoMtQ45EvLHsotb3Kqhuk5V+vsTxyK5v/a4zylGtcU7VQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.10.0", + "@comunica/types": "^2.10.0", + "n3": "^1.17.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-n3/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-rdfxml": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-rdfxml/-/actor-rdf-parse-rdfxml-2.10.0.tgz", + "integrity": "sha512-HoJN52shXY3cvYtsS0cpin9KXpW3L7g1leebyCRSqnlnHdJv5D6G0Ep8vyt2xhquKNbOQ7LnP5VhiDiqz73XDg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.10.0", + "@comunica/types": "^2.10.0", + "rdfxml-streaming-parser": "^2.2.3" + } + }, + "node_modules/@comunica/actor-rdf-parse-rdfxml/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-shaclc": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-shaclc/-/actor-rdf-parse-shaclc-2.10.0.tgz", + "integrity": "sha512-i6tmuZuS+RtDiSXpQc3s/PxtCqwIguo4ANmVB20PK4VWgQgBwoPG7LlNcJ0xmuH/3Bv6C2Agn18PLF6dZX+fKw==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.10.0", + "@comunica/types": "^2.10.0", + "@rdfjs/types": "*", + "asynciterator": "^3.8.1", + "readable-stream": "^4.4.2", + "shaclc-parse": "^1.4.0", + "stream-to-string": "^1.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-shaclc/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-xml-rdfa": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-parse-xml-rdfa/-/actor-rdf-parse-xml-rdfa-2.10.0.tgz", + "integrity": "sha512-68r/6B/fEyA1/OYleVuaPq47J+g4xJcJijpdL1wEj7CqjV+Xa+sDWRpNCyLcD/e1Y/g9UQmLz0ZnSpR00PFddA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.10.0", + "@comunica/types": "^2.10.0", + "rdfa-streaming-parser": "^2.0.1" + } + }, + "node_modules/@comunica/actor-rdf-parse-xml-rdfa/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-update-quads-rdfjs-store": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-rdf-update-quads-rdfjs-store/-/actor-rdf-update-quads-rdfjs-store-3.2.0.tgz", + "integrity": "sha512-0cHqi9EheloYXIDK4CMBEgFfPeJac99Suq8cYAokHH+IRC2QztF/8kmL1Crmgxv3JRF4Mwe+3z8xcciaaQt9dg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-update-quads": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "event-emitter-promisify": "^1.1.0", + "rdf-data-factory": "^1.1.1", + "rdf-string": "^1.6.1" + } + }, + "node_modules/@comunica/bindings-factory": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bindings-factory/-/bindings-factory-3.2.0.tgz", + "integrity": "sha512-0/Yd7WABPpK6Ifmv2YFKHtu6vr3vIyKaE2dg4uQKJ35bJxQxXp7PyEYpmys93cKeDdokZl1ejd08gtt36jzhkA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-merge-bindings-context": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "immutable": "^4.1.0", + "rdf-data-factory": "^1.1.1", + "rdf-string": "^1.6.1" + } + }, + "node_modules/@comunica/bus-context-preprocess": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-context-preprocess/-/bus-context-preprocess-3.2.0.tgz", + "integrity": "sha512-lSmBfv9AZRKsVsLxAA+vc1yXBRWi/Czpps7cMUCQm4SGim4HQ2itGqfenSkqi27xg4uuTSsERqSLNEsRRSAdbw==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/bus-hash-bindings": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-hash-bindings/-/bus-hash-bindings-3.2.0.tgz", + "integrity": "sha512-ESfMp0JncpgIO/1g/2Y7n2pFAS0eiE0On6gXhfhHmgFLWkERcutqXbbTToNVke0M74M29D60dbZwrrqe48MDDA==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/bus-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-http/-/bus-http-3.2.0.tgz", + "integrity": "sha512-t8f1sOSeqfzvTzCpp8rOzi7dycg2VRKzIM0Yp8kbcGuFzokP5mojaHqYQClikWBF5vFDDFmmhVvnewgkCQrAOA==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "is-stream": "^2.0.1", + "readable-from-web": "^1.0.0", + "readable-stream-node-to-web": "^1.0.1", + "stream-to-string": "^1.2.0", + "web-streams-ponyfill": "^1.4.2" + } + }, + "node_modules/@comunica/bus-http-invalidate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-http-invalidate/-/bus-http-invalidate-3.2.0.tgz", + "integrity": "sha512-SMBTK6iy0KB+YHTxW2vOnnm63EaPaCNJH58otcesZkP8PoDXxVNeMo6At8I0TKBUmiBsgBJWpyVW6pPJfElBRQ==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0" + } + }, + "node_modules/@comunica/bus-http/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@comunica/bus-init": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-init/-/bus-init-3.2.0.tgz", + "integrity": "sha512-szNt83bPwLqegerQjimR5fRJ39+hlfTpgjHMkh7PFhZhulSsjQEXJw82CF+ez9Nuq45rUbud0/9OOOrSWVh7Gw==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "readable-stream": "^4.4.2" + } + }, + "node_modules/@comunica/bus-merge-bindings-context": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-merge-bindings-context/-/bus-merge-bindings-context-3.2.0.tgz", + "integrity": "sha512-2C9pDE+ApECYQzjjSvFmaUCg5zTTp5gNHpjc7IHAzDBr1Q7EpjzuTY/WuRnL4YqErxa2WBhJDxbFDQtVwbFRkg==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/bus-optimize-query-operation": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-optimize-query-operation/-/bus-optimize-query-operation-3.2.0.tgz", + "integrity": "sha512-puIO6CPRDW6DckQF6aTTTDw2pY5ZR5qxQmW8Oy4DtwduQpQM2LOAzShNEm0GoHSkw0ICmL5pRXnnxIJOPC9/8w==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/bus-query-operation": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-query-operation/-/bus-query-operation-3.2.0.tgz", + "integrity": "sha512-mA+htBj6j0gVOCBfpOjA5TtGZOz9MUYIRh6YfeUV+GY8dgazybZEAA3qTzj3miLgyaQTZgEppl7/GCmESH6KJw==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/data-factory": "^3.1.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "rdf-data-factory": "^1.1.2", + "rdf-string": "^1.6.1", + "rdf-terms": "^1.11.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/bus-query-parse": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-query-parse/-/bus-query-parse-3.2.0.tgz", + "integrity": "sha512-RbdglRTdTWRQY3d4+cUsmyZghoME5rldUguX6f8mvtN8ElON6hZpcsS47XGLyp2y045rhqqm+GTjKGDamCTFNg==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@rdfjs/types": "*", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/bus-query-process": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-query-process/-/bus-query-process-3.2.0.tgz", + "integrity": "sha512-B2GGpo8nglz2o6WvGg45KglL7z3q5ddtdpxvSMLnwfahU+heNeUDnXdXyFUBfGowY5JoxU/eYfurlIFY422tag==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "sparqlalgebrajs": "^4.3.0" + } + }, + "node_modules/@comunica/bus-query-result-serialize": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-query-result-serialize/-/bus-query-result-serialize-3.2.0.tgz", + "integrity": "sha512-qecRGEWzCLoghcWKLeF0ZVEp+Fm+4FxY2hge0oyIjO/Kby9fbaSi+rIcbHFT7/nVyFYnxCDTuleTypqT9baPgw==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-mediatyped": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/bus-query-source-identify": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-query-source-identify/-/bus-query-source-identify-3.2.0.tgz", + "integrity": "sha512-jnzc8Eu9cP581+anrUt6aB0jHWj4LOecQGLZ/BKTOsuE365HMWTL697in+x30FUkoyTIsZMLLgs1L0krISs6mA==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "rdf-data-factory": "^1.1.2", + "rdf-string": "^1.6.3", + "rdf-terms": "^1.11.0", + "sparqlalgebrajs": "^4.3.0" + } + }, + "node_modules/@comunica/bus-rdf-join": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-join/-/bus-rdf-join-3.2.0.tgz", + "integrity": "sha512-Iq7xn4sSCNqTB2tBCGl90VzBghUDmhYfCOWgoiwBN0qb6SY/MtXanpg+cJEA/t3kSUJ+Lxp9oDcMatvBxnSZTQ==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join-entries-sort": "^3.2.0", + "@comunica/bus-rdf-join-selectivity": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/metadata": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0", + "rdf-data-factory": "^1.1.1", + "rdf-string": "^1.6.3" + } + }, + "node_modules/@comunica/bus-rdf-join-entries-sort": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-join-entries-sort/-/bus-rdf-join-entries-sort-3.2.0.tgz", + "integrity": "sha512-Lj25C1JE86x/+2bqMLO/qF+QIiiXAWUQOAM/bHdhExcYVbn8cYEzFOvewYlML8ujRoMpDXAwoQytJPm4a8CyEQ==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/bus-rdf-join-selectivity": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-join-selectivity/-/bus-rdf-join-selectivity-3.2.0.tgz", + "integrity": "sha512-cE/Jbx+VbyNXNhudOjArKWYBNFStWVPuCqJDbE4iqcy/1ODSPrVesnkakVLJzGMnZYvH7OHIcwtf2Vmf5PGK2Q==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@comunica/mediatortype-accuracy": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/bus-rdf-metadata-accumulate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-metadata-accumulate/-/bus-rdf-metadata-accumulate-3.2.0.tgz", + "integrity": "sha512-/o+G8To7jv9q/xv0LahiGTyAXITqFw9Ccu9Lq2940ryzxfz8z1ZeKw32k5MLS9092ufIPMW+JGO+Ge6Yd6ImqA==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/bus-rdf-parse": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-parse/-/bus-rdf-parse-2.10.0.tgz", + "integrity": "sha512-EgCMZACfTG/+mayQpExWt0HoBT32BBVC1aS1lC43fXKBTxJ8kYrSrorVUuMACoh4dQVGTb+7j1j4K0hGNVzXGA==", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-mediatyped": "^2.10.0", + "@comunica/actor-abstract-parse": "^2.10.0", + "@comunica/core": "^2.10.0", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/bus-rdf-parse-html": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-parse-html/-/bus-rdf-parse-html-2.10.0.tgz", + "integrity": "sha512-RZliz4TtKP63QggoohGuIkGb6lq0BoYJ4aztKtGldWtPAVP/pdEvlDpiZWLB/j19g7S2aDLNY/lJtZ5efM1tHQ==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/bus-rdf-parse-html/node_modules/@comunica/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz", + "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.10.0", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@comunica/bus-rdf-parse-html/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/bus-rdf-parse/node_modules/@comunica/actor-abstract-mediatyped": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/actor-abstract-mediatyped/-/actor-abstract-mediatyped-2.10.0.tgz", + "integrity": "sha512-0o6WBujsMnIVcwvRJv6Nj+kKPLZzqBS3On48rm01Rh9T1/My0E/buJMXwgcARKCfMonc2mJ9zxpPCh5ilGEU2A==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "@comunica/types": "^2.10.0" + } + }, + "node_modules/@comunica/bus-rdf-parse/node_modules/@comunica/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz", + "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.10.0", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@comunica/bus-rdf-parse/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/@comunica/bus-rdf-update-quads": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-rdf-update-quads/-/bus-rdf-update-quads-3.2.0.tgz", + "integrity": "sha512-u5hwSxw/oxaOEosF3oBq+bBqrU5FU/4UhNHWT9TZzpdy4Zi72u/KV8czuY6RC1YH5C2fp6CSS0NTIn34WNVcqQ==", + "license": "MIT", + "dependencies": { + "@comunica/actor-context-preprocess-query-source-skolemize": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0" + } + }, + "node_modules/@comunica/config-query-sparql": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/config-query-sparql/-/config-query-sparql-3.2.0.tgz", + "integrity": "sha512-WZzfi9uI7IBOxXpbcEGzdbVjhaxGuM5/j9sUOrE+XuoF4UnFV4QYB7X7uhHKoWHa/Cw4GvGZmvvjnHYlqaM/pA==", + "license": "MIT" + }, + "node_modules/@comunica/context-entries": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/context-entries/-/context-entries-3.2.0.tgz", + "integrity": "sha512-c97CoVmptgvkFZyIX6d7zU1lTtc2jl+zwm49HGQEK2fbiimR8jK7cMimWu5AFDICAR1VYh1lTIBIoI+72QZZ+w==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "jsonld-context-parser": "^2.2.2", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@comunica/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-3.2.0.tgz", + "integrity": "sha512-rfLWrbVISt2TXWu++dJa3F/mK+B2vCPL+KfIlzGTOyFPuYzDO303rh9FVs8XnViY7cTw6ph+PcZjWiO7qDDz6A==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^3.2.0", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@comunica/data-factory": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@comunica/data-factory/-/data-factory-3.1.0.tgz", + "integrity": "sha512-kNEgK+3HPzej8m53//RkZTq9WPYrja9CjrkJqvdgawpMTbg+zEeCoQZ3BGD0LiWiphADpyvYfRFCVpgcHjKvLQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/expression-evaluator": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@comunica/expression-evaluator/-/expression-evaluator-3.1.0.tgz", + "integrity": "sha512-zALZpPGYwSmP04Kxc2RkhYU0Ro6FUjChxlu028f9wcwJCVOLFPTtjt9WV6Qi6qa7E+DvGi7xLtOUvfbmxN7tMw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/spark-md5": "^3.0.2", + "@types/uuid": "^9.0.0", + "bignumber.js": "^9.0.1", + "hash.js": "^1.1.7", + "lru-cache": "^10.0.0", + "rdf-data-factory": "^1.1.2", + "rdf-string": "^1.6.3", + "relative-to-absolute-iri": "^1.0.6", + "spark-md5": "^3.0.1", + "sparqlalgebrajs": "^4.2.0", + "uuid": "^9.0.0" + } + }, + "node_modules/@comunica/logger-pretty": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/logger-pretty/-/logger-pretty-3.2.0.tgz", + "integrity": "sha512-bEroWCKxg8abvCB52EKdK59e7OPLkJBZsb3+y4oY6vXXvVqJCHBpL6btldIJcMaqVd6kDnQExcclEhtF5OWWRg==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^3.2.0", + "object-inspect": "^1.12.2", + "process": "^0.11.10" + } + }, + "node_modules/@comunica/logger-void": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/logger-void/-/logger-void-3.2.0.tgz", + "integrity": "sha512-PynYqPQfYy2jPig8RKNjVhsIhkSeWsntPfqRB1li5/mS44LSFnAFk2jAuqIjhQsCuWK7pOAxV6jLgHEfx8jR1g==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/mediator-all": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-all/-/mediator-all-3.2.0.tgz", + "integrity": "sha512-9s2X9LAR+YbdXsPG20tpLuYHpV2PH26pfpF/aqBWHct4TqkN8Ysglc+sv34KogMbteqKTTcoElA7yFdqh2IUtA==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0" + } + }, + "node_modules/@comunica/mediator-combine-pipeline": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-combine-pipeline/-/mediator-combine-pipeline-3.2.0.tgz", + "integrity": "sha512-1uyYbltcVsa79T9ocW2jELArNMrAlbtEdo88nnmW5pS9MzCyphYiuZx0vwTNZlRaK5Wu8ktWFfg0iSS19WtH4A==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/mediator-combine-union": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-combine-union/-/mediator-combine-union-3.2.0.tgz", + "integrity": "sha512-/PVHOgOoSx7AgYbou+PfL3nkDWZuJw0moy/dORhG4x75bDDiRbf7dtFC5fQxpu4mgvVeN7N1vyUprIKp+0OTBQ==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0" + } + }, + "node_modules/@comunica/mediator-join-coefficients-fixed": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-join-coefficients-fixed/-/mediator-join-coefficients-fixed-3.2.0.tgz", + "integrity": "sha512-LrouXAPjuOOmR38PuIkvCK6AHOviNDHlG6cMUMy/u/qTUk7FxSgkaFY3VZib1cy2GIDdzqFN4zoB1ndkzq4mpg==", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^3.2.0", + "@comunica/context-entries": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/mediatortype-join-coefficients": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/mediator-number": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-number/-/mediator-number-3.2.0.tgz", + "integrity": "sha512-jegC/uKp7G1FjQuqo5iWl61c0FSn+MJDeZrKYcQ/VJWbtgwdmfsfQ+/EbpR4OltCgtIIjd91bhT+fKMwn4jvmw==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0" + } + }, + "node_modules/@comunica/mediator-race": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-race/-/mediator-race-3.2.0.tgz", + "integrity": "sha512-vy7mMpZBrwUgb6SxP9lZNDC1C/ssV05wZyqDSUWsBvuDZgCglBMGx4HCXL+zXz8JGpXXPWPaFDdUM7qJHxgu9w==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0" + } + }, + "node_modules/@comunica/mediatortype-accuracy": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediatortype-accuracy/-/mediatortype-accuracy-3.2.0.tgz", + "integrity": "sha512-SEWFWgw68h4EvtrnPEK35iTMD7L1eOHnagMjJhqbDU960g7fSlMLjzdPu0PrxWSYBHdJknobrfwJH9t6vYriUw==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0" + } + }, + "node_modules/@comunica/mediatortype-join-coefficients": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediatortype-join-coefficients/-/mediatortype-join-coefficients-3.2.0.tgz", + "integrity": "sha512-vsgQfD2vz70hDx8DZJH6AHdSmL/NcftVS2+oyCXfb6k0XQ42yXCv4QWI60LCzqu0iu7TRSmxOGXGMknhMcI36w==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/mediatortype-time": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/mediatortype-time/-/mediatortype-time-3.2.0.tgz", + "integrity": "sha512-RBs3bfx80Glmk8NynkQU7mfT5BKqax6sYUZ7vVXYdyMMRPrZYEFIYyfIH6fPJZ4xblEah4BNRGueJoloj+MMpw==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^3.2.0" + } + }, + "node_modules/@comunica/metadata": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/metadata/-/metadata-3.2.0.tgz", + "integrity": "sha512-PXqVCL92IQBmEeAlcVlN431QNIBPL1f5AMJ2l2rM2y37AaTT6iWC8p7q5FD7icv6tpWSfz0yT+8RdRzNEoylsw==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^3.2.0", + "@rdfjs/types": "*", + "asynciterator": "^3.9.0" + } + }, + "node_modules/@comunica/query-sparql-rdfjs-lite": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/query-sparql-rdfjs-lite/-/query-sparql-rdfjs-lite-3.2.0.tgz", + "integrity": "sha512-RBm2zSY+KTwREEsEGJG9WNSt/Qf7enLPTBmZzdJ7LFMHNCfqNW7KBjkXwySoxzu0yN4qwlT4Dd3HhmSc3T7DNw==", + "license": "MIT", + "dependencies": { + "@comunica/actor-context-preprocess-convert-shortcuts": "^3.2.0", + "@comunica/actor-context-preprocess-query-source-identify": "^3.2.0", + "@comunica/actor-context-preprocess-query-source-skolemize": "^3.2.0", + "@comunica/actor-context-preprocess-set-defaults": "^3.2.0", + "@comunica/actor-context-preprocess-source-to-destination": "^3.2.0", + "@comunica/actor-hash-bindings-sha1": "^3.2.0", + "@comunica/actor-init-query": "^3.2.0", + "@comunica/actor-optimize-query-operation-assign-sources-exhaustive": "^3.2.0", + "@comunica/actor-optimize-query-operation-bgp-to-join": "^3.2.0", + "@comunica/actor-optimize-query-operation-describe-to-constructs-subject": "^3.2.0", + "@comunica/actor-optimize-query-operation-filter-pushdown": "^3.2.0", + "@comunica/actor-optimize-query-operation-group-sources": "^3.2.0", + "@comunica/actor-optimize-query-operation-join-bgp": "^3.2.0", + "@comunica/actor-optimize-query-operation-join-connected": "^3.2.0", + "@comunica/actor-optimize-query-operation-prune-empty-source-operations": "^3.2.0", + "@comunica/actor-optimize-query-operation-rewrite-add": "^3.2.0", + "@comunica/actor-optimize-query-operation-rewrite-copy": "^3.2.0", + "@comunica/actor-optimize-query-operation-rewrite-move": "^3.2.0", + "@comunica/actor-query-operation-ask": "^3.2.0", + "@comunica/actor-query-operation-bgp-join": "^3.2.0", + "@comunica/actor-query-operation-construct": "^3.2.0", + "@comunica/actor-query-operation-distinct-hash": "^3.2.0", + "@comunica/actor-query-operation-extend": "^3.2.0", + "@comunica/actor-query-operation-filter": "^3.2.0", + "@comunica/actor-query-operation-from-quad": "^3.2.0", + "@comunica/actor-query-operation-group": "^3.2.0", + "@comunica/actor-query-operation-join": "^3.2.0", + "@comunica/actor-query-operation-leftjoin": "^3.2.0", + "@comunica/actor-query-operation-minus": "^3.2.0", + "@comunica/actor-query-operation-nop": "^3.2.0", + "@comunica/actor-query-operation-orderby": "^3.2.0", + "@comunica/actor-query-operation-path-alt": "^3.2.0", + "@comunica/actor-query-operation-path-inv": "^3.2.0", + "@comunica/actor-query-operation-path-link": "^3.2.0", + "@comunica/actor-query-operation-path-nps": "^3.2.0", + "@comunica/actor-query-operation-path-one-or-more": "^3.2.0", + "@comunica/actor-query-operation-path-seq": "^3.2.0", + "@comunica/actor-query-operation-path-zero-or-more": "^3.2.0", + "@comunica/actor-query-operation-path-zero-or-one": "^3.2.0", + "@comunica/actor-query-operation-project": "^3.2.0", + "@comunica/actor-query-operation-reduced-hash": "^3.2.0", + "@comunica/actor-query-operation-service": "^3.2.0", + "@comunica/actor-query-operation-slice": "^3.2.0", + "@comunica/actor-query-operation-source": "^3.2.0", + "@comunica/actor-query-operation-union": "^3.2.0", + "@comunica/actor-query-operation-update-clear": "^3.2.0", + "@comunica/actor-query-operation-update-compositeupdate": "^3.2.0", + "@comunica/actor-query-operation-update-create": "^3.2.0", + "@comunica/actor-query-operation-update-deleteinsert": "^3.2.0", + "@comunica/actor-query-operation-update-drop": "^3.2.0", + "@comunica/actor-query-operation-update-load": "^3.2.0", + "@comunica/actor-query-operation-values": "^3.2.0", + "@comunica/actor-query-parse-sparql": "^3.2.0", + "@comunica/actor-query-process-sequential": "^3.2.0", + "@comunica/actor-query-source-identify-rdfjs": "^3.2.0", + "@comunica/actor-rdf-join-entries-sort-cardinality": "^3.2.0", + "@comunica/actor-rdf-join-inner-hash": "^3.2.0", + "@comunica/actor-rdf-join-inner-multi-bind": "^3.2.0", + "@comunica/actor-rdf-join-inner-multi-bind-source": "^3.2.0", + "@comunica/actor-rdf-join-inner-multi-empty": "^3.2.0", + "@comunica/actor-rdf-join-inner-multi-smallest": "^3.2.0", + "@comunica/actor-rdf-join-inner-multi-smallest-filter-bindings": "^3.2.0", + "@comunica/actor-rdf-join-inner-nestedloop": "^3.2.0", + "@comunica/actor-rdf-join-inner-none": "^3.2.0", + "@comunica/actor-rdf-join-inner-single": "^3.2.0", + "@comunica/actor-rdf-join-inner-symmetrichash": "^3.2.0", + "@comunica/actor-rdf-join-minus-hash": "^3.2.0", + "@comunica/actor-rdf-join-minus-hash-undef": "^3.2.0", + "@comunica/actor-rdf-join-optional-bind": "^3.2.0", + "@comunica/actor-rdf-join-optional-hash": "^3.2.0", + "@comunica/actor-rdf-join-optional-nestedloop": "^3.2.0", + "@comunica/actor-rdf-join-selectivity-variable-counting": "^3.2.0", + "@comunica/actor-rdf-metadata-accumulate-cancontainundefs": "^3.2.0", + "@comunica/actor-rdf-metadata-accumulate-cardinality": "^3.2.0", + "@comunica/actor-rdf-metadata-accumulate-pagesize": "^3.2.0", + "@comunica/actor-rdf-metadata-accumulate-requesttime": "^3.2.0", + "@comunica/actor-rdf-update-quads-rdfjs-store": "^3.2.0", + "@comunica/bus-http-invalidate": "^3.2.0", + "@comunica/bus-query-operation": "^3.2.0", + "@comunica/config-query-sparql": "^3.2.0", + "@comunica/core": "^3.2.0", + "@comunica/logger-void": "^3.2.0", + "@comunica/mediator-all": "^3.2.0", + "@comunica/mediator-combine-pipeline": "^3.2.0", + "@comunica/mediator-combine-union": "^3.2.0", + "@comunica/mediator-join-coefficients-fixed": "^3.2.0", + "@comunica/mediator-number": "^3.2.0", + "@comunica/mediator-race": "^3.2.0", + "@comunica/runner": "^3.2.0", + "@comunica/types": "^3.2.0" + } + }, + "node_modules/@comunica/runner": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/runner/-/runner-3.2.0.tgz", + "integrity": "sha512-HZC+cxQ1Ns647uDd/AofR9G3UIjOvW/83r5dJAu9GoUoRW+WSbh9XLAdF7/DHkBeTmZ56SiBuwe+zW63erUl9Q==", + "license": "MIT", + "dependencies": { + "@comunica/bus-init": "^3.2.0", + "@comunica/core": "^3.2.0", + "componentsjs": "^6.0.1", + "process": "^0.11.10" + }, + "bin": { + "comunica-compile-config": "bin/compile-config" + } + }, + "node_modules/@comunica/types": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-3.2.0.tgz", + "integrity": "sha512-UHKvAqu8giOjgon978P+mlg8RkzUBLJY2c9d9Kcyzjln6uBI5Cjp+ek8f79tR+ZADPCQpV6hkjJK3v3myanq2g==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.9.0", + "sparqlalgebrajs": "^4.3.3" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "license": "MIT", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@digitalbazaar/http-client": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-3.4.1.tgz", + "integrity": "sha512-Ahk1N+s7urkgj7WvvUND5f8GiWEPfUw0D41hdElaqLgu8wZScI8gdI0q+qWw5N1d35x7GCRH2uk9mi+Uzo9M3g==", + "license": "BSD-3-Clause", + "dependencies": { + "ky": "^0.33.3", + "ky-universal": "^0.11.0", + "undici": "^5.21.2" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rdfjs/data-model": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@rdfjs/data-model/-/data-model-2.0.2.tgz", + "integrity": "sha512-v5LRNkLRJazMCGU7VtEzhz5wKwz/IrOdJEKapCtd35HuFbQfeGpoJP6QOXGyFHhWwKmtG+UMlZzYFyNDVE1m6g==", + "license": "MIT", + "bin": { + "rdfjs-data-model-test": "bin/test.js" + } + }, + "node_modules/@rdfjs/dataset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@rdfjs/dataset/-/dataset-2.0.2.tgz", + "integrity": "sha512-6YJx+5n5Uxzq9dd9I0GGcIo6eopZOPfcsAfxSGX5d+YBzDgVa1cbtEBFnaPyPKiQsOm4+Cr3nwypjpg02YKPlA==", + "license": "MIT", + "bin": { + "rdfjs-dataset-test": "bin/test.js" + } + }, + "node_modules/@rdfjs/environment": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rdfjs/environment/-/environment-1.0.0.tgz", + "integrity": "sha512-+S5YjSvfoQR5r7YQCRCCVHvIEyrWia7FJv2gqM3s5EDfotoAQmFeBagApa9c/eQFi5EiNhmBECE5nB8LIxTaHg==", + "license": "MIT" + }, + "node_modules/@rdfjs/fetch-lite": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@rdfjs/fetch-lite/-/fetch-lite-3.2.3.tgz", + "integrity": "sha512-CZfUsBekFIDYCoXBW59ehgYctIluqatWB0YqCJoA8scENuo5IHPXdPMiLt1YVqUnxQ4STwEBOUoIiaCVxwfOFg==", + "license": "MIT", + "dependencies": { + "is-stream": "^4.0.1", + "nodeify-fetch": "^3.1.0", + "readable-stream": "^4.5.2" + } + }, + "node_modules/@rdfjs/fetch-lite/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@rdfjs/formats": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@rdfjs/formats/-/formats-4.0.0.tgz", + "integrity": "sha512-9e0DX+iWi8d958Px6Ggb1otl/EhfyvlfWcop+lS0aZlsGV2YK9Phl5lzCUYTfTefSyyQk8tJd5XN52hhDLb5Wg==", + "license": "MIT", + "dependencies": { + "@rdfjs/parser-jsonld": "^2.1.0", + "@rdfjs/parser-n3": "^2.0.1", + "@rdfjs/serializer-jsonld": "^2.0.0", + "@rdfjs/serializer-jsonld-ext": "^4.0.0", + "@rdfjs/serializer-ntriples": "^2.0.0", + "@rdfjs/serializer-turtle": "^1.1.1", + "@rdfjs/sink-map": "^2.0.0", + "rdfxml-streaming-parser": "^2.3.0" + } + }, + "node_modules/@rdfjs/io": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rdfjs/io/-/io-1.1.1.tgz", + "integrity": "sha512-GtlYlZ39ejiztacSRoOB1Sw2wyJrOjmb6i81xe9dmGIetBp7o/5t9SliLcsfN38dxSD172C9HEiB1A9nbP8tmQ==", + "license": "MIT", + "dependencies": { + "duplex-to": "^2.0.0", + "readable-stream": "^4.4.2", + "stream-chunks": "^1.0.0" + } + }, + "node_modules/@rdfjs/namespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/namespace/-/namespace-2.0.1.tgz", + "integrity": "sha512-U85NWVGnL3gWvOZ4eXwUcv3/bom7PAcutSBQqmVWvOaslPy+kDzAJCH1WYBLpdQd4yMmJ+bpJcDl9rcHtXeixg==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.1" + } + }, + "node_modules/@rdfjs/normalize": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@rdfjs/normalize/-/normalize-2.0.3.tgz", + "integrity": "sha512-Zklg33Uc2R0wYiYw/OAe7IA3548h/EmN7Pf/RAj6gxkx5juRqbkMmjXYoYlFrV1ug4z1qC4RLgr69juA81kTGA==", + "license": "MIT", + "dependencies": { + "rdf-canonize": "^4.0.1" + } + }, + "node_modules/@rdfjs/parser-jsonld": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@rdfjs/parser-jsonld/-/parser-jsonld-2.1.1.tgz", + "integrity": "sha512-bddq04r/p7booWk+5IqcTlWpDljy8Sv1cdFynpzawNruZTD99n3eSj7LCHPBUzqnpXc1Dnt8tgXiqB02WSYtiw==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.2", + "@rdfjs/sink": "^2.0.1", + "duplex-to": "^2.0.0", + "jsonld-streaming-parser": "^3.3.0", + "readable-stream": "^4.5.2" + } + }, + "node_modules/@rdfjs/parser-n3": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@rdfjs/parser-n3/-/parser-n3-2.0.2.tgz", + "integrity": "sha512-rrrvyh+kkj9ndwep2h6nYmugIfggDOC9uGpmDAHn/I/z52K7dHxi7xOkPPrezTsIbgNvFhV3zS7mzyObRxcLWA==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.2", + "@rdfjs/sink": "^2.0.1", + "duplex-to": "^2.0.0", + "n3": "^1.17.2", + "readable-stream": "^4.5.2" + } + }, + "node_modules/@rdfjs/prefix-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@rdfjs/prefix-map/-/prefix-map-0.1.2.tgz", + "integrity": "sha512-qapFYVPYyYepg0sFy7T512667iZsN9a3RNcyNBTBV+O8wrU3v/URQZOipCTNrEm1BXzZ7KCK1Yi8HrE1y+uRuQ==", + "license": "MIT", + "dependencies": { + "readable-stream": "^4.3.0" + } + }, + "node_modules/@rdfjs/score": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@rdfjs/score/-/score-0.1.2.tgz", + "integrity": "sha512-HKiC6q6sCsEPYVf9B4k/R0Hd+9e0QsjKr4zRdfuv6V4VPiPyzHfAsSUiFfRdi8UvNfpdKmoSWX8PM/ZIPwvq1g==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.2", + "@rdfjs/term-map": "^2.0.1", + "@rdfjs/term-set": "^2.0.2", + "@rdfjs/to-ntriples": "^3.0.1" + } + }, + "node_modules/@rdfjs/serializer-jsonld": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/serializer-jsonld/-/serializer-jsonld-2.0.1.tgz", + "integrity": "sha512-O8WzdY7THsse/nMsrMLd2e51ADHO2SIUrkiZ9Va/8W3lXeeeiwDRPMppWy/i9yL4q6EM8iMW1riV7E0mK3fsBQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/sink": "^2.0.1", + "readable-stream": "^4.5.2" + } + }, + "node_modules/@rdfjs/serializer-jsonld-ext": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@rdfjs/serializer-jsonld-ext/-/serializer-jsonld-ext-4.0.0.tgz", + "integrity": "sha512-HP5DCmhyfVuQuk58AO5vzNY+dIFVHe2oHY8NX2K+3XmrTmu/yzrFzPbDeU9Cwr71XC4RifEMoksIg+8jnhxmfQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/sink": "^2.0.0", + "jsonld": "^8.1.0", + "readable-stream": "^4.3.0", + "stream-chunks": "^1.0.0" + } + }, + "node_modules/@rdfjs/serializer-ntriples": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/serializer-ntriples/-/serializer-ntriples-2.0.1.tgz", + "integrity": "sha512-G1ZI0qaN/MUHxeCwr59JscO2LdyIb6MNQdXOv7NFBZuodyHsxxhJRFmMVn+3SEXeNJbVeEEbWBrLglCUgJ8XjQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/sink": "^2.0.1", + "@rdfjs/to-ntriples": "^3.0.1", + "duplex-to": "^2.0.0", + "readable-stream": "^4.5.2" + } + }, + "node_modules/@rdfjs/serializer-turtle": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@rdfjs/serializer-turtle/-/serializer-turtle-1.1.3.tgz", + "integrity": "sha512-xpN3FApu8Q1M1pDp8V+P/zNYdk6QUvtp2C6rkpiOdH84/8SsREx6PGPz/mVJJGehxZwy9TUb7xGZ0LWHHBLNEw==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.1", + "@rdfjs/namespace": "^2.0.0", + "@rdfjs/prefix-map": "^0.1.1", + "@rdfjs/sink": "^2.0.0", + "@rdfjs/term-map": "^2.0.0", + "@rdfjs/to-ntriples": "^3.0.1", + "@rdfjs/tree": "^0.2.1", + "readable-stream": "^4.3.0", + "stream-chunks": "^1.0.0" + } + }, + "node_modules/@rdfjs/sink": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/sink/-/sink-2.0.1.tgz", + "integrity": "sha512-smzIFGF6EH1sLAJR9F3p2wMNrN44JjPeYAoITTJLqtuNC319K7IXaJ+qNLBGTtapZ/jvpx2Tks0TjcH9KrAvEA==", + "license": "MIT" + }, + "node_modules/@rdfjs/sink-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/sink-map/-/sink-map-2.0.1.tgz", + "integrity": "sha512-BwCTTsMN/tfQl6QzD2oHn9A08e4af+hlzAz/d5XXrlOkYMEDUAqFuh2Odj9EbayhAEeN4wA743Mj2yC0/s69rg==", + "license": "MIT" + }, + "node_modules/@rdfjs/term-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@rdfjs/term-map/-/term-map-2.0.2.tgz", + "integrity": "sha512-EJ2FmmdEUsSR/tU1nrizRLWzH24YzhuvesrbUWxC3Fs0ilYNdtTbg0RaFJDUnJF3HkbNBQe8Zrt/uvU/hcKnHg==", + "license": "MIT", + "dependencies": { + "@rdfjs/to-ntriples": "^3.0.1" + } + }, + "node_modules/@rdfjs/term-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@rdfjs/term-set/-/term-set-2.0.3.tgz", + "integrity": "sha512-DyXrKWEx+mtAFUZVU7bc3Va6/KZ8PsIp0RVdyWT9jfDgI/HCvNisZaBtAcm+SYTC45o+7WLkbudkk1bfaKVB0A==", + "license": "MIT", + "dependencies": { + "@rdfjs/to-ntriples": "^3.0.1" + } + }, + "node_modules/@rdfjs/to-ntriples": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/to-ntriples/-/to-ntriples-3.0.1.tgz", + "integrity": "sha512-gjoPAvh4j7AbGMjcDn/8R4cW+d/FPtbfbMM0uQXkyfBFtNUW2iVgrqsgJ65roLc54Y9A2TTFaeeTGSvY9a0HCQ==", + "license": "MIT" + }, + "node_modules/@rdfjs/traverser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@rdfjs/traverser/-/traverser-0.1.4.tgz", + "integrity": "sha512-53QYlxiQIxH8k4jutjet1EjdZfyKCDSsfqnj2YejAJ1X8mLDMSOsneMM5savBwBR0ROfAhKVtZVb+pego+JLiw==", + "license": "MIT", + "dependencies": { + "@rdfjs/to-ntriples": "^3.0.1" + } + }, + "node_modules/@rdfjs/tree": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@rdfjs/tree/-/tree-0.2.1.tgz", + "integrity": "sha512-J70CQ7R8Ivfs1FFUxtFN7ADb5wTMgbhn0O558NXSXQHItmSavT6cXmQlIokbmboU+grhu56iR/8Bl9do8LCq+w==", + "license": "MIT", + "dependencies": { + "@rdfjs/namespace": "^2.0.0", + "@rdfjs/term-map": "^2.0.0", + "@rdfjs/term-set": "^2.0.1" + } + }, + "node_modules/@rdfjs/types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.1.0.tgz", + "integrity": "sha512-5zm8bN2/CC634dTcn/0AhTRLaQRjXDZs3QfcAsQKNturHT7XVWcKy/8p3P5gXl+YkZTAmy7T5M/LyiT/jbkENw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rubensworks/saxes": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@rubensworks/saxes/-/saxes-6.0.1.tgz", + "integrity": "sha512-UW4OTIsOtJ5KSXo2Tchi4lhZqu+tlHrOAs4nNti7CrtB53kAZl3/hyrTi6HkMihxdbDM6m2Zc3swc/ZewEe1xw==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.12" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@smessie/readable-web-to-node-stream": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@smessie/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.3.tgz", + "integrity": "sha512-8FFE7psRtRWQT31/duqbmgnSf2++QLR2YH9kj5iwsHhnoqSvHdOY3SAN5e7dhc+60p2cNk7rv3HYOiXOapTEXQ==", + "license": "MIT", + "dependencies": { + "process": "^0.11.10", + "readable-stream": "^4.5.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-link-header": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/http-link-header/-/http-link-header-1.0.7.tgz", + "integrity": "sha512-snm5oLckop0K3cTDAiBnZDy6ncx9DJ3mCRDvs42C884MbVYPP74Tiq2hFsSDRTyjK6RyDYDIulPiW23ge+g5Lw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jsonld": { + "version": "1.5.14", + "resolved": "https://registry.npmjs.org/@types/jsonld/-/jsonld-1.5.14.tgz", + "integrity": "sha512-z4IRf5oRgjPTkazDDv94sjzI5iK3DrDEW7Y5Gk4VO4+ANymgtHtNaXWi93+BmiAoG3PB9QTv5DgSpKWGYVvysA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/rdf-ext": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@types/rdf-ext/-/rdf-ext-2.5.0.tgz", + "integrity": "sha512-d+O6WnpKTHULLYZ/EeHfCnpt38J+w5QmAQ3Bsijdk0p+RIbEhoVh9XvXzs/H6Os3rxltiQOUm2Bg/+JqLmQcEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/rdfjs__data-model": "*", + "@types/rdfjs__dataset": "*", + "@types/rdfjs__environment": "*", + "@types/rdfjs__fetch-lite": "*", + "@types/rdfjs__formats": "*", + "@types/rdfjs__namespace": "*", + "@types/rdfjs__prefix-map": "*", + "@types/rdfjs__score": "*", + "@types/rdfjs__term-map": "*", + "@types/rdfjs__term-set": "*", + "@types/rdfjs__traverser": "*" + } + }, + "node_modules/@types/rdfjs__data-model": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/rdfjs__data-model/-/rdfjs__data-model-2.0.8.tgz", + "integrity": "sha512-7OVjhmA8QPEdRReHFieKuqn2mbYx3ndEIEmh/6FkeJC8QCMJGVeSuRKEUVXbZGwP0rDKZuhQGozaRv3O1z1gPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "^1.0.1" + } + }, + "node_modules/@types/rdfjs__dataset": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/rdfjs__dataset/-/rdfjs__dataset-2.0.7.tgz", + "integrity": "sha512-+GaYIL9C7N1N0HyH+obU4IXuL7DX+fXuf827aUQ2Vx2UghO47+OTxo2v3seEQj/1YHoHBfQFk5Y4P6Q7Ht4Hqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/@types/rdfjs__environment": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/rdfjs__environment/-/rdfjs__environment-1.0.0.tgz", + "integrity": "sha512-MDcnv3qfJvbHoEpUQXj5muT8g3e+xz1D8sGevrq3+Q4TzeEvQf5ijGX5l8485XFYrN/OBApgzXkHMZC04/kd5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/node": "*" + } + }, + "node_modules/@types/rdfjs__fetch-lite": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/rdfjs__fetch-lite/-/rdfjs__fetch-lite-3.0.10.tgz", + "integrity": "sha512-5EokVEj3eJGBknxM3pFV8y6w/ZVMAqZkmHKFLz6zgLxonCmC/bHHXeCTZGE1+5Heji/4vc84vinZMaQ1+n7t6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/node": "*", + "@types/rdfjs__formats": "*" + } + }, + "node_modules/@types/rdfjs__formats": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/rdfjs__formats/-/rdfjs__formats-4.0.1.tgz", + "integrity": "sha512-Zj7hQEn5HeCj+pJCWshY2gqBcdBdwyc2j20Ht3PH91pkdRuG2AlGDD3N9PQ1oZ3+J6Q96rAlhxUbjQUp9+s3FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.0", + "@types/node": "*", + "@types/rdfjs__parser-jsonld": "*", + "@types/rdfjs__parser-n3": "*", + "@types/rdfjs__serializer-jsonld": "*", + "@types/rdfjs__serializer-jsonld-ext": "*", + "@types/rdfjs__serializer-ntriples": "*", + "@types/rdfjs__serializer-turtle": "*", + "@types/rdfjs__sink-map": "*", + "rdfxml-streaming-parser": ">=2" + } + }, + "node_modules/@types/rdfjs__namespace": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/rdfjs__namespace/-/rdfjs__namespace-2.0.10.tgz", + "integrity": "sha512-xoVzEIOxcpyteEmzaj94MSBbrBFs+vqv05joMhzLEiPRwsBBDnhkdBCaaDxR1Tf7wOW0kB2R1IYe4C3vEBFPgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/@types/rdfjs__parser-jsonld": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@types/rdfjs__parser-jsonld/-/rdfjs__parser-jsonld-2.1.7.tgz", + "integrity": "sha512-n35K+c1Y95580N202Jxly6xjFE953FF+Y2mwxok6zLfMo4rgIfgMBElnNwpja0IeYXTuzGm1tEz7va3lItGrTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.0", + "@types/jsonld": "*" + } + }, + "node_modules/@types/rdfjs__parser-n3": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/rdfjs__parser-n3/-/rdfjs__parser-n3-2.0.6.tgz", + "integrity": "sha512-VHfdq7BDV6iMCtHkzTFSOuUWnqGlMUmEF0UZyK4+g9SzLWvc6TMcU5TYwQPQIz/e0s7dZ+xomxx6mVtIzsRQ/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.0" + } + }, + "node_modules/@types/rdfjs__prefix-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/rdfjs__prefix-map/-/rdfjs__prefix-map-0.1.5.tgz", + "integrity": "sha512-RAwyS/2dT9X79QwM0F8KLweTfuBoe6xtiAlU7wKPB+/t/sfk6A50LYtAWaDVP5qBjcu50UkKkZT+VR47CiLkfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/@types/rdfjs__score": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@types/rdfjs__score/-/rdfjs__score-0.1.6.tgz", + "integrity": "sha512-TZZaI0PntOUnfA6vKsVlgeYuyiGvtlMygu0ycmmFn5quldbDWzIIxadciTIaBQBcPXmJHcnXiS8/mbZ9FkX4hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/@types/rdfjs__serializer-jsonld": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/rdfjs__serializer-jsonld/-/rdfjs__serializer-jsonld-2.0.5.tgz", + "integrity": "sha512-ubdLD9QgZzAt+65NSPzh2qWCPWcGYlHEWgkP6uRwfm7JC48Xh/QjzwOTG13MTomOkQqcN4R7PIG0j3Ca8iyNWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.0" + } + }, + "node_modules/@types/rdfjs__serializer-jsonld-ext": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/rdfjs__serializer-jsonld-ext/-/rdfjs__serializer-jsonld-ext-4.0.1.tgz", + "integrity": "sha512-jgbQ/1kV7nESKG7SY8FJED6K4OFznr6Sz3ybF1ncpBR7TUBTuy3InpZOVRK4Wjpy2zi84iIAzJ1CIIo9NZh2Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.0", + "@types/jsonld": "*", + "@types/node": "*" + } + }, + "node_modules/@types/rdfjs__serializer-ntriples": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/rdfjs__serializer-ntriples/-/rdfjs__serializer-ntriples-2.0.6.tgz", + "integrity": "sha512-Nn3e3eyuymLvbI5MFzI7ODD/X6ZGpbB9fLaWOB00RtFHd2vttk3wQL2fzzsZZQPJ/ihC/xlFE4cNQkO6SoHa7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.0" + } + }, + "node_modules/@types/rdfjs__serializer-turtle": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/rdfjs__serializer-turtle/-/rdfjs__serializer-turtle-1.1.0.tgz", + "integrity": "sha512-NGHnbz5985UwS/YS6WL/FkS94B+QiVTdsfvJCqPwLmY3E7UeClw91c2KbiphZUR/uh7uwLwxeKKhV2T1gYgT5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.0", + "@types/node": "*", + "@types/rdfjs__prefix-map": "*" + } + }, + "node_modules/@types/rdfjs__sink-map": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/rdfjs__sink-map/-/rdfjs__sink-map-2.0.5.tgz", + "integrity": "sha512-ycUBlOMbp9YpjrBrMwGv3uiqulOWgodess06cinYLxomOTc2ET9rEQklgM5rJqnu5WMsVP8SFG3fFw36/5hADQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/@types/rdfjs__term-map": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/rdfjs__term-map/-/rdfjs__term-map-2.0.10.tgz", + "integrity": "sha512-YlpYkya+Xq9fmcw+BMi1SCh+w2sBu7G0/qd2+ZhB4QIK3V1xq2o3EOAZnlahyQdwrW9t5+Ihw8IVVvZsJvDOTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/@types/rdfjs__term-set": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@types/rdfjs__term-set/-/rdfjs__term-set-2.0.9.tgz", + "integrity": "sha512-RRXs5DwFGanZyT705f7KLSiN68gUVUtGWTp508CXJhLfD7AWmilqc1BLgLUoac48h3pnh9w5lRhwFm6fj1ZE5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/@types/rdfjs__traverser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/rdfjs__traverser/-/rdfjs__traverser-0.1.5.tgz", + "integrity": "sha512-tTpiM6lAddw+bGRDjhzwdpo1EQK73m8gYgMVNfO4OsevnuLZvQJeCJBckpuDC4H5HVAEwCapI0UlH9dVnZ9u5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/@types/readable-stream": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", + "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "license": "MIT" + }, + "node_modules/@types/spark-md5": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/spark-md5/-/spark-md5-3.0.4.tgz", + "integrity": "sha512-qtOaDz+IXiNndPgYb6t1YoutnGvFRtWSNzpVjkAPCfB2UzTyybuD4Tjgs7VgRawum3JnJNRwNQd4N//SvrHg1Q==", + "license": "MIT" + }, + "node_modules/@types/sparqljs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@types/sparqljs/-/sparqljs-3.1.10.tgz", + "integrity": "sha512-rqMpUhl/d8B+vaACa6ZVdwPQ1JXw+KxiCc0cndgn/V6moRG3WjUAgoBnhSwfKtXD98wgMThDsc6R1+yRUuMsAg==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.0" + } + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", + "integrity": "sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/type-utils": "7.15.0", + "@typescript-eslint/utils": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.15.0.tgz", + "integrity": "sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/typescript-estree": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", + "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.15.0.tgz", + "integrity": "sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.15.0", + "@typescript-eslint/utils": "7.15.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", + "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", + "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", + "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/typescript-estree": "7.15.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", + "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitest/expect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.0.0.tgz", + "integrity": "sha512-5BSfZ0+dAVmC6uPF7s+TcKx0i7oyYHb1WQQL5gg6G2c+Qkaa5BNrdRM74sxDfUIZUgYCr6bfCqmJp+X5bfcNxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.0.0", + "@vitest/utils": "2.0.0", + "chai": "^5.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.0.0.tgz", + "integrity": "sha512-OovFmlkfRmdhevbWImBUtn9IEM+CKac8O+m9p6W9jTATGVBnDJQ6/jb1gpHyWxsu0ALi5f+TLi+Uyst7AAimMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.0.0", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.0.0.tgz", + "integrity": "sha512-B520cSAQwtWgocPpARadnNLslHCxFs5tf7SG2TT96qz+SZgsXqcB1xI3w3/S9kUzdqykEKrMLvW+sIIpMcuUdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.10", + "pathe": "^1.1.2", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.0.0.tgz", + "integrity": "sha512-0g7ho4wBK09wq8iNZFtUcQZcUcbPmbLWFotL0GXel0fvk5yPi4nTEKpIvZ+wA5eRyqPUCIfIUl10AWzLr67cmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.0.0.tgz", + "integrity": "sha512-t0jbx8VugWEP6A29NbyfQKVU68Vo6oUw0iX3a8BwO3nrZuivfHcFO4Y5UsqXlplX+83P9UaqEvC2YQhspC0JSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^3.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "license": "MIT" + }, + "node_modules/asynciterator": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/asynciterator/-/asynciterator-3.9.0.tgz", + "integrity": "sha512-bwLLTAnoE6Ap6XdjK/j8vDk2Vi9p3ojk0PFwM0SwktAG1k8pfRJF9ng+mmkaRFKdZCQQlOxcWnvOmX2NQ1HV0g==", + "license": "MIT" + }, + "node_modules/asyncjoin": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/asyncjoin/-/asyncjoin-1.2.3.tgz", + "integrity": "sha512-4OJH73zYDfIfbgr7wKfAKTgu/P2e/9r0o0NZ4KZu2tFtSf5uUVs/DjzpfY5BueOkkZcBhnq788MbZ57tjwyPIQ==", + "license": "MIT", + "dependencies": { + "asynciterator": "^3.9.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/canonicalize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.0.0.tgz", + "integrity": "sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w==", + "license": "Apache-2.0" + }, + "node_modules/chai": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", + "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "license": "MIT", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/componentsjs": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/componentsjs/-/componentsjs-6.0.1.tgz", + "integrity": "sha512-8ylkwrS0WJCTkkp2dOamE4yLkkdFd9xZQQ8dGzaY22TdntLR9V/SH+dZ+GQ+im9/2KgrKtcEu0UHMY+cpE0LYw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/minimist": "^1.2.0", + "@types/node": "^18.0.0", + "@types/semver": "^7.3.4", + "jsonld-context-parser": "^2.1.1", + "minimist": "^1.2.0", + "rdf-data-factory": "^1.1.0", + "rdf-object": "^1.14.0", + "rdf-parse": "^2.0.0", + "rdf-quad": "^1.5.0", + "rdf-string": "^1.6.0", + "rdf-terms": "^1.7.0", + "semver": "^7.3.2", + "winston": "^3.3.3" + }, + "bin": { + "componentsjs-compile-config": "bin/compile-config.js" + } + }, + "node_modules/componentsjs/node_modules/@types/node": { + "version": "18.19.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", + "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/duplex-to": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/duplex-to/-/duplex-to-2.0.0.tgz", + "integrity": "sha512-f2nMnk11mwDptEFBTv2mcWHpF4ENAbuQ63yTiSy/99rG4Exsxsf0GJhJYq/AHF2cdMYswSx23LPuoijBflpquQ==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "license": "MIT" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter-promisify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/event-emitter-promisify/-/event-emitter-promisify-1.1.0.tgz", + "integrity": "sha512-uyHG8gjwYGDlKoo0Txtx/u1HI1ubj0FK0rVqI4O0s1EymQm4iAEMbrS5B+XFlSaS8SZ3xzoKX+YHRZk8Nk/bXg==", + "license": "MIT" + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-fetch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-fetch/-/file-fetch-2.0.0.tgz", + "integrity": "sha512-zNBKfKZThjf5354uAcfXPMfxwDBiyZluznykkZc1HmMjP3IKKqAydDpDj7MO9oeUD0rVjqyuqhDjDi10blpwRA==", + "license": "MIT", + "dependencies": { + "mime-types": "^2.1.35", + "readable-stream": "^4.4.2", + "stream-chunks": "^1.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "license": "MIT" + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/grapoi": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/grapoi/-/grapoi-1.1.2.tgz", + "integrity": "sha512-FknMk4EPaVroumWDURlAScwr+cYE/e9dVmnTkuhhoghq9PWx2ap+A4+iS37dGoT6mhJbV0O+xgex6lI4c64plQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/namespace": "^2.0.0", + "@rdfjs/term-set": "^2.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, + "node_modules/http-link-header": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz", + "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonld": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-8.3.2.tgz", + "integrity": "sha512-MwBbq95szLwt8eVQ1Bcfwmgju/Y5P2GdtlHE2ncyfuYjIdEhluUVyj1eudacf1mOkWIoS9GpDBTECqhmq7EOaA==", + "license": "BSD-3-Clause", + "dependencies": { + "@digitalbazaar/http-client": "^3.4.1", + "canonicalize": "^1.0.1", + "lru-cache": "^6.0.0", + "rdf-canonize": "^3.4.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/jsonld-context-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonld-context-parser/-/jsonld-context-parser-2.4.0.tgz", + "integrity": "sha512-ZYOfvh525SdPd9ReYY58dxB3E2RUEU4DJ6ZibO8AitcowPeBH4L5rCAitE2om5G1P+HMEgYEYEr4EZKbVN4tpA==", + "license": "MIT", + "dependencies": { + "@types/http-link-header": "^1.0.1", + "@types/node": "^18.0.0", + "cross-fetch": "^3.0.6", + "http-link-header": "^1.0.2", + "relative-to-absolute-iri": "^1.0.5" + }, + "bin": { + "jsonld-context-parse": "bin/jsonld-context-parse.js" + } + }, + "node_modules/jsonld-context-parser/node_modules/@types/node": { + "version": "18.19.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", + "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/jsonld-streaming-parser": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jsonld-streaming-parser/-/jsonld-streaming-parser-3.4.0.tgz", + "integrity": "sha512-897CloyQgQidfkB04dLM5XaAXVX/cN9A2hvgHJo4y4jRhIpvg3KLMBBfcrswepV2N3T8c/Rp2JeFdWfVsbVZ7g==", + "license": "MIT", + "dependencies": { + "@bergos/jsonparse": "^1.4.0", + "@rdfjs/types": "*", + "@types/http-link-header": "^1.0.1", + "@types/readable-stream": "^2.3.13", + "buffer": "^6.0.3", + "canonicalize": "^1.0.1", + "http-link-header": "^1.0.2", + "jsonld-context-parser": "^2.4.0", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.0.0" + } + }, + "node_modules/jsonld-streaming-parser/node_modules/canonicalize": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==", + "license": "Apache-2.0" + }, + "node_modules/jsonld/node_modules/canonicalize": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==", + "license": "Apache-2.0" + }, + "node_modules/jsonld/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonld/node_modules/rdf-canonize": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.4.0.tgz", + "integrity": "sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==", + "license": "BSD-3-Clause", + "dependencies": { + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jvm-runner-ts": { + "resolved": "../../runners/nodejs", + "link": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "license": "MIT" + }, + "node_modules/ky": { + "version": "0.33.3", + "resolved": "https://registry.npmjs.org/ky/-/ky-0.33.3.tgz", + "integrity": "sha512-CasD9OCEQSFIam2U8efFK81Yeg8vNMTBUqtMOHlrcWQHqUX3HeCl9Dr31u4toV7emlH8Mymk5+9p0lL6mKb/Xw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky?sponsor=1" + } + }, + "node_modules/ky-universal": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.11.0.tgz", + "integrity": "sha512-65KyweaWvk+uKKkCrfAf+xqN2/epw1IJDtlyCPxYffFCMR8u1sp2U65NtWpnozYfZxQ6IUzIlvUcw+hQ82U2Xw==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "node-fetch": "^3.2.10" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky-universal?sponsor=1" + }, + "peerDependencies": { + "ky": ">=0.31.4", + "web-streams-polyfill": ">=3.2.1" + }, + "peerDependenciesMeta": { + "web-streams-polyfill": { + "optional": true + } + } + }, + "node_modules/ky-universal/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/logform": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/loupe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.1.tgz", + "integrity": "sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.0.tgz", + "integrity": "sha512-bfJaPTuEiTYBu+ulDaeQ0F+uLmlfFkMgXj4cbwfuMSjgObGMzb55FMMbDvbRU0fAHZ4sLGkz2mKwcMg8Dvm8Ww==", + "license": "ISC", + "engines": { + "node": ">=18" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/microdata-rdf-streaming-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/microdata-rdf-streaming-parser/-/microdata-rdf-streaming-parser-2.0.1.tgz", + "integrity": "sha512-oEEYP3OwPGOtoE4eIyJvX1eJXI7VkGR4gKYqpEufaRXc2ele/Tkid/KMU3Los13wGrOq6woSxLEGOYSHzpRvwA==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "htmlparser2": "^8.0.0", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.1.0", + "relative-to-absolute-iri": "^1.0.2" + } + }, + "node_modules/microdata-rdf-streaming-parser/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/mylas": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz", + "integrity": "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/raouldeheer" + } + }, + "node_modules/n3": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/n3/-/n3-1.17.4.tgz", + "integrity": "sha512-G5RR9PKLJXQU1uDJ2cZq+zp23V5XruqWhAGlCpF2/8kLiPbqEKOXDXgOLuoMqFwdxO/oBE2h4KNGQUp0aQ0OLA==", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "queue-microtask": "^1.1.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiate": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/negotiate/-/negotiate-1.0.1.tgz", + "integrity": "sha512-KBCIM4dAIT9j/pSXLHHQbZG74NmKNXTtxU2zHN0HG6uzzuFE01m1UdGoUmVHmACiBuCAOL7KwfqSW1oUQBj/vg==" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/nodeify-fetch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nodeify-fetch/-/nodeify-fetch-3.1.0.tgz", + "integrity": "sha512-ZV81vM//sEgTgXwVZlOONzcOCdTGQ53mV65FVSNXgPQHa8oCwRLtLbnGxL/1S/Yw90bcXUDKMz00jEnaeazo+A==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21", + "node-fetch": "^3.2.10", + "readable-stream": "^4.2.0", + "stream-chunks": "^1.0.0" + } + }, + "node_modules/nodeify-fetch/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/plimit-lit": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.6.1.tgz", + "integrity": "sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "queue-lit": "^1.5.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/promise-polyfill": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-1.1.6.tgz", + "integrity": "sha512-7rrONfyLkDEc7OJ5QBkqa4KI4EBhCd340xRuIUPGCfu13znS+vx+VDdrT9ODAJHlXm7w4lbxN3DRjyv58EuzDg==", + "license": "MIT" + }, + "node_modules/proto-fetch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/proto-fetch/-/proto-fetch-2.0.0.tgz", + "integrity": "sha512-QuhQVYN9WxCbJmfp/s3HLofEaDr/Jkq873++mo126XB2h+TFcKIGCIxeORH5ww9MOi2uP1SfWy4EgQH5PuBfdQ==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-lit": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.2.tgz", + "integrity": "sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/rdf-canonize": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-4.0.1.tgz", + "integrity": "sha512-B5ynHt4sasbUafzrvYI2GFARgeFcD8Sx9yXPbg7gEyT2EH76rlCv84kyO6tnxzVbxUN/uJDbK1S/MXh+DsnuTA==", + "license": "BSD-3-Clause", + "dependencies": { + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/rdf-data-factory": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/rdf-data-factory/-/rdf-data-factory-1.1.2.tgz", + "integrity": "sha512-TfQD63Lokabd09ES1jAtKK8AA6rkr9rwyUBGo6olOt1CE0Um36CUQIqytyf0am2ouBPR0l7SaHxCiMcPGHkt1A==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/rdf-ext": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/rdf-ext/-/rdf-ext-2.5.2.tgz", + "integrity": "sha512-xndLCbnxcPUZ2CxdQX/BdHjAUsZuFuA4Uw2ddDZnX3vhLKoTIaXunWyp1r9yfX66Nxv0mEkzm71YIi19ex/pEg==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.1", + "@rdfjs/dataset": "^2.0.1", + "@rdfjs/environment": "^1.0.0", + "@rdfjs/fetch-lite": "^3.2.1", + "@rdfjs/formats": "^4.0.0", + "@rdfjs/io": "^1.0.0", + "@rdfjs/namespace": "^2.0.0", + "@rdfjs/normalize": "^2.0.0", + "@rdfjs/prefix-map": "^0.1.1", + "@rdfjs/score": "^0.1.1", + "@rdfjs/term-map": "^2.0.0", + "@rdfjs/term-set": "^2.0.1", + "@rdfjs/to-ntriples": "^3.0.1", + "@rdfjs/traverser": "^0.1.1", + "file-fetch": "^2.0.0", + "grapoi": "^1.0.2", + "nodeify-fetch": "^3.1.0", + "proto-fetch": "^2.0.0", + "readable-stream": "^4.3.0" + } + }, + "node_modules/rdf-isomorphic": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rdf-isomorphic/-/rdf-isomorphic-1.3.1.tgz", + "integrity": "sha512-6uIhsXTVp2AtO6f41PdnRV5xZsa0zVZQDTBdn0br+DZuFf5M/YD+T6m8hKDUnALI6nFL/IujTMLgEs20MlNidQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "hash.js": "^1.1.7", + "rdf-string": "^1.6.0", + "rdf-terms": "^1.7.0" + } + }, + "node_modules/rdf-literal": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/rdf-literal/-/rdf-literal-1.3.2.tgz", + "integrity": "sha512-79Stlu3sXy0kq9/decHFLf3xNPuY6sfhFPhd/diWErgaFr0Ekyg38Vh9bnVcqDYu48CFRi0t+hrFii49n92Hbw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.0" + } + }, + "node_modules/rdf-object": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/rdf-object/-/rdf-object-1.14.0.tgz", + "integrity": "sha512-/KSUWr7onDtL7d81kOpcUzJ2vHYOYJc2KU9WzBZRYydBhK0Sksh5Hg4VCQNaxUEvYEgdrrTuq9SLpOOCmag0rQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "jsonld-context-parser": "^2.0.2", + "rdf-data-factory": "^1.1.0", + "rdf-string": "^1.6.0", + "streamify-array": "^1.0.1" + } + }, + "node_modules/rdf-parse": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/rdf-parse/-/rdf-parse-2.3.3.tgz", + "integrity": "sha512-N5XEHm+ajFzwo/vVNzB4tDtvqMwBosbVJmZl5DlzplQM9ejlJBlN/43i0ImAb/NMtJJgQPC3jYnkCKGA7wdo/w==", + "license": "MIT", + "dependencies": { + "@comunica/actor-http-fetch": "^2.0.1", + "@comunica/actor-http-proxy": "^2.0.1", + "@comunica/actor-rdf-parse-html": "^2.0.1", + "@comunica/actor-rdf-parse-html-microdata": "^2.0.1", + "@comunica/actor-rdf-parse-html-rdfa": "^2.0.1", + "@comunica/actor-rdf-parse-html-script": "^2.0.1", + "@comunica/actor-rdf-parse-jsonld": "^2.0.1", + "@comunica/actor-rdf-parse-n3": "^2.0.1", + "@comunica/actor-rdf-parse-rdfxml": "^2.0.1", + "@comunica/actor-rdf-parse-shaclc": "^2.6.2", + "@comunica/actor-rdf-parse-xml-rdfa": "^2.0.1", + "@comunica/bus-http": "^2.0.1", + "@comunica/bus-init": "^2.0.1", + "@comunica/bus-rdf-parse": "^2.0.1", + "@comunica/bus-rdf-parse-html": "^2.0.1", + "@comunica/config-query-sparql": "^2.0.1", + "@comunica/core": "^2.0.1", + "@comunica/mediator-combine-pipeline": "^2.0.1", + "@comunica/mediator-combine-union": "^2.0.1", + "@comunica/mediator-number": "^2.0.1", + "@comunica/mediator-race": "^2.0.1", + "@rdfjs/types": "*", + "readable-stream": "^4.3.0", + "stream-to-string": "^1.2.0" + } + }, + "node_modules/rdf-parse/node_modules/@comunica/actor-http-proxy": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@comunica/actor-http-proxy/-/actor-http-proxy-2.10.2.tgz", + "integrity": "sha512-3yUF8BCh4nwq8J6NRILEsyNrQNStkE9ggJ7hYwRfA1XcMgz1pANNaWJ2P2TEKH1jNinr23bL3JeuUZCm9Kz9dA==", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.10.2", + "@comunica/context-entries": "^2.10.0", + "@comunica/mediatortype-time": "^2.10.0", + "@comunica/types": "^2.10.0" + } + }, + "node_modules/rdf-parse/node_modules/@comunica/bus-http": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@comunica/bus-http/-/bus-http-2.10.2.tgz", + "integrity": "sha512-MAYRF6uEBAuJ9dCPW2Uyne7w3lNwXFXKfa14XuPG5DFTDpgo/Z2pWupPrBsA1eIWMNJ6WOG6QyEv4rllSIBqlg==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "@smessie/readable-web-to-node-stream": "^3.0.3", + "is-stream": "^2.0.1", + "readable-stream-node-to-web": "^1.0.1", + "web-streams-ponyfill": "^1.4.2" + } + }, + "node_modules/rdf-parse/node_modules/@comunica/bus-init": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/bus-init/-/bus-init-2.10.0.tgz", + "integrity": "sha512-hJejHa8sLVhQLFlduCVnhOd5aW3FCEz8wmWjyeLI3kiHFaQibnGVMhUuuNRX5f8bnnPuTdEiHc1nnYHuSi+j8A==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "readable-stream": "^4.4.2" + } + }, + "node_modules/rdf-parse/node_modules/@comunica/config-query-sparql": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@comunica/config-query-sparql/-/config-query-sparql-2.7.0.tgz", + "integrity": "sha512-rMnFgT7cz9+0z7wV4OzIMY5qM9/Z0mTGrR8y2JokoHyyTcBGOSajFmy61XCSLMCsLLG8qDXsJ4ClCCky3TGfqA==", + "license": "MIT" + }, + "node_modules/rdf-parse/node_modules/@comunica/context-entries": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/context-entries/-/context-entries-2.10.0.tgz", + "integrity": "sha512-lmCYCcXxW8C6ecFH2whZCt31NT1ejb0P/sbytK7f4ctyA06Q8iYFEcYE4eWOXMdpfkwkcnz31x9XL77OGeSC2Q==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "@comunica/types": "^2.10.0", + "@rdfjs/types": "*", + "jsonld-context-parser": "^2.2.2", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/rdf-parse/node_modules/@comunica/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/core/-/core-2.10.0.tgz", + "integrity": "sha512-onsGs2iKHUPRxxMOdx42vdxslk8q9FQZdRjQtHJ6SGiCpJwIL9ciBgPIOl2RL2YfzXHemr/0umeNOppRDcWhJA==", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.10.0", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/rdf-parse/node_modules/@comunica/mediator-combine-pipeline": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-combine-pipeline/-/mediator-combine-pipeline-2.10.0.tgz", + "integrity": "sha512-j7+/oUlbhKB4Rq6g9oNKU+e9cQL8U9z8tAUNhoXUSHajcr4huj0t1+riaOD109/DRWhV793ILhBDzgiZbHd7DA==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0", + "@comunica/types": "^2.10.0" + } + }, + "node_modules/rdf-parse/node_modules/@comunica/mediator-combine-union": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-combine-union/-/mediator-combine-union-2.10.0.tgz", + "integrity": "sha512-QbP4zP1i6nMDZ8teC0RoTz5E8pOpxDhWPBr1ylb2jzPUjPpMgrnbHYTondlN0Oau3SMEehItojg/LYDtPOP/GQ==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0" + } + }, + "node_modules/rdf-parse/node_modules/@comunica/mediator-number": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-number/-/mediator-number-2.10.0.tgz", + "integrity": "sha512-0T8D1HGTu5Sd8iKb2dBjc6VRc/U4A15TAN6m561ra9pFlP+w31kby0ZYP6WWBHBobbUsX1LCvnbRQaAC4uWwVw==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0" + } + }, + "node_modules/rdf-parse/node_modules/@comunica/mediator-race": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/mediator-race/-/mediator-race-2.10.0.tgz", + "integrity": "sha512-JiEtOLMkPnbjSLabVpE4VqDbu2ZKKnkUdATGBeWX+o+MjPw6c0hhw01RG4WY2rQhDyNl++nLQe3EowQh8xW9TA==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0" + } + }, + "node_modules/rdf-parse/node_modules/@comunica/mediatortype-time": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/mediatortype-time/-/mediatortype-time-2.10.0.tgz", + "integrity": "sha512-nBz1exxrja1Tj8KSlSevG4Hw2u09tTh6gtNfVjI76i/e7muu4RUWVhi9b8PcwBNAfuUqRl+5OgOSa2X4W+6QlA==", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.10.0" + } + }, + "node_modules/rdf-parse/node_modules/@comunica/types": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@comunica/types/-/types-2.10.0.tgz", + "integrity": "sha512-1UjPGbZcYrapBjMGUZedrIGcn9rOLpEOlJo1ZkWddFUGTwndVg9d4BZnQw+UnQzXMcLJcdKt94Zns8iEmBqARw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.24", + "asynciterator": "^3.8.1", + "sparqlalgebrajs": "^4.2.0" + } + }, + "node_modules/rdf-parse/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rdf-quad": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/rdf-quad/-/rdf-quad-1.5.0.tgz", + "integrity": "sha512-LnCYx8XbRVW1wr6UiZPSy2Tv7bXAtEwuyck/68dANhFu8VMnGS+QfUNP3b9YI6p4Bfd/fyDx5E3x81IxGV6BzA==", + "license": "MIT", + "dependencies": { + "rdf-data-factory": "^1.0.1", + "rdf-literal": "^1.2.0", + "rdf-string": "^1.5.0" + } + }, + "node_modules/rdf-string": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/rdf-string/-/rdf-string-1.6.3.tgz", + "integrity": "sha512-HIVwQ2gOqf+ObsCLSUAGFZMIl3rh9uGcRf1KbM85UDhKqP+hy6qj7Vz8FKt3GA54RiThqK3mNcr66dm1LP0+6g==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.0" + } + }, + "node_modules/rdf-terms": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/rdf-terms/-/rdf-terms-1.11.0.tgz", + "integrity": "sha512-iKlVgnMopRKl9pHVNrQrax7PtZKRCT/uJIgYqvuw1VVQb88zDvurtDr1xp0rt7N9JtKtFwUXoIQoEsjyRo20qQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.0", + "rdf-string": "^1.6.0" + } + }, + "node_modules/rdf-validation": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/rdf-validation/-/rdf-validation-0.1.1.tgz", + "integrity": "sha512-z2RbRcsKOM+CWa7qoI4LWCQQTji64eoBNLvbP3++0ZE4pO4EP1xkV5asSH4TULeLfDEuMhzyDXRnAjA+8R2l4w==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.1", + "@rdfjs/namespace": "^2.0.0", + "@rdfjs/term-map": "^2.0.0", + "@rdfjs/to-ntriples": "^3.0.1" + } + }, + "node_modules/rdfa-streaming-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rdfa-streaming-parser/-/rdfa-streaming-parser-2.0.1.tgz", + "integrity": "sha512-7Yyaj030LO7iQ38Wh/RNLVeYrVFJeyx3dpCK7C1nvX55eIN/gE4HWfbg4BYI9X7Bd+eUIUMVeiKYLmYjV6apow==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "htmlparser2": "^8.0.0", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.0.0", + "relative-to-absolute-iri": "^1.0.2" + } + }, + "node_modules/rdfa-streaming-parser/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/rdfxml-streaming-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/rdfxml-streaming-parser/-/rdfxml-streaming-parser-2.4.0.tgz", + "integrity": "sha512-f+tdI1wxOiPzMbFWRtOwinwPsqac0WIN80668yFKcVdFCSTGOWTM70ucQGUSdDZZo7pce/UvZgV0C3LDj0P7tg==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@rubensworks/saxes": "^6.0.1", + "@types/readable-stream": "^2.3.13", + "buffer": "^6.0.3", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.4.2", + "relative-to-absolute-iri": "^1.0.0", + "validate-iri": "^1.0.0" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-from-web": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readable-from-web/-/readable-from-web-1.0.0.tgz", + "integrity": "sha512-tei03fQhxqLEklpIvocFUR9hO42hiyYvdhwoNHAjJztPAQ8QS1NqF2AhLwzGxIGidPBJ4MCqB48wn7OAFCfhsQ==", + "license": "MIT", + "dependencies": { + "@types/readable-stream": "^4.0.0", + "readable-stream": "^4.0.0" + } + }, + "node_modules/readable-from-web/node_modules/@types/readable-stream": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.14.tgz", + "integrity": "sha512-xZn/AuUbCMShGsqH/ehZtGDwQtbx00M9rZ2ENLe4tOjFZ/JFeWMhEZkk2fEe1jAUqqEAURIkFJ7Az/go8mM1/w==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "license": "MIT", + "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/readable-stream-node-to-web": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/readable-stream-node-to-web/-/readable-stream-node-to-web-1.0.1.tgz", + "integrity": "sha512-OGzi2VKLa8H259kAx7BIwuRrXHGcxeHj4RdASSgEGBP9Q2wowdPvBc65upF4Q9O05qWgKqBw1+9PiLTtObl7uQ==", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/relative-to-absolute-iri": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/relative-to-absolute-iri/-/relative-to-absolute-iri-1.0.7.tgz", + "integrity": "sha512-Xjyl4HmIzg2jzK/Un2gELqbcE8Fxy85A/aLSHE6PE/3+OGsFwmKVA1vRyGaz6vLWSqLDMHA+5rjD/xbibSQN1Q==", + "license": "MIT" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/shacl-engine": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shacl-engine/-/shacl-engine-1.0.0.tgz", + "integrity": "sha512-1vFux8h6FNUBAtXxH7SusdwWj2f3UwjhI51aGIFidvzRf27Uvmy1O7O9+PViGzc3533Zk5Nxsjfe9jhtNcb6Iw==", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^3.1.0", + "@comunica/query-sparql-rdfjs-lite": "^3.1.2", + "@rdfjs/namespace": "^2.0.0", + "@rdfjs/term-map": "^2.0.0", + "@rdfjs/term-set": "^2.0.1", + "@rdfjs/to-ntriples": "^3.0.1", + "grapoi": "^1.1.1", + "lodash": "^4.17.21", + "rdf-literal": "^1.3.1", + "rdf-validation": "^0.1.0", + "readable-stream": "^4.5.1" + } + }, + "node_modules/shaclc-parse": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/shaclc-parse/-/shaclc-parse-1.4.0.tgz", + "integrity": "sha512-zyxjIYQH2ghg/wtMvOp+4Nr6aK8j9bqFiVT3w47K8WHPYN+S3Zgnh2ybT+dGgMwo9KjiOoywxhjC7d8Z6GCmfA==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "^1.1.0", + "n3": "^1.16.3" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spark-md5": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", + "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", + "license": "(WTFPL OR MIT)" + }, + "node_modules/sparqlalgebrajs": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/sparqlalgebrajs/-/sparqlalgebrajs-4.3.8.tgz", + "integrity": "sha512-Xo1/5icRtVk2N38BrY9NXN8N/ZPjULlns7sDHv0nlcGOsOediBLWVy8LmV+Q90RHvb3atZZbrFy3VqrM4iXciA==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/sparqljs": "^3.1.3", + "fast-deep-equal": "^3.1.3", + "minimist": "^1.2.6", + "rdf-data-factory": "^1.1.0", + "rdf-isomorphic": "^1.3.0", + "rdf-string": "^1.6.0", + "rdf-terms": "^1.10.0", + "sparqljs": "^3.7.1" + }, + "bin": { + "sparqlalgebrajs": "bin/sparqlalgebrajs.js" + } + }, + "node_modules/sparqljs": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/sparqljs/-/sparqljs-3.7.1.tgz", + "integrity": "sha512-I1jYMtcwDkgCEqQ4eQuQIhB8hFAlRAJ6YDXDcV54XztaJaYRFqJlidHt77S3j8Mfh6kY6GK04dXPEIopxbEeuQ==", + "license": "MIT", + "dependencies": { + "rdf-data-factory": "^1.1.2" + }, + "bin": { + "sparqljs": "bin/sparql-to-json" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-chunks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-chunks/-/stream-chunks-1.0.0.tgz", + "integrity": "sha512-/G+kinLx3pKXChtuko82taA4gZo56zFG2b2BbhmugmS0TUPBL40c5b2vjonS+gAHYK/cSKM9m0WTvAJYgDUeNw==", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "string_decoder": "^1.3.0" + } + }, + "node_modules/stream-to-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/stream-to-string/-/stream-to-string-1.2.1.tgz", + "integrity": "sha512-WsvTDNF8UYs369Yko3pcdTducQtYpzEZeOV7cTuReyFvOoA9S/DLJ6sYK+xPafSPHhUMpaxiljKYnT6JSFztIA==", + "license": "MIT", + "dependencies": { + "promise-polyfill": "^1.1.6" + } + }, + "node_modules/streamify-array": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/streamify-array/-/streamify-array-1.0.1.tgz", + "integrity": "sha512-ZnswaBcC6B1bhPLSQOlC6CdaDUSzU0wr2lvvHpbHNms8V7+DLd8uEAzDAWpsjxbFkijBHhuObFO/qqu52DZUMA==", + "license": "MIT" + }, + "node_modules/streamify-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/streamify-string/-/streamify-string-1.0.1.tgz", + "integrity": "sha512-RXvBglotrvSIuQQ7oC55pdV40wZ/17gTb68ipMC4LA0SqMN4Sqfsf31Dpei7qXpYqZQ8ueVnPglUvtep3tlhqw==", + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.0.tgz", + "integrity": "sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.0.tgz", + "integrity": "sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tsc-alias": { + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.10.tgz", + "integrity": "sha512-Ibv4KAWfFkFdKJxnWfVtdOmB0Zi1RJVxcbPGiCDsFpCQSsmpWyuzHG3rQyI5YkobWwxFPEyQfu1hdo4qLG2zPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.3", + "commander": "^9.0.0", + "globby": "^11.0.4", + "mylas": "^2.1.9", + "normalize-path": "^3.0.0", + "plimit-lit": "^1.2.6" + }, + "bin": { + "tsc-alias": "dist/bin/index.js" + } + }, + "node_modules/tsconfck": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.1.tgz", + "integrity": "sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==", + "dev": true, + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "license": "MIT", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-iri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/validate-iri/-/validate-iri-1.0.1.tgz", + "integrity": "sha512-gLXi7351CoyVVQw8XE5sgpYawRKatxE7kj/xmCxXOZS1kMdtcqC0ILIqLuVEVnAUQSL/evOGG3eQ+8VgbdnstA==", + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", + "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.0.0.tgz", + "integrity": "sha512-jZtezmjcgZTkMisIi68TdY8w/PqPTxK2pbfTU9/4Gqus1K3AVZqkwH0z7Vshe3CD6mq9rJq8SpqmuefDMIqkfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.5", + "pathe": "^1.1.2", + "picocolors": "^1.0.1", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-tsconfig-paths": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.2.tgz", + "integrity": "sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.0.0.tgz", + "integrity": "sha512-NvccE2tZhIoPSq3o3AoTBmItwhHNjzIxvOgfdzILIscyzSGOtw2+A1d/JJbS86HDVbc6TS5HnckQuCgTfp0HDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@vitest/expect": "2.0.0", + "@vitest/runner": "2.0.0", + "@vitest/snapshot": "2.0.0", + "@vitest/spy": "2.0.0", + "@vitest/utils": "2.0.0", + "chai": "^5.1.1", + "debug": "^4.3.5", + "execa": "^8.0.1", + "magic-string": "^0.30.10", + "pathe": "^1.1.2", + "picocolors": "^1.0.1", + "std-env": "^3.7.0", + "tinybench": "^2.8.0", + "tinypool": "^1.0.0", + "vite": "^5.0.0", + "vite-node": "2.0.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.0.0", + "@vitest/ui": "2.0.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/web-streams-ponyfill": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/web-streams-ponyfill/-/web-streams-ponyfill-1.4.2.tgz", + "integrity": "sha512-LCHW+fE2UBJ2vjhqJujqmoxh1ytEDEr0dPO3CabMdMDJPKmsaxzS90V1Ar6LtNE5VHLqxR4YMEj1i4lzMAccIA==", + "license": "MIT" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/winston": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.13.0.tgz", + "integrity": "sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.7.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz", + "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==", + "license": "MIT", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-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==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/winston/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/winston/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==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/processors/file-utils-ts/package.json b/processors/file-utils-ts/package.json new file mode 100644 index 0000000..0bfb49d --- /dev/null +++ b/processors/file-utils-ts/package.json @@ -0,0 +1,43 @@ +{ + "name": "shacl-validator-ts", + "version": "0.0.1", + "description": "A SHACL validator processor for RDF-Connect, written in TypeScript.", + "main": "dist/index.js", + "scripts": { + "build": "tsc && tsc-alias", + "test": "vitest run --coverage --coverage.include src", + "format": "eslint --fix . && prettier --write ." + }, + "repository": { + "type": "git", + "url": "git+https://github.com/rdf-connect/orchestrator.git" + }, + "keywords": [ + "rdf-connect" + ], + "author": "Jens Pots", + "license": "MIT", + "bugs": { + "url": "https://github.com/rdf-connect/orchestrator/issues" + }, + "homepage": "https://github.com/rdf-connect/orchestrator#readme", + "devDependencies": { + "@types/rdf-ext": "^2.5.0", + "@typescript-eslint/eslint-plugin": "^7.15.0", + "@typescript-eslint/parser": "^7.15.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "prettier": "^3.3.2", + "tsc-alias": "^1.8.10", + "typescript": "^5.5.3", + "vite-tsconfig-paths": "^4.3.2", + "vitest": "^2.0.0" + }, + "dependencies": { + "@rdfjs/formats": "^4.0.0", + "@rdfjs/serializer-turtle": "^1.1.3", + "jvm-runner-ts": "file:../../runners/nodejs", + "rdf-ext": "^2.5.2", + "shacl-engine": "^1.0.0" + } +} diff --git a/processors/file-utils-ts/src/FileReader.ts b/processors/file-utils-ts/src/FileReader.ts new file mode 100644 index 0000000..5809415 --- /dev/null +++ b/processors/file-utils-ts/src/FileReader.ts @@ -0,0 +1,22 @@ +import { Processor } from "jvm-runner-ts"; +import * as fs from "node:fs"; + +export default class FileWriter extends Processor { + private outgoing = this.args.get("outgoing", { + type: "writer", + list: "false", + nullable: "false", + }); + + private path = this.args.get("path", { + type: "string", + list: "false", + nullable: "false", + }); + + async exec(): Promise { + console.log(`Reading file: ${this.path}`); + const data = fs.readFileSync(this.path); + this.outgoing.write(data); + } +} diff --git a/processors/file-utils-ts/src/FileWriter.ts b/processors/file-utils-ts/src/FileWriter.ts new file mode 100644 index 0000000..bb6a4d5 --- /dev/null +++ b/processors/file-utils-ts/src/FileWriter.ts @@ -0,0 +1,25 @@ +import { Processor } from "jvm-runner-ts"; +import * as fs from "node:fs"; + +export default class FileWriter extends Processor { + private incoming = this.args.get("incoming", { + type: "reader", + list: "false", + nullable: "false", + }); + + private path = this.args.get("path", { + type: "string", + list: "false", + nullable: "false", + }); + + async exec(): Promise { + while (true) { + const data = await this.incoming.read(); + console.log(`Incoming data: ${data.toString()}`); + fs.writeFileSync(this.path, data, { flag: "a" }); + console.log(`Written to: ${this.path}`); + } + } +} diff --git a/processors/file-utils-ts/test/index.test.ts b/processors/file-utils-ts/test/index.test.ts new file mode 100644 index 0000000..e69de29 diff --git a/processors/file-utils-ts/tsconfig.json b/processors/file-utils-ts/tsconfig.json new file mode 100644 index 0000000..f2ee90d --- /dev/null +++ b/processors/file-utils-ts/tsconfig.json @@ -0,0 +1,111 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + "incremental": false /* Save .tsbuildinfo files to allow for incremental compilation of projects. */, + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + "experimentalDecorators": true /* Enable experimental support for legacy experimental decorators. */, + "emitDecoratorMetadata": true /* Emit design-type metadata for decorated declarations in source files. */, + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs" /* Specify what module code is generated. */, + "rootDir": "./src" /* Specify the root folder within your source files. */, + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + // "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, + // "declarationMap": true /* Create sourcemaps for d.ts files. */, + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + "outDir": "./build/" /* Specify an output folder for all emitted files. */, + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + "newLine": "lf" /* Set the newline character for emitting files. */, + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + + /* Type Checking */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + }, + "include": ["src/**/*", "types/**/*.d.ts"], + "exclude": ["node_modules"] +} diff --git a/processors/file-utils-ts/vite.config.ts b/processors/file-utils-ts/vite.config.ts new file mode 100644 index 0000000..590f752 --- /dev/null +++ b/processors/file-utils-ts/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vitest/config"; +import tsconfigPaths from "vite-tsconfig-paths"; + +defineConfig({ + plugins: [tsconfigPaths()], +}); diff --git a/processors/shacl-validator-ts/index.ttl b/processors/shacl-validator-ts/index.ttl index 02a98f2..21a4c19 100644 --- a/processors/shacl-validator-ts/index.ttl +++ b/processors/shacl-validator-ts/index.ttl @@ -1,5 +1,5 @@ @prefix rdf: . -@prefix rdfc: . +@prefix rdfc: . @prefix sh: . @prefix xsd: . @@ -11,18 +11,18 @@ rdfc:repo "https://github.com/rdf-connect/orchestrator.git" ; rdfc:license "MIT" ; rdfc:prepare "npm run build" ; - rdfc:processors . + rdfc:processors rdfc:SHACLValidatorTS . - +rdfc:SHACLValidatorTS a rdfc:Processor ; - rdfc:target rdfc:node ; - rdfc:entrypoint "build/index.js" . + rdfc:target rdfc:NodeRunner ; + rdfc:entrypoint <./build/index.js> . [] a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:targetClass ; + sh:targetClass rdfc:SHACLValidatorTS ; sh:property [ sh:maxCount 1 ; sh:minCount 1 ; @@ -33,32 +33,32 @@ sh:maxCount 1 ; sh:minCount 1 ; sh:name "incoming" ; - sh:path ; - sh:class rdfc:Reader; + sh:path rdfc:incoming ; + sh:class rdfc:Reader ; ], [ sh:maxCount 1 ; sh:minCount 1 ; sh:name "outgoing" ; - sh:path ; - sh:class rdfc:Writer; + sh:path rdfc:outgoing ; + sh:class rdfc:Writer ; ], [ sh:maxCount 1 ; sh:minCount 0 ; sh:name "report" ; - sh:path ; - sh:class rdfc:Writer; + sh:path rdfc:report ; + sh:class rdfc:Writer ; ], [ sh:maxCount 1 ; sh:minCount 0 ; sh:name "mime" ; - sh:path ; - sh:datatype xsd:string; + sh:path rdfc:mime ; + sh:datatype xsd:string ; ], [ sh:maxCount 1 ; sh:minCount 0 ; sh:name "validation_is_fatal" ; - sh:path ; - sh:datatype xsd:bool; + sh:path rdfc:fatal ; + sh:datatype xsd:boolean ; ] ; ] ; ]. diff --git a/proto/intermediate.proto b/proto/intermediate.proto index 5e01899..33b591a 100644 --- a/proto/intermediate.proto +++ b/proto/intermediate.proto @@ -38,8 +38,9 @@ message IRParameter { message IRProcessor { string uri = 1; - map parameters = 2; - map metadata = 3; + string entrypoint = 2; + map parameters = 3; + map metadata = 4; } message IRArgumentSimple { diff --git a/runners/nodejs/index.ttl b/runners/nodejs/index.ttl new file mode 100644 index 0000000..9889fb4 --- /dev/null +++ b/runners/nodejs/index.ttl @@ -0,0 +1,15 @@ +@prefix rdfc: . + +rdfc:NodePackage + a rdfc:Package ; + rdfc:version "0.0.1" ; + rdfc:author "Jens Pots" ; + rdfc:description "A gRPC based Node.js runner." ; + rdfc:repo "https://github.com/rdf-connect/orchestrator" ; + rdfc:license "MIT" ; + rdfc:prepare "npm run build" ; + rdfc:runners rdfc:NodeRunner . + +rdfc:NodeRunner + a rdfc:GRPCRunner ; + rdfc:entrypoint "node build/runtime localhost 5000" . diff --git a/runners/nodejs/src/error.ts b/runners/nodejs/src/error.ts index e1b7a4a..152faee 100644 --- a/runners/nodejs/src/error.ts +++ b/runners/nodejs/src/error.ts @@ -4,6 +4,10 @@ export class RunnerError extends Error { this.name = "RunnerError"; } + static missingParameters(): never { + throw new RunnerError("No parameters provided."); + } + static inconsistency(message: string | null = null): never { let msg = "An error occurred while parsing incoming data."; if (message) { @@ -12,6 +16,10 @@ export class RunnerError extends Error { throw new RunnerError(msg); } + static missingParameter(key: string): never { + throw new RunnerError(`Missing parameter: ${key}`); + } + static missingArgument(key: string): never { throw new RunnerError(`Missing argument: ${key}`); } diff --git a/runners/nodejs/src/interfaces/reader.ts b/runners/nodejs/src/interfaces/reader.ts index 2d0cf76..bacac71 100644 --- a/runners/nodejs/src/interfaces/reader.ts +++ b/runners/nodejs/src/interfaces/reader.ts @@ -11,7 +11,7 @@ export class Reader { async read(): Promise { try { const result = await firstValueFrom(this.channel.pipe()); - console.log(`[unknown] -> '${result.toString()}'`); + console.log(`[unknown] -> '${result.toString().replace("\n", "\\n")}'`); return result; } catch (error) { throw RunnerError.channelError(); diff --git a/runners/nodejs/src/interfaces/writer.ts b/runners/nodejs/src/interfaces/writer.ts index 7182633..96be7e6 100644 --- a/runners/nodejs/src/interfaces/writer.ts +++ b/runners/nodejs/src/interfaces/writer.ts @@ -8,7 +8,7 @@ export class Writer { } write(bytes: Uint8Array): void { - console.log(`'${bytes.toString()}' -> [unknown]`); + console.log(`'${bytes.toString().replace("\n", "\\n")}' -> [unknown]`); this.channel.next(bytes); } } diff --git a/runners/nodejs/src/proto/intermediate.ts b/runners/nodejs/src/proto/intermediate.ts index c83fd89..ac802a3 100644 --- a/runners/nodejs/src/proto/intermediate.ts +++ b/runners/nodejs/src/proto/intermediate.ts @@ -174,6 +174,7 @@ export interface IRParameter { export interface IRProcessor { uri: string; + entrypoint: string; parameters: { [key: string]: IRParameter }; metadata: { [key: string]: string }; } @@ -527,7 +528,7 @@ export const IRParameter = { }; function createBaseIRProcessor(): IRProcessor { - return { uri: "", parameters: {}, metadata: {} }; + return { uri: "", entrypoint: "", parameters: {}, metadata: {} }; } export const IRProcessor = { @@ -538,16 +539,19 @@ export const IRProcessor = { if (message.uri !== "") { writer.uint32(10).string(message.uri); } + if (message.entrypoint !== "") { + writer.uint32(18).string(message.entrypoint); + } Object.entries(message.parameters).forEach(([key, value]) => { IRProcessor_ParametersEntry.encode( { key: key as any, value }, - writer.uint32(18).fork(), + writer.uint32(26).fork(), ).ldelim(); }); Object.entries(message.metadata).forEach(([key, value]) => { IRProcessor_MetadataEntry.encode( { key: key as any, value }, - writer.uint32(26).fork(), + writer.uint32(34).fork(), ).ldelim(); }); return writer; @@ -573,25 +577,32 @@ export const IRProcessor = { break; } - const entry2 = IRProcessor_ParametersEntry.decode( + message.entrypoint = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + const entry3 = IRProcessor_ParametersEntry.decode( reader, reader.uint32(), ); - if (entry2.value !== undefined) { - message.parameters[entry2.key] = entry2.value; + if (entry3.value !== undefined) { + message.parameters[entry3.key] = entry3.value; } continue; - case 3: - if (tag !== 26) { + case 4: + if (tag !== 34) { break; } - const entry3 = IRProcessor_MetadataEntry.decode( + const entry4 = IRProcessor_MetadataEntry.decode( reader, reader.uint32(), ); - if (entry3.value !== undefined) { - message.metadata[entry3.key] = entry3.value; + if (entry4.value !== undefined) { + message.metadata[entry4.key] = entry4.value; } continue; } @@ -606,6 +617,9 @@ export const IRProcessor = { fromJSON(object: any): IRProcessor { return { uri: isSet(object.uri) ? globalThis.String(object.uri) : "", + entrypoint: isSet(object.entrypoint) + ? globalThis.String(object.entrypoint) + : "", parameters: isObject(object.parameters) ? Object.entries(object.parameters).reduce<{ [key: string]: IRParameter; @@ -631,6 +645,9 @@ export const IRProcessor = { if (message.uri !== "") { obj.uri = message.uri; } + if (message.entrypoint !== "") { + obj.entrypoint = message.entrypoint; + } if (message.parameters) { const entries = Object.entries(message.parameters); if (entries.length > 0) { @@ -660,6 +677,7 @@ export const IRProcessor = { ): IRProcessor { const message = createBaseIRProcessor(); message.uri = object.uri ?? ""; + message.entrypoint = object.entrypoint ?? ""; message.parameters = Object.entries(object.parameters ?? {}).reduce<{ [key: string]: IRParameter; }>((acc, [key, value]) => { diff --git a/runners/nodejs/src/runtime/runner.ts b/runners/nodejs/src/runtime/runner.ts index 454b5b8..829e65f 100644 --- a/runners/nodejs/src/runtime/runner.ts +++ b/runners/nodejs/src/runtime/runner.ts @@ -150,7 +150,9 @@ export class Runner { // If the argument is a single value, we can parse it directly. if (arg.simple && param.simple) { - const params = param.simple ?? RunnerError.inconsistency(); + const params = + param.simple ?? + RunnerError.inconsistency("Expected simple parameter, found complex."); // Recursively call for each value. return arg.simple.value.map((value) => @@ -159,7 +161,7 @@ export class Runner { } // If the argument is not simple or complex, we throw an error. - RunnerError.inconsistency(); + RunnerError.inconsistency("Expected simple or complex argument."); } /** @@ -180,7 +182,7 @@ export class Runner { // Simply go over all arguments and instantiate them, recursively // if required. for (const [name, arg] of args) { - const param = params.get(name) ?? RunnerError.inconsistency(); + const param = params.get(name) ?? RunnerError.missingParameter(name); const parsed = this.parseArgument(arg, param); // Set the argument. @@ -197,13 +199,22 @@ export class Runner { * @param stage The stage to be instantiated. */ async load(stage: IRStage): Promise { + console.log(`Loading stage: ${stage.uri}`); + + let path = stage.processor!.entrypoint; + if (path.startsWith("file://")) { + path = path.substring(7); + } + // Load the processor into Node.js. - const absolutePath = path.resolve(stage.processor!.metadata.import); - const processor = await import(absolutePath); + console.log(`Importing processor: ${path}`); + const processor = await import(path); const constructor = processor.default; // Parse the stage's arguments. - const params = stage.processor?.parameters ?? RunnerError.inconsistency(); + console.log("Parsing arguments."); + const params = + stage.processor?.parameters ?? RunnerError.missingParameters(); const rawArguments = asMap(stage.arguments); const parsedArguments = this.parseComplexArgument( rawArguments, @@ -211,11 +222,13 @@ export class Runner { ); // Instantiate the processor with the parsed arguments. + console.log("Instantiating processor."); const instance = tryOrPanic(() => { return new constructor(new Arguments(parsedArguments)); }); // Keep track of it in the stages map. + console.log("Loading stage done."); this.stages.set(stage.uri, instance); } diff --git a/runners/nodejs/src/runtime/server.ts b/runners/nodejs/src/runtime/server.ts index eaf012e..31250c1 100644 --- a/runners/nodejs/src/runtime/server.ts +++ b/runners/nodejs/src/runtime/server.ts @@ -26,13 +26,13 @@ export class ServerImplementation implements RunnerServer { channel(call: ServerDuplexStream): void { // On incoming data, call the appropriate reader. call.on("data", function (payload: ChannelData) { - console.log("gRPC::channel::data"); + console.log("gRPC: received data from orchestrator."); Runner.shared.incoming.next(payload); }); // On outgoing data, propagate to gRPC. Runner.shared.outgoing.subscribe((payload) => { - console.log("gRPC::channel::write"); + console.log("gRPC: writing data back to orchestrator."); call.write(payload); }); } @@ -45,6 +45,7 @@ export class ServerImplementation implements RunnerServer { call: ServerUnaryCall, callback: sendUnaryData, ): void { + console.log("gRPC::prepareProcessor::load"); Runner.shared .load(call.request) .then(() => { diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt index fd2d345..82dfe75 100644 --- a/src/main/kotlin/Main.kt +++ b/src/main/kotlin/Main.kt @@ -1,31 +1,93 @@ package technology.idlab import java.io.File -import kotlin.system.exitProcess +import kotlin.concurrent.thread import kotlinx.coroutines.runBlocking +import technology.idlab.extensions.rawPath import technology.idlab.parser.Parser +import technology.idlab.util.Log -fun main(args: Array) = runBlocking { - // Retrieve the pipeline configuration path from the CLI arguments. - if (args.size != 1) { - println("Usage: rdfc ") - exitProcess(0) - } +internal suspend fun exec(path: String) { + Log.shared.info("Starting the RDF-Connect orchestrator.") - // Load the configuration file. - val path = args[0] - val file = File(path) + // Open file pointer. + val file = + try { + File(path) + } catch (e: NullPointerException) { + Log.shared.fatal("Pipeline file does not exist.") + } // Parse said config to a IRPipeline. + Log.shared.debug("Invoking parser.") val parser = Parser.using(file) // Parse the pipeline out of the configuration file. - val pipeline = parser.pipelines[0] + if (parser.pipelines.size != 1) { + Log.shared.fatal("The configuration file may only contain one pipeline.") + } + + // For each package, run the preparation command if it exists. + parser.packages.forEach { pkg -> + if (pkg.prepare?.isNotEmpty() == true) { + Log.shared.info("Preparing package in ${pkg.directory.rawPath()}") + Log.shared.info("Executing preparation command: ${pkg.prepare}") + + // Create processor builder. + val builder = ProcessBuilder(pkg.prepare.split(" ")) + builder.directory(File(pkg.directory.rawPath())) + builder.environment()["PATH"] = System.getenv("PATH") + + // Start process. + val process = builder.start() + + val input = thread { + val stream = process.inputStream.bufferedReader() + for (line in stream.lines()) { + Log.shared.info(line) + } + } + + val output = thread { + val stream = process.errorStream.bufferedReader() + for (line in stream.lines()) { + Log.shared.fatal(line) + } + } + + val exitCode = + try { + process.waitFor() + } catch (e: InterruptedException) { + Log.shared.fatal("Preparation command was interrupted due to ${e.message}") + } - // From all packages, retrieve all processors. - val processors = parser.processors + if (exitCode != 0) { + Log.shared.fatal("Preparation command failed with exit code $exitCode.") + } + + // Quit listening, process is done. + input.interrupt() + output.interrupt() + } + } // Start the orchestrator. - val orchestrator = Orchestrator(pipeline, processors) + Log.shared.debug("Invoking orchestrator.") + val pipeline = parser.pipelines[0] + val orchestrator = Orchestrator(pipeline, parser.processors, parser.runners) orchestrator.exec() } + +fun main(args: Array) = runBlocking { + // Retrieve the pipeline configuration path from the CLI arguments. + if (args.size != 1) { + Log.shared.fatal("No pipeline file provided.") + } + + // Load the configuration file. + val path = args[0] + + // Forward the pipeline path to the executing function. + exec(path) +} diff --git a/src/main/kotlin/Orchestrator.kt b/src/main/kotlin/Orchestrator.kt index 9629939..bca5073 100644 --- a/src/main/kotlin/Orchestrator.kt +++ b/src/main/kotlin/Orchestrator.kt @@ -1,5 +1,7 @@ package technology.idlab +import kotlinx.coroutines.TimeoutCancellationException +import kotlinx.coroutines.cancel import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.isActive @@ -7,25 +9,31 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withTimeout import runner.Runner -import runner.impl.NodeRunner -import runner.jvm.JVMRunner import technology.idlab.intermediate.IRPipeline import technology.idlab.intermediate.IRProcessor +import technology.idlab.intermediate.IRRunner import technology.idlab.intermediate.IRStage import technology.idlab.util.Log -class Orchestrator(private val pipeline: IRPipeline, processors: List) { +class Orchestrator( + private val pipeline: IRPipeline, + processors: List, + runners: List +) { /** An exhaustive list of all runners. */ private val channel = Channel() - private val jvmRunner = JVMRunner(channel) - private val nodeRunner = NodeRunner(channel, 5000) - private val runners = listOf(nodeRunner, jvmRunner) + + private val runners = runners.associateBy { it.uri }.mapValues { Runner.from(it.value, channel) } private val processors = processors.associateBy { it.uri } /** A map of all channel URIs and their readers. */ private val readers = mutableMapOf() + init { + Log.shared.info("Bringing runners online") + } + init { runBlocking { pipeline.stages.forEach { prepare(it) } } } @@ -43,30 +51,36 @@ class Orchestrator(private val pipeline: IRPipeline, processors: List this.jvmRunner - Runner.Target.NODEJS -> this.nodeRunner - } + private fun getRuntime(uri: String): Runner { + return this.runners[uri] ?: Log.shared.fatal("Unknown runner: $uri") } } diff --git a/src/main/kotlin/extensions/File.kt b/src/main/kotlin/extensions/File.kt new file mode 100644 index 0000000..46ceb5f --- /dev/null +++ b/src/main/kotlin/extensions/File.kt @@ -0,0 +1,5 @@ +package technology.idlab.extensions + +import java.io.File + +fun File.rawPath() = this.toPath().toString().removePrefix("file:") diff --git a/src/main/kotlin/intermediate/IRPackage.kt b/src/main/kotlin/intermediate/IRPackage.kt index 9b06bcc..043f445 100644 --- a/src/main/kotlin/intermediate/IRPackage.kt +++ b/src/main/kotlin/intermediate/IRPackage.kt @@ -1,7 +1,11 @@ package technology.idlab.intermediate +import java.io.File + /** A resolved dependency, with all of its configuration parameters. */ data class IRPackage( + /** The location of the package on disk. */ + val directory: File, /** The package's version. */ val version: String? = null, /** The package's author. */ @@ -15,5 +19,7 @@ data class IRPackage( /** The preparation command, which is run before loading the processor. */ val prepare: String? = null, /** The processors inside the package. */ - val processors: List + val processors: List = emptyList(), + /** The runners inside the package. */ + val runners: List = emptyList(), ) diff --git a/src/main/kotlin/intermediate/IRProcessor.kt b/src/main/kotlin/intermediate/IRProcessor.kt index c1f4150..5a40ad6 100644 --- a/src/main/kotlin/intermediate/IRProcessor.kt +++ b/src/main/kotlin/intermediate/IRProcessor.kt @@ -1,12 +1,12 @@ package technology.idlab.intermediate -import runner.Runner - class IRProcessor( /** The URI of the processor. */ val uri: String, /** The destination of the processor. */ - val target: Runner.Target, + val target: String, + /** The entrypoint. */ + val entrypoint: String, /** Processor parameters. */ val parameters: Map = emptyMap(), /** Additional parameters. These may be used by the runner for any reason. */ diff --git a/src/main/kotlin/intermediate/IRRunner.kt b/src/main/kotlin/intermediate/IRRunner.kt new file mode 100644 index 0000000..88f6d4e --- /dev/null +++ b/src/main/kotlin/intermediate/IRRunner.kt @@ -0,0 +1,15 @@ +package technology.idlab.intermediate + +import java.io.File + +data class IRRunner( + val uri: String, + val directory: File? = null, + val entrypoint: String? = null, + val type: IRRunner.Type, +) { + enum class Type { + GRPC, + BUILT_IN, + } +} diff --git a/src/main/kotlin/parser/Parser.kt b/src/main/kotlin/parser/Parser.kt index 520fb30..ae20896 100644 --- a/src/main/kotlin/parser/Parser.kt +++ b/src/main/kotlin/parser/Parser.kt @@ -4,6 +4,7 @@ import java.io.File import technology.idlab.intermediate.IRPackage import technology.idlab.intermediate.IRPipeline import technology.idlab.intermediate.IRProcessor +import technology.idlab.intermediate.IRRunner import technology.idlab.parser.impl.JenaParser /** @@ -20,6 +21,9 @@ abstract class Parser { /** List of all known processors. */ abstract val processors: List + /** List of all known runners. */ + abstract val runners: List + companion object { fun using(file: File): Parser { return JenaParser(file) diff --git a/src/main/kotlin/parser/impl/JenaParser.kt b/src/main/kotlin/parser/impl/JenaParser.kt index f7b2548..b8bae60 100644 --- a/src/main/kotlin/parser/impl/JenaParser.kt +++ b/src/main/kotlin/parser/impl/JenaParser.kt @@ -10,7 +10,6 @@ import org.apache.jena.rdf.model.ResourceFactory.createProperty import org.apache.jena.rdf.model.ResourceFactory.createResource import org.apache.jena.shacl.vocabulary.SHACLM import org.apache.jena.vocabulary.RDF -import runner.Runner import technology.idlab.extensions.objectOfProperty import technology.idlab.extensions.subjectWithProperty import technology.idlab.extensions.validate @@ -20,6 +19,7 @@ import technology.idlab.intermediate.IRPackage import technology.idlab.intermediate.IRParameter import technology.idlab.intermediate.IRPipeline import technology.idlab.intermediate.IRProcessor +import technology.idlab.intermediate.IRRunner import technology.idlab.intermediate.IRStage import technology.idlab.parser.Parser import technology.idlab.resolver.Resolver @@ -44,16 +44,14 @@ private class RDFC { val repo = createProperty("${NS}repo")!! val license = createProperty("${NS}license")!! val prepare = createProperty("${NS}prepare")!! + val runners = createProperty("${NS}runners")!! val processors = createProperty("${NS}processors")!! val pipeline = createProperty("${NS}Pipeline")!! val stages = createProperty("${NS}stages")!! - } -} - -private fun Resource.toRunnerTarget(): Runner.Target { - return when (this) { - RDFC.kotlinRunner -> Runner.Target.JVM - else -> Log.shared.fatal("Unknown runner type: $this") + val entrypoint = createProperty("${NS}entrypoint")!! + val reader = createResource("${NS}Reader")!! + val writer = createResource("${NS}Writer")!! + val grpcRunner = createResource("${NS}GRPCRunner")!! } } @@ -71,8 +69,8 @@ private fun Resource.toIRParameterType(): IRParameter.Type { "http://www.w3.org/2001/XMLSchema#int" -> IRParameter.Type.INT "http://www.w3.org/2001/XMLSchema#long" -> IRParameter.Type.LONG "http://www.w3.org/2001/XMLSchema#string" -> IRParameter.Type.STRING - "http://www.rdf-connect.com/#/writer" -> IRParameter.Type.WRITER - "http://www.rdf-connect.com/#/reader" -> IRParameter.Type.READER + "https://www.rdf-connect.com/#Writer" -> IRParameter.Type.WRITER + "https://www.rdf-connect.com/#Reader" -> IRParameter.Type.READER else -> Log.shared.fatal("Unknown datatype: ${this.uri}") } } @@ -87,6 +85,7 @@ private fun Model.parseSHACLProperty(property: Resource): Pair { // Go over each triple of the resource. If it is a literal, add it to the simple list. Otherwise, // call recursively and add it to the complex list. for (triple in listStatements(node, null, null as RDFNode?)) { + if (triple.predicate == RDF.type) { + continue + } + val key = nameOfSHACLPath(triple.predicate) val value = triple.`object` + // If the value is a literal, it is always simple. if (value.isLiteral) { val list = simple.getOrPut(key) { mutableListOf() } list.add(value.asLiteral().string) - } else if (value.isResource) { - val list = complex.getOrPut(key) { mutableListOf() } - val nested = parseArguments(value.asResource()) - list.add(nested) - } else { - Log.shared.fatal("Unknown RDFNode type: $value") + continue + } + + // If the value is a resource, pointing to a Reader or Writer, it is always simple as well. + val type = objectOfProperty(value.asResource(), RDF.type) + if (type == RDFC.channel || type == RDFC.writer || type == RDFC.reader) { + val list = simple.getOrPut(key) { mutableListOf() } + list.add(value.toString()) + continue } + + // Else, parse it as a complex argument. + val list = complex.getOrPut(key) { mutableListOf() } + val nested = parseArguments(value.asResource()) + list.add(nested) } // Combine both simple and complex mappings as a single map to IRArguments. @@ -180,11 +194,27 @@ private fun Model.parseArguments(node: Resource): Map { complex.mapValues { (_, value) -> IRArgument(complex = value) } } +private fun Model.parseRunner(directory: File, runner: Resource): IRRunner { + Log.shared.debug("Parsing runner: $runner") + + val entrypoint = objectOfProperty(runner, RDFC.entrypoint)?.toString() + val type = + objectOfProperty(runner, RDF.type) ?: Log.shared.fatal("No type found for runner: $runner") + + if (type == RDFC.grpcRunner) { + return IRRunner(runner.toString(), directory, entrypoint, IRRunner.Type.GRPC) + } else { + Log.shared.fatal("Unknown runner type: $type") + } +} + private fun Model.parseProcessor(processor: Resource): IRProcessor { + Log.shared.debug("Parsing processor: $processor") + val uri = processor.toString() // Determine the target runner. - val target = objectOfProperty(processor, RDFC.target)!!.asResource().toRunnerTarget() + val target = objectOfProperty(processor, RDFC.target)!!.toString() // Parse the parameters by SHACL shape. val shape = @@ -214,7 +244,10 @@ private fun Model.parseProcessor(processor: Resource): IRProcessor { metadata[key.trim()] = value.trim() } - return IRProcessor(uri, target, parameters, metadata) + // Get entrypoint. + val entrypoint = objectOfProperty(processor, RDFC.entrypoint)!!.toString() + + return IRProcessor(uri, target, entrypoint, parameters, metadata) } private fun Model.parseStages(pipeline: Resource): List { @@ -231,7 +264,9 @@ private fun Model.parseDependencies(pipeline: Resource?): List { } } -private fun Model.parsePackage(pkg: Resource): IRPackage { +private fun Model.parsePackage(directory: File, pkg: Resource): IRPackage { + Log.shared.debug("Parsing package: $pkg") + // Get all of its properties. val version = objectOfProperty(pkg, RDFC.version) val author = objectOfProperty(pkg, RDFC.author) @@ -241,9 +276,14 @@ private fun Model.parsePackage(pkg: Resource): IRPackage { val prepare = objectOfProperty(pkg, RDFC.prepare) val processors = listObjectsOfProperty(pkg, RDFC.processors).toList().map { parseProcessor(it.asResource()) } + val runners = + listObjectsOfProperty(pkg, RDFC.runners).toList().map { + parseRunner(directory, it.asResource()) + } // Parse the properties to strings if required, and return the package IR. return IRPackage( + directory = directory, version = version?.toString(), author = author?.toString(), description = description.toString(), @@ -251,14 +291,19 @@ private fun Model.parsePackage(pkg: Resource): IRPackage { license = license.toString(), prepare = prepare.toString(), processors = processors, + runners = runners, ) } -private fun Model.parsePackages(): List { - return listSubjectsWithProperty(RDF.type, RDFC.`package`).toList().map { parsePackage(it) } +private fun Model.parsePackages(directory: File): List { + return listSubjectsWithProperty(RDF.type, RDFC.`package`).toList().map { + parsePackage(directory, it) + } } private fun Model.parsePipeline(pipeline: Resource): IRPipeline { + Log.shared.debug("Parsing pipeline: $pipeline") + return IRPipeline( uri = pipeline.uri, stages = parseStages(pipeline), @@ -283,6 +328,9 @@ class JenaParser(file: File) : Parser() { /** List of all known processors. */ override val processors: List + /** List of all known runners. */ + override val runners: List + init { // Load the RDF-Connect ontology. val resource = this::class.java.getResource("/pipeline.ttl") @@ -296,18 +344,25 @@ class JenaParser(file: File) : Parser() { val dependencies = this.dependencies() // Resolve all dependencies. - dependencies.forEach { - val path = Resolver.resolve(it) - this.load(path.toString()) - } + this.packages = + dependencies + .map { + val path = Resolver.resolve(it) + val mdl = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM) + mdl.read(path.toString(), "TURTLE") + val result = mdl.parsePackages(path.parentFile) + model.add(mdl) + result + } + .flatten() // Since we updated the model, we will once again check if the SHACL shapes are valid. this.model.validate() // Parse the file. this.pipelines = this.pipelines() - this.packages = this.packages() this.processors = this.packages.map { it.processors }.flatten() + this.runners = this.packages.map { it.runners }.flatten() } /** Parse the file as a list of pipelines, returning its containing stages and dependencies. */ @@ -315,11 +370,6 @@ class JenaParser(file: File) : Parser() { return model.parsePipelines() } - /** Parse the model as a list of packages, returning the provided processors inside. */ - private fun packages(): List { - return model.parsePackages() - } - /** Retrieve all dependencies in a given file. */ private fun dependencies(): List { return model.parseDependencies(null as Resource?) diff --git a/src/main/kotlin/resolver/Resolver.kt b/src/main/kotlin/resolver/Resolver.kt index c7dcbb7..96c212a 100644 --- a/src/main/kotlin/resolver/Resolver.kt +++ b/src/main/kotlin/resolver/Resolver.kt @@ -21,8 +21,6 @@ abstract class Resolver { companion object { fun resolve(dependency: IRDependency): File { - Log.shared.info("Resolving dependency with URI ${dependency.uri}") - return if (dependency.uri.startsWith("file://")) { LocalResolver().resolve(dependency) } else if (dependency.uri.startsWith("git://")) { diff --git a/src/main/kotlin/resolver/impl/GitResolver.kt b/src/main/kotlin/resolver/impl/GitResolver.kt index 08af825..021be57 100644 --- a/src/main/kotlin/resolver/impl/GitResolver.kt +++ b/src/main/kotlin/resolver/impl/GitResolver.kt @@ -3,10 +3,12 @@ package technology.idlab.resolver.impl import java.io.File import technology.idlab.intermediate.IRDependency import technology.idlab.resolver.Resolver +import technology.idlab.util.Log /** Resolve a Git repository by cloning it locally and reading its configuration file. */ class GitResolver : Resolver() { override fun resolve(dependency: IRDependency): File { + Log.shared.debug("Resolving dependency: ${dependency.uri}") TODO("Not yet implemented") } } diff --git a/src/main/kotlin/resolver/impl/LocalResolver.kt b/src/main/kotlin/resolver/impl/LocalResolver.kt index bf4cad0..ada6ec8 100644 --- a/src/main/kotlin/resolver/impl/LocalResolver.kt +++ b/src/main/kotlin/resolver/impl/LocalResolver.kt @@ -3,10 +3,12 @@ package technology.idlab.resolver.impl import java.io.File import technology.idlab.intermediate.IRDependency import technology.idlab.resolver.Resolver +import technology.idlab.util.Log /** Resolve a file on the local file system. */ class LocalResolver : Resolver() { override fun resolve(dependency: IRDependency): File { + Log.shared.debug("Resolving dependency: ${dependency.uri}") return File("${dependency.uri}/index.ttl") } } diff --git a/src/main/kotlin/runner/Runner.kt b/src/main/kotlin/runner/Runner.kt index e3bc709..5545082 100644 --- a/src/main/kotlin/runner/Runner.kt +++ b/src/main/kotlin/runner/Runner.kt @@ -1,23 +1,16 @@ package runner import kotlinx.coroutines.channels.Channel +import runner.impl.HostedGRPCRunner +import runner.jvm.JVMRunner import technology.idlab.intermediate.IRProcessor +import technology.idlab.intermediate.IRRunner import technology.idlab.intermediate.IRStage import technology.idlab.util.Log abstract class Runner( val fromProcessors: Channel, ) { - /* - * Implementations of this abstract class are exhaustively listed here. If you were to write your - * own runtime implementation, you should add an entry here, as well as extend the companion - * object. - */ - enum class Target { - JVM, - NODEJS, - } - /** The contents of a channel message. */ data class Payload( // The URI of the reader which the message was sent to. @@ -41,4 +34,20 @@ abstract class Runner( fromProcessors.close() toProcessors.close() } + + companion object { + fun from(runner: IRRunner, channel: Channel): Runner { + Log.shared.info("Creating runner: ${runner.uri}") + + if (runner.type == IRRunner.Type.GRPC) { + runner.entrypoint ?: Log.shared.fatal("No entrypoint provided for GRPCRunner.") + runner.directory ?: Log.shared.fatal("No directory provided for GRPCRunner.") + return HostedGRPCRunner(runner.entrypoint, runner.directory, channel) + } else if (runner.uri == "https://rdf-connect.com/#JVMRunner") { + return JVMRunner(channel) + } else { + Log.shared.fatal("Unknown runner type: ${runner.type}") + } + } + } } diff --git a/src/main/kotlin/runner/impl/GRPCRunner.kt b/src/main/kotlin/runner/impl/GRPCRunner.kt index e4befb5..d07b23f 100644 --- a/src/main/kotlin/runner/impl/GRPCRunner.kt +++ b/src/main/kotlin/runner/impl/GRPCRunner.kt @@ -7,6 +7,7 @@ import RunnerGrpcKt import com.google.protobuf.ByteString import io.grpc.ManagedChannel import io.grpc.ManagedChannelBuilder +import kotlinx.coroutines.async import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.map @@ -104,6 +105,7 @@ private fun IRStage.toGRPC(processor: GRPC.IRProcessor): GRPC.IRStage { private fun IRProcessor.toGRPC(): GRPC.IRProcessor { val builder = GRPC.IRProcessor.newBuilder() builder.setUri(uri) + builder.setEntrypoint(entrypoint) builder.putAllParameters(parameters.mapValues { it.value.toGRPC() }) builder.putAllMetadata(metadata) return builder.build() @@ -118,7 +120,7 @@ abstract class GRPCRunner( fromProcessors: Channel, host: String, /** The port of the GRPC server. */ - protected val port: Int + private val port: Int ) : Runner(fromProcessors) { /** Create a single stub for all communication. */ private val conn: ManagedChannel = @@ -139,27 +141,33 @@ abstract class GRPCRunner( } override suspend fun exec() = coroutineScope { + val router = async { + // Create a flow for outgoing messages. + val toGRPCProcessors = + toProcessors.receiveAsFlow().map { + Log.shared.debug( + "'${it.data.decodeToString().replace("\n", "\\n")}' -> [${it.channel}]") + val builder = GRPCChannelData.newBuilder() + builder.setDestinationUri(it.channel) + builder.setData(ByteString.copyFrom(it.data)) + builder.build() + } + + // Create a flow for incoming messages. + Log.shared.debug("Begin routing messages in GRPCRunner.") + grpc + .channel(toGRPCProcessors) + .map { Payload(it.destinationUri, it.data.toByteArray()) } + .collect { + Log.shared.debug( + "'${it.data.decodeToString().replace("\n", "\\n")}' -> [${it.channel}]") + fromProcessors.send(it) + } + Log.shared.debug("Ending routing messages in GRPCRunner.") + } + retries(5, 1000) { grpc.exec(empty) } - // Create a flow for outgoing messages. - val toGRPCProcessors = - toProcessors.receiveAsFlow().map { - Log.shared.debug("'${it.data.decodeToString()}' -> [${it.channel}]") - val builder = GRPCChannelData.newBuilder() - builder.setDestinationUri(it.channel) - builder.setData(ByteString.copyFrom(it.data)) - builder.build() - } - - // Create a flow for incoming messages. - Log.shared.debug("Begin routing messages in GRPCRunner.") - grpc - .channel(toGRPCProcessors) - .map { Payload(it.destinationUri, it.data.toByteArray()) } - .collect { - Log.shared.debug("'${it.data.decodeToString()}' -> [${it.channel}]") - fromProcessors.send(it) - } - Log.shared.debug("Ending routing messages in GRPCRunner.") + router.await() } } diff --git a/src/main/kotlin/runner/impl/HostedGRPCRunner.kt b/src/main/kotlin/runner/impl/HostedGRPCRunner.kt new file mode 100644 index 0000000..447e31c --- /dev/null +++ b/src/main/kotlin/runner/impl/HostedGRPCRunner.kt @@ -0,0 +1,62 @@ +package runner.impl + +import java.io.File +import kotlin.concurrent.thread +import kotlinx.coroutines.channels.Channel +import technology.idlab.extensions.rawPath +import technology.idlab.runner.impl.GRPCRunner +import technology.idlab.util.Log + +class HostedGRPCRunner(command: String, directory: File, fromProcessors: Channel) : + GRPCRunner(fromProcessors, "localhost", 5000) { + // The spawned child process. + private val process: Process + + init { + Log.shared.info("Running command: $command in ${directory.rawPath()}") + + val builder = ProcessBuilder(command.split(" ")) + builder.directory(File(directory.rawPath())) + + // Assign the process to the class variable. + this.process = + try { + builder.start() + } catch (e: Exception) { + Log.shared.fatal("Failed to start process: ${e.message}") + } + + // Add a shutdown hook to ensure that the process is killed when the JVM exits. + Runtime.getRuntime() + .addShutdownHook( + thread(start = false) { + Log.shared.info("Killing child process.") + this.process.destroyForcibly().waitFor() + Log.shared.info("Child process killed.") + }) + + // Listen to incoming messages. + thread { + val stream = process.inputStream.bufferedReader() + for (line in stream.lines()) { + Log.shared.info(line, location = command) + } + } + + // Listen for incoming errors. + thread { + val stream = process.errorStream.bufferedReader() + for (line in stream.lines()) { + Log.shared.fatal(line, location = command) + } + } + } + + override suspend fun exit() { + Log.shared.debug("Exiting NodeRunner.") + super.exit() + + Log.shared.debug("Killing child process.") + process.destroy() + } +} diff --git a/src/main/kotlin/runner/impl/NodeRunner.kt b/src/main/kotlin/runner/impl/NodeRunner.kt deleted file mode 100644 index 36afe90..0000000 --- a/src/main/kotlin/runner/impl/NodeRunner.kt +++ /dev/null @@ -1,70 +0,0 @@ -package runner.impl - -import java.io.File -import kotlin.concurrent.thread -import kotlinx.coroutines.channels.Channel -import technology.idlab.runner.impl.GRPCRunner -import technology.idlab.util.Log - -class NodeRunner(fromProcessors: Channel, port: Int) : - GRPCRunner(fromProcessors, "localhost", port) { - /** Handle to the child process. */ - private val process = createProcess() - - init { - // Add a shutdown hook to ensure that the process is killed when the JVM exits. - val killProcess = - thread(start = false) { - Log.shared.info("Killing child process.") - this.process.destroyForcibly().waitFor() - Log.shared.info("Child process killed.") - } - Runtime.getRuntime().addShutdownHook(killProcess) - - // Get the command that was used to start the process. - val command = - process.info().command().orElseThrow { Log.shared.fatal("Failed to start process.") } - - // Start the process. - thread { - val stream = process.inputStream.bufferedReader() - for (line in stream.lines()) { - Log.shared.info(line, command) - } - } - - thread { - val stream = process.errorStream.bufferedReader() - for (line in stream.lines()) { - Log.shared.fatal(line, command) - } - } - } - - override suspend fun exit() { - Log.shared.debug("Exiting NodeRunner.") - super.exit() - - Log.shared.debug("Killing child process.") - process.destroy() - } - - private fun createProcess(): Process { - // Configuration. - val relative = "runners/nodejs/build/runtime" - val directory = File(".").resolve(relative) - Log.shared.debug("Node working directory: ${directory.canonicalPath}") - - val command = listOf("node", "index.js", "localhost", port.toString()) - Log.shared.info("Starting process: `${command.joinToString(" ")}`") - - // Initialize the process. - val processBuilder = ProcessBuilder(command) - processBuilder.directory(directory) - try { - return processBuilder.start() - } catch (e: Exception) { - Log.shared.fatal("Failed to start process.") - } - } -} diff --git a/src/main/kotlin/runner/jvm/JVMRunner.kt b/src/main/kotlin/runner/jvm/JVMRunner.kt index 440d86f..0caa16b 100644 --- a/src/main/kotlin/runner/jvm/JVMRunner.kt +++ b/src/main/kotlin/runner/jvm/JVMRunner.kt @@ -1,14 +1,13 @@ package runner.jvm import arrow.core.zip -import kotlinx.coroutines.Job -import kotlinx.coroutines.cancelAndJoin +import kotlinx.coroutines.TimeoutCancellationException +import kotlinx.coroutines.cancel import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.isActive import kotlinx.coroutines.launch import kotlinx.coroutines.withTimeout -import org.jetbrains.kotlin.backend.common.push import runner.Runner import technology.idlab.intermediate.IRArgument import technology.idlab.intermediate.IRParameter @@ -26,9 +25,6 @@ class JVMRunner( /** Map of all stages in the runner. */ private val stages = mutableMapOf() - /** All stages are ran in their own job, for cancellation purposes we keep track of them. */ - private val jobs: MutableList = mutableListOf() - /** Incoming messages are delegated to sub channels. These are mapped by their URI. */ private val readers = mutableMapOf>() @@ -54,26 +50,28 @@ class JVMRunner( override suspend fun exec() = coroutineScope { Log.shared.info("Executing all stages.") - // Initialize a job for all processors. - this@JVMRunner.stages.values.forEach { - val job = launch { it.exec() } - jobs.push(job) - } - - // Route all incoming messages. - Log.shared.debug("Begin routing messages in JVMRunner.") - while (isActive) { - withTimeout(1000) { - val message = toProcessors.receive() - val target = readers[message.channel]!! - Log.shared.info("'${message.data.decodeToString()}' -> ${message.channel}") - target.send(message.data) + // Create a new job which routes the messages. + val router = launch { + Log.shared.debug("Begin routing messages in JVMRunner.") + while (isActive) { + try { + withTimeout(1000) { + val message = toProcessors.receive() + val target = readers[message.channel]!! + Log.shared.info("'${message.data.decodeToString()}' -> ${message.channel}") + target.send(message.data) + } + } catch (_: TimeoutCancellationException) {} } } - Log.shared.debug("Ending routing messages in JVMRunner.") - // Await all processors. - jobs.forEach { it.cancelAndJoin() } + // Notify when the router is done. + router.invokeOnCompletion { Log.shared.debug("Ending routing messages in JVMRunner.") } + + // Initialize a job for all processors. + this@JVMRunner.stages.values.map { launch { it.exec() } }.forEach { it.join() } + + router.cancel() } override suspend fun exit() { @@ -84,9 +82,6 @@ class JVMRunner( for (reader in this.readers.values) { reader.close() } - - // Suspend all jobs. - jobs.map { it.apply { it.cancel() } }.forEach { it.join() } } private fun instantiate( diff --git a/src/main/kotlin/util/Log.kt b/src/main/kotlin/util/Log.kt index a0d4fdb..65d3d1e 100644 --- a/src/main/kotlin/util/Log.kt +++ b/src/main/kotlin/util/Log.kt @@ -16,10 +16,11 @@ private const val MESSAGE_PADDING = 50 * errors that will cause the program to exit. At the moment of writing, all levels are outputted to * the console regardless of the debug flag. */ -class Log private constructor(val header: Boolean = true) { +class Log private constructor(header: Boolean = true) { private enum class Level { DEBUG, INFO, + SEVERE, FATAL, } @@ -65,15 +66,31 @@ class Log private constructor(val header: Boolean = true) { ?: run { val call = Throwable().stackTrace[3] val clazz = call.className.substringAfterLast(".").substringBefore("$") - "${clazz}::${call.methodName}::${call.lineNumber}" + val method = call.methodName.substringBefore("$") + "${clazz}::${method}::${call.lineNumber}" } + // If the message is of level debug, set color to gray. + if (level == Level.DEBUG) { + print("\u001B[90m") + } + + // If the message is severe, set the color to red. + if (level == Level.SEVERE) { + print("\u001B[31m") + } + // Print to the console. print(time.padEnd(TIME_PADDING, ' ')) print(thread.padEnd(THREAD_PADDING, ' ')) print(levelCode.padEnd(LEVEL_PADDING, ' ')) print(usedLocation.padEnd(LOCATION_PADDING, ' ')) println(message) + + // Reset coloring. + if (level == Level.DEBUG || level == Level.SEVERE) { + print("\u001B[0m") + } } /** @@ -116,6 +133,15 @@ class Log private constructor(val header: Boolean = true) { debug(message()) } + /** + * Print a severe message, which will be colored red in the console. + * + * @param message The message to print. + */ + fun severe(message: String, location: String? = null) { + output(message, Level.SEVERE, location = location) + } + companion object { /** * A globally available instance of the logger. Note that at its creation, the logger will diff --git a/src/main/kotlin/util/Retries.kt b/src/main/kotlin/util/Retries.kt index 76bc687..80d3594 100644 --- a/src/main/kotlin/util/Retries.kt +++ b/src/main/kotlin/util/Retries.kt @@ -9,6 +9,8 @@ suspend fun retries(times: Int, milliseconds: Long = 1000, block: suspend () try { return@coroutineScope block() } catch (e: Exception) { + Log.shared.severe( + "An exception occurred: ${e.message}. Retrying in $milliseconds milliseconds.") delay(milliseconds) } } diff --git a/src/main/resources/pipeline.ttl b/src/main/resources/pipeline.ttl index 9d5da67..ff2949e 100644 --- a/src/main/resources/pipeline.ttl +++ b/src/main/resources/pipeline.ttl @@ -1,19 +1,22 @@ -@prefix conn: . @prefix rdf: . +@prefix rdfc: . +@prefix rdfs: . @prefix sh: . @prefix xsd: . -[] a sh:NodeShape ; - sh:closed false ; - sh:property [ - sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path conn:target - ] ; - sh:targetClass conn:Processor . +rdfc:Writer + a rdfs:Class. -[] a sh:NodeShape ; - sh:closed true ; - sh:ignoredProperties ( rdf:type ) ; - sh:targetClass conn:Channel . +rdfc:Reader + a rdfs:Class. + +rdfc:Channel + a rdfs:Class ; + rdfs:label "Channel" ; + rdfs:comment "A channel is a communication medium that connects a writer to a reader." . + +rdfc:Channel + rdfs:subClassOf rdfc:Writer . + +rdfc:Channel + rdfs:subClassOf rdfc:Reader . diff --git a/src/test/kotlin/OrchestratorTest.kt b/src/test/kotlin/OrchestratorTest.kt index e63c174..ed6c9c9 100644 --- a/src/test/kotlin/OrchestratorTest.kt +++ b/src/test/kotlin/OrchestratorTest.kt @@ -2,16 +2,15 @@ import kotlin.test.Test import kotlin.test.assertEquals import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking -import processors.NodeTransparent import processors.TappedReader import processors.TappedWriter import technology.idlab.Orchestrator import technology.idlab.intermediate.IRPipeline +import technology.idlab.intermediate.IRRunner -val processors = listOf(TappedWriter.processor, NodeTransparent.processor, TappedReader.processor) +val processors = listOf(TappedWriter.processor, TappedReader.processor) -val stages = - listOf(TappedWriter.stage("in"), NodeTransparent.stage("in", "out"), TappedReader.stage("out")) +val stages = listOf(TappedWriter.stage("channel"), TappedReader.stage("channel")) val pipeline = IRPipeline( @@ -20,10 +19,16 @@ val pipeline = stages = stages, ) +val jvmRunner = + IRRunner( + uri = "https://rdf-connect.com/#JVMRunner", + type = IRRunner.Type.BUILT_IN, + ) + class OrchestratorTest { @Test fun channelTest(): Unit = runBlocking { - val orchestrator = Orchestrator(pipeline, processors) + val orchestrator = Orchestrator(pipeline, processors, listOf(jvmRunner)) // Bring pipeline online. launch { orchestrator.exec() } diff --git a/src/test/kotlin/e2e/E2ETest.kt b/src/test/kotlin/e2e/E2ETest.kt new file mode 100644 index 0000000..96ee6f2 --- /dev/null +++ b/src/test/kotlin/e2e/E2ETest.kt @@ -0,0 +1,38 @@ +package e2e + +import java.io.File +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertNotNull +import kotlinx.coroutines.TimeoutCancellationException +import kotlinx.coroutines.runBlocking +import kotlinx.coroutines.withTimeout +import org.jetbrains.kotlin.incremental.createDirectory +import technology.idlab.exec + +class E2ETest { + @Test + fun node() { + val pipeline = this::class.java.getResource("/e2e/node.ttl") + assertNotNull(pipeline, "The file should exist.") + + val directory = File("/tmp/rdfc-testing") + directory.createDirectory() + + val input = File("/tmp/rdfc-testing/input.txt") + input.createNewFile() + input.writeText("Hello, World!") + + val output = File("/tmp/rdfc-testing/output.txt") + output.delete() + output.createNewFile() + + runBlocking { + try { + withTimeout(10000) { exec(pipeline.path) } + } catch (_: TimeoutCancellationException) {} + } + + assertEquals("Hello, World!", output.readText()) + } +} diff --git a/src/test/kotlin/parser/ParserTest.kt b/src/test/kotlin/parser/ParserTest.kt index 5faf43e..7ce5c5c 100644 --- a/src/test/kotlin/parser/ParserTest.kt +++ b/src/test/kotlin/parser/ParserTest.kt @@ -6,7 +6,6 @@ import kotlin.test.assertContains import kotlin.test.assertEquals import kotlin.test.assertNotNull import kotlin.test.assertTrue -import runner.Runner import technology.idlab.intermediate.IRParameter import technology.idlab.parser.Parser @@ -29,7 +28,7 @@ class ParserTest { @Test fun packages() { // Parse the package in the file. - val parser = parse("/packages/dummy/index.ttl") + val parser = parse("/pipelines/dummy/index.ttl") val pkg = parser.packages[0] // Check the contents of the data class. @@ -39,9 +38,14 @@ class ParserTest { assertEquals("https://example.com.git", pkg.repo) assertEquals("MIT", pkg.license) assertEquals("make", pkg.prepare) + + // Check the processors. assertEquals(1, pkg.processors.size) - assertEquals(Runner.Target.JVM, pkg.processors[0].target) assertEquals(IRParameter.Count.SINGLE, pkg.processors[0].parameters["message"]?.count) + + // Check the runners. + assertEquals(1, pkg.runners.size) + assertEquals("command", pkg.runners[0].entrypoint) } @Test @@ -59,7 +63,6 @@ class ParserTest { "MyProcessor", processor.metadata["class"], "Processor should have a 'class' key with value 'MyProcessor'.") - assertEquals(Runner.Target.JVM, processor.target, "processor processor should target JVM.") assertEquals(3, processor.parameters.size, "processor processor should have two parameters.") // Check its arguments. diff --git a/src/test/kotlin/processors/NodeTransparent.kt b/src/test/kotlin/processors/NodeTransparent.kt index 60a569e..39c76e7 100644 --- a/src/test/kotlin/processors/NodeTransparent.kt +++ b/src/test/kotlin/processors/NodeTransparent.kt @@ -1,6 +1,5 @@ package processors -import runner.Runner import technology.idlab.intermediate.IRArgument import technology.idlab.intermediate.IRParameter import technology.idlab.intermediate.IRProcessor @@ -11,7 +10,8 @@ class NodeTransparent { val processor = IRProcessor( "transparent", - Runner.Target.NODEJS, + "https://rdf-connect.com/#NodeRunner", + "", mapOf( "input" to IRParameter( diff --git a/src/test/kotlin/processors/TappedReader.kt b/src/test/kotlin/processors/TappedReader.kt index 6c721be..cee084c 100644 --- a/src/test/kotlin/processors/TappedReader.kt +++ b/src/test/kotlin/processors/TappedReader.kt @@ -1,7 +1,6 @@ package processors import kotlinx.coroutines.channels.Channel -import runner.Runner import runner.jvm.Processor import runner.jvm.Reader import technology.idlab.intermediate.IRArgument @@ -21,9 +20,8 @@ class TappedReader(args: Arguments) : Processor(args) { /** Continuously read data from the input and write it to the global channel. */ override suspend fun exec() { - while (true) { - output.send(input.read()) - } + output.send(input.read()) + output.close() } companion object { @@ -34,7 +32,8 @@ class TappedReader(args: Arguments) : Processor(args) { val processor = IRProcessor( "tapped_reader", - Runner.Target.JVM, + "https://rdf-connect.com/#JVMRunner", + "", mapOf( "input" to IRParameter( diff --git a/src/test/kotlin/processors/TappedWriter.kt b/src/test/kotlin/processors/TappedWriter.kt index f0a9fc8..5c3bf50 100644 --- a/src/test/kotlin/processors/TappedWriter.kt +++ b/src/test/kotlin/processors/TappedWriter.kt @@ -1,7 +1,6 @@ package processors import kotlinx.coroutines.channels.Channel -import runner.Runner import runner.jvm.Processor import runner.jvm.Writer import technology.idlab.intermediate.IRArgument @@ -21,9 +20,8 @@ class TappedWriter(args: Arguments) : Processor(args) { /** Continuously read data from the global channel and write it to the output. */ override suspend fun exec() { - while (true) { - output.push(input.receive()) - } + output.push(input.receive()) + input.close() } companion object { @@ -34,7 +32,8 @@ class TappedWriter(args: Arguments) : Processor(args) { val processor = IRProcessor( "tapped_writer", - Runner.Target.JVM, + "https://rdf-connect.com/#JVMRunner", + "", mapOf( "output" to IRParameter( diff --git a/src/test/kotlin/runner/RunnerTest.kt b/src/test/kotlin/runner/RunnerTest.kt index 98c2ff0..b2256c8 100644 --- a/src/test/kotlin/runner/RunnerTest.kt +++ b/src/test/kotlin/runner/RunnerTest.kt @@ -14,7 +14,7 @@ import technology.idlab.intermediate.IRStage import technology.idlab.util.Log abstract class RunnerTest { - abstract val target: Runner.Target + abstract val target: String abstract val metadata: Map abstract fun createRunner(): Runner @@ -71,6 +71,7 @@ abstract class RunnerTest { return IRProcessor( "transparent", this.target, + "", mapOf( "input" to this.paramInput, "output" to this.paramOutput, diff --git a/src/test/kotlin/runner/impl/JVMRunnerTest.kt b/src/test/kotlin/runner/impl/JVMRunnerTest.kt index e9c4206..a4e65d2 100644 --- a/src/test/kotlin/runner/impl/JVMRunnerTest.kt +++ b/src/test/kotlin/runner/impl/JVMRunnerTest.kt @@ -6,7 +6,7 @@ import runner.RunnerTest import runner.jvm.JVMRunner class JVMRunnerTest : RunnerTest() { - override val target: Runner.Target = Runner.Target.JVM + override val target = "https://rdf-connect.com/#/JVMRunner" override val metadata: Map = mapOf("class" to "technology.idlab.std.Transparent") diff --git a/src/test/kotlin/runner/impl/NodeRunnerTest.kt b/src/test/kotlin/runner/impl/NodeRunnerTest.kt deleted file mode 100644 index 39fa01c..0000000 --- a/src/test/kotlin/runner/impl/NodeRunnerTest.kt +++ /dev/null @@ -1,15 +0,0 @@ -package runner.impl - -import kotlinx.coroutines.channels.Channel -import runner.Runner -import runner.RunnerTest - -class NodeRunnerTest : RunnerTest() { - override val target: Runner.Target = Runner.Target.NODEJS - - override val metadata: Map = mapOf("import" to "../std/transparent.js") - - override fun createRunner(): Runner { - return NodeRunner(Channel(), port = 5000) - } -} diff --git a/src/test/resources/e2e/node.ttl b/src/test/resources/e2e/node.ttl new file mode 100644 index 0000000..7d76bda --- /dev/null +++ b/src/test/resources/e2e/node.ttl @@ -0,0 +1,32 @@ +@prefix test: . + +@prefix rdf: . +@prefix rdfc: . +@prefix sh: . +@prefix owl: . +@prefix xsd: . + +test:channel a rdfc:Channel . + +test:NodePipeline + a rdfc:Pipeline ; + rdfc:name "Node.js Testing Pipeline" ; + rdfc:description "Pipeline for end-to-end testing of the Node.js runner." ; + rdfc:stages test:FileReader, test:FileWriter ; + rdfc:dependency + <../../../../runners/nodejs> , + <../../../../processors/file-utils-ts> . + +test:FileReader + a rdfc:FileReaderTS ; + rdfc:arguments [ + rdfc:path "/tmp/rdfc-testing/input.txt" ; + rdfc:outgoing test:channel ; + ] . + +test:FileWriter + a rdfc:FileWriterTS ; + rdfc:arguments [ + rdfc:path "/tmp/rdfc-testing/output.txt" ; + rdfc:incoming test:channel ; + ] . diff --git a/src/test/resources/packages/basic/processor.ttl b/src/test/resources/packages/basic/processor.ttl index e761256..d56be0a 100644 --- a/src/test/resources/packages/basic/processor.ttl +++ b/src/test/resources/packages/basic/processor.ttl @@ -8,6 +8,7 @@ test:BasicProcessor a rdfc:Processor ; rdfc:target rdfc:Kotlin ; + rdfc:entrypoint "com.example.MyProcessor" ; rdfc:metadata "class:MyProcessor" . [] a sh:NodeShape ; diff --git a/src/test/resources/packages/dummy/index.ttl b/src/test/resources/packages/dummy/index.ttl index ba8932b..68761ec 100644 --- a/src/test/resources/packages/dummy/index.ttl +++ b/src/test/resources/packages/dummy/index.ttl @@ -7,6 +7,7 @@ @prefix xsd: . <> owl:imports <./processor.ttl> . +<> owl:imports <./runner.ttl> . test:DummyPackage a rdfc:Package ; @@ -16,4 +17,5 @@ test:DummyPackage rdfc:repo "https://example.com.git" ; rdfc:license "MIT" ; rdfc:prepare "make" ; - rdfc:processors test:DummyProcessor . + rdfc:processors test:DummyProcessor ; + rdfc:runners test:DummyRunner . diff --git a/src/test/resources/packages/dummy/processor.ttl b/src/test/resources/packages/dummy/processor.ttl index 150e669..70ad0fe 100644 --- a/src/test/resources/packages/dummy/processor.ttl +++ b/src/test/resources/packages/dummy/processor.ttl @@ -8,6 +8,7 @@ test:DummyProcessor a rdfc:Processor ; + rdfc:entrypoint "com.example.MyProcessor" ; rdfc:target rdfc:Kotlin . [] diff --git a/src/test/resources/packages/dummy/runner.ttl b/src/test/resources/packages/dummy/runner.ttl new file mode 100644 index 0000000..8ef994a --- /dev/null +++ b/src/test/resources/packages/dummy/runner.ttl @@ -0,0 +1,7 @@ +@prefix test: . + +@prefix rdfc: . + +test:DummyRunner + a rdfc:GRPCRunner ; + rdfc:entrypoint "command" .