From 22c476d3ef2d32591fb1d39d3378389627821ef2 Mon Sep 17 00:00:00 2001 From: Jackson Morgan Date: Thu, 26 Dec 2024 17:06:35 -0500 Subject: [PATCH 1/8] untested readme generator --- package-lock.json | 15 +++- packages/cli/.gitignore | 1 + packages/cli/package.json | 8 +- packages/cli/src/build.ts | 93 +++++++++------------ packages/cli/src/create.ts | 36 ++++++++ packages/cli/src/generateReadme.ts | 50 +++++++++++ packages/cli/src/index.ts | 29 ++++++- packages/cli/src/init.ts | 26 +++--- packages/cli/src/templates/readme/main.ejs | 15 ++++ packages/cli/src/templates/readme/shape.ejs | 27 ++++++ packages/cli/src/util/forAllShapes.ts | 26 ++++++ packages/cli/src/util/modifyPackageJson.ts | 25 ++++++ packages/cli/test/.shapes/foafProfile.shex | 2 +- packages/cli/test/package.json | 4 + 14 files changed, 283 insertions(+), 74 deletions(-) create mode 100644 packages/cli/.gitignore create mode 100644 packages/cli/src/create.ts create mode 100644 packages/cli/src/generateReadme.ts create mode 100644 packages/cli/src/templates/readme/main.ejs create mode 100644 packages/cli/src/templates/readme/shape.ejs create mode 100644 packages/cli/src/util/forAllShapes.ts create mode 100644 packages/cli/src/util/modifyPackageJson.ts create mode 100644 packages/cli/test/package.json diff --git a/package-lock.json b/package-lock.json index c788fe4..7775f6a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28647,7 +28647,8 @@ "ejs": "^3.1.8", "fs-extra": "^10.1.0", "loading-cli": "^1.1.0", - "prettier": "^3.0.3" + "prettier": "^3.0.3", + "type-fest": "^4.31.0" }, "bin": { "ldo": "dist/index.js" @@ -28726,6 +28727,18 @@ } } }, + "packages/cli/node_modules/type-fest": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.31.0.tgz", + "integrity": "sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "packages/cli/node_modules/typescript": { "version": "4.9.5", "dev": true, diff --git a/packages/cli/.gitignore b/packages/cli/.gitignore new file mode 100644 index 0000000..7d05a05 --- /dev/null +++ b/packages/cli/.gitignore @@ -0,0 +1 @@ +test/.ldo \ No newline at end of file diff --git a/packages/cli/package.json b/packages/cli/package.json index 80759b4..1c7d33f 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -14,13 +14,14 @@ "build:ts": "tsc --project tsconfig.build.json", "clean": "rimraf dist/", "copy-files": "copyfiles -u 1 \"./src/**/*.ejs\" dist/", - "update-permission": "chmod +x ../../node_modules/.bin/ldo", + "update-permission": "chmod +x ./dist/index.js", "watch": "tsc --watch", "test": "jest --coverage", "test:watch": "jest --watch", "prepublishOnly": "npm run test && npm run build", "lint": "eslint src/** --fix --no-error-on-unmatched-pattern", - "build:ldo": "./dist/index.js build --input test/.shapes --output test/.ldo" + "build:ldo": "./dist/index.js build --input test/.shapes --output test/.ldo", + "generate-readme": "./dist/index.js generate-readme --project ./test --shapes ./test/.shapes/ --ldo ./test/.ldo/" }, "repository": { "type": "git", @@ -51,7 +52,8 @@ "ejs": "^3.1.8", "fs-extra": "^10.1.0", "loading-cli": "^1.1.0", - "prettier": "^3.0.3" + "prettier": "^3.0.3", + "type-fest": "^4.31.0" }, "files": [ "dist", diff --git a/packages/cli/src/build.ts b/packages/cli/src/build.ts index 0aebb7f..ab81b6e 100644 --- a/packages/cli/src/build.ts +++ b/packages/cli/src/build.ts @@ -6,6 +6,7 @@ import schemaConverterShex from "@ldo/schema-converter-shex"; import { renderFile } from "ejs"; import prettier from "prettier"; import loading from "loading-cli"; +import { forAllShapes } from "./util/forAllShapes"; interface BuildOptions { input: string; @@ -15,13 +16,6 @@ interface BuildOptions { export async function build(options: BuildOptions) { const load = loading("Peparing Environment"); load.start(); - const shapeDir = await fs.promises.readdir(options.input, { - withFileTypes: true, - }); - // Filter out non-shex documents - const shexFiles = shapeDir.filter( - (file) => file.isFile() && file.name.endsWith(".shex"), - ); // Prepare new folder by clearing/and/or creating it if (fs.existsSync(options.output)) { await fs.promises.rm(options.output, { recursive: true }); @@ -29,51 +23,44 @@ export async function build(options: BuildOptions) { await fs.promises.mkdir(options.output); load.text = "Generating LDO Documents"; - await Promise.all( - shexFiles.map(async (file) => { - const fileName = path.parse(file.name).name; - // Get the content of each document - const shexC = await fs.promises.readFile( - path.join(options.input, file.name), - "utf8", - ); - // Convert to ShexJ - let schema: Schema; - try { - schema = parser.construct("https://ldo.js.org/").parse(shexC); - } catch (err) { - const errMessage = - err instanceof Error - ? err.message - : typeof err === "string" - ? err - : "Unknown Error"; - console.error(`Error processing ${file.name}: ${errMessage}`); - return; - } - // Convert the content to types - const [typings, context] = await schemaConverterShex(schema); - await Promise.all( - ["context", "schema", "shapeTypes", "typings"].map( - async (templateName) => { - const finalContent = await renderFile( - path.join(__dirname, "./templates", `${templateName}.ejs`), - { - typings: typings.typings, - fileName, - schema: JSON.stringify(schema, null, 2), - context: JSON.stringify(context, null, 2), - }, - ); - // Save conversion to document - await fs.promises.writeFile( - path.join(options.output, `${fileName}.${templateName}.ts`), - await prettier.format(finalContent, { parser: "typescript" }), - ); - }, - ), - ); - }), - ); + await forAllShapes(options.input, async (fileName, shexC) => { + // Convert to ShexJ + let schema: Schema; + try { + schema = parser.construct("https://ldo.js.org/").parse(shexC); + } catch (err) { + const errMessage = + err instanceof Error + ? err.message + : typeof err === "string" + ? err + : "Unknown Error"; + console.error(`Error processing ${fileName}: ${errMessage}`); + return; + } + // Convert the content to types + const [typings, context] = await schemaConverterShex(schema); + await Promise.all( + ["context", "schema", "shapeTypes", "typings"].map( + async (templateName) => { + const finalContent = await renderFile( + path.join(__dirname, "./templates", `${templateName}.ejs`), + { + typings: typings.typings, + fileName, + schema: JSON.stringify(schema, null, 2), + context: JSON.stringify(context, null, 2), + }, + ); + // Save conversion to document + await fs.promises.writeFile( + path.join(options.output, `${fileName}.${templateName}.ts`), + await prettier.format(finalContent, { parser: "typescript" }), + ); + }, + ), + ); + }); + load.stop(); } diff --git a/packages/cli/src/create.ts b/packages/cli/src/create.ts new file mode 100644 index 0000000..b37ec60 --- /dev/null +++ b/packages/cli/src/create.ts @@ -0,0 +1,36 @@ +import { exec } from "child-process-promise"; +import { init } from "./init"; +import { modifyPackageJson } from "./util/modifyPackageJson"; +import { generateReadme } from "./generateReadme"; +import path from "path"; + +interface CreateOptions { + directory: string; + name: string; +} + +export async function create(options: CreateOptions) { + // Init the NPM Package + await exec(`npm init ${options.directory}`); + + // Init LDO + await init({ directory: options.directory }); + + // Add prepublish script + await modifyPackageJson(async (packageJson) => { + if (!packageJson.scripts) packageJson.scripts = {}; + packageJson.scripts.prepublish = + "npm run build:ldo & npm run generate-readme"; + packageJson.scripts[ + "genenerate-readme" + ] = `ldo generate-readme --readme ./README.md --shapes ./.shapes --ldo ./ldo`; + return packageJson; + }); + + // Generate ReadMe + await generateReadme({ + readmePath: path.join(options.directory, "README.md"), + shapesPath: path.join(options.directory, ".shapes"), + ldoPath: path.join(options.directory, ".ldo"), + }); +} diff --git a/packages/cli/src/generateReadme.ts b/packages/cli/src/generateReadme.ts new file mode 100644 index 0000000..0b4f885 --- /dev/null +++ b/packages/cli/src/generateReadme.ts @@ -0,0 +1,50 @@ +import { getPackageJson } from "./util/modifyPackageJson"; +import { forAllShapes } from "./util/forAllShapes"; +import { promises as fs } from "fs"; +import path from "path"; + +interface GenerateReadmeOptions { + projectFolder: string; + shapesPath: string; + ldoPath: string; +} + +interface ReadmeEjsOptions { + projectName: string; + projectDescription: string; + shapes: { + name: string; + types: { + typeName: string; + shapeTypeName: string; + }[]; + shex: string; + typescript: string; + }[]; +} + +export async function generateReadme(options: GenerateReadmeOptions) { + const packageJson = await getPackageJson(options.projectFolder); + const projectName = packageJson.name; + const projectDescription = packageJson.description; + const shapes: ReadmeEjsOptions["shapes"] = []; + + await forAllShapes(options.shapesPath, async (fileName, shexC) => { + const typesRaw = await fs.readFile( + path.join(options.shapesPath, `${fileName}.typings.ts`), + "utf8", + ); + const shapeTypesRaw = await fs.readFile( + path.join(options.shapesPath, `${fileName}.shapeTypes.ts`), + "utf8", + ); + + console.log(typesRaw); + console.log(shapeTypesRaw); + + // shapes.push({ + // name: fileName, + // shex: shexC, + // }); + }); +} diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index c7eb26b..fc12bb6 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -3,6 +3,7 @@ import { program } from "commander"; import { build } from "./build"; import { init } from "./init"; +import { create } from "./create"; program .name("LDO-CLI") @@ -18,8 +19,34 @@ program program .command("init") - .option("-d --directory>", "A parent directory for ldo files") + .argument("[directory]", "A parent directory for ldo files") .description("Initializes a project for LDO.") .action(init); +program + .command("create") + .argument("", "The package's directory", "./") + .description("Creates a standalone package for shapes to publish to NPM.") + .action(create); + +program + .command("generate-readme") + .description("Create a ReadMe from the shapes and generated code.") + .requiredOption( + "-r, --readme ", + "Provide the path to the readme", + "./.shapes", + ) + .requiredOption( + "-s, --shapes ", + "Provide the path to the shapes folder", + "./.shapes", + ) + .requiredOption( + "-s, --ldo ", + "Provide the path to the ldo folder", + "./.ldo", + ) + .action(build); + program.parse(); diff --git a/packages/cli/src/init.ts b/packages/cli/src/init.ts index d1ffb91..ddafd50 100644 --- a/packages/cli/src/init.ts +++ b/packages/cli/src/init.ts @@ -2,6 +2,7 @@ import { exec } from "child-process-promise"; import fs from "fs-extra"; import path from "path"; import { renderFile } from "ejs"; +import { modifyPackageJson } from "./util/modifyPackageJson"; const DEFAULT_SHAPES_FOLDER = "./.shapes"; const DEFAULT_LDO_FOLDER = "./.ldo"; @@ -57,21 +58,16 @@ export async function init(initOptions: InitOptions) { ); // Add build script - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const packageJson: any = JSON.parse( - (await fs.promises.readFile("./package.json")).toString(), - ); - if (!packageJson.scripts) { - packageJson.scripts = {}; - } - const ldoFolder = path.join(parentDirectory, DEFAULT_LDO_FOLDER); - packageJson.scripts[ - "build:ldo" - ] = `ldo build --input ${shapesFolderPath} --output ${ldoFolder}`; - await fs.promises.writeFile( - "./package.json", - JSON.stringify(packageJson, null, 2), - ); + await modifyPackageJson("./", async (packageJson) => { + if (!packageJson.scripts) { + packageJson.scripts = {}; + } + const ldoFolder = path.join(parentDirectory, DEFAULT_LDO_FOLDER); + packageJson.scripts[ + "build:ldo" + ] = `ldo build --input ${shapesFolderPath} --output ${ldoFolder}`; + return packageJson; + }); // Build LDO await exec("npm run build:ldo"); diff --git a/packages/cli/src/templates/readme/main.ejs b/packages/cli/src/templates/readme/main.ejs new file mode 100644 index 0000000..8c63de6 --- /dev/null +++ b/packages/cli/src/templates/readme/main.ejs @@ -0,0 +1,15 @@ +# <%= projectname %> + +<%= projectDescrition %> + +This project includes shapes and generated files for [LDO](https://ldo.js.org). + +## Installation + +```bash +npm i <%= projectname %> +``` + +<% shapes.forEach(function(shape) { %> + <%- include('shape', { shape: shape, projectname: projectname }) %> +<% }); %> \ No newline at end of file diff --git a/packages/cli/src/templates/readme/shape.ejs b/packages/cli/src/templates/readme/shape.ejs new file mode 100644 index 0000000..38b694d --- /dev/null +++ b/packages/cli/src/templates/readme/shape.ejs @@ -0,0 +1,27 @@ +## <%= shape.name %> + +### Usage with LDO + +```typescript +import { createLdoDataset } from "@ldo/ldo"; +import { <%= shape.types.map((type) => type.shapeTypeName).join(", ") %> } from "<%= projectName =>"; +import type { <%= shape.types.map((type) => type.typeName).join(", ") %> } from "<%= projectName =>"; +const ldoDataset = createLdoDataset(); +<% shape.types.forEach(function(type, index) { %> +const example<%= index %>: <%= type.typeName %> = ldoDataset + .usingType(<%= type.shapeTypeName %>) + .fromSubject("http://example.com/example<%= index %>"); +<%> }); <%> +``` + +### ShEx Typings + +```shex +<%= shape.shex %> +``` + +### TypeScript Typings + +```typescript +<%= shape.typescript %> +``` diff --git a/packages/cli/src/util/forAllShapes.ts b/packages/cli/src/util/forAllShapes.ts new file mode 100644 index 0000000..7897b35 --- /dev/null +++ b/packages/cli/src/util/forAllShapes.ts @@ -0,0 +1,26 @@ +import fs from "fs"; +import path from "path"; + +export async function forAllShapes( + shapePath: string, + callback: (filename: string, shape: string) => Promise, +): Promise { + const shapeDir = await fs.promises.readdir(shapePath, { + withFileTypes: true, + }); + // Filter out non-shex documents + const shexFiles = shapeDir.filter( + (file) => file.isFile() && file.name.endsWith(".shex"), + ); + await Promise.all( + shexFiles.map(async (file) => { + const fileName = path.parse(file.name).name; + // Get the content of each document + const shexC = await fs.promises.readFile( + path.join(shapePath, file.name), + "utf8", + ); + await callback(fileName, shexC); + }), + ); +} diff --git a/packages/cli/src/util/modifyPackageJson.ts b/packages/cli/src/util/modifyPackageJson.ts new file mode 100644 index 0000000..54adab4 --- /dev/null +++ b/packages/cli/src/util/modifyPackageJson.ts @@ -0,0 +1,25 @@ +import type { PackageJson } from "type-fest"; +import fs from "fs-extra"; +import path from "path"; + +export async function getPackageJson( + projectFolder: string, +): Promise { + return JSON.parse( + ( + await fs.promises.readFile(path.join(projectFolder, "./package.json")) + ).toString(), + ); +} + +export async function modifyPackageJson( + projectFolder: string, + modifyCallback: (packageJson: PackageJson) => Promise, +): Promise { + const packageJson: PackageJson = await getPackageJson(projectFolder); + const newPackageJson = await modifyCallback(packageJson); + await fs.promises.writeFile( + path.join(projectFolder, "./package.json"), + JSON.stringify(newPackageJson, null, 2), + ); +} diff --git a/packages/cli/test/.shapes/foafProfile.shex b/packages/cli/test/.shapes/foafProfile.shex index 95c472b..dff09d1 100644 --- a/packages/cli/test/.shapes/foafProfile.shex +++ b/packages/cli/test/.shapes/foafProfile.shex @@ -13,7 +13,7 @@ ex:FoafProfile EXTRA a { foaf:name xsd:string ? // rdfs:comment "Define a person's name." ; foaf:img xsd:string ? - // rdfs:comment "Photo link but in string form" + // rdfs:comment "Photo link but in string form" ; foaf:knows @ex:FoafProfile * // rdfs:comment "A list of WebIds for all the people this user knows." ; } diff --git a/packages/cli/test/package.json b/packages/cli/test/package.json new file mode 100644 index 0000000..554a6ba --- /dev/null +++ b/packages/cli/test/package.json @@ -0,0 +1,4 @@ +{ + "name": "foaf-profile", + "description": "A profile using FOAF." +} \ No newline at end of file From 2a66bec94b539bf5c7fe9511e6aaa9af7c4ed302 Mon Sep 17 00:00:00 2001 From: Jackson Morgan Date: Thu, 26 Dec 2024 21:09:49 -0500 Subject: [PATCH 2/8] Untested changes --- package-lock.json | 113 +++++++++++++++++++- packages/cli/package.json | 7 +- packages/cli/src/create.ts | 89 ++++++++++++--- packages/cli/src/generateReadme.ts | 75 +++++++++---- packages/cli/src/init.ts | 2 +- packages/cli/src/templates/readme/main.ejs | 8 +- packages/cli/src/templates/readme/shape.ejs | 4 +- packages/cli/src/util/modifyPackageJson.ts | 15 ++- 8 files changed, 258 insertions(+), 55 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7775f6a..3a76126 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8093,6 +8093,32 @@ "@ts-jison/lexer": "^0.4.1-alpha.1" } }, + "node_modules/@ts-morph/common": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.25.0.tgz", + "integrity": "sha512-kMnZz+vGGHi4GoHnLmMhGNjm44kGtKUXGnOvrKmMwAuvNjM/PgKVGfUnL7IDvK7Jb2QQ82jq3Zmp04Gy+r3Dkg==", + "license": "MIT", + "dependencies": { + "minimatch": "^9.0.4", + "path-browserify": "^1.0.1", + "tinyglobby": "^0.2.9" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.9", "devOptional": true, @@ -8569,6 +8595,17 @@ "version": "2.7.3", "license": "MIT" }, + "node_modules/@types/prompts": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.9.tgz", + "integrity": "sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "kleur": "^3.0.3" + } + }, "node_modules/@types/prop-types": { "version": "15.7.11", "dev": true, @@ -11031,6 +11068,12 @@ "node": ">=4" } }, + "node_modules/code-block-writer": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", + "license": "MIT" + }, "node_modules/codepage": { "version": "1.15.0", "dev": true, @@ -21261,6 +21304,12 @@ "tslib": "^2.0.3" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, "node_modules/path-exists": { "version": "4.0.0", "license": "MIT", @@ -22759,6 +22808,8 @@ }, "node_modules/prompts": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "license": "MIT", "dependencies": { "kleur": "^3.0.3", @@ -26605,6 +26656,45 @@ "dev": true, "license": "MIT" }, + "node_modules/tinyglobby": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz", + "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==", + "license": "MIT", + "dependencies": { + "fdir": "^6.4.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/tmp": { "version": "0.2.1", "dev": true, @@ -26713,6 +26803,16 @@ "version": "0.1.13", "license": "Apache-2.0" }, + "node_modules/ts-morph": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-24.0.0.tgz", + "integrity": "sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==", + "license": "MIT", + "dependencies": { + "@ts-morph/common": "~0.25.0", + "code-block-writer": "^13.0.3" + } + }, "node_modules/ts-node": { "version": "10.9.2", "devOptional": true, @@ -28648,7 +28748,9 @@ "fs-extra": "^10.1.0", "loading-cli": "^1.1.0", "prettier": "^3.0.3", - "type-fest": "^4.31.0" + "prompts": "^2.4.2", + "ts-morph": "^24.0.0", + "type-fest": "^2.19.0" }, "bin": { "ldo": "dist/index.js" @@ -28658,6 +28760,7 @@ "@types/ejs": "^3.1.1", "@types/fs-extra": "^9.0.13", "@types/jest": "^27.0.3", + "@types/prompts": "^2.4.9", "@types/shexj": "2.1.4", "copyfiles": "^2.4.1", "jest": "^27.4.2", @@ -28728,12 +28831,12 @@ } }, "packages/cli/node_modules/type-fest": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.31.0.tgz", - "integrity": "sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=16" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" diff --git a/packages/cli/package.json b/packages/cli/package.json index 1c7d33f..4f59999 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -21,7 +21,7 @@ "prepublishOnly": "npm run test && npm run build", "lint": "eslint src/** --fix --no-error-on-unmatched-pattern", "build:ldo": "./dist/index.js build --input test/.shapes --output test/.ldo", - "generate-readme": "./dist/index.js generate-readme --project ./test --shapes ./test/.shapes/ --ldo ./test/.ldo/" + "generate-readme": "./dist/index.js generate-readme --project ./test --shapes ./test/.shapes/ --ldo ./test/.ldo/" }, "repository": { "type": "git", @@ -38,6 +38,7 @@ "@types/ejs": "^3.1.1", "@types/fs-extra": "^9.0.13", "@types/jest": "^27.0.3", + "@types/prompts": "^2.4.9", "@types/shexj": "2.1.4", "copyfiles": "^2.4.1", "jest": "^27.4.2", @@ -53,7 +54,9 @@ "fs-extra": "^10.1.0", "loading-cli": "^1.1.0", "prettier": "^3.0.3", - "type-fest": "^4.31.0" + "prompts": "^2.4.2", + "ts-morph": "^24.0.0", + "type-fest": "^2.19.0" }, "files": [ "dist", diff --git a/packages/cli/src/create.ts b/packages/cli/src/create.ts index b37ec60..4f3d1ff 100644 --- a/packages/cli/src/create.ts +++ b/packages/cli/src/create.ts @@ -1,23 +1,84 @@ -import { exec } from "child-process-promise"; import { init } from "./init"; -import { modifyPackageJson } from "./util/modifyPackageJson"; +import { modifyPackageJson, savePackageJson } from "./util/modifyPackageJson"; import { generateReadme } from "./generateReadme"; import path from "path"; +import prompts from "prompts"; +import type { PackageJson } from "type-fest"; -interface CreateOptions { - directory: string; - name: string; -} - -export async function create(options: CreateOptions) { +export async function create(directory: string) { // Init the NPM Package - await exec(`npm init ${options.directory}`); + const responses = await prompts([ + { + type: "text", + name: "name", + message: "Package name:", + initial: path.basename(process.cwd()), + }, + { + type: "text", + name: "version", + message: "Version:", + initial: "1.0.0", + }, + { + type: "text", + name: "description", + message: "Description:", + }, + { + type: "list", + name: "keywords", + message: "Keywords (comma separated):", + separator: ",", + }, + { + type: "text", + name: "author", + message: "Author:", + }, + { + type: "text", + name: "license", + message: "License:", + initial: "MIT", + }, + { + type: "text", + name: "repository", + message: "Git repository (optional):", + }, + ]); + + const packageJson: PackageJson = { + name: responses.name, + version: responses.version, + description: responses.description, + keywords: responses.keywords, + author: responses.author, + license: responses.license, + }; + + if (responses.repository) { + packageJson.repository = { + type: "git", + url: responses.repository, + }; + packageJson.bugs = { + url: `${responses.repository.replace(/\.git$/, "")}/issues`, + }; + packageJson.homepage = `${responses.repository.replace( + /\.git$/, + "", + )}#readme`; + } + + await savePackageJson(directory, packageJson); // Init LDO - await init({ directory: options.directory }); + await init({ directory }); // Add prepublish script - await modifyPackageJson(async (packageJson) => { + await modifyPackageJson(directory, async (packageJson) => { if (!packageJson.scripts) packageJson.scripts = {}; packageJson.scripts.prepublish = "npm run build:ldo & npm run generate-readme"; @@ -29,8 +90,8 @@ export async function create(options: CreateOptions) { // Generate ReadMe await generateReadme({ - readmePath: path.join(options.directory, "README.md"), - shapesPath: path.join(options.directory, ".shapes"), - ldoPath: path.join(options.directory, ".ldo"), + project: directory, + shapes: path.join(directory, ".shapes"), + ldo: path.join(directory, ".ldo"), }); } diff --git a/packages/cli/src/generateReadme.ts b/packages/cli/src/generateReadme.ts index 0b4f885..bbf9670 100644 --- a/packages/cli/src/generateReadme.ts +++ b/packages/cli/src/generateReadme.ts @@ -2,11 +2,13 @@ import { getPackageJson } from "./util/modifyPackageJson"; import { forAllShapes } from "./util/forAllShapes"; import { promises as fs } from "fs"; import path from "path"; +import { Project } from "ts-morph"; +import { renderFile } from "ejs"; interface GenerateReadmeOptions { - projectFolder: string; - shapesPath: string; - ldoPath: string; + project: string; + shapes: string; + ldo: string; } interface ReadmeEjsOptions { @@ -24,27 +26,54 @@ interface ReadmeEjsOptions { } export async function generateReadme(options: GenerateReadmeOptions) { - const packageJson = await getPackageJson(options.projectFolder); - const projectName = packageJson.name; - const projectDescription = packageJson.description; + const packageJson = await getPackageJson(options.project); + const projectName = packageJson.name!; + const projectDescription = packageJson.description!; const shapes: ReadmeEjsOptions["shapes"] = []; - await forAllShapes(options.shapesPath, async (fileName, shexC) => { - const typesRaw = await fs.readFile( - path.join(options.shapesPath, `${fileName}.typings.ts`), - "utf8", - ); - const shapeTypesRaw = await fs.readFile( - path.join(options.shapesPath, `${fileName}.shapeTypes.ts`), - "utf8", - ); - - console.log(typesRaw); - console.log(shapeTypesRaw); - - // shapes.push({ - // name: fileName, - // shex: shexC, - // }); + await forAllShapes(options.shapes, async (fileName, shexC) => { + const typeFilePath = path.join(options.shapes, `${fileName}.typings.ts`); + + const typesRaw = await fs.readFile(typeFilePath, "utf8"); + + const shape: ReadmeEjsOptions["shapes"][0] = { + name: fileName, + shex: shexC, + typescript: typesRaw, + types: [], + }; + + listInterfaces(typeFilePath).forEach((interfaceName) => { + shape.types.push({ + typeName: interfaceName, + shapeTypeName: `${interfaceName}ShapeType`, + }); + }); }); + + const readmeEjsOptions: ReadmeEjsOptions = { + projectName, + projectDescription, + shapes, + }; + + // Save Readme + const finalContent = await renderFile( + path.join(__dirname, "./templates/readme/", "main.ejs"), + readmeEjsOptions, + ); + // Save readme to document + await fs.writeFile(path.join(options.project, "README.md"), finalContent); +} + +/** + * Helper Function that lists all the interfaces in a typescript file + */ +function listInterfaces(filePath: string): string[] { + const project = new Project(); + const sourceFile = project.addSourceFileAtPath(filePath); + + // Get all interfaces in the file + const interfaces = sourceFile.getInterfaces().map((iface) => iface.getName()); + return interfaces; } diff --git a/packages/cli/src/init.ts b/packages/cli/src/init.ts index ddafd50..c031381 100644 --- a/packages/cli/src/init.ts +++ b/packages/cli/src/init.ts @@ -58,7 +58,7 @@ export async function init(initOptions: InitOptions) { ); // Add build script - await modifyPackageJson("./", async (packageJson) => { + await modifyPackageJson(parentDirectory, async (packageJson) => { if (!packageJson.scripts) { packageJson.scripts = {}; } diff --git a/packages/cli/src/templates/readme/main.ejs b/packages/cli/src/templates/readme/main.ejs index 8c63de6..1ce6681 100644 --- a/packages/cli/src/templates/readme/main.ejs +++ b/packages/cli/src/templates/readme/main.ejs @@ -1,15 +1,15 @@ -# <%= projectname %> +# <%= projectName %> -<%= projectDescrition %> +<%- projectDescription %> This project includes shapes and generated files for [LDO](https://ldo.js.org). ## Installation ```bash -npm i <%= projectname %> +npm i <%= projectName %> ``` <% shapes.forEach(function(shape) { %> - <%- include('shape', { shape: shape, projectname: projectname }) %> +<%- include('shape', { shape: shape, projectName: projectName }) %> <% }); %> \ No newline at end of file diff --git a/packages/cli/src/templates/readme/shape.ejs b/packages/cli/src/templates/readme/shape.ejs index 38b694d..58f5f0a 100644 --- a/packages/cli/src/templates/readme/shape.ejs +++ b/packages/cli/src/templates/readme/shape.ejs @@ -4,8 +4,8 @@ ```typescript import { createLdoDataset } from "@ldo/ldo"; -import { <%= shape.types.map((type) => type.shapeTypeName).join(", ") %> } from "<%= projectName =>"; -import type { <%= shape.types.map((type) => type.typeName).join(", ") %> } from "<%= projectName =>"; +import { <%= shape.types.map((type) => type.shapeTypeName).join(", ") %> } from "<%= projectName %>"; +import type { <%= shape.types.map((type) => type.typeName).join(", ") %> } from "<%= projectName %>"; const ldoDataset = createLdoDataset(); <% shape.types.forEach(function(type, index) { %> const example<%= index %>: <%= type.typeName %> = ldoDataset diff --git a/packages/cli/src/util/modifyPackageJson.ts b/packages/cli/src/util/modifyPackageJson.ts index 54adab4..9854a7e 100644 --- a/packages/cli/src/util/modifyPackageJson.ts +++ b/packages/cli/src/util/modifyPackageJson.ts @@ -12,14 +12,21 @@ export async function getPackageJson( ); } +export async function savePackageJson( + projectFolder: string, + packageJson: PackageJson, +): Promise { + await fs.promises.writeFile( + path.join(projectFolder, "./package.json"), + JSON.stringify(packageJson, null, 2), + ); +} + export async function modifyPackageJson( projectFolder: string, modifyCallback: (packageJson: PackageJson) => Promise, ): Promise { const packageJson: PackageJson = await getPackageJson(projectFolder); const newPackageJson = await modifyCallback(packageJson); - await fs.promises.writeFile( - path.join(projectFolder, "./package.json"), - JSON.stringify(newPackageJson, null, 2), - ); + await savePackageJson(projectFolder, newPackageJson); } From da76d7a93ed59a6444cbbb1c25fa0f7ef73cf4db Mon Sep 17 00:00:00 2001 From: Jackson Morgan Date: Thu, 26 Dec 2024 21:12:22 -0500 Subject: [PATCH 3/8] Wrote test scripts --- packages/cli/.gitignore | 3 ++- packages/cli/package.json | 9 ++------- packages/cli/test/.shapes/foafProfile.shex | 19 ------------------- packages/cli/test/package.json | 4 ---- packages/cli/test/placeholder.test.ts | 3 --- 5 files changed, 4 insertions(+), 34 deletions(-) delete mode 100644 packages/cli/test/.shapes/foafProfile.shex delete mode 100644 packages/cli/test/package.json delete mode 100644 packages/cli/test/placeholder.test.ts diff --git a/packages/cli/.gitignore b/packages/cli/.gitignore index 7d05a05..433f129 100644 --- a/packages/cli/.gitignore +++ b/packages/cli/.gitignore @@ -1 +1,2 @@ -test/.ldo \ No newline at end of file +./example-create +./example-init \ No newline at end of file diff --git a/packages/cli/package.json b/packages/cli/package.json index 4f59999..a9547c0 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -7,21 +7,16 @@ "ldo": "./dist/index.js" }, "scripts": { - "start": "node dist/index.js build", - "start:init": "node dist/index.js init", - "dev": "npm run build && npm run start:init", "build": "npm run clean && npm run build:ts && npm run copy-files", "build:ts": "tsc --project tsconfig.build.json", "clean": "rimraf dist/", "copy-files": "copyfiles -u 1 \"./src/**/*.ejs\" dist/", "update-permission": "chmod +x ./dist/index.js", - "watch": "tsc --watch", "test": "jest --coverage", - "test:watch": "jest --watch", "prepublishOnly": "npm run test && npm run build", "lint": "eslint src/** --fix --no-error-on-unmatched-pattern", - "build:ldo": "./dist/index.js build --input test/.shapes --output test/.ldo", - "generate-readme": "./dist/index.js generate-readme --project ./test --shapes ./test/.shapes/ --ldo ./test/.ldo/" + "test:init": "rm -rf ./example-init && mkdir ./example-init && cd ./example-init && ../dist/index.js init", + "test:create": "rm -rf ./example-create && ./dist/index.js create ./example-create" }, "repository": { "type": "git", diff --git a/packages/cli/test/.shapes/foafProfile.shex b/packages/cli/test/.shapes/foafProfile.shex deleted file mode 100644 index dff09d1..0000000 --- a/packages/cli/test/.shapes/foafProfile.shex +++ /dev/null @@ -1,19 +0,0 @@ -# This shape is provided by default as an example -# You can create your own shape to fit your needs using ShEx (https://shex.io) -# Also check out https://shaperepo.com for examples of more shapes. - -PREFIX ex: -PREFIX foaf: -PREFIX rdfs: -PREFIX xsd: - -ex:FoafProfile EXTRA a { - a [ foaf:Person ] - // rdfs:comment "Defines the node as a Person (from foaf)" ; - foaf:name xsd:string ? - // rdfs:comment "Define a person's name." ; - foaf:img xsd:string ? - // rdfs:comment "Photo link but in string form" ; - foaf:knows @ex:FoafProfile * - // rdfs:comment "A list of WebIds for all the people this user knows." ; -} diff --git a/packages/cli/test/package.json b/packages/cli/test/package.json deleted file mode 100644 index 554a6ba..0000000 --- a/packages/cli/test/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "foaf-profile", - "description": "A profile using FOAF." -} \ No newline at end of file diff --git a/packages/cli/test/placeholder.test.ts b/packages/cli/test/placeholder.test.ts deleted file mode 100644 index 4cc4fd7..0000000 --- a/packages/cli/test/placeholder.test.ts +++ /dev/null @@ -1,3 +0,0 @@ -it("placeholder", () => { - expect(true).toBe(true); -}); From d284b5d56a3a890c65e156cc2d47bfb5afe595e8 Mon Sep 17 00:00:00 2001 From: Jackson Morgan Date: Thu, 26 Dec 2024 21:27:21 -0500 Subject: [PATCH 4/8] Before accidentally deleting everything with a script --- packages/cli/package.json | 2 +- packages/cli/src/index.ts | 2 +- packages/cli/src/init.ts | 10 +++++++--- packages/cli/src/util/modifyPackageJson.ts | 1 + 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index a9547c0..3165265 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -7,7 +7,7 @@ "ldo": "./dist/index.js" }, "scripts": { - "build": "npm run clean && npm run build:ts && npm run copy-files", + "build": "npm run clean && npm run build:ts && npm run copy-files && npm run update-permission", "build:ts": "tsc --project tsconfig.build.json", "clean": "rimraf dist/", "copy-files": "copyfiles -u 1 \"./src/**/*.ejs\" dist/", diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index fc12bb6..31e96ae 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -25,7 +25,7 @@ program program .command("create") - .argument("", "The package's directory", "./") + .argument("", "The package's directory") .description("Creates a standalone package for shapes to publish to NPM.") .action(create); diff --git a/packages/cli/src/init.ts b/packages/cli/src/init.ts index c031381..71ac14b 100644 --- a/packages/cli/src/init.ts +++ b/packages/cli/src/init.ts @@ -13,12 +13,15 @@ export interface InitOptions { } export async function init(initOptions: InitOptions) { + console.log("In init"); // Install dependencies - await exec("npm install @ldo/ldo --save"); - await exec("npm install @ldo/cli @types/shexj @types/jsonld --save-dev"); + await exec(`cd ${initOptions.directory} && npm install @ldo/ldo --save`); + await exec( + `cd ${initOptions.directory} && npm install @ldo/cli @types/shexj @types/jsonld --save-dev`, + ); // Find folder to save to - let parentDirectory = initOptions.directory; + let parentDirectory = initOptions.directory!; if (!parentDirectory) { parentDirectory = "./"; const allDirectories = ( @@ -57,6 +60,7 @@ export async function init(initOptions: InitOptions) { }), ); + console.log("here"); // Add build script await modifyPackageJson(parentDirectory, async (packageJson) => { if (!packageJson.scripts) { diff --git a/packages/cli/src/util/modifyPackageJson.ts b/packages/cli/src/util/modifyPackageJson.ts index 9854a7e..2bc0d54 100644 --- a/packages/cli/src/util/modifyPackageJson.ts +++ b/packages/cli/src/util/modifyPackageJson.ts @@ -16,6 +16,7 @@ export async function savePackageJson( projectFolder: string, packageJson: PackageJson, ): Promise { + await fs.promises.mkdir(projectFolder, { recursive: true }); await fs.promises.writeFile( path.join(projectFolder, "./package.json"), JSON.stringify(packageJson, null, 2), From f0c9b2b19c6c699b1d31c7ca978e0756caf844ab Mon Sep 17 00:00:00 2001 From: Jackson Morgan Date: Thu, 26 Dec 2024 21:35:21 -0500 Subject: [PATCH 5/8] Redid relative paths for ldo script in init --- .../example-create/.shapes/foafProfile.shex | 19 + packages/cli/example-create/package-lock.json | 1601 +++++++++++++++++ packages/cli/example-create/package.json | 21 + packages/cli/src/create.ts | 9 +- packages/cli/src/init.ts | 9 +- 5 files changed, 1653 insertions(+), 6 deletions(-) create mode 100644 packages/cli/example-create/.shapes/foafProfile.shex create mode 100644 packages/cli/example-create/package-lock.json create mode 100644 packages/cli/example-create/package.json diff --git a/packages/cli/example-create/.shapes/foafProfile.shex b/packages/cli/example-create/.shapes/foafProfile.shex new file mode 100644 index 0000000..dff09d1 --- /dev/null +++ b/packages/cli/example-create/.shapes/foafProfile.shex @@ -0,0 +1,19 @@ +# This shape is provided by default as an example +# You can create your own shape to fit your needs using ShEx (https://shex.io) +# Also check out https://shaperepo.com for examples of more shapes. + +PREFIX ex: +PREFIX foaf: +PREFIX rdfs: +PREFIX xsd: + +ex:FoafProfile EXTRA a { + a [ foaf:Person ] + // rdfs:comment "Defines the node as a Person (from foaf)" ; + foaf:name xsd:string ? + // rdfs:comment "Define a person's name." ; + foaf:img xsd:string ? + // rdfs:comment "Photo link but in string form" ; + foaf:knows @ex:FoafProfile * + // rdfs:comment "A list of WebIds for all the people this user knows." ; +} diff --git a/packages/cli/example-create/package-lock.json b/packages/cli/example-create/package-lock.json new file mode 100644 index 0000000..48bd551 --- /dev/null +++ b/packages/cli/example-create/package-lock.json @@ -0,0 +1,1601 @@ +{ + "name": "example-create", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "example-create", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@ldo/ldo": "^0.0.1-alpha.28" + }, + "devDependencies": { + "@ldo/cli": "^0.0.1-alpha.28", + "@types/jsonld": "^1.5.15", + "@types/shexj": "^2.1.7" + } + }, + "node_modules/@ldo/cli": { + "version": "0.0.1-alpha.28", + "resolved": "https://registry.npmjs.org/@ldo/cli/-/cli-0.0.1-alpha.28.tgz", + "integrity": "sha512-ltSXtS5oMo9nf59YqNZCzOs0IawSnZ1IUYr11K2pm4wywkxqXAfPIwZQAL6pkGXvoEuyaBNl6+FHdtWEvadPXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ldo/schema-converter-shex": "^0.0.1-alpha.24", + "@shexjs/parser": "^1.0.0-alpha.24", + "child-process-promise": "^2.2.1", + "commander": "^9.3.0", + "ejs": "^3.1.8", + "fs-extra": "^10.1.0", + "loading-cli": "^1.1.0", + "prettier": "^3.0.3" + }, + "bin": { + "ldo": "dist/index.js" + } + }, + "node_modules/@ldo/dataset": { + "version": "0.0.1-alpha.24", + "resolved": "https://registry.npmjs.org/@ldo/dataset/-/dataset-0.0.1-alpha.24.tgz", + "integrity": "sha512-Jlh6DjvLN4gOOT8SYCKQaHZB8taeHvoriQRbF3s5CtYFf8Ne20job+02cToE1kVcBCinBrjZ/qnZ777wje+Z7A==", + "license": "MIT", + "dependencies": { + "@ldo/rdf-utils": "^0.0.1-alpha.24", + "@rdfjs/dataset": "^1.1.0", + "buffer": "^6.0.3", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@ldo/jsonld-dataset-proxy": { + "version": "0.0.1-alpha.24", + "resolved": "https://registry.npmjs.org/@ldo/jsonld-dataset-proxy/-/jsonld-dataset-proxy-0.0.1-alpha.24.tgz", + "integrity": "sha512-/MkXvLOgkiUVaoujMXO6y2wpp/5GMHLW2MzE1DGgW4Bie4/AWHsi69HlisFNHZDUlBTjnin8gHjZ1rCWtfz2TA==", + "license": "MIT", + "dependencies": { + "@ldo/rdf-utils": "^0.0.1-alpha.24", + "@ldo/subscribable-dataset": "^0.0.1-alpha.24", + "@rdfjs/data-model": "^1.2.0", + "@rdfjs/dataset": "^1.1.0", + "jsonld2graphobject": "^0.0.4" + } + }, + "node_modules/@ldo/ldo": { + "version": "0.0.1-alpha.28", + "resolved": "https://registry.npmjs.org/@ldo/ldo/-/ldo-0.0.1-alpha.28.tgz", + "integrity": "sha512-19oa+rCTfitazLQ9DV0vE6E1RAhLrtfYRNT50hvexcFszeEY0e3niYJ966jTu5mfMyV6NjJNcZaV8aBTDQMJDg==", + "license": "MIT", + "dependencies": { + "@ldo/dataset": "^0.0.1-alpha.24", + "@ldo/jsonld-dataset-proxy": "^0.0.1-alpha.24", + "@ldo/subscribable-dataset": "^0.0.1-alpha.24", + "@rdfjs/data-model": "^1.2.0", + "buffer": "^6.0.3", + "readable-stream": "^4.3.0" + } + }, + "node_modules/@ldo/rdf-utils": { + "version": "0.0.1-alpha.24", + "resolved": "https://registry.npmjs.org/@ldo/rdf-utils/-/rdf-utils-0.0.1-alpha.24.tgz", + "integrity": "sha512-L6gV/pS7107ODinnvvD4sUBb9VM/7IuVeFWZnN0Jmyk7XBiviPLVUvReO18UB7mambXweLS7efl+Z0W2NnsH1A==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^1.2.0", + "n3": "^1.17.1", + "rdf-string": "^1.6.3" + } + }, + "node_modules/@ldo/schema-converter-shex": { + "version": "0.0.1-alpha.24", + "resolved": "https://registry.npmjs.org/@ldo/schema-converter-shex/-/schema-converter-shex-0.0.1-alpha.24.tgz", + "integrity": "sha512-jCG1DCgQiM/nPujKlPVLpvD6ofTtS/ps41glUXG/hlqg7AsRJ3BJ1n/Hl3Iohe/pmFu7Wu7K1LCtoGpaAZP9pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ldo/traverser-shexj": "^0.0.1-alpha.24", + "dts-dom": "^3.6.0", + "jsonld2graphobject": "^0.0.5" + } + }, + "node_modules/@ldo/schema-converter-shex/node_modules/jsonld2graphobject": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonld2graphobject/-/jsonld2graphobject-0.0.5.tgz", + "integrity": "sha512-5BqfXOq96+OBjjiJNG8gQH66pYt6hW88z2SJxdvFJo4XNoVMvqAcUz+JSm/KEWS5NLRnebApEzFrYP3HUiUmYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rdfjs/types": "^1.0.1", + "@types/jsonld": "^1.5.6", + "jsonld-context-parser": "^2.1.5", + "uuid": "^8.3.2" + } + }, + "node_modules/@ldo/subscribable-dataset": { + "version": "0.0.1-alpha.24", + "resolved": "https://registry.npmjs.org/@ldo/subscribable-dataset/-/subscribable-dataset-0.0.1-alpha.24.tgz", + "integrity": "sha512-grQ0/pzdx4euBOTxMHqQqebOYBqrBbNS9Jk8sYFR4u/dEg8e6nIGz0E4beI83dHp/hT8fT18gs/gV4UxZzmphQ==", + "license": "MIT", + "dependencies": { + "@ldo/dataset": "^0.0.1-alpha.24", + "@ldo/rdf-utils": "^0.0.1-alpha.24" + } + }, + "node_modules/@ldo/traverser-shexj": { + "version": "0.0.1-alpha.24", + "resolved": "https://registry.npmjs.org/@ldo/traverser-shexj/-/traverser-shexj-0.0.1-alpha.24.tgz", + "integrity": "sha512-kWJCp6CD6rmd3rjfSNvhN+nvyqxJJmH9a2fH0YJbzq05uj8Lh3kt0527yiU9y3kSbYiYbs/mRsaQGztmoRfJgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ldo/type-traverser": "^0.0.1-alpha.24" + } + }, + "node_modules/@ldo/type-traverser": { + "version": "0.0.1-alpha.24", + "resolved": "https://registry.npmjs.org/@ldo/type-traverser/-/type-traverser-0.0.1-alpha.24.tgz", + "integrity": "sha512-hJrphvKktZFlRS8WToD8QcvoNcYfnBJXUIFl7Eh5Yyslm1uoS54YLQG9aorT0RuC0wVFh3B3I7I3FqOZym6GOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "uuid": "^8.3.2" + } + }, + "node_modules/@rdfjs/data-model": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@rdfjs/data-model/-/data-model-1.3.4.tgz", + "integrity": "sha512-iKzNcKvJotgbFDdti7GTQDCYmL7GsGldkYStiP0K8EYtN7deJu5t7U11rKTz+nR7RtesUggT+lriZ7BakFv8QQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.1" + }, + "bin": { + "rdfjs-data-model-test": "bin/test.js" + } + }, + "node_modules/@rdfjs/dataset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rdfjs/dataset/-/dataset-1.1.1.tgz", + "integrity": "sha512-BNwCSvG0cz0srsG5esq6CQKJc1m8g/M0DZpLuiEp0MMpfwguXX7VeS8TCg4UUG3DV/DqEvhy83ZKSEjdsYseeA==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^1.2.0" + }, + "bin": { + "rdfjs-dataset-test": "bin/test.js" + } + }, + "node_modules/@rdfjs/types": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.1.2.tgz", + "integrity": "sha512-wqpOJK1QCbmsGNtyzYnojPU8gRDPid2JO0Q0kMtb4j65xhCK880cnKAfEOwC+dX85VJcCByQx5zOwyyfCjDJsg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@shexjs/parser": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/@shexjs/parser/-/parser-1.0.0-alpha.28.tgz", + "integrity": "sha512-eeVeHq/2JG9X+3h7y+7EmuBSWWl2EMj/EQBLk5CTRx4W4hWDdjWczsY8RWwKjkIzLwUS1+G0aiAI1u5LHCZ2Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shexjs/util": "^1.0.0-alpha.28", + "@ts-jison/parser": "^0.4.1-alpha.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@shexjs/term": { + "version": "1.0.0-alpha.27", + "resolved": "https://registry.npmjs.org/@shexjs/term/-/term-1.0.0-alpha.27.tgz", + "integrity": "sha512-+D7P7pglRPTZC2RkwaQuq+cgBZImx+61JZtcN77uEJVqcGaIscQK5hScsKhAPIo16/I+4jhIUCEFojXqw6otpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/shexj": "^2.1.6", + "rdf-data-factory": "^1.1.2", + "relativize-url": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@shexjs/util": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/@shexjs/util/-/util-1.0.0-alpha.28.tgz", + "integrity": "sha512-L8pBokTU/5eNRJPkC8R9SIgPw6/JDh/bHKdV5TZzf8/FkOMNJwKIy6UDHXM1I8FJ+c8u2gOOHp2MA+7b+md+0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shexjs/term": "^1.0.0-alpha.27", + "@shexjs/visitor": "^1.0.0-alpha.27", + "@types/shexj": "^2.1.6", + "hierarchy-closure": "^1.2.2", + "sync-request": "^6.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@shexjs/visitor": { + "version": "1.0.0-alpha.27", + "resolved": "https://registry.npmjs.org/@shexjs/visitor/-/visitor-1.0.0-alpha.27.tgz", + "integrity": "sha512-9s67A+f0ZZNw/SNxqoi1483CqUca8dbnHM6WDWsRH4+eXlQpQqwOZDxA8uKEaWeX4VcDrDwzWpr0WvK6EyDWIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ts-jison/common": { + "version": "0.4.1-alpha.1", + "resolved": "https://registry.npmjs.org/@ts-jison/common/-/common-0.4.1-alpha.1.tgz", + "integrity": "sha512-SDbHzq+UMD+V3ciKVBHwCEgVqSeyQPTCjOsd/ZNTGySUVg4x3EauR9ZcEfdVFAsYRR38XWgDI+spq5LDY46KvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ts-jison/lexer": { + "version": "0.4.1-alpha.1", + "resolved": "https://registry.npmjs.org/@ts-jison/lexer/-/lexer-0.4.1-alpha.1.tgz", + "integrity": "sha512-5C1Wr+wixAzn2MOFtgy7KbT6N6j9mhmbjAtyvOqZKsikKtNOQj22MM5HxT+ooRexG2NbtxnDSXYdhHR1Lg58ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ts-jison/common": "^0.4.1-alpha.1" + } + }, + "node_modules/@ts-jison/parser": { + "version": "0.4.1-alpha.1", + "resolved": "https://registry.npmjs.org/@ts-jison/parser/-/parser-0.4.1-alpha.1.tgz", + "integrity": "sha512-xNj+qOez/7dju44LlYiTlCjxMzW5oek9EckUAElfln/GBK9vgMSk0swWcnacMr0TYbGjUQuXvL2wEgmDf5WajQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ts-jison/common": "^0.4.1-alpha.1", + "@ts-jison/lexer": "^0.4.1-alpha.1" + } + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-link-header": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/http-link-header/-/http-link-header-1.0.7.tgz", + "integrity": "sha512-snm5oLckop0K3cTDAiBnZDy6ncx9DJ3mCRDvs42C884MbVYPP74Tiq2hFsSDRTyjK6RyDYDIulPiW23ge+g5Lw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jsonld": { + "version": "1.5.15", + "resolved": "https://registry.npmjs.org/@types/jsonld/-/jsonld-1.5.15.tgz", + "integrity": "sha512-PlAFPZjL+AuGYmwlqwKEL0IMP8M8RexH0NIPGfCVWSQ041H2rR/8OlyZSD7KsCVoN8vCfWdtWDBxX8yBVP+xow==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/qs": { + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/shexj": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@types/shexj/-/shexj-2.1.7.tgz", + "integrity": "sha512-pu/0vIZxFTMPVjTlo5MJKFkBL/EbAuFhtCXpmBB7ZdUiyNpc6pt8GxfyRPqdf6q2SsWu71a/vbhvGK2IZN2Eug==", + "dev": true, + "license": "MIT" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true, + "license": "Apache-2.0" + }, + "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/child-process-promise": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/child-process-promise/-/child-process-promise-2.2.1.tgz", + "integrity": "sha512-Fi4aNdqBsr0mv+jgWxcZ/7rAIC2mgihrptyVI4foh/rrjY/3BNjfP9+oaiFx/fzim+1ZyCNBae0DlyfQhSugog==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^4.0.2", + "node-version": "^1.0.0", + "promise-polyfill": "^6.0.1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colors-cli": { + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/colors-cli/-/colors-cli-1.0.33.tgz", + "integrity": "sha512-PWGsmoJFdOB0t+BeHgmtuoRZUQucOLl5ii81NBzOOGVxlgE04muFNHlR5j8i8MKbOPELBl3243AI6lGBTj5ICQ==", + "dev": true, + "license": "MIT", + "bin": { + "colors": "bin/colors" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, + "node_modules/cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dts-dom": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/dts-dom/-/dts-dom-3.7.0.tgz", + "integrity": "sha512-WnmiiHfhtcYS+DyGd2Rq3J6QA3ATVBdKtlrhutc/VzQVFoBgNDm+gnYc5gZizsXAI0xQ2frZntT5IJFeB2qQIg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/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/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/form-data": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz", + "integrity": "sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", + "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "dunder-proto": "^1.0.0", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hierarchy-closure": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/hierarchy-closure/-/hierarchy-closure-1.2.2.tgz", + "integrity": "sha512-ZqZvsA6HyMqrmm49D3llYA8x8hqdyDDEkaTXcqwyO+fGQlzxoeXws/5ze11M40s4EoTw7GFxdTKIwj5YDOicLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-link-header": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz", + "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonld-context-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonld-context-parser/-/jsonld-context-parser-2.4.0.tgz", + "integrity": "sha512-ZYOfvh525SdPd9ReYY58dxB3E2RUEU4DJ6ZibO8AitcowPeBH4L5rCAitE2om5G1P+HMEgYEYEr4EZKbVN4tpA==", + "license": "MIT", + "dependencies": { + "@types/http-link-header": "^1.0.1", + "@types/node": "^18.0.0", + "cross-fetch": "^3.0.6", + "http-link-header": "^1.0.2", + "relative-to-absolute-iri": "^1.0.5" + }, + "bin": { + "jsonld-context-parse": "bin/jsonld-context-parse.js" + } + }, + "node_modules/jsonld-context-parser/node_modules/@types/node": { + "version": "18.19.68", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz", + "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/jsonld-context-parser/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/jsonld2graphobject": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/jsonld2graphobject/-/jsonld2graphobject-0.0.4.tgz", + "integrity": "sha512-7siWYw9/EaD9lWyMbHr2uLMy8kbNVyOtDlsAWJUlUjVfXpcJcwLN6f0qeNt0ySV4fDoAJOjJXNvo7V/McrubAg==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "^1.0.1", + "@types/jsonld": "^1.5.6", + "jsonld-context-parser": "^2.1.5", + "uuid": "^8.3.2" + } + }, + "node_modules/loading-cli": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/loading-cli/-/loading-cli-1.1.2.tgz", + "integrity": "sha512-M1ntfXHpdGoQxfaqKBOQPwSrTr9EIoTgj664Q9UVSbSnJvAFdribo+Ij//1jvACgrGHaTvfKoD9PG3NOxGj44g==", + "dev": true, + "license": "MIT", + "dependencies": { + "colors-cli": "^1.0.26" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + } + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/n3": { + "version": "1.23.1", + "resolved": "https://registry.npmjs.org/n3/-/n3-1.23.1.tgz", + "integrity": "sha512-3f0IYJo+6+lXypothmlwPzm3wJNffsxUwnfONeFv2QqWq7RjTvyCMtkRXDUXW6XrZoOzaQX8xTTSYNlGjXcGtw==", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "queue-microtask": "^1.1.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-version": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/node-version/-/node-version-1.2.0.tgz", + "integrity": "sha512-ma6oU4Sk0qOoKEAymVoTvk8EdXEobdS7m/mAGhDJ8Rouugho48crHBORAmy5BoOcv8wraPM6xumapQp5hl4iIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true + }, + "node_modules/prettier": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/promise-polyfill": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz", + "integrity": "sha512-g0LWaH0gFsxovsU7R5LrrhHhWAWiHRnh1GPrhXnPgYsDkIqjRYUYSZEsej/wtleDrz5xVSIDbeKfidztp2XHFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/qs": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/rdf-data-factory": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/rdf-data-factory/-/rdf-data-factory-1.1.2.tgz", + "integrity": "sha512-TfQD63Lokabd09ES1jAtKK8AA6rkr9rwyUBGo6olOt1CE0Um36CUQIqytyf0am2ouBPR0l7SaHxCiMcPGHkt1A==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/rdf-string": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/rdf-string/-/rdf-string-1.6.3.tgz", + "integrity": "sha512-HIVwQ2gOqf+ObsCLSUAGFZMIl3rh9uGcRf1KbM85UDhKqP+hy6qj7Vz8FKt3GA54RiThqK3mNcr66dm1LP0+6g==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.0" + } + }, + "node_modules/readable-stream": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.6.0.tgz", + "integrity": "sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw==", + "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/relative-to-absolute-iri": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/relative-to-absolute-iri/-/relative-to-absolute-iri-1.0.7.tgz", + "integrity": "sha512-Xjyl4HmIzg2jzK/Un2gELqbcE8Fxy85A/aLSHE6PE/3+OGsFwmKVA1vRyGaz6vLWSqLDMHA+5rjD/xbibSQN1Q==", + "license": "MIT" + }, + "node_modules/relativize-url": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/relativize-url/-/relativize-url-0.1.0.tgz", + "integrity": "sha512-YXet4a9wQP96Ru9MQSfoRUzsCaeboLPXj+rVG1ulH4t54zqFHiNmW6FPl7V2dTxk9uHlW3yb9+1jWO44AdWisw==", + "dev": true, + "license": "ISC" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true, + "license": "ISC" + } + } +} diff --git a/packages/cli/example-create/package.json b/packages/cli/example-create/package.json new file mode 100644 index 0000000..054ce13 --- /dev/null +++ b/packages/cli/example-create/package.json @@ -0,0 +1,21 @@ +{ + "name": "example-create", + "version": "1.0.0", + "description": "", + "keywords": [ + "" + ], + "author": "", + "license": "MIT", + "dependencies": { + "@ldo/ldo": "^0.0.1-alpha.28" + }, + "devDependencies": { + "@ldo/cli": "^0.0.1-alpha.28", + "@types/jsonld": "^1.5.15", + "@types/shexj": "^2.1.7" + }, + "scripts": { + "build:ldo": "ldo build --input example-create/.shapes --output example-create/.ldo" + } +} \ No newline at end of file diff --git a/packages/cli/src/create.ts b/packages/cli/src/create.ts index 4f3d1ff..9e413fd 100644 --- a/packages/cli/src/create.ts +++ b/packages/cli/src/create.ts @@ -4,6 +4,7 @@ import { generateReadme } from "./generateReadme"; import path from "path"; import prompts from "prompts"; import type { PackageJson } from "type-fest"; +import loading from "loading-cli"; export async function create(directory: string) { // Init the NPM Package @@ -12,7 +13,7 @@ export async function create(directory: string) { type: "text", name: "name", message: "Package name:", - initial: path.basename(process.cwd()), + initial: path.basename(directory), }, { type: "text", @@ -49,6 +50,8 @@ export async function create(directory: string) { }, ]); + const load = loading("Generating package.json"); + const packageJson: PackageJson = { name: responses.name, version: responses.version, @@ -75,6 +78,7 @@ export async function create(directory: string) { await savePackageJson(directory, packageJson); // Init LDO + load.text = "Initializing LDO"; await init({ directory }); // Add prepublish script @@ -88,10 +92,13 @@ export async function create(directory: string) { return packageJson; }); + load.text = "Generating README"; // Generate ReadMe await generateReadme({ project: directory, shapes: path.join(directory, ".shapes"), ldo: path.join(directory, ".ldo"), }); + + load.stop(); } diff --git a/packages/cli/src/init.ts b/packages/cli/src/init.ts index 71ac14b..75b6890 100644 --- a/packages/cli/src/init.ts +++ b/packages/cli/src/init.ts @@ -13,7 +13,6 @@ export interface InitOptions { } export async function init(initOptions: InitOptions) { - console.log("In init"); // Install dependencies await exec(`cd ${initOptions.directory} && npm install @ldo/ldo --save`); await exec( @@ -60,16 +59,16 @@ export async function init(initOptions: InitOptions) { }), ); - console.log("here"); // Add build script await modifyPackageJson(parentDirectory, async (packageJson) => { if (!packageJson.scripts) { packageJson.scripts = {}; } const ldoFolder = path.join(parentDirectory, DEFAULT_LDO_FOLDER); - packageJson.scripts[ - "build:ldo" - ] = `ldo build --input ${shapesFolderPath} --output ${ldoFolder}`; + packageJson.scripts["build:ldo"] = `ldo build --input ${path.relative( + parentDirectory, + shapesFolderPath, + )} --output ${path.relative(parentDirectory, ldoFolder)}`; return packageJson; }); From c762abbb67ae0782f75c4569a74e4aa9c7251f9b Mon Sep 17 00:00:00 2001 From: Jackson Morgan Date: Thu, 26 Dec 2024 21:39:54 -0500 Subject: [PATCH 6/8] Generate script works --- packages/cli/.gitignore | 2 +- .../example-create/.shapes/foafProfile.shex | 19 - packages/cli/example-create/package-lock.json | 1601 ----------------- packages/cli/example-create/package.json | 21 - packages/cli/src/generateReadme.ts | 2 +- packages/cli/src/init.ts | 2 +- 6 files changed, 3 insertions(+), 1644 deletions(-) delete mode 100644 packages/cli/example-create/.shapes/foafProfile.shex delete mode 100644 packages/cli/example-create/package-lock.json delete mode 100644 packages/cli/example-create/package.json diff --git a/packages/cli/.gitignore b/packages/cli/.gitignore index 433f129..5ea56bd 100644 --- a/packages/cli/.gitignore +++ b/packages/cli/.gitignore @@ -1,2 +1,2 @@ -./example-create +example-create ./example-init \ No newline at end of file diff --git a/packages/cli/example-create/.shapes/foafProfile.shex b/packages/cli/example-create/.shapes/foafProfile.shex deleted file mode 100644 index dff09d1..0000000 --- a/packages/cli/example-create/.shapes/foafProfile.shex +++ /dev/null @@ -1,19 +0,0 @@ -# This shape is provided by default as an example -# You can create your own shape to fit your needs using ShEx (https://shex.io) -# Also check out https://shaperepo.com for examples of more shapes. - -PREFIX ex: -PREFIX foaf: -PREFIX rdfs: -PREFIX xsd: - -ex:FoafProfile EXTRA a { - a [ foaf:Person ] - // rdfs:comment "Defines the node as a Person (from foaf)" ; - foaf:name xsd:string ? - // rdfs:comment "Define a person's name." ; - foaf:img xsd:string ? - // rdfs:comment "Photo link but in string form" ; - foaf:knows @ex:FoafProfile * - // rdfs:comment "A list of WebIds for all the people this user knows." ; -} diff --git a/packages/cli/example-create/package-lock.json b/packages/cli/example-create/package-lock.json deleted file mode 100644 index 48bd551..0000000 --- a/packages/cli/example-create/package-lock.json +++ /dev/null @@ -1,1601 +0,0 @@ -{ - "name": "example-create", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "example-create", - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "@ldo/ldo": "^0.0.1-alpha.28" - }, - "devDependencies": { - "@ldo/cli": "^0.0.1-alpha.28", - "@types/jsonld": "^1.5.15", - "@types/shexj": "^2.1.7" - } - }, - "node_modules/@ldo/cli": { - "version": "0.0.1-alpha.28", - "resolved": "https://registry.npmjs.org/@ldo/cli/-/cli-0.0.1-alpha.28.tgz", - "integrity": "sha512-ltSXtS5oMo9nf59YqNZCzOs0IawSnZ1IUYr11K2pm4wywkxqXAfPIwZQAL6pkGXvoEuyaBNl6+FHdtWEvadPXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ldo/schema-converter-shex": "^0.0.1-alpha.24", - "@shexjs/parser": "^1.0.0-alpha.24", - "child-process-promise": "^2.2.1", - "commander": "^9.3.0", - "ejs": "^3.1.8", - "fs-extra": "^10.1.0", - "loading-cli": "^1.1.0", - "prettier": "^3.0.3" - }, - "bin": { - "ldo": "dist/index.js" - } - }, - "node_modules/@ldo/dataset": { - "version": "0.0.1-alpha.24", - "resolved": "https://registry.npmjs.org/@ldo/dataset/-/dataset-0.0.1-alpha.24.tgz", - "integrity": "sha512-Jlh6DjvLN4gOOT8SYCKQaHZB8taeHvoriQRbF3s5CtYFf8Ne20job+02cToE1kVcBCinBrjZ/qnZ777wje+Z7A==", - "license": "MIT", - "dependencies": { - "@ldo/rdf-utils": "^0.0.1-alpha.24", - "@rdfjs/dataset": "^1.1.0", - "buffer": "^6.0.3", - "readable-stream": "^4.2.0" - } - }, - "node_modules/@ldo/jsonld-dataset-proxy": { - "version": "0.0.1-alpha.24", - "resolved": "https://registry.npmjs.org/@ldo/jsonld-dataset-proxy/-/jsonld-dataset-proxy-0.0.1-alpha.24.tgz", - "integrity": "sha512-/MkXvLOgkiUVaoujMXO6y2wpp/5GMHLW2MzE1DGgW4Bie4/AWHsi69HlisFNHZDUlBTjnin8gHjZ1rCWtfz2TA==", - "license": "MIT", - "dependencies": { - "@ldo/rdf-utils": "^0.0.1-alpha.24", - "@ldo/subscribable-dataset": "^0.0.1-alpha.24", - "@rdfjs/data-model": "^1.2.0", - "@rdfjs/dataset": "^1.1.0", - "jsonld2graphobject": "^0.0.4" - } - }, - "node_modules/@ldo/ldo": { - "version": "0.0.1-alpha.28", - "resolved": "https://registry.npmjs.org/@ldo/ldo/-/ldo-0.0.1-alpha.28.tgz", - "integrity": "sha512-19oa+rCTfitazLQ9DV0vE6E1RAhLrtfYRNT50hvexcFszeEY0e3niYJ966jTu5mfMyV6NjJNcZaV8aBTDQMJDg==", - "license": "MIT", - "dependencies": { - "@ldo/dataset": "^0.0.1-alpha.24", - "@ldo/jsonld-dataset-proxy": "^0.0.1-alpha.24", - "@ldo/subscribable-dataset": "^0.0.1-alpha.24", - "@rdfjs/data-model": "^1.2.0", - "buffer": "^6.0.3", - "readable-stream": "^4.3.0" - } - }, - "node_modules/@ldo/rdf-utils": { - "version": "0.0.1-alpha.24", - "resolved": "https://registry.npmjs.org/@ldo/rdf-utils/-/rdf-utils-0.0.1-alpha.24.tgz", - "integrity": "sha512-L6gV/pS7107ODinnvvD4sUBb9VM/7IuVeFWZnN0Jmyk7XBiviPLVUvReO18UB7mambXweLS7efl+Z0W2NnsH1A==", - "license": "MIT", - "dependencies": { - "@rdfjs/data-model": "^1.2.0", - "n3": "^1.17.1", - "rdf-string": "^1.6.3" - } - }, - "node_modules/@ldo/schema-converter-shex": { - "version": "0.0.1-alpha.24", - "resolved": "https://registry.npmjs.org/@ldo/schema-converter-shex/-/schema-converter-shex-0.0.1-alpha.24.tgz", - "integrity": "sha512-jCG1DCgQiM/nPujKlPVLpvD6ofTtS/ps41glUXG/hlqg7AsRJ3BJ1n/Hl3Iohe/pmFu7Wu7K1LCtoGpaAZP9pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ldo/traverser-shexj": "^0.0.1-alpha.24", - "dts-dom": "^3.6.0", - "jsonld2graphobject": "^0.0.5" - } - }, - "node_modules/@ldo/schema-converter-shex/node_modules/jsonld2graphobject": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/jsonld2graphobject/-/jsonld2graphobject-0.0.5.tgz", - "integrity": "sha512-5BqfXOq96+OBjjiJNG8gQH66pYt6hW88z2SJxdvFJo4XNoVMvqAcUz+JSm/KEWS5NLRnebApEzFrYP3HUiUmYw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rdfjs/types": "^1.0.1", - "@types/jsonld": "^1.5.6", - "jsonld-context-parser": "^2.1.5", - "uuid": "^8.3.2" - } - }, - "node_modules/@ldo/subscribable-dataset": { - "version": "0.0.1-alpha.24", - "resolved": "https://registry.npmjs.org/@ldo/subscribable-dataset/-/subscribable-dataset-0.0.1-alpha.24.tgz", - "integrity": "sha512-grQ0/pzdx4euBOTxMHqQqebOYBqrBbNS9Jk8sYFR4u/dEg8e6nIGz0E4beI83dHp/hT8fT18gs/gV4UxZzmphQ==", - "license": "MIT", - "dependencies": { - "@ldo/dataset": "^0.0.1-alpha.24", - "@ldo/rdf-utils": "^0.0.1-alpha.24" - } - }, - "node_modules/@ldo/traverser-shexj": { - "version": "0.0.1-alpha.24", - "resolved": "https://registry.npmjs.org/@ldo/traverser-shexj/-/traverser-shexj-0.0.1-alpha.24.tgz", - "integrity": "sha512-kWJCp6CD6rmd3rjfSNvhN+nvyqxJJmH9a2fH0YJbzq05uj8Lh3kt0527yiU9y3kSbYiYbs/mRsaQGztmoRfJgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ldo/type-traverser": "^0.0.1-alpha.24" - } - }, - "node_modules/@ldo/type-traverser": { - "version": "0.0.1-alpha.24", - "resolved": "https://registry.npmjs.org/@ldo/type-traverser/-/type-traverser-0.0.1-alpha.24.tgz", - "integrity": "sha512-hJrphvKktZFlRS8WToD8QcvoNcYfnBJXUIFl7Eh5Yyslm1uoS54YLQG9aorT0RuC0wVFh3B3I7I3FqOZym6GOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "uuid": "^8.3.2" - } - }, - "node_modules/@rdfjs/data-model": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@rdfjs/data-model/-/data-model-1.3.4.tgz", - "integrity": "sha512-iKzNcKvJotgbFDdti7GTQDCYmL7GsGldkYStiP0K8EYtN7deJu5t7U11rKTz+nR7RtesUggT+lriZ7BakFv8QQ==", - "license": "MIT", - "dependencies": { - "@rdfjs/types": ">=1.0.1" - }, - "bin": { - "rdfjs-data-model-test": "bin/test.js" - } - }, - "node_modules/@rdfjs/dataset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@rdfjs/dataset/-/dataset-1.1.1.tgz", - "integrity": "sha512-BNwCSvG0cz0srsG5esq6CQKJc1m8g/M0DZpLuiEp0MMpfwguXX7VeS8TCg4UUG3DV/DqEvhy83ZKSEjdsYseeA==", - "license": "MIT", - "dependencies": { - "@rdfjs/data-model": "^1.2.0" - }, - "bin": { - "rdfjs-dataset-test": "bin/test.js" - } - }, - "node_modules/@rdfjs/types": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.1.2.tgz", - "integrity": "sha512-wqpOJK1QCbmsGNtyzYnojPU8gRDPid2JO0Q0kMtb4j65xhCK880cnKAfEOwC+dX85VJcCByQx5zOwyyfCjDJsg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@shexjs/parser": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/@shexjs/parser/-/parser-1.0.0-alpha.28.tgz", - "integrity": "sha512-eeVeHq/2JG9X+3h7y+7EmuBSWWl2EMj/EQBLk5CTRx4W4hWDdjWczsY8RWwKjkIzLwUS1+G0aiAI1u5LHCZ2Rw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shexjs/util": "^1.0.0-alpha.28", - "@ts-jison/parser": "^0.4.1-alpha.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@shexjs/term": { - "version": "1.0.0-alpha.27", - "resolved": "https://registry.npmjs.org/@shexjs/term/-/term-1.0.0-alpha.27.tgz", - "integrity": "sha512-+D7P7pglRPTZC2RkwaQuq+cgBZImx+61JZtcN77uEJVqcGaIscQK5hScsKhAPIo16/I+4jhIUCEFojXqw6otpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/shexj": "^2.1.6", - "rdf-data-factory": "^1.1.2", - "relativize-url": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@shexjs/util": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/@shexjs/util/-/util-1.0.0-alpha.28.tgz", - "integrity": "sha512-L8pBokTU/5eNRJPkC8R9SIgPw6/JDh/bHKdV5TZzf8/FkOMNJwKIy6UDHXM1I8FJ+c8u2gOOHp2MA+7b+md+0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shexjs/term": "^1.0.0-alpha.27", - "@shexjs/visitor": "^1.0.0-alpha.27", - "@types/shexj": "^2.1.6", - "hierarchy-closure": "^1.2.2", - "sync-request": "^6.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@shexjs/visitor": { - "version": "1.0.0-alpha.27", - "resolved": "https://registry.npmjs.org/@shexjs/visitor/-/visitor-1.0.0-alpha.27.tgz", - "integrity": "sha512-9s67A+f0ZZNw/SNxqoi1483CqUca8dbnHM6WDWsRH4+eXlQpQqwOZDxA8uKEaWeX4VcDrDwzWpr0WvK6EyDWIQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ts-jison/common": { - "version": "0.4.1-alpha.1", - "resolved": "https://registry.npmjs.org/@ts-jison/common/-/common-0.4.1-alpha.1.tgz", - "integrity": "sha512-SDbHzq+UMD+V3ciKVBHwCEgVqSeyQPTCjOsd/ZNTGySUVg4x3EauR9ZcEfdVFAsYRR38XWgDI+spq5LDY46KvQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@ts-jison/lexer": { - "version": "0.4.1-alpha.1", - "resolved": "https://registry.npmjs.org/@ts-jison/lexer/-/lexer-0.4.1-alpha.1.tgz", - "integrity": "sha512-5C1Wr+wixAzn2MOFtgy7KbT6N6j9mhmbjAtyvOqZKsikKtNOQj22MM5HxT+ooRexG2NbtxnDSXYdhHR1Lg58ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ts-jison/common": "^0.4.1-alpha.1" - } - }, - "node_modules/@ts-jison/parser": { - "version": "0.4.1-alpha.1", - "resolved": "https://registry.npmjs.org/@ts-jison/parser/-/parser-0.4.1-alpha.1.tgz", - "integrity": "sha512-xNj+qOez/7dju44LlYiTlCjxMzW5oek9EckUAElfln/GBK9vgMSk0swWcnacMr0TYbGjUQuXvL2wEgmDf5WajQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ts-jison/common": "^0.4.1-alpha.1", - "@ts-jison/lexer": "^0.4.1-alpha.1" - } - }, - "node_modules/@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-link-header": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/http-link-header/-/http-link-header-1.0.7.tgz", - "integrity": "sha512-snm5oLckop0K3cTDAiBnZDy6ncx9DJ3mCRDvs42C884MbVYPP74Tiq2hFsSDRTyjK6RyDYDIulPiW23ge+g5Lw==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/jsonld": { - "version": "1.5.15", - "resolved": "https://registry.npmjs.org/@types/jsonld/-/jsonld-1.5.15.tgz", - "integrity": "sha512-PlAFPZjL+AuGYmwlqwKEL0IMP8M8RexH0NIPGfCVWSQ041H2rR/8OlyZSD7KsCVoN8vCfWdtWDBxX8yBVP+xow==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/qs": { - "version": "6.9.17", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", - "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/shexj": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@types/shexj/-/shexj-2.1.7.tgz", - "integrity": "sha512-pu/0vIZxFTMPVjTlo5MJKFkBL/EbAuFhtCXpmBB7ZdUiyNpc6pt8GxfyRPqdf6q2SsWu71a/vbhvGK2IZN2Eug==", - "dev": true, - "license": "MIT" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true, - "license": "MIT" - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true, - "license": "Apache-2.0" - }, - "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/child-process-promise": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/child-process-promise/-/child-process-promise-2.2.1.tgz", - "integrity": "sha512-Fi4aNdqBsr0mv+jgWxcZ/7rAIC2mgihrptyVI4foh/rrjY/3BNjfP9+oaiFx/fzim+1ZyCNBae0DlyfQhSugog==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^4.0.2", - "node-version": "^1.0.0", - "promise-polyfill": "^6.0.1" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/colors-cli": { - "version": "1.0.33", - "resolved": "https://registry.npmjs.org/colors-cli/-/colors-cli-1.0.33.tgz", - "integrity": "sha512-PWGsmoJFdOB0t+BeHgmtuoRZUQucOLl5ii81NBzOOGVxlgE04muFNHlR5j8i8MKbOPELBl3243AI6lGBTj5ICQ==", - "dev": true, - "license": "MIT", - "bin": { - "colors": "bin/colors" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", - "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.7.0" - } - }, - "node_modules/cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==", - "dev": true, - "license": "MIT", - "dependencies": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dts-dom": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/dts-dom/-/dts-dom-3.7.0.tgz", - "integrity": "sha512-WnmiiHfhtcYS+DyGd2Rq3J6QA3ATVBdKtlrhutc/VzQVFoBgNDm+gnYc5gZizsXAI0xQ2frZntT5IJFeB2qQIg==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/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/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/form-data": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz", - "integrity": "sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", - "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "dunder-proto": "^1.0.0", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "function-bind": "^1.1.2", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hierarchy-closure": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/hierarchy-closure/-/hierarchy-closure-1.2.2.tgz", - "integrity": "sha512-ZqZvsA6HyMqrmm49D3llYA8x8hqdyDDEkaTXcqwyO+fGQlzxoeXws/5ze11M40s4EoTw7GFxdTKIwj5YDOicLQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-basic": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", - "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "caseless": "^0.12.0", - "concat-stream": "^1.6.2", - "http-response-object": "^3.0.1", - "parse-cache-control": "^1.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/http-link-header": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz", - "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/http-response-object": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", - "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "^10.0.3" - } - }, - "node_modules/http-response-object/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true, - "license": "MIT" - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonld-context-parser": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonld-context-parser/-/jsonld-context-parser-2.4.0.tgz", - "integrity": "sha512-ZYOfvh525SdPd9ReYY58dxB3E2RUEU4DJ6ZibO8AitcowPeBH4L5rCAitE2om5G1P+HMEgYEYEr4EZKbVN4tpA==", - "license": "MIT", - "dependencies": { - "@types/http-link-header": "^1.0.1", - "@types/node": "^18.0.0", - "cross-fetch": "^3.0.6", - "http-link-header": "^1.0.2", - "relative-to-absolute-iri": "^1.0.5" - }, - "bin": { - "jsonld-context-parse": "bin/jsonld-context-parse.js" - } - }, - "node_modules/jsonld-context-parser/node_modules/@types/node": { - "version": "18.19.68", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz", - "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==", - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/jsonld-context-parser/node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "license": "MIT" - }, - "node_modules/jsonld2graphobject": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/jsonld2graphobject/-/jsonld2graphobject-0.0.4.tgz", - "integrity": "sha512-7siWYw9/EaD9lWyMbHr2uLMy8kbNVyOtDlsAWJUlUjVfXpcJcwLN6f0qeNt0ySV4fDoAJOjJXNvo7V/McrubAg==", - "license": "MIT", - "dependencies": { - "@rdfjs/types": "^1.0.1", - "@types/jsonld": "^1.5.6", - "jsonld-context-parser": "^2.1.5", - "uuid": "^8.3.2" - } - }, - "node_modules/loading-cli": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/loading-cli/-/loading-cli-1.1.2.tgz", - "integrity": "sha512-M1ntfXHpdGoQxfaqKBOQPwSrTr9EIoTgj664Q9UVSbSnJvAFdribo+Ij//1jvACgrGHaTvfKoD9PG3NOxGj44g==", - "dev": true, - "license": "MIT", - "dependencies": { - "colors-cli": "^1.0.26" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - } - }, - "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "license": "ISC", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/n3": { - "version": "1.23.1", - "resolved": "https://registry.npmjs.org/n3/-/n3-1.23.1.tgz", - "integrity": "sha512-3f0IYJo+6+lXypothmlwPzm3wJNffsxUwnfONeFv2QqWq7RjTvyCMtkRXDUXW6XrZoOzaQX8xTTSYNlGjXcGtw==", - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "queue-microtask": "^1.1.2", - "readable-stream": "^4.0.0" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-version": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/node-version/-/node-version-1.2.0.tgz", - "integrity": "sha512-ma6oU4Sk0qOoKEAymVoTvk8EdXEobdS7m/mAGhDJ8Rouugho48crHBORAmy5BoOcv8wraPM6xumapQp5hl4iIQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/parse-cache-control": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", - "dev": true - }, - "node_modules/prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "dev": true, - "license": "MIT", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/promise-polyfill": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz", - "integrity": "sha512-g0LWaH0gFsxovsU7R5LrrhHhWAWiHRnh1GPrhXnPgYsDkIqjRYUYSZEsej/wtleDrz5xVSIDbeKfidztp2XHFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/qs": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", - "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/rdf-data-factory": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/rdf-data-factory/-/rdf-data-factory-1.1.2.tgz", - "integrity": "sha512-TfQD63Lokabd09ES1jAtKK8AA6rkr9rwyUBGo6olOt1CE0Um36CUQIqytyf0am2ouBPR0l7SaHxCiMcPGHkt1A==", - "license": "MIT", - "dependencies": { - "@rdfjs/types": "*" - } - }, - "node_modules/rdf-string": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/rdf-string/-/rdf-string-1.6.3.tgz", - "integrity": "sha512-HIVwQ2gOqf+ObsCLSUAGFZMIl3rh9uGcRf1KbM85UDhKqP+hy6qj7Vz8FKt3GA54RiThqK3mNcr66dm1LP0+6g==", - "license": "MIT", - "dependencies": { - "@rdfjs/types": "*", - "rdf-data-factory": "^1.1.0" - } - }, - "node_modules/readable-stream": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.6.0.tgz", - "integrity": "sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw==", - "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/relative-to-absolute-iri": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/relative-to-absolute-iri/-/relative-to-absolute-iri-1.0.7.tgz", - "integrity": "sha512-Xjyl4HmIzg2jzK/Un2gELqbcE8Fxy85A/aLSHE6PE/3+OGsFwmKVA1vRyGaz6vLWSqLDMHA+5rjD/xbibSQN1Q==", - "license": "MIT" - }, - "node_modules/relativize-url": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/relativize-url/-/relativize-url-0.1.0.tgz", - "integrity": "sha512-YXet4a9wQP96Ru9MQSfoRUzsCaeboLPXj+rVG1ulH4t54zqFHiNmW6FPl7V2dTxk9uHlW3yb9+1jWO44AdWisw==", - "dev": true, - "license": "ISC" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sync-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", - "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "http-response-object": "^3.0.1", - "sync-rpc": "^1.2.1", - "then-request": "^6.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-port": "^3.1.0" - } - }, - "node_modules/then-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", - "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/concat-stream": "^1.6.0", - "@types/form-data": "0.0.33", - "@types/node": "^8.0.0", - "@types/qs": "^6.2.31", - "caseless": "~0.12.0", - "concat-stream": "^1.6.0", - "form-data": "^2.2.0", - "http-basic": "^8.1.1", - "http-response-object": "^3.0.1", - "promise": "^8.0.0", - "qs": "^6.4.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/then-request/node_modules/@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", - "dev": true, - "license": "MIT" - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT" - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true, - "license": "ISC" - } - } -} diff --git a/packages/cli/example-create/package.json b/packages/cli/example-create/package.json deleted file mode 100644 index 054ce13..0000000 --- a/packages/cli/example-create/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "example-create", - "version": "1.0.0", - "description": "", - "keywords": [ - "" - ], - "author": "", - "license": "MIT", - "dependencies": { - "@ldo/ldo": "^0.0.1-alpha.28" - }, - "devDependencies": { - "@ldo/cli": "^0.0.1-alpha.28", - "@types/jsonld": "^1.5.15", - "@types/shexj": "^2.1.7" - }, - "scripts": { - "build:ldo": "ldo build --input example-create/.shapes --output example-create/.ldo" - } -} \ No newline at end of file diff --git a/packages/cli/src/generateReadme.ts b/packages/cli/src/generateReadme.ts index bbf9670..0c25067 100644 --- a/packages/cli/src/generateReadme.ts +++ b/packages/cli/src/generateReadme.ts @@ -32,7 +32,7 @@ export async function generateReadme(options: GenerateReadmeOptions) { const shapes: ReadmeEjsOptions["shapes"] = []; await forAllShapes(options.shapes, async (fileName, shexC) => { - const typeFilePath = path.join(options.shapes, `${fileName}.typings.ts`); + const typeFilePath = path.join(options.ldo, `${fileName}.typings.ts`); const typesRaw = await fs.readFile(typeFilePath, "utf8"); diff --git a/packages/cli/src/init.ts b/packages/cli/src/init.ts index 75b6890..98196a2 100644 --- a/packages/cli/src/init.ts +++ b/packages/cli/src/init.ts @@ -73,5 +73,5 @@ export async function init(initOptions: InitOptions) { }); // Build LDO - await exec("npm run build:ldo"); + await exec(`cd ${parentDirectory} && npm run build:ldo`); } From 56f66ee05c817b31c4c745036a32a5731846f9d7 Mon Sep 17 00:00:00 2001 From: Jackson Morgan Date: Thu, 26 Dec 2024 22:01:00 -0500 Subject: [PATCH 7/8] create has all bugs fixed --- packages/cli/.gitignore | 2 +- packages/cli/src/create.ts | 18 ++++++++++++++++-- packages/cli/src/generateReadme.ts | 2 ++ .../cli/src/templates/readme/projectIndex.ejs | 2 ++ packages/cli/src/templates/readme/shape.ejs | 6 +++--- 5 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 packages/cli/src/templates/readme/projectIndex.ejs diff --git a/packages/cli/.gitignore b/packages/cli/.gitignore index 5ea56bd..138f9c6 100644 --- a/packages/cli/.gitignore +++ b/packages/cli/.gitignore @@ -1,2 +1,2 @@ example-create -./example-init \ No newline at end of file +example-init \ No newline at end of file diff --git a/packages/cli/src/create.ts b/packages/cli/src/create.ts index 9e413fd..808b990 100644 --- a/packages/cli/src/create.ts +++ b/packages/cli/src/create.ts @@ -5,6 +5,8 @@ import path from "path"; import prompts from "prompts"; import type { PackageJson } from "type-fest"; import loading from "loading-cli"; +import { promises as fs } from "fs"; +import { renderFile } from "ejs"; export async function create(directory: string) { // Init the NPM Package @@ -59,6 +61,7 @@ export async function create(directory: string) { keywords: responses.keywords, author: responses.author, license: responses.license, + main: "./index.js", }; if (responses.repository) { @@ -88,12 +91,23 @@ export async function create(directory: string) { "npm run build:ldo & npm run generate-readme"; packageJson.scripts[ "genenerate-readme" - ] = `ldo generate-readme --readme ./README.md --shapes ./.shapes --ldo ./ldo`; + ] = `ldo generate-readme --project ./ --shapes ./.shapes --ldo ./.ldo`; return packageJson; }); - load.text = "Generating README"; + // Create index.js + load.text = "Generating index.js"; + const ldoDir = await fs.readdir(path.join(directory, "./.ldo"), { + withFileTypes: true, + }); + const indexText = await renderFile( + path.join(__dirname, "./templates/readme/projectIndex.ejs"), + { fileNames: ldoDir.map((file) => file.name) }, + ); + await fs.writeFile(path.join(directory, "index.js"), indexText); + // Generate ReadMe + load.text = "Generating README"; await generateReadme({ project: directory, shapes: path.join(directory, ".shapes"), diff --git a/packages/cli/src/generateReadme.ts b/packages/cli/src/generateReadme.ts index 0c25067..c0df82f 100644 --- a/packages/cli/src/generateReadme.ts +++ b/packages/cli/src/generateReadme.ts @@ -49,6 +49,8 @@ export async function generateReadme(options: GenerateReadmeOptions) { shapeTypeName: `${interfaceName}ShapeType`, }); }); + + shapes.push(shape); }); const readmeEjsOptions: ReadmeEjsOptions = { diff --git a/packages/cli/src/templates/readme/projectIndex.ejs b/packages/cli/src/templates/readme/projectIndex.ejs new file mode 100644 index 0000000..4f844eb --- /dev/null +++ b/packages/cli/src/templates/readme/projectIndex.ejs @@ -0,0 +1,2 @@ +<% fileNames.forEach((fileName) => { %>export * from "./.ldo/<%- fileName %>"; +<% }); %> \ No newline at end of file diff --git a/packages/cli/src/templates/readme/shape.ejs b/packages/cli/src/templates/readme/shape.ejs index 58f5f0a..9973581 100644 --- a/packages/cli/src/templates/readme/shape.ejs +++ b/packages/cli/src/templates/readme/shape.ejs @@ -11,17 +11,17 @@ const ldoDataset = createLdoDataset(); const example<%= index %>: <%= type.typeName %> = ldoDataset .usingType(<%= type.shapeTypeName %>) .fromSubject("http://example.com/example<%= index %>"); -<%> }); <%> +<% }); %> ``` ### ShEx Typings ```shex -<%= shape.shex %> +<%- shape.shex %> ``` ### TypeScript Typings ```typescript -<%= shape.typescript %> +<%- shape.typescript %> ``` From 69e1ffb9636d4967a57653c56132c04e3134bd33 Mon Sep 17 00:00:00 2001 From: Jackson Morgan Date: Thu, 26 Dec 2024 22:14:43 -0500 Subject: [PATCH 8/8] Completed autogenerator --- package-lock.json | 11 ++++++++-- packages/cli/README.md | 11 ++++++++++ .../cli/example-init-placeholder/package.json | 11 ++++++++++ packages/cli/package.json | 7 +++++-- packages/cli/src/create.ts | 2 +- packages/cli/src/init.ts | 20 ++++++++----------- 6 files changed, 45 insertions(+), 17 deletions(-) create mode 100644 packages/cli/example-init-placeholder/package.json diff --git a/package-lock.json b/package-lock.json index 3a76126..16c2545 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8479,7 +8479,9 @@ } }, "node_modules/@types/jsonld": { - "version": "1.5.13", + "version": "1.5.15", + "resolved": "https://registry.npmjs.org/@types/jsonld/-/jsonld-1.5.15.tgz", + "integrity": "sha512-PlAFPZjL+AuGYmwlqwKEL0IMP8M8RexH0NIPGfCVWSQ041H2rR/8OlyZSD7KsCVoN8vCfWdtWDBxX8yBVP+xow==", "license": "MIT" }, "node_modules/@types/keygrip": { @@ -8750,6 +8752,8 @@ }, "node_modules/@types/shexj": { "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/shexj/-/shexj-2.1.4.tgz", + "integrity": "sha512-/dcF8vT/CHseZxNTcWR+otf6018PACgHiKFukPYsxQCRppGZq0UcALMedZUUnj7IM4WOesFoERwJBhEw44d/VQ==", "dev": true, "license": "MIT" }, @@ -28740,6 +28744,7 @@ "version": "0.0.1-alpha.28", "license": "MIT", "dependencies": { + "@ldo/ldo": "^0.0.1-alpha.28", "@ldo/schema-converter-shex": "^0.0.1-alpha.24", "@shexjs/parser": "^1.0.0-alpha.24", "child-process-promise": "^2.2.1", @@ -28756,12 +28761,14 @@ "ldo": "dist/index.js" }, "devDependencies": { + "@ldo/cli": "^0.0.1-alpha.28", "@types/child-process-promise": "^2.2.2", "@types/ejs": "^3.1.1", "@types/fs-extra": "^9.0.13", "@types/jest": "^27.0.3", + "@types/jsonld": "^1.5.15", "@types/prompts": "^2.4.9", - "@types/shexj": "2.1.4", + "@types/shexj": "^2.1.4", "copyfiles": "^2.4.1", "jest": "^27.4.2", "rimraf": "^3.0.2", diff --git a/packages/cli/README.md b/packages/cli/README.md index 2200e69..e88f798 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -53,9 +53,20 @@ This will generate five files: - `./ldo/foafProfile.schema.ts` - `./ldo/foafProfile.context.ts` +## Creating a new project to distribure shapes + +Sometimes, you might want to distribute shapes to others. The easiest way to do that is to deploy them to NPM. The LDO CLI has an easy-to-use command for generating a standalone project just for your shapes. + +```bash +npx @ldo/cli create ./my-project +``` + +This script will generate a project with a place to put your shapes. Running `npm publish` will build the shapes and push to project to NPM for you. + ## API Details - [`init` command](https://ldo.js.org/api/cli/init/) - [`build` command](https://ldo.js.org/api/cli/build/) + - [`create` command](https://ldo.js.org/api/cli/create/) ``` ## Sponsorship diff --git a/packages/cli/example-init-placeholder/package.json b/packages/cli/example-init-placeholder/package.json new file mode 100644 index 0000000..f41a7f6 --- /dev/null +++ b/packages/cli/example-init-placeholder/package.json @@ -0,0 +1,11 @@ +{ + "name": "example-init", + "version": "1.0.0", + "description": "", + "keywords": [ + "" + ], + "author": "", + "license": "MIT", + "main": "./index.js" +} \ No newline at end of file diff --git a/packages/cli/package.json b/packages/cli/package.json index 3165265..a8b5899 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -15,7 +15,7 @@ "test": "jest --coverage", "prepublishOnly": "npm run test && npm run build", "lint": "eslint src/** --fix --no-error-on-unmatched-pattern", - "test:init": "rm -rf ./example-init && mkdir ./example-init && cd ./example-init && ../dist/index.js init", + "test:init": "rm -rf ./example-init && cp -R ./example-init-placeholder ./example-init && cd ./example-init && ../dist/index.js init", "test:create": "rm -rf ./example-create && ./dist/index.js create ./example-create" }, "repository": { @@ -29,18 +29,21 @@ }, "homepage": "https://github.com/o-development/ldobjects/tree/main/packages/cli#readme", "devDependencies": { + "@ldo/cli": "^0.0.1-alpha.28", "@types/child-process-promise": "^2.2.2", "@types/ejs": "^3.1.1", "@types/fs-extra": "^9.0.13", "@types/jest": "^27.0.3", + "@types/jsonld": "^1.5.15", "@types/prompts": "^2.4.9", - "@types/shexj": "2.1.4", + "@types/shexj": "^2.1.4", "copyfiles": "^2.4.1", "jest": "^27.4.2", "rimraf": "^3.0.2", "ts-jest": "^27.0.7" }, "dependencies": { + "@ldo/ldo": "^0.0.1-alpha.28", "@ldo/schema-converter-shex": "^0.0.1-alpha.24", "@shexjs/parser": "^1.0.0-alpha.24", "child-process-promise": "^2.2.1", diff --git a/packages/cli/src/create.ts b/packages/cli/src/create.ts index 808b990..8f04a1e 100644 --- a/packages/cli/src/create.ts +++ b/packages/cli/src/create.ts @@ -82,7 +82,7 @@ export async function create(directory: string) { // Init LDO load.text = "Initializing LDO"; - await init({ directory }); + await init(directory); // Add prepublish script await modifyPackageJson(directory, async (packageJson) => { diff --git a/packages/cli/src/init.ts b/packages/cli/src/init.ts index 98196a2..1d08ff4 100644 --- a/packages/cli/src/init.ts +++ b/packages/cli/src/init.ts @@ -8,19 +8,9 @@ const DEFAULT_SHAPES_FOLDER = "./.shapes"; const DEFAULT_LDO_FOLDER = "./.ldo"; const POTENTIAL_PARENT_DIRECTORIES = ["src", "lib", "bin"]; -export interface InitOptions { - directory?: string; -} - -export async function init(initOptions: InitOptions) { - // Install dependencies - await exec(`cd ${initOptions.directory} && npm install @ldo/ldo --save`); - await exec( - `cd ${initOptions.directory} && npm install @ldo/cli @types/shexj @types/jsonld --save-dev`, - ); - +export async function init(directory?: string) { // Find folder to save to - let parentDirectory = initOptions.directory!; + let parentDirectory = directory!; if (!parentDirectory) { parentDirectory = "./"; const allDirectories = ( @@ -40,6 +30,12 @@ export async function init(initOptions: InitOptions) { } } + // Install dependencies + await exec(`cd ${parentDirectory} && npm install @ldo/ldo --save`); + await exec( + `cd ${parentDirectory} && npm install @ldo/cli @types/shexj @types/jsonld --save-dev`, + ); + // Create "shapes" folder const shapesFolderPath = path.join(parentDirectory, DEFAULT_SHAPES_FOLDER); await fs.promises.mkdir(shapesFolderPath);