diff --git a/.changeset/itchy-snakes-smell.md b/.changeset/itchy-snakes-smell.md new file mode 100644 index 00000000..d9e0be2a --- /dev/null +++ b/.changeset/itchy-snakes-smell.md @@ -0,0 +1,5 @@ +--- +"barnard59": patch +--- + +Suggest package to install when a CLI command is not found diff --git a/.changeset/lucky-kangaroos-smoke.md b/.changeset/lucky-kangaroos-smoke.md new file mode 100644 index 00000000..538ca7bb --- /dev/null +++ b/.changeset/lucky-kangaroos-smoke.md @@ -0,0 +1,8 @@ +--- +"barnard59-graph-store": patch +"barnard59-shacl": patch +"barnard59-core": patch +"barnard59": patch +--- + +Type annotations: remove references to `rdf-js`, using `@rdfjs/types` instead diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 26c94dd3..fa705a27 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -25,7 +25,7 @@ jobs: - validation steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} - run: npm ci @@ -40,7 +40,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 20 - run: npm ci @@ -56,7 +56,7 @@ jobs: - "20" steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} - run: npm ci @@ -73,7 +73,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 - run: npm ci - run: npm run lint @@ -91,7 +91,7 @@ jobs: runs-on: ${{ matrix.env.os }} steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: ${{ matrix.env.node }} cache: npm @@ -119,7 +119,7 @@ jobs: runs-on: ${{ matrix.env.os }} steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: ${{ matrix.env.node }} cache: npm diff --git a/.github/workflows/fig.yaml b/.github/workflows/fig.yaml new file mode 100644 index 00000000..a7770596 --- /dev/null +++ b/.github/workflows/fig.yaml @@ -0,0 +1,28 @@ +name: Fig integration + +on: + push: + branches: + - cli-command-help + +jobs: + push-autocomplete-spec: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + - name: Install Dependencies + run: npm ci + - run: npm run generate-autocomplete-spec + working-directory: packages/cli + + - name: Create Autocomplete PR + uses: withfig/push-to-fig-autocomplete-action@v2 + with: + token: ${{ secrets.FIG_PAT }} + autocomplete-spec-name: barnard59 + spec-path: packages/cli/fig-spec.ts + integration: commander diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 56fb3df7..68545ef2 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -15,7 +15,7 @@ jobs: - name: Checkout Repo uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 20 diff --git a/package-lock.json b/package-lock.json index efaea1d6..bb934d4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1630,6 +1630,33 @@ "node": ">=14" } }, + "node_modules/@fig/complete-commander": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@fig/complete-commander/-/complete-commander-3.1.0.tgz", + "integrity": "sha512-J6O5WMO8YChpk5FvFfSWYuws8gIbHATheoXEDUy5Or2k1sY56A94UcJhOG2NByKbPCRnCH/StU6dzt+pMRQ9hQ==", + "dev": true, + "dependencies": { + "prettier": "^3.2.5" + }, + "peerDependencies": { + "commander": "^11.1.0" + } + }, + "node_modules/@fig/complete-commander/node_modules/prettier": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.1.tgz", + "integrity": "sha512-7CAwy5dRsxs8PHXT3twixW9/OEll8MLE0VRPCJyl7CkS6VHGPSlsVaWTiASPTyGyYRyApxlaWTzwUxVNrhcwDg==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/@graphy/content.nq.read": { "version": "4.3.7", "dev": true, @@ -1741,15 +1768,13 @@ }, "node_modules/@hapi/hoek": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@hapi/topo": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } @@ -4943,16 +4968,14 @@ }, "node_modules/@rdfjs/data-model": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@rdfjs/data-model/-/data-model-2.0.2.tgz", - "integrity": "sha512-v5LRNkLRJazMCGU7VtEzhz5wKwz/IrOdJEKapCtd35HuFbQfeGpoJP6QOXGyFHhWwKmtG+UMlZzYFyNDVE1m6g==", + "license": "MIT", "bin": { "rdfjs-data-model-test": "bin/test.js" } }, "node_modules/@rdfjs/dataset": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@rdfjs/dataset/-/dataset-2.0.2.tgz", - "integrity": "sha512-6YJx+5n5Uxzq9dd9I0GGcIo6eopZOPfcsAfxSGX5d+YBzDgVa1cbtEBFnaPyPKiQsOm4+Cr3nwypjpg02YKPlA==", + "license": "MIT", "bin": { "rdfjs-dataset-test": "bin/test.js" } @@ -5111,8 +5134,7 @@ }, "node_modules/@rdfjs/parser-n3": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@rdfjs/parser-n3/-/parser-n3-2.0.2.tgz", - "integrity": "sha512-rrrvyh+kkj9ndwep2h6nYmugIfggDOC9uGpmDAHn/I/z52K7dHxi7xOkPPrezTsIbgNvFhV3zS7mzyObRxcLWA==", + "license": "MIT", "dependencies": { "@rdfjs/data-model": "^2.0.2", "@rdfjs/sink": "^2.0.1", @@ -5127,8 +5149,7 @@ }, "node_modules/@rdfjs/parser-n3/node_modules/readable-stream": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -5263,8 +5284,7 @@ }, "node_modules/@rdfjs/sink": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@rdfjs/sink/-/sink-2.0.1.tgz", - "integrity": "sha512-smzIFGF6EH1sLAJR9F3p2wMNrN44JjPeYAoITTJLqtuNC319K7IXaJ+qNLBGTtapZ/jvpx2Tks0TjcH9KrAvEA==" + "license": "MIT" }, "node_modules/@rdfjs/sink-map": { "version": "2.0.0", @@ -5364,24 +5384,21 @@ }, "node_modules/@sideway/address": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@sinclair/typebox": { "version": "0.24.51", @@ -6184,9 +6201,8 @@ }, "node_modules/@tpluscode/sparql-builder": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tpluscode/sparql-builder/-/sparql-builder-2.0.0.tgz", - "integrity": "sha512-PH/F4E69BUuTHQTUgfKDjbBp6Q7OXGnXcADvGpBnBg3kDkq11tJpRHUtmBPmaz2kL3RreX7xW5UvQdPIh8mrBg==", "dev": true, + "license": "MIT", "dependencies": { "@rdfjs/data-model": "^2", "@rdfjs/term-set": "^2", @@ -6258,9 +6274,8 @@ }, "node_modules/@types/chai": { "version": "4.3.16", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.16.tgz", - "integrity": "sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/clownface": { "version": "2.0.0", @@ -6296,9 +6311,8 @@ }, "node_modules/@types/glob": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimatch": "*", "@types/node": "*" @@ -6376,9 +6390,8 @@ }, "node_modules/@types/minimatch": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/minimist": { "version": "1.2.2", @@ -6467,9 +6480,8 @@ }, "node_modules/@types/rdf-validate-shacl": { "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@types/rdf-validate-shacl/-/rdf-validate-shacl-0.4.7.tgz", - "integrity": "sha512-BNFLrx03KYQUWoGSaj8sU3qs5E3KnKSPEJnTcWlAM0khTnq7sVndsJt/wsUv/3VxJ2jJAEc6hjy0Y3apbtj9cQ==", "dev": true, + "license": "MIT", "dependencies": { "@rdfjs/types": "*", "@types/clownface": "*", @@ -6616,8 +6628,7 @@ }, "node_modules/@types/rdfjs__parser-jsonld": { "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@types/rdfjs__parser-jsonld/-/rdfjs__parser-jsonld-2.1.7.tgz", - "integrity": "sha512-n35K+c1Y95580N202Jxly6xjFE953FF+Y2mwxok6zLfMo4rgIfgMBElnNwpja0IeYXTuzGm1tEz7va3lItGrTg==", + "license": "MIT", "dependencies": { "@rdfjs/types": ">=1.0.0", "@types/jsonld": "*" @@ -6625,8 +6636,7 @@ }, "node_modules/@types/rdfjs__parser-n3": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/rdfjs__parser-n3/-/rdfjs__parser-n3-2.0.6.tgz", - "integrity": "sha512-VHfdq7BDV6iMCtHkzTFSOuUWnqGlMUmEF0UZyK4+g9SzLWvc6TMcU5TYwQPQIz/e0s7dZ+xomxx6mVtIzsRQ/A==", + "license": "MIT", "dependencies": { "@rdfjs/types": ">=1.0.0" } @@ -6682,9 +6692,8 @@ }, "node_modules/@types/rdfjs__sink-to-duplex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/rdfjs__sink-to-duplex/-/rdfjs__sink-to-duplex-1.0.0.tgz", - "integrity": "sha512-hUqFFuTbFvNBcBL/gfHG2+RwvV9T6wEcDUOA1rBQLsq/y+CgPygzFRT8AOuS5MSy0nzR4igajYn0wfkEasVZRw==", "dev": true, + "license": "MIT", "dependencies": { "@rdfjs/types": "*", "@types/duplexify": "^3.6.4" @@ -6699,7 +6708,7 @@ } }, "node_modules/@types/rdfjs__term-set": { - "version": "2.0.8", + "version": "2.0.9", "license": "MIT", "peer": true, "dependencies": { @@ -6732,9 +6741,8 @@ }, "node_modules/@types/sax": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", - "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -6746,9 +6754,8 @@ }, "node_modules/@types/shelljs": { "version": "0.8.15", - "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.15.tgz", - "integrity": "sha512-vzmnCHl6hViPu9GNLQJ+DZFd6BQI2DBTUeOvYHqkWQLMfKAAQYMb/xAmZkTogZI/vqXHCWkqDRymDI5p0QTi5Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/glob": "~7.2.0", "@types/node": "*" @@ -6769,9 +6776,8 @@ }, "node_modules/@types/sparql-http-client": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/sparql-http-client/-/sparql-http-client-3.0.0.tgz", - "integrity": "sha512-x8GtTnOVkDXCuLAG45KanqqzHocgsdRN5BNgAxEM3alN+FVh5Y6ISOPyA8sd3NOkOwbD5uwkooueGYFUsaYgiQ==", "dev": true, + "license": "MIT", "dependencies": { "@rdfjs/types": ">=1.0.0", "@types/rdfjs__environment": "*" @@ -6796,8 +6802,7 @@ }, "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==" + "license": "MIT" }, "node_modules/@types/yargs": { "version": "13.0.12", @@ -7050,8 +7055,7 @@ }, "node_modules/@zazuko/env": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@zazuko/env/-/env-2.2.0.tgz", - "integrity": "sha512-73KwqrckawQTmoPAizlkHIRpsqFOaR31LA4XEZUnLM6CbGF/DhmbclfhMtg8GBAiZLIVdgXj6GZAW0lUmA4knQ==", + "license": "MIT", "dependencies": { "@rdfjs/data-model": "^2.0.1", "@rdfjs/dataset": "^2.0.1", @@ -7083,8 +7087,6 @@ }, "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==", "dependencies": { "@rdfjs/environment": "^1.0.0" }, @@ -7094,8 +7096,7 @@ }, "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==", + "license": "MIT", "dependencies": { "@rdfjs/fetch-lite": "^3.2.2", "@rdfjs/formats": "^4.0.0", @@ -7172,8 +7173,7 @@ }, "node_modules/@zazuko/rdf-parser-csvw": { "version": "0.16.4", - "resolved": "https://registry.npmjs.org/@zazuko/rdf-parser-csvw/-/rdf-parser-csvw-0.16.4.tgz", - "integrity": "sha512-z7dN8HpxMRtghXNHvxriDXa3TwVQHHdpwkJ9YM/swfUaTHPsjqkdWjbXkBa+yLq3wxCPSJIdXgw1Nc8PdjEZBw==", + "license": "MIT", "dependencies": { "@rdfjs/data-model": "^2.0.2", "@rdfjs/dataset": "^2.0.2", @@ -7191,8 +7191,7 @@ }, "node_modules/@zazuko/rdf-parser-csvw-xlsx": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@zazuko/rdf-parser-csvw-xlsx/-/rdf-parser-csvw-xlsx-0.2.1.tgz", - "integrity": "sha512-MU4KLzncl9+nyCv6KqAJVkUiL6E5HTs72UySB63jz0jcKh8v5csAMJD5o1btkjeusVuntfw+OTVrPTxwLmp2yA==", + "license": "MIT", "dependencies": { "@zazuko/rdf-parser-csvw": "^0.16.3", "lodash": "^4.17.21", @@ -7202,16 +7201,14 @@ }, "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==", + "license": "Apache-2.0", "engines": { "node": ">=0.8" } }, "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==", + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -7225,8 +7222,7 @@ }, "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==", + "license": "Apache-2.0", "dependencies": { "adler-32": "~1.3.0", "cfb": "~1.2.1", @@ -7245,16 +7241,14 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=18" } }, "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==", + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -9189,9 +9183,8 @@ }, "node_modules/axios": { "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dev": true, + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -9200,9 +9193,8 @@ }, "node_modules/axios/node_modules/form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -9683,9 +9675,8 @@ }, "node_modules/body-parser": { "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -9707,18 +9698,16 @@ }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bowser": { "version": "2.11.0", @@ -9888,9 +9877,8 @@ }, "node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -10588,9 +10576,8 @@ }, "node_modules/content-type": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -10602,9 +10589,8 @@ }, "node_modules/cookie": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11534,8 +11520,7 @@ }, "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==" + "license": "MIT" }, "node_modules/csv-stringify": { "version": "5.6.5", @@ -11840,9 +11825,8 @@ }, "node_modules/docker-compose": { "version": "0.24.7", - "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.7.tgz", - "integrity": "sha512-CdHl9n0S4+bl4i6MaxDQHNjqB1FdvuDirrDTzPKmdiMpheQqCjgsny0GZ2VhvN7qHTY0833lRlKWZgrkn1i6cg==", "dev": true, + "license": "MIT", "dependencies": { "yaml": "^2.2.2" }, @@ -11996,8 +11980,7 @@ }, "node_modules/err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + "license": "MIT" }, "node_modules/error-ex": { "version": "1.3.2", @@ -13156,9 +13139,8 @@ }, "node_modules/express": { "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -13278,8 +13260,7 @@ }, "node_modules/external-merge-sort": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/external-merge-sort/-/external-merge-sort-0.1.4.tgz", - "integrity": "sha512-r7tL6qAE+xe8256PwgJu2WWCLE221U46WZDF7M8JzeKdFemOiqHHKH8Cyb/H6e6r+m5Eay0bqbUNHs1v+1DyMA==", + "license": "MIT", "dependencies": { "heap": "^0.2.7" } @@ -13577,8 +13558,6 @@ }, "node_modules/follow-redirects": { "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { @@ -13586,6 +13565,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -13748,8 +13728,6 @@ }, "node_modules/ftp": { "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==", "dependencies": { "readable-stream": "1.1.x", "xregexp": "2.0.0" @@ -13897,13 +13875,11 @@ }, "node_modules/ftp/node_modules/isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + "license": "MIT" }, "node_modules/ftp/node_modules/readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -13913,8 +13889,7 @@ }, "node_modules/ftp/node_modules/string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + "license": "MIT" }, "node_modules/function-bind": { "version": "1.1.1", @@ -14603,9 +14578,8 @@ }, "node_modules/ip": { "version": "1.1.9", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", - "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ipaddr.js": { "version": "1.9.1", @@ -19924,9 +19898,8 @@ }, "node_modules/joi": { "version": "17.12.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz", - "integrity": "sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.3.0", "@hapi/topo": "^5.1.0", @@ -20893,9 +20866,8 @@ }, "node_modules/media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -21552,8 +21524,7 @@ }, "node_modules/n3": { "version": "1.17.2", - "resolved": "https://registry.npmjs.org/n3/-/n3-1.17.2.tgz", - "integrity": "sha512-BxSM52wYFqXrbQQT5WUEzKUn6qpYV+2L4XZLfn3Gblz2kwZ09S+QxC33WNdVEQy2djenFL8SNkrjejEKlvI6+Q==", + "license": "MIT", "dependencies": { "queue-microtask": "^1.1.2", "readable-stream": "^4.0.0" @@ -22801,8 +22772,7 @@ }, "node_modules/promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "license": "MIT", "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -22871,9 +22841,8 @@ }, "node_modules/proxy-from-env": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pseudomap": { "version": "1.0.2", @@ -22919,9 +22888,8 @@ }, "node_modules/qs": { "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -22990,9 +22958,8 @@ }, "node_modules/raw-body": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -23101,8 +23068,7 @@ }, "node_modules/rdf-transform-triple-to-quad": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/rdf-transform-triple-to-quad/-/rdf-transform-triple-to-quad-2.0.0.tgz", - "integrity": "sha512-7PsiM9akR5cqV73r4JP5sXiie6I0uXvNtdf4PkAPuegywdymg2gjzrLJ4gb9TQjLhsHwHOHZDFQGX4bE9Ji1oQ==", + "license": "MIT", "dependencies": { "@rdfjs/data-model": "^2.0.1", "readable-stream": "3 - 4" @@ -23118,8 +23084,7 @@ }, "node_modules/rdf-validate-shacl": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/rdf-validate-shacl/-/rdf-validate-shacl-0.5.5.tgz", - "integrity": "sha512-oN6LQh7bzdQEkRMPCW332hxkRH9YANJuylcId41mivJar68vjk8Q4yAjAELxwrZsY2FsGWH4r9x5sPGqKMCUPg==", + "license": "MIT", "dependencies": { "@rdfjs/data-model": "^2", "@rdfjs/dataset": "^2", @@ -23494,8 +23459,7 @@ }, "node_modules/retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -24074,9 +24038,8 @@ }, "node_modules/shelljs": { "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -24572,8 +24535,7 @@ }, "node_modules/sparql-http-client": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/sparql-http-client/-/sparql-http-client-3.0.0.tgz", - "integrity": "sha512-apnk5baRm8VzQVWEyl1bxtOMDdf3un5XEnHv/yn8HfRFkyDBPT7KtPI0OW6OzJXBhMce6q9M76fjvm1uxJxiDQ==", + "license": "MIT", "dependencies": { "@bergos/jsonparse": "^1.4.1", "@rdfjs/data-model": "^2.0.2", @@ -24590,18 +24552,15 @@ }, "node_modules/sparql-http-client/node_modules/@rdfjs/to-ntriples": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@rdfjs/to-ntriples/-/to-ntriples-3.0.1.tgz", - "integrity": "sha512-gjoPAvh4j7AbGMjcDn/8R4cW+d/FPtbfbMM0uQXkyfBFtNUW2iVgrqsgJ65roLc54Y9A2TTFaeeTGSvY9a0HCQ==" + "license": "MIT" }, "node_modules/sparql-http-client/node_modules/duplex-to": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/duplex-to/-/duplex-to-2.0.0.tgz", - "integrity": "sha512-f2nMnk11mwDptEFBTv2mcWHpF4ENAbuQ63yTiSy/99rG4Exsxsf0GJhJYq/AHF2cdMYswSx23LPuoijBflpquQ==" + "license": "MIT" }, "node_modules/sparql-http-client/node_modules/readable-stream": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -24753,8 +24712,7 @@ }, "node_modules/ssh2-sftp-client": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/ssh2-sftp-client/-/ssh2-sftp-client-10.0.3.tgz", - "integrity": "sha512-Wlhasz/OCgrlqC8IlBZhF19Uw/X/dHI8ug4sFQybPE+0sDztvgvDf7Om6o7LbRLe68E7XkFZf3qMnqAvqn1vkQ==", + "license": "Apache-2.0", "dependencies": { "concat-stream": "^2.0.0", "promise-retry": "^2.0.1", @@ -24770,11 +24728,10 @@ }, "node_modules/ssh2-sftp-client/node_modules/concat-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "engines": [ "node >= 6.0" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -24784,8 +24741,6 @@ }, "node_modules/ssh2-sftp-client/node_modules/ssh2": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.15.0.tgz", - "integrity": "sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==", "hasInstallScript": true, "dependencies": { "asn1": "^0.2.6", @@ -25922,9 +25877,8 @@ }, "node_modules/type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -25956,9 +25910,8 @@ }, "node_modules/typescript": { "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -25983,8 +25936,7 @@ }, "node_modules/undici": { "version": "5.28.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "license": "MIT", "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -26090,8 +26042,7 @@ }, "node_modules/untildify": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-5.0.0.tgz", - "integrity": "sha512-bOgQLUnd2G5rhzaTvh1VCI9Fo6bC5cLTpH17T5aFfamyXFYDbbdzN6IXdeoc3jBS7T9hNTmJtYUzJCJ2Xlc9gA==", + "license": "MIT", "engines": { "node": ">=16" } @@ -26248,9 +26199,8 @@ }, "node_modules/wait-on": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", "dev": true, + "license": "MIT", "dependencies": { "axios": "^1.6.1", "joi": "^17.11.0", @@ -26808,11 +26758,7 @@ }, "node_modules/xregexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==", - "engines": { - "node": "*" - } + "license": "MIT" }, "node_modules/y18n": { "version": "5.0.8", @@ -26989,9 +26935,8 @@ }, "packages/base/node_modules/@types/readable-stream": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.11.tgz", - "integrity": "sha512-R3eUMUTTKoIoaz7UpYLxvZCrOmCRPRbAmoDDHKcimTEySltaJhF8hLzj4+EzyDifiX5eK6oDQGSfmNnXjxZzYQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "safe-buffer": "~5.1.1" @@ -27137,6 +27082,7 @@ "barnard59": "bin/barnard59.sh" }, "devDependencies": { + "@fig/complete-commander": "^3.0.0", "@rdfjs-elements/formats-pretty": "^0.6.7", "@types/lodash": "^4.14.202", "@types/readable-stream": "^4.0.10", @@ -27156,9 +27102,8 @@ }, "packages/cli/node_modules/@types/readable-stream": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.11.tgz", - "integrity": "sha512-R3eUMUTTKoIoaz7UpYLxvZCrOmCRPRbAmoDDHKcimTEySltaJhF8hLzj4+EzyDifiX5eK6oDQGSfmNnXjxZzYQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "safe-buffer": "~5.1.1" @@ -27307,9 +27252,8 @@ }, "packages/core/node_modules/@types/readable-stream": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.11.tgz", - "integrity": "sha512-R3eUMUTTKoIoaz7UpYLxvZCrOmCRPRbAmoDDHKcimTEySltaJhF8hLzj4+EzyDifiX5eK6oDQGSfmNnXjxZzYQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "safe-buffer": "~5.1.1" @@ -27393,9 +27337,8 @@ }, "packages/cube/node_modules/@rdfjs/to-ntriples": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@rdfjs/to-ntriples/-/to-ntriples-3.0.1.tgz", - "integrity": "sha512-gjoPAvh4j7AbGMjcDn/8R4cW+d/FPtbfbMM0uQXkyfBFtNUW2iVgrqsgJ65roLc54Y9A2TTFaeeTGSvY9a0HCQ==", - "dev": true + "dev": true, + "license": "MIT" }, "packages/env": { "name": "barnard59-env", @@ -27651,15 +27594,13 @@ }, "packages/graph-store/node_modules/@rdfjs/to-ntriples": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@rdfjs/to-ntriples/-/to-ntriples-3.0.1.tgz", - "integrity": "sha512-gjoPAvh4j7AbGMjcDn/8R4cW+d/FPtbfbMM0uQXkyfBFtNUW2iVgrqsgJ65roLc54Y9A2TTFaeeTGSvY9a0HCQ==", - "dev": true + "dev": true, + "license": "MIT" }, "packages/graph-store/node_modules/@types/readable-stream": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.11.tgz", - "integrity": "sha512-R3eUMUTTKoIoaz7UpYLxvZCrOmCRPRbAmoDDHKcimTEySltaJhF8hLzj4+EzyDifiX5eK6oDQGSfmNnXjxZzYQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "safe-buffer": "~5.1.1" @@ -27751,9 +27692,8 @@ }, "packages/rdf/node_modules/@rdfjs/to-ntriples": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@rdfjs/to-ntriples/-/to-ntriples-3.0.1.tgz", - "integrity": "sha512-gjoPAvh4j7AbGMjcDn/8R4cW+d/FPtbfbMM0uQXkyfBFtNUW2iVgrqsgJ65roLc54Y9A2TTFaeeTGSvY9a0HCQ==", - "dev": true + "dev": true, + "license": "MIT" }, "packages/s3": { "name": "barnard59-s3", @@ -27922,8 +27862,7 @@ }, "packages/shacl/node_modules/@rdfjs/to-ntriples": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@rdfjs/to-ntriples/-/to-ntriples-3.0.1.tgz", - "integrity": "sha512-gjoPAvh4j7AbGMjcDn/8R4cW+d/FPtbfbMM0uQXkyfBFtNUW2iVgrqsgJ65roLc54Y9A2TTFaeeTGSvY9a0HCQ==" + "license": "MIT" }, "packages/shacl/node_modules/get-stream": { "version": "8.0.1", diff --git a/packages/cli/.gitignore b/packages/cli/.gitignore new file mode 100644 index 00000000..797cab03 --- /dev/null +++ b/packages/cli/.gitignore @@ -0,0 +1 @@ +fig-spec.ts diff --git a/packages/cli/bin/barnard59.js b/packages/cli/bin/barnard59.js index d6568ab8..0e204b0e 100755 --- a/packages/cli/bin/barnard59.js +++ b/packages/cli/bin/barnard59.js @@ -6,10 +6,8 @@ import { Resource, envDetector, processDetector } from '@opentelemetry/resources import { NodeSDK } from '@opentelemetry/sdk-node' import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions' import { BatchSpanProcessor } from '@opentelemetry/tracing' - import { Command } from 'commander' import * as monitoringOptions from '../lib/cli/monitoringOptions.js' -import { MultipleRootsError } from '../findPipeline.js' const sdk = new NodeSDK({ // Automatic detection is disabled, see comment below @@ -33,10 +31,9 @@ const onError = async err => { process.off('SIGTERM', onError) if (err) { - if (err instanceof MultipleRootsError) { - const alternatives = err.alternatives.map(x => `\n\t--pipeline ${x}`).join('') + if (err.skipTrace) { // eslint-disable-next-line no-console - console.error(`Multiple root pipelines found. Try one of these:${alternatives}`) + console.log(err.message) } else { // eslint-disable-next-line no-console console.error(err) @@ -98,7 +95,8 @@ const onError = async err => { // Dynamically import the rest once the SDK started to ensure // monkey-patching was done properly - const { default: run } = await import('../lib/cli.js') + const { default: cli } = await import('../lib/cli.js') + const { run } = await cli() await run() await sdk.shutdown() })().catch(onError) diff --git a/packages/cli/bin/generate-autocomplete-spec.js b/packages/cli/bin/generate-autocomplete-spec.js new file mode 100644 index 00000000..82069193 --- /dev/null +++ b/packages/cli/bin/generate-autocomplete-spec.js @@ -0,0 +1,8 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { generateCompletionSpec } from '@fig/complete-commander' +import cli from '../lib/cli.js' + +(async () => { + const { program } = await cli() + process.stdout.write(await generateCompletionSpec(program) || '# Failed to generate completion spec\n') +})() diff --git a/packages/cli/lib/cli.js b/packages/cli/lib/cli.js index c096ba83..af2094ad 100644 --- a/packages/cli/lib/cli.js +++ b/packages/cli/lib/cli.js @@ -1,4 +1,6 @@ -import { program } from 'commander' +import { CommanderError, program } from 'commander' +import isInstalledGlobally from 'is-installed-globally' +import { MultipleRootsError } from '../findPipeline.js' import runAction from './cli/runAction.js' import * as monitoringOptions from './cli/monitoringOptions.js' import * as commonOptions from './cli/commonOptions.js' @@ -24,6 +26,7 @@ import { combine } from './cli/options.js' */ program + .name('barnard59') .addOption(commonOptions.variable) .addOption(commonOptions.variableAll) .addOption(commonOptions.verbose) @@ -36,7 +39,7 @@ program const runCommand = program .command('run ') - .option('--output [filename]', 'output file', '-') + .option('--output [filename]', 'Output file', '-') .option('--pipeline [iri]', 'IRI of the pipeline description') .action(async (filename, options) => { const combinedOptions = combine(options) @@ -58,5 +61,34 @@ export default async function () { .addOption(commonOptions.verbose) .addOption(commonOptions.quiet) - await program.parseAsync(process.argv) + return { + program, + async run() { + program.exitOverride() + + try { + await program.parseAsync(process.argv) + } catch (/** @type {any} */ error) { + if (error instanceof CommanderError) { + const { groups } = /unknown command '(?[^']+)'/.exec(error.message) || {} + if (groups && groups.command) { + /* eslint-disable no-console */ + if (isInstalledGlobally) { + console.error(`Try running 'npm install (-g) barnard59-${groups.command}'`) + } + + console.error(`Try running 'npm install barnard59-${groups.command}'`) + } + process.exit(error.exitCode) + } else if (error instanceof MultipleRootsError) { + const alternatives = error.alternatives.map(x => `\n\t--pipeline ${x}`).join('') + // eslint-disable-next-line no-console + console.error(`Multiple root pipelines found. Try one of these:${alternatives}`) + process.exit(1) + } else { + throw error + } + } + }, + } } diff --git a/packages/cli/lib/cli/commonOptions.js b/packages/cli/lib/cli/commonOptions.js index 1cdbf080..0330a159 100644 --- a/packages/cli/lib/cli/commonOptions.js +++ b/packages/cli/lib/cli/commonOptions.js @@ -15,13 +15,13 @@ function setVariable(str, all) { return all.set(key, value) } -export const variable = new Option('--variable ', 'variable key value pairs') +export const variable = new Option('--variable ', 'Variable key/value pairs') .default(new Map()) .argParser(setVariable) export const variableAll = new Option('--variable-all', 'Import all environment variables') -export const verbose = new Option('-v, --verbose', 'enable diagnostic console output') +export const verbose = new Option('-v, --verbose', 'Enable diagnostic console output') .default(0) .argParser((v, total) => ++total) diff --git a/packages/cli/package.json b/packages/cli/package.json index a106a977..416ee90e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -12,7 +12,8 @@ "test": "mocha", "prebuild": "rimraf -g *.d.ts [!node_modules]/**/*.d.ts", "build": "tsc", - "prepack": "npm run build" + "prepack": "npm run build", + "generate-autocomplete-spec": "node --loader ts-node/esm --no-warnings ./bin/generate-autocomplete-spec.js > fig-spec.ts" }, "repository": { "type": "git", @@ -50,6 +51,7 @@ "readable-stream": "^3.6.0" }, "devDependencies": { + "@fig/complete-commander": "^3.1.0", "@rdfjs-elements/formats-pretty": "^0.6.7", "@types/lodash": "^4.14.202", "@types/readable-stream": "^4.0.10",