From c55a10e2db0ac57eefdaabebd6ad91b4afba3062 Mon Sep 17 00:00:00 2001 From: Tomasz Pluskiewicz Date: Mon, 16 Sep 2024 12:52:53 +0200 Subject: [PATCH 1/5] test: use @zazuko/shacl-test --- package-lock.json | 2109 +++++++++++++++-- package.json | 22 +- ...lid.withoutObservationSet.ttl.approved.txt | 3 +- ...valid.withoutObservations.ttl.approved.txt | 3 +- ...invalid.withoutProperties.ttl.approved.txt | 3 +- test/check-metadata.sh | 107 +- test/check-observations.sh | 5 +- test/load-graph.js | 11 - .../undefinedAllowed.ttl.approved.txt | 3 +- .../undefinedNotAllowed.ttl.approved.txt | 3 +- .../undefinedOrBounded.ttl.approved.txt | 3 +- .../observations/withoutName.ttl.approved.txt | 3 +- .../observations/withoutType.ttl.approved.txt | 3 +- test/pretty-print.js | 13 - .../invalid.draft.ttl.approved.txt | 3 +- .../invalid.expired.ttl.approved.txt | 9 +- .../invalid.noTypeDataset.ttl.approved.txt | 3 +- .../invalid.noWorkExample.ttl.approved.txt | 3 +- ...d.missing-identifier.cube.ttl.approved.txt | 3 +- .../invalid.publisherNoClass.ttl.approved.txt | 3 +- ...alid-data-kind-unexpected.ttl.approved.txt | 3 +- .../invalid-data-kinds.ttl.approved.txt | 3 +- ...valid-datatype-langstring.ttl.approved.txt | 9 +- ...invalid-datatype-multiple.ttl.approved.txt | 9 +- .../invalid-no-status.ttl.approved.txt | 3 +- .../invalid-scale-types.ttl.approved.txt | 13 +- .../invalid-temporal.ttl.approved.txt | 3 +- test/report-failure.sh | 18 - test/shorten-report.js | 8 - .../invalid.malformedList.ttl.approved.txt | 9 +- .../invalid.withoutName.ttl.approved.txt | 3 +- .../invalid.withoutType.ttl.approved.txt | 3 +- ...ContactPoint.missingEmail.ttl.approved.txt | 3 +- ...kContactPoint.missingName.ttl.approved.txt | 3 +- 34 files changed, 2055 insertions(+), 350 deletions(-) delete mode 100755 test/load-graph.js delete mode 100755 test/pretty-print.js delete mode 100755 test/report-failure.sh delete mode 100755 test/shorten-report.js diff --git a/package-lock.json b/package-lock.json index 3800a89..45faa5a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cube-link", - "version": "0.2.1", + "version": "0.2.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cube-link", - "version": "0.2.1", + "version": "0.2.2", "license": "MIT", "dependencies": { "node-fetch-cache": "^3.1.3", @@ -14,23 +14,17 @@ }, "devDependencies": { "@changesets/cli": "^2.26.2", - "@rdfjs-elements/formats-pretty": "^0.6.7", - "@zazuko/env-node": "^2.1.1", - "@zazuko/s": "^1.0.1", - "@zazuko/shacl-playground": "^2.0.0", + "@zazuko/shacl-test": "^0.1", "approvals": "^6.2.2", "barnard59": "^5.0.0", "barnard59-base": "^2.4.2", "barnard59-cube": "^1.4.2", "barnard59-formats": "^2.1.0", "barnard59-http": "^2.0.0", - "barnard59-rdf": "^3.4.0", - "barnard59-shacl": "^1.4.4", "barnard59-sparql": "^2.3.0", "chromium": "^3.0.3", "npm-run-all": "^4.1.5", "pm2": "^5.3.1", - "rdf-transform-graph-imports": "^0.2.2", "respec": "^35.0.0", "serve": "^13.0.2", "standard": "^14.3.4", @@ -1821,6 +1815,178 @@ "node": ">=14.0" } }, + "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/eslint-utils/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/@eslint-community/regexpp": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "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", + "peer": true, + "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/eslintrc/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", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@eslint/eslintrc/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", + "peer": true + }, + "node_modules/@eslint/eslintrc/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", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/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", + "peer": true, + "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/@eslint/eslintrc/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", + "peer": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/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", + "peer": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@fastify/busboy": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", @@ -1967,6 +2133,47 @@ "node": ">= 6" } }, + "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", + "peer": true, + "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", + "peer": true, + "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", + "peer": true + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -4590,6 +4797,13 @@ "node": ">=v12.22.12" } }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true, + "license": "MIT" + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -5257,6 +5471,13 @@ "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", "dev": true }, + "node_modules/@types/uri-templates": { + "version": "0.1.34", + "resolved": "https://registry.npmjs.org/@types/uri-templates/-/uri-templates-0.1.34.tgz", + "integrity": "sha512-13v4r/Op3iEO1y6FvEHQjrUNnrNyO67SigdFC9n80sVfsrM2AWJRNYbE1pBs4/p87I7z1J979JGeLAo3rM1L/Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/yargs": { "version": "17.0.29", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", @@ -5282,107 +5503,308 @@ "@types/node": "*" } }, - "node_modules/@vocabulary/sh": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@vocabulary/sh/-/sh-1.1.5.tgz", - "integrity": "sha512-8R4uxHLpwmp6l6szZdCtfQx0wRy64OHuOsYTDfhCsbJ773Uv6nCM2bYBtjjirZHN+2m3uHQWgtWOdvuu1jwmOA==", - "dev": true, - "peerDependencies": { - "@rdfjs/types": "^1.0.0" - } - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/@zazuko/env": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@zazuko/env/-/env-2.0.6.tgz", - "integrity": "sha512-xwNT/zQE7TEIQvTcwvxQefILi5Wr/mggHfTLx04EjNphNi23/ObSK7o8Pr4gQkSRzBFw7UkinhIGIq1f/SjQ9Q==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", "dev": true, + "license": "MIT", "dependencies": { - "@rdfjs/data-model": "^2.0.1", - "@rdfjs/dataset": "^2.0.1", - "@rdfjs/formats": "^4.0.0", - "@rdfjs/namespace": "^2.0.0", - "@rdfjs/term-map": "^2.0.0", - "@rdfjs/term-set": "^2.0.1", - "@rdfjs/traverser": "^0.1.2", - "@tpluscode/rdf-ns-builders": "^4.1.0", - "@zazuko/env-core": "^1.0.0", - "@zazuko/prefixes": "^2.1.0", - "clownface": "^2.0.2", - "get-stream": "^8.0.1", - "rdf-dataset-ext": "^1.1.0" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" }, - "peerDependencies": { - "@rdfjs/types": "^1.1.0", - "@types/clownface": "^2.0.0", - "@types/rdf-dataset-ext": "^1", - "@types/rdfjs__data-model": "^2.0.7", - "@types/rdfjs__dataset": "^2.0.7", - "@types/rdfjs__environment": "^1.0.0", - "@types/rdfjs__formats": "^4.0.0", - "@types/rdfjs__namespace": "^2.0.10", - "@types/rdfjs__term-map": "^2.0.9", - "@types/rdfjs__term-set": "^2.0.8", - "@types/rdfjs__traverser": "^0.1.3" + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@zazuko/env-core": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@zazuko/env-core/-/env-core-1.1.1.tgz", - "integrity": "sha512-O/ScJLuQFlT0DdQzjakgbAXAKAbClp7AfxS1DQJfR7oABHJxi4NsLmmpF8wcBvyjwMZdpIWwWVF080ChLnwTNA==", + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", "dev": true, - "dependencies": { - "@rdfjs/environment": "^1.0.0" + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" }, - "peerDependencies": { - "@types/rdfjs__environment": "^1.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@zazuko/env-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@zazuko/env-node/-/env-node-2.1.1.tgz", - "integrity": "sha512-3Q4z+060dSCEEW/5uLL4csXfRcLLoV+1NIIpa6/ryLOCU2WsTdg9oF5+E1IY7rOHyQi1g0XXeFBnQdNuwn28kA==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@rdfjs/fetch-lite": "^3.2.2", - "@rdfjs/formats": "^4.0.0", - "@zazuko/env": "^2.0.2", - "@zazuko/rdf-utils-fs": "^3.3.0" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.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" }, - "peerDependencies": { - "@types/rdfjs__fetch-lite": "^3.0.6" + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@zazuko/env/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==", + "node_modules/@typescript-eslint/typescript-estree/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, - "bin": { - "rdfjs-data-model-test": "bin/test.js" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/@zazuko/env/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==", + "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, - "bin": { - "rdfjs-dataset-test": "bin/test.js" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/@zazuko/env/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==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "engines": { - "node": ">=16" + "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/@typescript-eslint/typescript-estree/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "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/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.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/@typescript-eslint/visitor-keys/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/@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", + "peer": true + }, + "node_modules/@vocabulary/sh": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@vocabulary/sh/-/sh-1.1.5.tgz", + "integrity": "sha512-8R4uxHLpwmp6l6szZdCtfQx0wRy64OHuOsYTDfhCsbJ773Uv6nCM2bYBtjjirZHN+2m3uHQWgtWOdvuu1jwmOA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@rdfjs/types": "^1.0.0" + } + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/@zazuko/env": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@zazuko/env/-/env-2.3.0.tgz", + "integrity": "sha512-KpQSR3Huvic78HrTLWbkcI/UqwLnhsQO7XhXQILoW+UYdrrlxqnhHEinSAP9UlOIyV7rqZdxnyp4FlFrClXM2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.1", + "@rdfjs/dataset": "^2.0.1", + "@rdfjs/formats": "^4.0.0", + "@rdfjs/namespace": "^2.0.0", + "@rdfjs/term-map": "^2.0.0", + "@rdfjs/term-set": "^2.0.1", + "@rdfjs/traverser": "^0.1.2", + "@tpluscode/rdf-ns-builders": "^4.1.0", + "@zazuko/env-core": "^1.1.2", + "@zazuko/prefixes": "^2.1.0", + "clownface": "^2.0.2", + "get-stream": "^9.0.1", + "rdf-dataset-ext": "^1.1.0" + }, + "peerDependencies": { + "@rdfjs/types": "^1.1.0", + "@types/clownface": "^2.0.0", + "@types/rdf-dataset-ext": "^1", + "@types/rdfjs__data-model": "^2.0.7", + "@types/rdfjs__dataset": "^2.0.7", + "@types/rdfjs__environment": "^1.0.0", + "@types/rdfjs__formats": "^4.0.0", + "@types/rdfjs__namespace": "^2.0.10", + "@types/rdfjs__term-map": "^2.0.9", + "@types/rdfjs__term-set": "^2.0.8", + "@types/rdfjs__traverser": "^0.1.3" + } + }, + "node_modules/@zazuko/env-core": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@zazuko/env-core/-/env-core-1.1.2.tgz", + "integrity": "sha512-mnLG40utuT7jPBPLs6fJ0puhfagnXSj+S8t9+zUGs3YlrOq/7b2zr64Hi3p3etwDdApaQ0VgQuNIY9doaruS1Q==", + "dev": true, + "dependencies": { + "@rdfjs/environment": "^1.0.0" + }, + "peerDependencies": { + "@types/rdfjs__environment": "^1.0.0" + } + }, + "node_modules/@zazuko/env-node": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@zazuko/env-node/-/env-node-2.1.3.tgz", + "integrity": "sha512-vaYbkMe0DsvpWEWBQpWPJ0mEYiFhwDGw8Caso1MmASUbHY/gH2tAA6BDv4LsCK/BrU4gWftUWz6uEsRP3FmdHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/fetch-lite": "^3.2.2", + "@rdfjs/formats": "^4.0.0", + "@zazuko/env": "^2.1.1", + "@zazuko/rdf-utils-fs": "^3.3.0" + }, + "peerDependencies": { + "@types/rdfjs__fetch-lite": "^3.0.6" + } + }, + "node_modules/@zazuko/env/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==", + "dev": true, + "bin": { + "rdfjs-data-model-test": "bin/test.js" + } + }, + "node_modules/@zazuko/env/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==", + "dev": true, + "bin": { + "rdfjs-dataset-test": "bin/test.js" + } + }, + "node_modules/@zazuko/env/node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@zazuko/env/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5518,21 +5940,54 @@ "integrity": "sha512-dm0/YBNzuwJUm8cXoF3Dn9DfQetnRDaOJ8NdlgLY645OaUddCzUAAYcanm+xZmEo1SWX+/Tp3jbScwCaN2b/aQ==", "dev": true }, - "node_modules/@zazuko/rdf-utils-fs": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@zazuko/rdf-utils-fs/-/rdf-utils-fs-3.3.1.tgz", - "integrity": "sha512-4HjTbJUwiCFanMMcaaZkLIkWUdVjXSQstAyxnfzsUOmh8Q43iVBL+mYAl17zoi47III0POL6hitRsN1JJ5tUFg==", + "node_modules/@zazuko/rdf-parser-csvw": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@zazuko/rdf-parser-csvw/-/rdf-parser-csvw-0.17.0.tgz", + "integrity": "sha512-u7MqHWif0mptZoQM7jlax7Jq7RynwSu+DJU6qa7kfNa7L3PxAryUbkqXyMBw2KEfIktgvjqTNAnPt7qVnas21w==", "dev": true, + "license": "MIT", "dependencies": { - "readable-stream": ">=3.6.0" + "@rdfjs/data-model": "^2.0.2", + "@rdfjs/dataset": "^2.0.2", + "@rdfjs/environment": "^1.0.0", + "@rdfjs/namespace": "^2", + "@types/uri-templates": "^0.1.34", + "clownface": "^2.0.2", + "commander": "^12.1.0", + "csv-parse": "^5.5.6", + "lodash": "^4.17.15", + "luxon": "^1.17.3", + "readable-stream": "^4.5.2", + "uri-templates": "^0.2.0" }, - "peerDependencies": { - "@rdfjs/types": "*", - "@types/rdfjs__environment": "0 - 1", - "@types/rdfjs__formats": "^4" + "bin": { + "csvw-metadata": "bin/csvw-metadata.js" } }, - "node_modules/@zazuko/rdf-utils-fs/node_modules/buffer": { + "node_modules/@zazuko/rdf-parser-csvw-xlsx": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@zazuko/rdf-parser-csvw-xlsx/-/rdf-parser-csvw-xlsx-0.3.0.tgz", + "integrity": "sha512-0fF+yvbRUXMvP9HiT2Jr10Qn+6++MswgurEnJIaFyGZj99vGVIJdd9oi1QZcAYYRUdjPGkRQnc2jKzrZoiQtyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@zazuko/rdf-parser-csvw": "^0.17", + "lodash": "^4.17.21", + "readable-stream": "^4.5.2", + "xlsx": "^0.18.5" + } + }, + "node_modules/@zazuko/rdf-parser-csvw-xlsx/node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/@zazuko/rdf-parser-csvw-xlsx/node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", @@ -5551,55 +6006,1140 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, - "node_modules/@zazuko/rdf-utils-fs/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==", + "node_modules/@zazuko/rdf-parser-csvw-xlsx/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==", + "dev": true, + "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/@zazuko/rdf-parser-csvw-xlsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/@zazuko/rdf-parser-csvw-xlsx/node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/@zazuko/rdf-parser-csvw/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==", + "dev": true, + "license": "MIT", + "bin": { + "rdfjs-data-model-test": "bin/test.js" + } + }, + "node_modules/@zazuko/rdf-parser-csvw/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==", + "dev": true, + "license": "MIT", + "bin": { + "rdfjs-dataset-test": "bin/test.js" + } + }, + "node_modules/@zazuko/rdf-parser-csvw/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@zazuko/rdf-parser-csvw/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@zazuko/rdf-parser-csvw/node_modules/csv-parse": { + "version": "5.5.6", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.6.tgz", + "integrity": "sha512-uNpm30m/AGSkLxxy7d9yRXpJQFrZzVWLFBkS+6ngPcZkw/5k3L/jjFuj7tVnEpRn+QgmiXr21nDlhCiUK4ij2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@zazuko/rdf-parser-csvw/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==", + "dev": true, + "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/@zazuko/rdf-parser-csvw/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/@zazuko/rdf-utils-fs": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@zazuko/rdf-utils-fs/-/rdf-utils-fs-3.3.1.tgz", + "integrity": "sha512-4HjTbJUwiCFanMMcaaZkLIkWUdVjXSQstAyxnfzsUOmh8Q43iVBL+mYAl17zoi47III0POL6hitRsN1JJ5tUFg==", + "dev": true, + "dependencies": { + "readable-stream": ">=3.6.0" + }, + "peerDependencies": { + "@rdfjs/types": "*", + "@types/rdfjs__environment": "0 - 1", + "@types/rdfjs__formats": "^4" + } + }, + "node_modules/@zazuko/rdf-utils-fs/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@zazuko/rdf-utils-fs/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==", + "dev": true, + "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/@zazuko/rdf-utils-fs/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/@zazuko/s": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@zazuko/s/-/s-1.0.1.tgz", + "integrity": "sha512-PoKGOcnGinT3H3uZQ++C+fFW+5sX76qDtg+YZP7OA0x9JqOPNro/uva083YdFPhfJAB2SkMn3zhVAFSs1w9VBw==", + "dev": true, + "dependencies": { + "@changesets/cli": "^2.26.0" + }, + "bin": { + "zazuko-s": "bin/zazuko-s.mjs" + } + }, + "node_modules/@zazuko/shacl-playground": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@zazuko/shacl-playground/-/shacl-playground-2.0.0.tgz", + "integrity": "sha512-KWh7bHqtxliJi1LY1XLG3WwNCgu/mNQXI2n8FQbnQfEvq2Vn57YinCzV/mjHVycSwf2UzjqriIf3F8je0wKSVw==", + "dev": true, + "dependencies": { + "@tpluscode/rdf-string": "^1.1.3" + } + }, + "node_modules/@zazuko/shacl-test": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@zazuko/shacl-test/-/shacl-test-0.1.0.tgz", + "integrity": "sha512-veOEoQGvoamXyekZcVchXIGLjU5UpkC+hfso9Yqer4mo+JaiK7xKcu+9FQfjT+FCqV2aZiv0MtOWvLI1iqizZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs-elements/formats-pretty": "^0.6.7", + "@zazuko/env-node": "^2.1.3", + "@zazuko/s": "^1.0.1", + "@zazuko/shacl-playground": "^2.0.0", + "approvals": "^7.1.3", + "barnard59-rdf": "^3.4.0", + "barnard59-shacl": "^1.4.10", + "rdf-transform-graph-imports": "^0.2.3" + }, + "bin": { + "shacl-test": "run.sh" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.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/@zazuko/shacl-test/node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.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/@zazuko/shacl-test/node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.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/@zazuko/shacl-test/node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.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/@zazuko/shacl-test/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", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@zazuko/shacl-test/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==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/approvals": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/approvals/-/approvals-7.1.3.tgz", + "integrity": "sha512-/IO7xkLF9MUXTWKHYsiHxEaTrtNZd+OAjpwPrD/RldbACbU4pzq5WpOk6fObKubyROA1lOVuN1R94z903JSPvw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@typescript-eslint/eslint-plugin": "^7.7.0", + "@typescript-eslint/parser": "^7.7.0", + "callsite": "^1.0.0", + "chalk": "^4.1.0", + "diff": "^5.2.0", + "event-stream": "^4.0.1", + "file-type": "^12.4.2", + "glob": "^11.0.0", + "jest": "^29.1.2", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "marked": "^13.0.0", + "marked-terminal": "^7.0.0", + "minimist": "^1.2.8", + "mkdirp": "^3.0.1", + "natives": "^1.1.6", + "shelljs": "^0.8.4", + "temp": "^0.9.4", + "ts-jest": "^29.0.3" + }, + "bin": { + "approvals": "bin/index.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@zazuko/shacl-test/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/@zazuko/shacl-test/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/@zazuko/shacl-test/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/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "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/@zazuko/shacl-test/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", + "peer": true, + "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/@zazuko/shacl-test/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", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "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/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/file-type": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", + "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true + }, + "node_modules/@zazuko/shacl-test/node_modules/glob": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/glob/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/jackspeak": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", + "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/@zazuko/shacl-test/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/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/lru-cache": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz", + "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/marked": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-13.0.3.tgz", + "integrity": "sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/marked-terminal": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.1.0.tgz", + "integrity": "sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "chalk": "^5.3.0", + "cli-highlight": "^2.1.11", + "cli-table3": "^0.6.5", + "node-emoji": "^2.1.3", + "supports-hyperlinks": "^3.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "marked": ">=1 <14" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/marked-terminal/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/node-emoji": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", + "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "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/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@zazuko/shacl-test/node_modules/rimraf/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", + "peer": true, + "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/@zazuko/shacl-test/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", + "peer": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@zazuko/shacl-test/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", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@zazuko/shacl-test/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==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/@zazuko/rdf-utils-fs/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==", + "node_modules/@zazuko/shacl-test/node_modules/supports-hyperlinks": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", + "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", "dev": true, + "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@zazuko/s": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@zazuko/s/-/s-1.0.1.tgz", - "integrity": "sha512-PoKGOcnGinT3H3uZQ++C+fFW+5sX76qDtg+YZP7OA0x9JqOPNro/uva083YdFPhfJAB2SkMn3zhVAFSs1w9VBw==", + "node_modules/@zazuko/shacl-test/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", + "peer": true, "dependencies": { - "@changesets/cli": "^2.26.0" + "prelude-ls": "^1.2.1" }, - "bin": { - "zazuko-s": "bin/zazuko-s.mjs" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/@zazuko/shacl-playground": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@zazuko/shacl-playground/-/shacl-playground-2.0.0.tgz", - "integrity": "sha512-KWh7bHqtxliJi1LY1XLG3WwNCgu/mNQXI2n8FQbnQfEvq2Vn57YinCzV/mjHVycSwf2UzjqriIf3F8je0wKSVw==", + "node_modules/@zazuko/shacl-test/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", + "peer": true, "dependencies": { - "@tpluscode/rdf-string": "^1.1.3" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, "node_modules/@zazuko/sparql-proxy": { @@ -5878,6 +7418,13 @@ "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", "integrity": "sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==" }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, "node_modules/anylogger": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/anylogger/-/anylogger-1.0.11.tgz", @@ -6955,18 +8502,19 @@ } }, "node_modules/barnard59-shacl": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/barnard59-shacl/-/barnard59-shacl-1.4.4.tgz", - "integrity": "sha512-4Ba5Ovd3unSNlnj6Y00PD2sRnDVyowlivyb3s6l8SG/UBckzt1SCl8atEF1SwwhC5qttlXoTCu4xwowwCUxSnQ==", + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/barnard59-shacl/-/barnard59-shacl-1.4.10.tgz", + "integrity": "sha512-Yh03TegpK8yTopwSftwNyMcxOOk0PI9nElPVXYj8X1ZNLsXwwic6EXra+UXDEetPh4wAnNCQ3d/1PVS9WUFDyQ==", "dev": true, + "license": "MIT", "dependencies": { "@rdfjs/fetch": "^3.0.0", "@rdfjs/to-ntriples": "^3.0.0", "barnard59-base": "^2.4.2", - "barnard59-formats": "^2.1.0", + "barnard59-formats": "^4.0.0", "barnard59-rdf": "^3.4.0", "is-stream": "^3.0.0", - "rdf-validate-shacl": "^0.5.4", + "rdf-validate-shacl": "^0.5.5", "readable-stream": "3 - 4" } }, @@ -6976,6 +8524,29 @@ "integrity": "sha512-gjoPAvh4j7AbGMjcDn/8R4cW+d/FPtbfbMM0uQXkyfBFtNUW2iVgrqsgJ65roLc54Y9A2TTFaeeTGSvY9a0HCQ==", "dev": true }, + "node_modules/barnard59-shacl/node_modules/barnard59-formats": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/barnard59-formats/-/barnard59-formats-4.0.0.tgz", + "integrity": "sha512-CZ/3cSDrIGZ1W8tymPxfIsBYks5U2FxIofdgZ/XQjJ+boA19hUoQK7cfC87j4/EMOjQcyz7mnRBMyTWzN/4Mxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@opentelemetry/api": "^1.0.1", + "@rdfjs/parser-jsonld": "^2.1.0", + "@rdfjs/parser-n3": "^2.0.1", + "@rdfjs/serializer-jsonld": "^2.0.0", + "@rdfjs/serializer-ntriples": "^2.0.0", + "@rdfjs/sink-to-duplex": "^1.0.0", + "@zazuko/rdf-parser-csvw": "^0.17.0", + "@zazuko/rdf-parser-csvw-xlsx": "^0.3", + "barnard59-base": "^2.0.1", + "is-stream": "^3.0.0", + "rdfxml-streaming-parser": "^1.2.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/barnard59-shacl/node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -8439,6 +10010,119 @@ "node": ">=8" } }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "license": "ISC", + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/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/cli-highlight/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cli-highlight/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/cli-spinners": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", @@ -8448,10 +10132,11 @@ } }, "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -10206,6 +11891,13 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "dev": true, + "license": "MIT" + }, "node_modules/enabled": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", @@ -10262,6 +11954,19 @@ "node": ">=6" } }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -12342,6 +14047,13 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, + "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/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -12622,6 +14334,16 @@ "node": ">=4" } }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, "node_modules/hijackresponse": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/hijackresponse/-/hijackresponse-4.0.1.tgz", @@ -15988,6 +17710,18 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/n3": { "version": "1.17.3", "resolved": "https://registry.npmjs.org/n3/-/n3-1.17.3.tgz", @@ -17190,6 +18924,13 @@ "node": ">=4" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/package-json/node_modules/get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -17305,6 +19046,30 @@ "node": ">=0.10.0" } }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "license": "MIT" + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -18896,10 +20661,11 @@ } }, "node_modules/rdf-transform-graph-imports": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/rdf-transform-graph-imports/-/rdf-transform-graph-imports-0.2.2.tgz", - "integrity": "sha512-VzBXChikqmQWjW4zCgIXiioZVaNDDGpkd0DzFoN4WJFKBGKpDVSP0y4zfan97tq5kwfNCn7F7I2dG2BxScm7Vw==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/rdf-transform-graph-imports/-/rdf-transform-graph-imports-0.2.3.tgz", + "integrity": "sha512-q4hv9J84TicmQX/dfrSFP2+txArjDqwDOKTougOEowe3kiT2SRLXoB5VFG8NPicxXY4th+eLZepTG4pU03GXDg==", "dev": true, + "license": "MIT", "dependencies": { "anylogger": "^1.0.11", "readable-stream": "3 - 4", @@ -19007,16 +20773,18 @@ "resolved": "https://registry.npmjs.org/rdf-validate-datatype/-/rdf-validate-datatype-0.2.1.tgz", "integrity": "sha512-DpREnmoWDxC80KyslZeBPLQb3ztyeiOolT4uCl58tCju2KHJu4j5vonmVVdEJh2Mpad5UY57v6sSM/hfSTFGKQ==", "dev": true, + "license": "MIT", "dependencies": { "@rdfjs/term-map": "^2.0.0", "@tpluscode/rdf-ns-builders": "3 - 4" } }, "node_modules/rdf-validate-shacl": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/rdf-validate-shacl/-/rdf-validate-shacl-0.5.4.tgz", - "integrity": "sha512-0d395JxiT/EyWzjL8X1lC2gy5x3W0MuoKnfywFqwUsqo2Vn/zCicnaF+wyuHnwS3A0lMyWf6nThh/WF8JjmCjw==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/rdf-validate-shacl/-/rdf-validate-shacl-0.5.6.tgz", + "integrity": "sha512-B23lccAy1uIYU9XVoXxK2DFGMV+xBbpvzTpfBJXLKoURjdEOfu/MCih1AHiGJh9PInvl667GvkVD9TmAE2b3Sg==", "dev": true, + "license": "MIT", "dependencies": { "@rdfjs/data-model": "^2", "@rdfjs/dataset": "^2", @@ -19035,6 +20803,7 @@ "resolved": "https://registry.npmjs.org/@rdfjs/data-model/-/data-model-2.0.2.tgz", "integrity": "sha512-v5LRNkLRJazMCGU7VtEzhz5wKwz/IrOdJEKapCtd35HuFbQfeGpoJP6QOXGyFHhWwKmtG+UMlZzYFyNDVE1m6g==", "dev": true, + "license": "MIT", "bin": { "rdfjs-data-model-test": "bin/test.js" } @@ -19044,6 +20813,7 @@ "resolved": "https://registry.npmjs.org/@rdfjs/dataset/-/dataset-2.0.2.tgz", "integrity": "sha512-6YJx+5n5Uxzq9dd9I0GGcIo6eopZOPfcsAfxSGX5d+YBzDgVa1cbtEBFnaPyPKiQsOm4+Cr3nwypjpg02YKPlA==", "dev": true, + "license": "MIT", "bin": { "rdfjs-dataset-test": "bin/test.js" } @@ -20438,6 +22208,19 @@ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -21654,6 +23437,29 @@ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/throat": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/throat/-/throat-2.0.2.tgz", @@ -22034,6 +23840,19 @@ "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/ts-jest": { "version": "29.1.1", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", @@ -22537,6 +24356,16 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/unicorn-magic": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", diff --git a/package.json b/package.json index c7b085c..6ba9cb1 100644 --- a/package.json +++ b/package.json @@ -9,14 +9,14 @@ "trifid": "trifid --verbose --config=trifid/config.json", "trifid:local": "trifid --verbose --config=trifid/config.local.json", "lint": "standard", - "test": "run-p --aggregate-output -cns \"test:* {@}\" --", + "test": "run-p --aggregate-output -cns \"test:* -- {@}\" --", "test:observations": "./test/check-observations.sh", - "test:basic-cube-constraint": "./test/check-metadata.sh --profile=basic-cube-constraint", - "test:standalone-cube-constraint": "./test/check-metadata.sh --profile=standalone-cube-constraint", - "test:standalone-constraint-constraint": "./test/check-metadata.sh --profile=standalone-constraint-constraint", - "test:profile-visualize": "./test/check-metadata.sh --profile=profile-visualize", - "test:profile-opendataswiss": "./test/check-metadata.sh --profile=profile-opendataswiss", - "test:profile-opendataswiss-lindas": "./test/check-metadata.sh --profile=profile-opendataswiss-lindas", + "test:basic-cube-constraint": "./test/check-metadata.sh basic-cube-constraint", + "test:standalone-cube-constraint": "./test/check-metadata.sh standalone-cube-constraint", + "test:standalone-constraint-constraint": "./test/check-metadata.sh standalone-constraint-constraint", + "test:profile-visualize": "./test/check-metadata.sh profile-visualize", + "test:profile-opendataswiss": "./test/check-metadata.sh profile-opendataswiss", + "test:profile-opendataswiss-lindas": "./test/check-metadata.sh profile-opendataswiss-lindas", "release": "changeset tag" }, "files": [ @@ -46,23 +46,17 @@ }, "devDependencies": { "@changesets/cli": "^2.26.2", - "@rdfjs-elements/formats-pretty": "^0.6.7", - "@zazuko/env-node": "^2.1.1", - "@zazuko/s": "^1.0.1", - "@zazuko/shacl-playground": "^2.0.0", + "@zazuko/shacl-test": "^0.1", "approvals": "^6.2.2", "barnard59": "^5.0.0", "barnard59-base": "^2.4.2", "barnard59-cube": "^1.4.2", "barnard59-formats": "^2.1.0", "barnard59-http": "^2.0.0", - "barnard59-rdf": "^3.4.0", - "barnard59-shacl": "^1.4.4", "barnard59-sparql": "^2.3.0", "chromium": "^3.0.3", "npm-run-all": "^4.1.5", "pm2": "^5.3.1", - "rdf-transform-graph-imports": "^0.2.2", "respec": "^35.0.0", "serve": "^13.0.2", "standard": "^14.3.4", diff --git a/test/basic-cube-constraint/invalid.withoutObservationSet.ttl.approved.txt b/test/basic-cube-constraint/invalid.withoutObservationSet.ttl.approved.txt index 83a4511..f3ecdcf 100644 --- a/test/basic-cube-constraint/invalid.withoutObservationSet.ttl.approved.txt +++ b/test/basic-cube-constraint/invalid.withoutObservationSet.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/basic-cube-constraint/invalid.withoutObservations.ttl.approved.txt b/test/basic-cube-constraint/invalid.withoutObservations.ttl.approved.txt index 930b698..9bbe65c 100644 --- a/test/basic-cube-constraint/invalid.withoutObservations.ttl.approved.txt +++ b/test/basic-cube-constraint/invalid.withoutObservations.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/basic-cube-constraint/invalid.withoutProperties.ttl.approved.txt b/test/basic-cube-constraint/invalid.withoutProperties.ttl.approved.txt index 2135339..796eeed 100644 --- a/test/basic-cube-constraint/invalid.withoutProperties.ttl.approved.txt +++ b/test/basic-cube-constraint/invalid.withoutProperties.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/check-metadata.sh b/test/check-metadata.sh index 8296cac..599d718 100755 --- a/test/check-metadata.sh +++ b/test/check-metadata.sh @@ -1,101 +1,6 @@ -#!/usr/bin/env bash - -SCRIPT_PATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" -FAILED=0 - -filter='' -debug=false - -# get arguments --profile -while [ $# -gt 0 ]; do - case "$1" in - --profile=*) - profile="${1#*=}" - profilePath=validation/"$profile".ttl - ;; - --approve) - approvalsFlags='-f' - ;; - --debug) - debug=true - ;; - --filter=*) - filter="${1#*=}" - ;; - *) - printf "***************************\n" - printf "* Error: Invalid argument.*\n" - printf "***************************\n" - exit 1 - esac - shift -done - -# check if profile is set -if [ -z "$profile" ]; then - printf "***************************\n" - printf "* Error: No profile set. *\n" - printf "***************************\n" - exit 1 -fi - -loadFullShape() { - "$SCRIPT_PATH"/load-graph.js "$1" | "$SCRIPT_PATH"/pretty-print.js -} - -# iterate over valid cases, run validation and monitor exit code -for file in "$SCRIPT_PATH"/"$profile"/valid*.ttl; do - name=$(basename "$file") - - # check if filter is set and skip if not matching - if [ -n "$filter" ] && ! echo "$file" | grep -q "$filter"; then - echo "ℹ️SKIP - $name" - continue - fi - - { - if [ "$debug" = true ]; then - echo "🐞 npx barnard59 cube check-metadata --profile $profilePath < $file" - fi - npx barnard59 cube check-metadata --profile "$profilePath" > "$file.log" 2>&1 - success=$? - } < "$file" - - if [ $success -ne 0 ] ; then - "$SCRIPT_PATH"/report-failure.sh "$file" "$(loadFullShape "$profilePath")" "$(cat "$file")" - FAILED=1 - else - echo "✅ PASS - $name" - fi -done - -# iterate over invalid cases -for file in "$SCRIPT_PATH"/"$profile"/{invalid,warning}*.ttl; do - name=$(basename "$file") - - # skip if file does not exist - if [ ! -f "$file" ]; then - continue - fi - - # check if pattern is set and skip if not matching - if [ -n "$filter" ] && ! echo "$file" | grep -q "$filter"; then - echo "ℹ️SKIP - $name" - continue - fi - - - if [ "$debug" = true ]; then - echo "🐞 npx barnard59 cube check-metadata --profile $profilePath < $file" - fi - report=$(npx barnard59 cube check-metadata --profile "$profilePath" < "$file" 2> "$file.log" | "$SCRIPT_PATH"/pretty-print.js) - - if ! echo "$report" | npx approvals "$name" --outdir "$SCRIPT_PATH"/"$profile" "$approvalsFlags" > /dev/null 2>&1 ; then - "$SCRIPT_PATH"/report-failure.sh "$file" "$(loadFullShape "$profilePath")" "$(cat "$file")" "check results" - FAILED=1 - else - echo "✅ PASS - $name" - fi -done - -exit $FAILED +npx shacl-test --shapes="validation/$1.ttl" \ + --valid-cases="test/$1/valid*.ttl" \ + --invalid-cases="test/$1/invalid*.ttl" \ + --command="npx b59 cube check-metadata --profile" \ + --prefixes=schema,cube=https://cube.link/ \ + ${*:2} diff --git a/test/check-observations.sh b/test/check-observations.sh index c4e2b1f..71e856b 100755 --- a/test/check-observations.sh +++ b/test/check-observations.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash SCRIPT_PATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" +SHACL_TEST_PATH="$(npm root)/@zazuko/shacl-test" FAILED=0 filter='' @@ -31,10 +32,10 @@ for file in "$SCRIPT_PATH"/observations/*.ttl; do fi name=$(basename "$file") - report=$(npx barnard59 cube check-observations --constraint "$file" < "$file" 2> "$file.log" | "$SCRIPT_PATH"/pretty-print.js) + report=$(npx barnard59 cube check-observations --constraint "$file" < "$file" 2> "$file.log" | "$SHACL_TEST_PATH"/pretty-print.js --prefixes schema cube=https://cube.link/) if ! echo "$report" | npx approvals "$name" --outdir "$SCRIPT_PATH"/observations "$approvalsFlags" > /dev/null 2>&1 ; then - "$SCRIPT_PATH"/report-failure.sh "$file" "$(cat "$file")" "$(cat "$file")" "check results" + "$SHACL_TEST_PATH"/report-failure.sh "$file" "$(cat "$file")" "$(cat "$file")" "check results" FAILED=1 else echo "✅ PASS - $name" diff --git a/test/load-graph.js b/test/load-graph.js deleted file mode 100755 index 13baf83..0000000 --- a/test/load-graph.js +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env node - -import env from '@zazuko/env-node' -import importGraphs from 'rdf-transform-graph-imports' -import open from 'barnard59-rdf/open.js' - -(async () => { - const quadStream = await open.call({ env }, process.argv[2]) - - env.formats.serializers.import('text/turtle', quadStream.pipe(importGraphs(env))).pipe(process.stdout) -})() diff --git a/test/observations/undefinedAllowed.ttl.approved.txt b/test/observations/undefinedAllowed.ttl.approved.txt index ff1e3ce..2ab4422 100644 --- a/test/observations/undefinedAllowed.ttl.approved.txt +++ b/test/observations/undefinedAllowed.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/observations/undefinedNotAllowed.ttl.approved.txt b/test/observations/undefinedNotAllowed.ttl.approved.txt index 9920639..cccb5a0 100644 --- a/test/observations/undefinedNotAllowed.ttl.approved.txt +++ b/test/observations/undefinedNotAllowed.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/observations/undefinedOrBounded.ttl.approved.txt b/test/observations/undefinedOrBounded.ttl.approved.txt index ff1e3ce..2ab4422 100644 --- a/test/observations/undefinedOrBounded.ttl.approved.txt +++ b/test/observations/undefinedOrBounded.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/observations/withoutName.ttl.approved.txt b/test/observations/withoutName.ttl.approved.txt index ff1e3ce..2ab4422 100644 --- a/test/observations/withoutName.ttl.approved.txt +++ b/test/observations/withoutName.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/observations/withoutType.ttl.approved.txt b/test/observations/withoutType.ttl.approved.txt index ff1e3ce..2ab4422 100644 --- a/test/observations/withoutType.ttl.approved.txt +++ b/test/observations/withoutType.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/pretty-print.js b/test/pretty-print.js deleted file mode 100755 index 6d211a3..0000000 --- a/test/pretty-print.js +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env node -import rdf from '@zazuko/env-node' -import formats from '@rdfjs-elements/formats-pretty' - -rdf.formats.import(formats) - -const prefixes = ['sh', 'rdf', 'schema', 'xsd', ['cube', 'https://cube.link/']] - -;(async function () { - const dataset = await rdf.dataset().import(rdf.formats.parsers.import('text/turtle', process.stdin)) - - process.stdout.write(await dataset.serialize({ format: 'text/turtle', prefixes })) -})() diff --git a/test/profile-opendataswiss-lindas/invalid.draft.ttl.approved.txt b/test/profile-opendataswiss-lindas/invalid.draft.ttl.approved.txt index fb79a07..9bd6553 100644 --- a/test/profile-opendataswiss-lindas/invalid.draft.ttl.approved.txt +++ b/test/profile-opendataswiss-lindas/invalid.draft.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/profile-opendataswiss-lindas/invalid.expired.ttl.approved.txt b/test/profile-opendataswiss-lindas/invalid.expired.ttl.approved.txt index d75cf26..86c7e84 100644 --- a/test/profile-opendataswiss-lindas/invalid.expired.ttl.approved.txt +++ b/test/profile-opendataswiss-lindas/invalid.expired.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; @@ -10,17 +11,17 @@ _:report a sh:ValidationReport ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; sh:sourceShape [ - sh:path _:b627 ; + sh:path _:b628 ; sh:maxCount 0 ; sh:message "Cube cannot be expired" ; ] ; sh:focusNode ; - sh:resultPath _:b627 ; + sh:resultPath _:b628 ; sh:resultMessage "Cube cannot be expired" ; ] ; sh:conforms false . -_:b627 sh:alternativePath ( +_:b628 sh:alternativePath ( schema:validThrough schema:expires ) . diff --git a/test/profile-opendataswiss-lindas/invalid.noTypeDataset.ttl.approved.txt b/test/profile-opendataswiss-lindas/invalid.noTypeDataset.ttl.approved.txt index 042ddec..38a3555 100644 --- a/test/profile-opendataswiss-lindas/invalid.noTypeDataset.ttl.approved.txt +++ b/test/profile-opendataswiss-lindas/invalid.noTypeDataset.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/profile-opendataswiss-lindas/invalid.noWorkExample.ttl.approved.txt b/test/profile-opendataswiss-lindas/invalid.noWorkExample.ttl.approved.txt index d89dd56..adce0fd 100644 --- a/test/profile-opendataswiss-lindas/invalid.noWorkExample.ttl.approved.txt +++ b/test/profile-opendataswiss-lindas/invalid.noWorkExample.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/profile-opendataswiss/invalid.missing-identifier.cube.ttl.approved.txt b/test/profile-opendataswiss/invalid.missing-identifier.cube.ttl.approved.txt index 5f38b9b..4a0606a 100644 --- a/test/profile-opendataswiss/invalid.missing-identifier.cube.ttl.approved.txt +++ b/test/profile-opendataswiss/invalid.missing-identifier.cube.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/profile-opendataswiss/invalid.publisherNoClass.ttl.approved.txt b/test/profile-opendataswiss/invalid.publisherNoClass.ttl.approved.txt index 5295537..8e2a55a 100644 --- a/test/profile-opendataswiss/invalid.publisherNoClass.ttl.approved.txt +++ b/test/profile-opendataswiss/invalid.publisherNoClass.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/profile-visualize/invalid-data-kind-unexpected.ttl.approved.txt b/test/profile-visualize/invalid-data-kind-unexpected.ttl.approved.txt index 02fd9e6..83f7b22 100644 --- a/test/profile-visualize/invalid-data-kind-unexpected.ttl.approved.txt +++ b/test/profile-visualize/invalid-data-kind-unexpected.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/profile-visualize/invalid-data-kinds.ttl.approved.txt b/test/profile-visualize/invalid-data-kinds.ttl.approved.txt index 85cbf03..ec08085 100644 --- a/test/profile-visualize/invalid-data-kinds.ttl.approved.txt +++ b/test/profile-visualize/invalid-data-kinds.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/profile-visualize/invalid-datatype-langstring.ttl.approved.txt b/test/profile-visualize/invalid-datatype-langstring.ttl.approved.txt index 15e5cca..8dec054 100644 --- a/test/profile-visualize/invalid-datatype-langstring.ttl.approved.txt +++ b/test/profile-visualize/invalid-datatype-langstring.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; @@ -23,7 +24,7 @@ _:report a sh:ValidationReport ; rdf:type sh:ValidationResult ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:OrConstraintComponent ; - sh:sourceShape _:b633 ; + sh:sourceShape _:b634 ; sh:focusNode ; sh:resultPath sh:property ; sh:value _:b2 ; @@ -33,7 +34,7 @@ _:report a sh:ValidationReport ; rdf:type sh:ValidationResult ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:OrConstraintComponent ; - sh:sourceShape _:b633 ; + sh:sourceShape _:b634 ; sh:focusNode ; sh:resultPath sh:property ; sh:value _:b2 ; @@ -41,7 +42,7 @@ _:report a sh:ValidationReport ; ] ; sh:conforms false . -_:b633 sh:path sh:property ; +_:b634 sh:path sh:property ; sh:or ( [ sh:node ; diff --git a/test/profile-visualize/invalid-datatype-multiple.ttl.approved.txt b/test/profile-visualize/invalid-datatype-multiple.ttl.approved.txt index 15e5cca..8dec054 100644 --- a/test/profile-visualize/invalid-datatype-multiple.ttl.approved.txt +++ b/test/profile-visualize/invalid-datatype-multiple.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; @@ -23,7 +24,7 @@ _:report a sh:ValidationReport ; rdf:type sh:ValidationResult ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:OrConstraintComponent ; - sh:sourceShape _:b633 ; + sh:sourceShape _:b634 ; sh:focusNode ; sh:resultPath sh:property ; sh:value _:b2 ; @@ -33,7 +34,7 @@ _:report a sh:ValidationReport ; rdf:type sh:ValidationResult ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:OrConstraintComponent ; - sh:sourceShape _:b633 ; + sh:sourceShape _:b634 ; sh:focusNode ; sh:resultPath sh:property ; sh:value _:b2 ; @@ -41,7 +42,7 @@ _:report a sh:ValidationReport ; ] ; sh:conforms false . -_:b633 sh:path sh:property ; +_:b634 sh:path sh:property ; sh:or ( [ sh:node ; diff --git a/test/profile-visualize/invalid-no-status.ttl.approved.txt b/test/profile-visualize/invalid-no-status.ttl.approved.txt index 7043212..ecaee31 100644 --- a/test/profile-visualize/invalid-no-status.ttl.approved.txt +++ b/test/profile-visualize/invalid-no-status.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/profile-visualize/invalid-scale-types.ttl.approved.txt b/test/profile-visualize/invalid-scale-types.ttl.approved.txt index 977243c..0b86afa 100644 --- a/test/profile-visualize/invalid-scale-types.ttl.approved.txt +++ b/test/profile-visualize/invalid-scale-types.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; @@ -23,7 +24,7 @@ _:report a sh:ValidationReport ; rdf:type sh:ValidationResult ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:OrConstraintComponent ; - sh:sourceShape _:b643 ; + sh:sourceShape _:b644 ; sh:focusNode ; sh:resultPath sh:property ; sh:value _:b2 ; @@ -32,7 +33,7 @@ _:report a sh:ValidationReport ; rdf:type sh:ValidationResult ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:OrConstraintComponent ; - sh:sourceShape _:b643 ; + sh:sourceShape _:b644 ; sh:focusNode ; sh:resultPath sh:property ; sh:value _:b3 ; @@ -42,7 +43,7 @@ _:report a sh:ValidationReport ; rdf:type sh:ValidationResult ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:OrConstraintComponent ; - sh:sourceShape _:b643 ; + sh:sourceShape _:b644 ; sh:focusNode ; sh:resultPath sh:property ; sh:value _:b2 ; @@ -51,7 +52,7 @@ _:report a sh:ValidationReport ; rdf:type sh:ValidationResult ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:OrConstraintComponent ; - sh:sourceShape _:b643 ; + sh:sourceShape _:b644 ; sh:focusNode ; sh:resultPath sh:property ; sh:value _:b3 ; @@ -59,7 +60,7 @@ _:report a sh:ValidationReport ; ] ; sh:conforms false . -_:b643 sh:path sh:property ; +_:b644 sh:path sh:property ; sh:or ( [ sh:node ; diff --git a/test/profile-visualize/invalid-temporal.ttl.approved.txt b/test/profile-visualize/invalid-temporal.ttl.approved.txt index 4ba0b9e..3d1594b 100644 --- a/test/profile-visualize/invalid-temporal.ttl.approved.txt +++ b/test/profile-visualize/invalid-temporal.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/report-failure.sh b/test/report-failure.sh deleted file mode 100755 index 704985d..0000000 --- a/test/report-failure.sh +++ /dev/null @@ -1,18 +0,0 @@ -SCRIPT_PATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - -file=$1 -name=$(basename "$file") - -message=$4 -if [ -z "$message" ]; then - message="check report" -fi - -playground=$("$SCRIPT_PATH"/shorten-report.js "$2" "$3") -echo "❌ FAIL - $name. $message: $playground" - -# git diff non interactive -if [ -f "$1".approved.txt ]; then - printf '\n' - git diff --color --no-index "$1".approved.txt "$1".received.txt | cat -fi diff --git a/test/shorten-report.js b/test/shorten-report.js deleted file mode 100755 index 41dbb1e..0000000 --- a/test/shorten-report.js +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node - -import { createPlaygroundUrl } from '@zazuko/shacl-playground' -import { shorten } from '@zazuko/s' - -;(async function () { - process.stdout.write(await shorten(createPlaygroundUrl(process.argv[2], process.argv[3]))) -})() diff --git a/test/standalone-constraint-constraint/invalid.malformedList.ttl.approved.txt b/test/standalone-constraint-constraint/invalid.malformedList.ttl.approved.txt index 720ed90..97be214 100644 --- a/test/standalone-constraint-constraint/invalid.malformedList.ttl.approved.txt +++ b/test/standalone-constraint-constraint/invalid.malformedList.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; @@ -9,7 +10,7 @@ _:report a sh:ValidationReport ; rdf:type sh:ValidationResult ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:MinCountConstraintComponent ; - sh:sourceShape _:b678 ; + sh:sourceShape _:b679 ; sh:focusNode _:b6 ; sh:resultPath rdf:rest ; sh:resultMessage "list node needs exactly one rdf:rest" ; @@ -40,7 +41,7 @@ _:report a sh:ValidationReport ; rdf:type sh:ValidationResult ; sh:resultSeverity sh:Violation ; sh:sourceConstraintComponent sh:MinCountConstraintComponent ; - sh:sourceShape _:b678 ; + sh:sourceShape _:b679 ; sh:focusNode _:b6 ; sh:resultPath rdf:rest ; sh:resultMessage "list node needs exactly one rdf:rest" ; @@ -59,7 +60,7 @@ _:report a sh:ValidationReport ; ] ; sh:conforms false . -_:b678 sh:path rdf:rest ; +_:b679 sh:path rdf:rest ; sh:maxCount 1 ; sh:minCount 1 ; sh:message "list node needs exactly one rdf:rest" . diff --git a/test/standalone-constraint-constraint/invalid.withoutName.ttl.approved.txt b/test/standalone-constraint-constraint/invalid.withoutName.ttl.approved.txt index 729e723..dc45d16 100644 --- a/test/standalone-constraint-constraint/invalid.withoutName.ttl.approved.txt +++ b/test/standalone-constraint-constraint/invalid.withoutName.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/standalone-constraint-constraint/invalid.withoutType.ttl.approved.txt b/test/standalone-constraint-constraint/invalid.withoutType.ttl.approved.txt index e4f910c..e8e84c0 100644 --- a/test/standalone-constraint-constraint/invalid.withoutType.ttl.approved.txt +++ b/test/standalone-constraint-constraint/invalid.withoutType.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/standalone-cube-constraint/invalid.blankContactPoint.missingEmail.ttl.approved.txt b/test/standalone-cube-constraint/invalid.blankContactPoint.missingEmail.ttl.approved.txt index b48d14a..78bab4e 100644 --- a/test/standalone-cube-constraint/invalid.blankContactPoint.missingEmail.ttl.approved.txt +++ b/test/standalone-cube-constraint/invalid.blankContactPoint.missingEmail.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; diff --git a/test/standalone-cube-constraint/invalid.blankContactPoint.missingName.ttl.approved.txt b/test/standalone-cube-constraint/invalid.blankContactPoint.missingName.ttl.approved.txt index b48d14a..78bab4e 100644 --- a/test/standalone-cube-constraint/invalid.blankContactPoint.missingName.ttl.approved.txt +++ b/test/standalone-cube-constraint/invalid.blankContactPoint.missingName.ttl.approved.txt @@ -1,7 +1,8 @@ @prefix sh: . @prefix rdf: . -@prefix schema: . +@prefix rdfs: . @prefix xsd: . +@prefix schema: . @prefix cube: . _:report a sh:ValidationReport ; From 1a1853d0a8911512cdb7e97047030773b4d8b74e Mon Sep 17 00:00:00 2001 From: Tomasz Pluskiewicz Date: Wed, 18 Sep 2024 14:51:42 +0200 Subject: [PATCH 2/5] ci: fix profile script --- .github/workflows/test.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index cbaecc0..633ed1e 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -74,8 +74,7 @@ jobs: run: npm ci - name: Run tests - shell: sh - run: ./test/check-metadata.sh --profile=${{ matrix.profile }} + run: npm run test:${{ matrix.profile }} - name: Show test results if: ${{ always() }} From cd3a4c7aace15ac4cfe9ab13a3d33feebe3cbf78 Mon Sep 17 00:00:00 2001 From: Tomasz Pluskiewicz Date: Wed, 18 Sep 2024 15:01:24 +0200 Subject: [PATCH 3/5] ci: fix bad substitution? --- .github/workflows/test.yaml | 1 + test/check-metadata.sh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 633ed1e..ebb026a 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -74,6 +74,7 @@ jobs: run: npm ci - name: Run tests + shell: sh run: npm run test:${{ matrix.profile }} - name: Show test results diff --git a/test/check-metadata.sh b/test/check-metadata.sh index 599d718..7003ab7 100755 --- a/test/check-metadata.sh +++ b/test/check-metadata.sh @@ -1,3 +1,5 @@ +#!/usr/bin/env bash + npx shacl-test --shapes="validation/$1.ttl" \ --valid-cases="test/$1/valid*.ttl" \ --invalid-cases="test/$1/invalid*.ttl" \ From 5d2d4c7bb9da4b6851ff01396820d062464ed0a7 Mon Sep 17 00:00:00 2001 From: Tomasz Pluskiewicz Date: Wed, 18 Sep 2024 15:09:29 +0200 Subject: [PATCH 4/5] ci: running script on windows --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6ba9cb1..03dbb7f 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "trifid:local": "trifid --verbose --config=trifid/config.local.json", "lint": "standard", "test": "run-p --aggregate-output -cns \"test:* -- {@}\" --", - "test:observations": "./test/check-observations.sh", + "test:observations": "sh ./test/check-observations.sh", "test:basic-cube-constraint": "./test/check-metadata.sh basic-cube-constraint", "test:standalone-cube-constraint": "./test/check-metadata.sh standalone-cube-constraint", "test:standalone-constraint-constraint": "./test/check-metadata.sh standalone-constraint-constraint", From 182f9c0a191eb6b55de48859937934a210b37d45 Mon Sep 17 00:00:00 2001 From: Tomasz Pluskiewicz Date: Thu, 19 Sep 2024 10:16:48 +0200 Subject: [PATCH 5/5] revert: platform-agnostic test script --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index ebb026a..67f114c 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -75,7 +75,7 @@ jobs: - name: Run tests shell: sh - run: npm run test:${{ matrix.profile }} + run: ./test/check-metadata.sh ${{ matrix.profile }} - name: Show test results if: ${{ always() }}