diff --git a/.mocharc.json b/.mocharc.json index 18b3af50..a6d5b219 100644 --- a/.mocharc.json +++ b/.mocharc.json @@ -1,7 +1,7 @@ { - "extension": ["ts"], + "extension": ["ts", "js"], "node-option": ["loader=ts-node/esm"], "reporter": "mocha-junit-reporter", "reporter-option": ["mochaFile=coverage/report-junit.xml"], - "spec": ["test/**/*.spec.ts"] + "spec": ["test/**/*.spec.{ts,js}"] } diff --git a/backend/backend/package.json b/backend/backend/package.json index 651d19ac..24b33a04 100644 --- a/backend/backend/package.json +++ b/backend/backend/package.json @@ -100,7 +100,7 @@ "sinon-express-mock": "2.2.1", "supertest": "6.3.3", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typescript": "5.1.6" }, "prettier": "@openstapps/prettier-config", diff --git a/backend/copy-connector/package.json b/backend/copy-connector/package.json index e1415382..916a61dd 100644 --- a/backend/copy-connector/package.json +++ b/backend/copy-connector/package.json @@ -34,9 +34,9 @@ "@openstapps/api": "workspace:*", "@openstapps/core": "workspace:*", "@openstapps/logger": "workspace:*", - "commander": "10.0.0", + "@types/cli-progress": "3.11.5", "cli-progress": "3.12.0", - "@types/cli-progress": "3.11.5" + "commander": "10.0.0" }, "devDependencies": { "@openstapps/eslint-config": "workspace:*", @@ -56,7 +56,7 @@ "mocha-junit-reporter": "2.2.0", "nock": "13.3.1", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typescript": "5.1.6" }, "tsup": { diff --git a/backend/database/package.json b/backend/database/package.json index 80026f38..37aff10a 100644 --- a/backend/database/package.json +++ b/backend/database/package.json @@ -2,12 +2,12 @@ "name": "@openstapps/database", "version": "3.0.0", "private": true, - "scripts": { - "start": "docker run --rm -t -p 9200:9200 -p 9300:9300 $(docker build -q .)" - }, "files": [ "config", "Dockerfile", "README.md" - ] + ], + "scripts": { + "start": "docker run --rm -t -p 9200:9200 -p 9300:9300 $(docker build -q .)" + } } diff --git a/backend/e2e-connector/package.json b/backend/e2e-connector/package.json index 51f3409a..8e1826fb 100644 --- a/backend/e2e-connector/package.json +++ b/backend/e2e-connector/package.json @@ -36,7 +36,7 @@ "@openstapps/api": "workspace:*", "@openstapps/core": "workspace:*", "@openstapps/logger": "workspace:*", - "@types/cli-progress": "3.11.0", + "@types/cli-progress": "3.11.5", "@types/express": "4.17.17", "@types/fs-extra": "9.0.13", "@types/json-schema": "7.0.14", @@ -51,21 +51,21 @@ "wait-on": "6.0.1" }, "devDependencies": { - "@openstapps/prettier-config": "workspace:*", "@openstapps/eslint-config": "workspace:*", + "@openstapps/prettier-config": "workspace:*", "@openstapps/tsconfig": "workspace:*", "@types/chai": "4.3.5", "@types/chai-as-promised": "7.1.5", - "@types/chai-spies": "1.0.3", + "@types/chai-spies": "1.0.6", "c8": "7.14.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", - "chai-spies": "1.0.0", + "chai-spies": "1.1.0", "mocha": "10.2.0", "mocha-junit-reporter": "2.2.0", "nock": "13.3.1", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typescript": "5.1.6" }, "tsup": { diff --git a/backend/proxy/package.json b/backend/proxy/package.json index 092d6da3..e4533b48 100644 --- a/backend/proxy/package.json +++ b/backend/proxy/package.json @@ -75,7 +75,7 @@ "sinon": "15.0.4", "sinon-chai": "3.7.0", "ts-node": "10.9.1", - "tsup": "6.7.0" + "tsup": "7.2.0" }, "tsup": { "entry": [ diff --git a/configuration/eslint-config/package.json b/configuration/eslint-config/package.json index 3ce1bb6f..4773e550 100644 --- a/configuration/eslint-config/package.json +++ b/configuration/eslint-config/package.json @@ -18,16 +18,16 @@ "devDependencies": { "@openstapps/tsconfig": "workspace:*", "@types/node": "18.15.3", - "eslint": "8.43.0", + "eslint": "8.53.0", "typescript": "5.1.6" }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": "5.60.1", - "@typescript-eslint/parser": "5.60.1", - "eslint": "8.43.0", - "eslint-config-prettier": "8.8.0", - "eslint-plugin-jsdoc": "46.4.2", - "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-unicorn": "47.0.0" + "@typescript-eslint/eslint-plugin": "6.10.0", + "@typescript-eslint/parser": "6.10.0", + "eslint": "8.53.0", + "eslint-config-prettier": "9.0.0", + "eslint-plugin-jsdoc": "46.8.2", + "eslint-plugin-prettier": "5.0.1", + "eslint-plugin-unicorn": "49.0.0" } } diff --git a/configuration/projectmanagement/package.json b/configuration/projectmanagement/package.json index 1109a072..c9a0813b 100644 --- a/configuration/projectmanagement/package.json +++ b/configuration/projectmanagement/package.json @@ -64,7 +64,7 @@ "mocha": "10.2.0", "mocha-junit-reporter": "2.2.0", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typescript": "5.1.6" }, "tsup": { diff --git a/examples/minimal-connector/package.json b/examples/minimal-connector/package.json index 2f8052e3..5c8de03c 100644 --- a/examples/minimal-connector/package.json +++ b/examples/minimal-connector/package.json @@ -53,7 +53,7 @@ "mocha-junit-reporter": "2.2.0", "nock": "13.3.1", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typescript": "5.1.6" }, "tsup": { diff --git a/examples/minimal-plugin/package.json b/examples/minimal-plugin/package.json index 41b12142..4f782215 100644 --- a/examples/minimal-plugin/package.json +++ b/examples/minimal-plugin/package.json @@ -30,8 +30,8 @@ "dependencies": { "@openstapps/api": "workspace:*", "@openstapps/api-plugin": "workspace:*", - "@openstapps/json-schema-generator": "workspace:*", "@openstapps/core": "workspace:*", + "@openstapps/json-schema-generator": "workspace:*", "@openstapps/logger": "workspace:*", "commander": "10.0.0", "express": "4.18.2", @@ -43,7 +43,7 @@ "@openstapps/tsconfig": "workspace:*", "@types/express": "4.17.17", "@types/node": "18.15.3", - "tsup": "6.7.0", + "tsup": "7.2.0", "typescript": "5.1.6" }, "prettier": "@openstapps/prettier-config", diff --git a/frontend/app/package.json b/frontend/app/package.json index b271bbf7..0cdd7628 100644 --- a/frontend/app/package.json +++ b/frontend/app/package.json @@ -20,16 +20,16 @@ "build:android": "ionic capacitor build android --no-open && cd android && ./gradlew clean assembleDebug && cd ..", "build:prod": "ng build --configuration=production", "build:stats": "ng build --configuration=production --stats-json", - "dev": "ng serve app -c local", - "dev:external": "ionic serve --external", - "dev:prod": "ionic serve --prod", - "dev:virtual-host": "ionic serve --public-host=mobile.app.uni-frankfurt.de --ssl=true --open=false", "changelog": "conventional-changelog -p angular -i src/assets/about/CHANGELOG.md -s -r 0", "check-icons": "ts-node-esm scripts/check-icon-correctness.ts", "chromium:no-cors": "chromium --disable-web-security --user-data-dir=\".browser-data/chromium\"", "chromium:virtual-host": "chromium --host-resolver-rules=\"MAP mobile.app.uni-frankfurt.de:* localhost:8100\" --ignore-certificate-errors", "cypress:open": "cypress open", "cypress:run": "cypress run", + "dev": "ng serve app -c local", + "dev:external": "ionic serve --external", + "dev:prod": "ionic serve --prod", + "dev:virtual-host": "ionic serve --public-host=mobile.app.uni-frankfurt.de --ssl=true --open=false", "docker:build": "sudo docker run -p 8100:8100 -p 35729:35729 -p 53703:53703 -v $PWD:/app -it registry.gitlab.com/openstapps/app bash -c \"npm install && npm run build\"", "docker:build:android": "sudo docker run -p 8100:8100 -p 35729:35729 -p 53703:53703 -v $PWD:/app -it registry.gitlab.com/openstapps/app bash -c \"npm run build:android\"", "docker:enter": "sudo docker run -p 8100:8100 -p 35729:35729 -p 53703:53703 -v $PWD:/app -it registry.gitlab.com/openstapps/app bash", @@ -150,14 +150,14 @@ "@types/leaflet": "1.9.0", "@types/leaflet.markercluster": "1.5.1", "@types/node": "18.15.3", - "@typescript-eslint/eslint-plugin": "5.60.1", - "@typescript-eslint/parser": "5.60.1", + "@typescript-eslint/eslint-plugin": "6.10.0", + "@typescript-eslint/parser": "6.10.0", "cordova-res": "0.15.4", "cypress": "13.2.0", - "eslint": "8.43.0", - "eslint-plugin-jsdoc": "46.4.2", - "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-unicorn": "47.0.0", + "eslint": "8.53.0", + "eslint-plugin-jsdoc": "46.8.2", + "eslint-plugin-prettier": "5.0.1", + "eslint-plugin-unicorn": "49.0.0", "fontkit": "2.0.2", "glob": "10.2.7", "http-server": "14.1.1", diff --git a/package.json b/package.json index 730ad9cb..902649e8 100644 --- a/package.json +++ b/package.json @@ -18,10 +18,10 @@ "lint": "dotenv -c -- turbo run lint", "lint:fix": "dotenv -c -- turbo run lint:fix", "publish-packages": "pnpm changeset version && pnpm syncpack:fix && pnpm install && git add . && git commit -m \"docs: update changelogs for release\n\nci: publish release\" && git push && pnpm changeset tag && git push --follow-tags", - "syncpack": "syncpack list-mismatches && syncpack lint-semver-ranges --types dev,peer,prod", - "syncpack:fix": "syncpack format && syncpack fix-mismatches", "start:backend": "dotenv -c -- turbo run start --filter=backend", "start:database": "dotenv -c -- turbo run start --filter=database", + "syncpack": "syncpack list-mismatches && syncpack lint-semver-ranges --types dev,peer,prod", + "syncpack:fix": "syncpack format && syncpack fix-mismatches", "test": "trap 'node coverage.mjs' EXIT && dotenv -c -- turbo run test", "test:integration": "dotenv -c -- turbo run test:integration", "test:integration:app": "dotenv -c -- turbo run test:integration --filter=@openstapps/app", diff --git a/packages/api-plugin/package.json b/packages/api-plugin/package.json index 5bcd2092..ea49cdb0 100644 --- a/packages/api-plugin/package.json +++ b/packages/api-plugin/package.json @@ -50,18 +50,18 @@ "@openstapps/tsconfig": "workspace:*", "@types/chai": "4.3.5", "@types/chai-as-promised": "7.1.5", - "@types/chai-spies": "1.0.3", + "@types/chai-spies": "1.0.6", "@types/mocha": "10.0.1", "c8": "7.14.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", - "chai-spies": "1.0.0", + "chai-spies": "1.1.0", "conventional-changelog-cli": "2.2.2", "mocha": "10.2.0", "mocha-junit-reporter": "2.2.0", "nock": "13.3.1", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typedoc": "0.24.8", "typescript": "5.1.6" }, diff --git a/packages/api/package.json b/packages/api/package.json index b7e396d9..83705c2e 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -42,20 +42,20 @@ "@openstapps/tsconfig": "workspace:*", "@types/chai": "4.3.5", "@types/chai-as-promised": "7.1.5", - "@types/chai-spies": "1.0.3", + "@types/chai-spies": "1.0.6", "@types/mocha": "10.0.1", "@types/traverse": "0.6.32", "c8": "7.14.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", - "chai-spies": "1.0.0", + "chai-spies": "1.1.0", "conventional-changelog-cli": "2.2.2", "date-fns": "2.30.0", "mocha": "10.2.0", "mocha-junit-reporter": "2.2.0", "traverse": "0.6.7", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typedoc": "0.24.8", "typescript": "5.1.6", "undici": "5.22.1" diff --git a/packages/collection-utils/package.json b/packages/collection-utils/package.json index 0e4006d6..f8fc6b8c 100644 --- a/packages/collection-utils/package.json +++ b/packages/collection-utils/package.json @@ -30,7 +30,7 @@ "mocha": "10.2.0", "mocha-junit-reporter": "2.2.0", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typedoc": "0.24.8", "typescript": "5.1.6" }, diff --git a/packages/core-validator/package.json b/packages/core-validator/package.json index ad715bca..bc7c8e89 100644 --- a/packages/core-validator/package.json +++ b/packages/core-validator/package.json @@ -13,8 +13,8 @@ "core", "validator" ], - "main": "./lib/index.js", - "types": "./lib/index.d.ts", + "main": "./src/index.js", + "types": "./src/types.d.ts", "files": [ "lib", "schema", @@ -23,7 +23,6 @@ "CHANGELOG.md" ], "scripts": { - "build": "tsup-node --dts", "docs": "typedoc --json ./docs/docs.json --options ../../typedoc.base.json src/index.ts", "format": "prettier . -c --ignore-path ../../.gitignore", "format:fix": "prettier --write . --ignore-path ../../.gitignore", @@ -52,21 +51,9 @@ "mocha": "10.2.0", "mocha-junit-reporter": "2.2.0", "nock": "13.3.1", - "ts-node": "10.9.1", - "tsup": "6.7.0", "typedoc": "0.24.8", "typescript": "5.1.6" }, - "tsup": { - "entry": [ - "src/app.ts", - "src/index.ts" - ], - "sourcemap": true, - "clean": true, - "format": "esm", - "outDir": "lib" - }, "prettier": "@openstapps/prettier-config", "eslintConfig": { "extends": [ diff --git a/packages/core-validator/src/index.js b/packages/core-validator/src/index.js new file mode 100644 index 00000000..3f4a3a6d --- /dev/null +++ b/packages/core-validator/src/index.js @@ -0,0 +1,62 @@ +import Ajv from 'ajv'; +import addFormats from 'ajv-formats'; +import schema from '@openstapps/core/schema.json' assert {type: 'json'}; + +/** + * StAppsCore validator + * @typedef {import('ajv').AnySchema} AnySchema + * @typedef {import('@openstapps/core/schema.json').SchemaMap} SchemaMap + */ +export class Validator { + /** + * @private + * @readonly + * @type {Ajv.default} + */ + ajv; + + get errors() { + return this.ajv.errors; + } + + /** + * @param additionalSchemas {AnySchema[]} + */ + constructor(additionalSchemas = []) { + this.ajv = new Ajv.default({ + schemas: [schema, ...additionalSchemas], + verbose: true, + keywords: ['elasticsearch'], + allowUnionTypes: true, + }); + addFormats.default(this.ajv, { + formats: ['date-time', 'time', 'uuid', 'duration'], + mode: 'fast', + }); + } + + /** + * Add additional schemas to the validator + * @param schema {AnySchema[]} + */ + addSchema(...schema) { + this.ajv.addSchema(schema); + } + + /** + * Validates anything against a given schema name or infers schema name from object + * @template {SchemaMap[keyof SchemaMap]} T + * + * @param instance {unknown} Instance to validate + * @param schema {import('./types.js').NameOf} Name of schema to validate instance against or the schema itself + * @returns {instance is T} + * + */ /** + * @param instance {unknown} + * @param schema {Ajv.Schema | string} + * @returns {boolean} + */ + validate(instance, schema) { + return this.ajv.validate(typeof schema === 'string' ? `#/definitions/${schema}` : schema, instance); + } +} diff --git a/packages/core-validator/src/index.ts b/packages/core-validator/src/index.ts deleted file mode 100644 index 37c760bf..00000000 --- a/packages/core-validator/src/index.ts +++ /dev/null @@ -1,63 +0,0 @@ -import Ajv, {AnySchema} from 'ajv'; -import addFormats from 'ajv-formats'; -import schema from '@openstapps/core/schema.json' assert {type: 'json'}; -import type {SchemaMap} from '@openstapps/core/schema.json'; - -export type RemoveNeverProperties = { - [K in Exclude< - keyof T, - { - // eslint-disable-next-line @typescript-eslint/ban-types - [P in keyof T]: T[P] extends Function ? P : never; - }[keyof T] - >]: T[K]; -}; - -export type IncludeProperty = RemoveNeverProperties<{ - [K in keyof T]: T[K] extends E ? T[K] : never; -}>; - -type NameOf = keyof IncludeProperty; - -/** - * StAppsCore validator - */ -export class Validator { - private readonly ajv: Ajv.default; - - get errors() { - return this.ajv.errors; - } - - constructor(additionalSchemas: AnySchema[] = []) { - this.ajv = new Ajv.default({ - schemas: [schema, ...additionalSchemas], - verbose: true, - keywords: ['elasticsearch'], - allowUnionTypes: true, - }); - addFormats.default(this.ajv, { - formats: ['date-time', 'time', 'uuid', 'duration'], - mode: 'fast', - }); - } - - /** - * Add additional schemas to the validator - */ - public addSchema(...schema: AnySchema[]) { - this.ajv.addSchema(schema); - } - - /** - * Validates anything against a given schema name or infers schema name from object - * @param instance Instance to validate - * @param schema Name of schema to validate instance against or the schema itself - */ - public validate(instance: unknown, schema: NameOf): instance is T; - public validate(instance: unknown, schema: Ajv.Schema): boolean; - public validate(instance: unknown, schema: string): boolean; - public validate(instance: unknown, schema: Ajv.Schema | string): boolean { - return this.ajv.validate(typeof schema === 'string' ? `#/definitions/${schema}` : schema, instance); - } -} diff --git a/packages/core-validator/src/types.d.ts b/packages/core-validator/src/types.d.ts new file mode 100644 index 00000000..3ce620d3 --- /dev/null +++ b/packages/core-validator/src/types.d.ts @@ -0,0 +1,19 @@ +import {SchemaMap} from '@openstapps/core/schema.json'; + +export type RemoveNeverProperties = { + [K in Exclude< + keyof T, + { + // eslint-disable-next-line @typescript-eslint/ban-types + [P in keyof T]: T[P] extends Function ? P : never; + }[keyof T] + >]: T[K]; +}; + +export type IncludeProperty = RemoveNeverProperties<{ + [K in keyof T]: T[K] extends E ? T[K] : never; +}>; + +export type NameOf = keyof IncludeProperty; + +export {Validator} from './index.js'; diff --git a/packages/core/package.json b/packages/core/package.json index f8b47bfa..3a0ded9a 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -25,20 +25,6 @@ ], "main": "./lib/index.js", "types": "./lib/index.d.ts", - "exports": { - ".": { - "import": "./lib/index.js", - "types": "./lib/index.d.ts" - }, - "./schema.json": { - "import": "./lib/schema.json", - "types": "./lib/schema.json.d.ts" - }, - "./elasticsearch.json": { - "import": "./lib/elasticsearch.json", - "types": "./lib/elasticsearch.json.d.ts" - } - }, "files": [ "lib", "test/resources", @@ -84,7 +70,7 @@ "source-map-support": "0.5.21", "surge": "0.23.1", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typedoc": "0.24.8", "typescript": "5.1.6" }, @@ -122,5 +108,19 @@ "eslintIgnore": [ "resources", "openapi" - ] + ], + "exports": { + ".": { + "import": "./lib/index.js", + "types": "./lib/index.d.ts" + }, + "./schema.json": { + "import": "./lib/schema.json", + "types": "./lib/schema.json.d.ts" + }, + "./elasticsearch.json": { + "import": "./lib/elasticsearch.json", + "types": "./lib/elasticsearch.json.d.ts" + } + } } diff --git a/packages/easy-ast/package.json b/packages/easy-ast/package.json index 09d368bc..0ee352c1 100644 --- a/packages/easy-ast/package.json +++ b/packages/easy-ast/package.json @@ -40,7 +40,7 @@ "mocha": "10.2.0", "mocha-junit-reporter": "2.2.0", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typedoc": "0.24.8" }, "tsup": { diff --git a/packages/es-mapping-generator/package.json b/packages/es-mapping-generator/package.json index 93367560..2fc9984b 100644 --- a/packages/es-mapping-generator/package.json +++ b/packages/es-mapping-generator/package.json @@ -5,8 +5,8 @@ "type": "module", "license": "GPL-3.0-only", "author": "Thea Schöbl ", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", + "main": "./src/index.js", + "types": "./src/types.d.ts", "files": [ "app.js", "lib", @@ -15,20 +15,19 @@ "CHANGELOG.md" ], "scripts": { - "build": "tsup-node --dts", "format": "prettier . -c --ignore-path ../../.gitignore", "format:fix": "prettier --write . --ignore-path ../../.gitignore", - "lint": "eslint --ext .ts src/", - "lint:fix": "eslint --ext .ts src/", + "lint": "tsc --noEmit && eslint --ext .js src/", + "lint:fix": "eslint --ext .js src/", "test": "c8 mocha" }, "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", "@elastic/elasticsearch": "8.10.0", "@openstapps/json-schema-generator": "workspace:*", "@openstapps/tsup-plugin": "workspace:*", - "@types/json-schema": "7.0.14" + "@types/json-schema": "7.0.14", + "ajv": "8.12.0", + "ajv-formats": "2.1.1" }, "devDependencies": { "@openstapps/eslint-config": "workspace:*", @@ -47,7 +46,7 @@ "mocha-junit-reporter": "2.2.0", "nock": "13.3.1", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typedoc": "0.24.8", "typescript": "5.1.6" }, diff --git a/packages/es-mapping-generator/src/dsl/schema.ts b/packages/es-mapping-generator/src/dsl/schema.ts deleted file mode 100644 index db968308..00000000 --- a/packages/es-mapping-generator/src/dsl/schema.ts +++ /dev/null @@ -1,60 +0,0 @@ -import {MappingProperty, SearchRequest} from '@elastic/elasticsearch/lib/api/types.js'; -import Ajv from 'ajv'; -import {readFile} from 'fs/promises'; -import {fileURLToPath} from 'url'; -import path from 'path'; -import {Context} from '../generator/context.js'; - -/** - * @validatable - */ -export interface ElasticsearchOptionsDSL { - /** - * Mark an interface as indexable - */ - indexable?: true; - /** - * Inherit customization options from another item - */ - extends?: string[]; - /** - * Completely override the property - */ - override?: MappingProperty; - /** - * Merge property values - */ - merge?: MappingProperty; - /** - * Modify the search request - * - * Supports `{name}`, `{type}` and `{prop}` templates substitutions anywhere - */ - search?: Partial; -} - -const schema = JSON.parse( - await readFile(path.join(path.dirname(fileURLToPath(import.meta.url)), 'index.schema.json'), 'utf8'), -); -const ajv = new Ajv.default({schemas: [schema], allowUnionTypes: true}); - -/** - * Validate that the options are valid - */ -export function validateElasticsearchOptionsDsl( - context: Context, - value: unknown, -): value is ElasticsearchOptionsDSL { - return ajv.validate('#/definitions/ElasticsearchOptionsDSL', value) - ? true - : context.bail(JSON.stringify(ajv.errors)); -} - -/** - * Validate that the mapping result is correct - */ -export function validateMappingResult(context: Context, value: unknown): value is MappingProperty { - return ajv.validate('#/definitions/MappingProperty', value) - ? true - : context.bail(JSON.stringify(ajv.errors)); -} diff --git a/packages/es-mapping-generator/src/generator/base.ts b/packages/es-mapping-generator/src/generator/base.js similarity index 70% rename from packages/es-mapping-generator/src/generator/base.ts rename to packages/es-mapping-generator/src/generator/base.js index 62f23baf..2965fde3 100644 --- a/packages/es-mapping-generator/src/generator/base.ts +++ b/packages/es-mapping-generator/src/generator/base.js @@ -1,22 +1,24 @@ -import {JSONSchema7} from 'json-schema'; -import {MappingProperty} from '@elastic/elasticsearch/lib/api/types.js'; import {transformObject} from './transformers/object.js'; import {transformString} from './transformers/string.js'; -import {Context} from './context.js'; import {transformDefinition} from './definition.js'; /** * Transform JSONSchema without applying custom tag logic + * @typedef {import('json-schema').JSONSchema7} JSONSchema + * + * @param context {import('./context.js').Context} + * @param definition {JSONSchema} + * @returns {import('../types.js').MappingProperty} */ -export function transformBase(context: Context, definition: JSONSchema7): MappingProperty { +export function transformBase(context, definition) { if (definition.anyOf) { - return context.resolveUnion(definition.anyOf as JSONSchema7[]); + return context.resolveUnion(/** @type {JSONSchema[]} */ (definition.anyOf)); } switch (definition.type) { case 'array': { if (Array.isArray(definition.items)) { - return context.resolveUnion(definition.items as JSONSchema7[]); + return context.resolveUnion(/** @type {JSONSchema[]} */ (definition.items)); } else if (typeof definition.items === 'object') { return transformDefinition(context, definition.items); } else { diff --git a/packages/es-mapping-generator/src/generator/context.js b/packages/es-mapping-generator/src/generator/context.js new file mode 100644 index 00000000..53b8b119 --- /dev/null +++ b/packages/es-mapping-generator/src/generator/context.js @@ -0,0 +1,159 @@ +import {transformDefinition} from './definition.js'; +import crypto from 'crypto'; +import deepmerge from 'deepmerge'; +import {sanitizeTypeName} from './mapping-generator.js'; +import {renderTemplate} from '../template.js'; + +/** + * Get the name from a $ref such as `#/definitions/SCThing` + * @param ref {string} + * @returns {string} + */ +function getNameFromRef(ref) { + return decodeURI(ref).replace(/^#\/definitions\//, ''); +} + +/** + * @typedef {import('@elastic/elasticsearch/lib/api/types.d.ts').MappingProperty} MappingProperty + * @typedef {import('@elastic/elasticsearch/lib/api/types.d.ts').MappingDynamicProperty} MappingDynamicProperty + * @typedef {import('@elastic/elasticsearch/lib/api/types.d.ts').SearchRequest} SearchRequest + * @typedef {import('json-schema').JSONSchema7} JSONSchema + * + * + * @property {string} thingType + * @property {string[]} path + * @property {string[]} propertyPath + * @property {Map>} dependencies + */ +export class Context { + /** + * @param generator {import('./mapping-generator.js').MappingGenerator} + * @param thingType {string} + * @param path {string[]} + * @param propertyPath {string[]} + * @param dependencies {Map>} + */ + constructor(generator, thingType, path, propertyPath, dependencies) { + this.generator = generator; + this.thingType = thingType; + this.path = path; + this.propertyPath = propertyPath; + this.dependencies = dependencies; + } + + /** + * @param reference {string} + * @returns {MappingProperty} + */ + resolveReference(reference) { + return this.deriveContext(reference)[1]; + } + + /** + * @param types {JSONSchema[]} + * @returns {MappingDynamicProperty} + */ + resolveUnion(types) { + for (const type of types) { + const [name] = this.deriveContext(type.$ref ?? type); + this.addDependency(name, this.propertyPath.join('.')); + } + + return { + type: '{dynamic_property}', + }; + } + + /** + * @private + * @param reference {string | JSONSchema} + * @returns {[dependency: string, mapping: MappingProperty]} + */ + deriveContext(reference) { + let referenceName = typeof reference === 'string' ? getNameFromRef(reference) : undefined; + if (referenceName === undefined) this.bail(`Can't find reference name for ${reference}`); + let definition = /** @type {JSONSchema} */ (typeof reference === 'string' ? undefined : reference); + + if (!definition && !this.generator.cache.has(referenceName)) { + const reference = this.generator.project.definitions[referenceName]; + if (typeof reference === 'boolean') this.bail('Invalid schema'); + definition = reference; + if (typeof definition !== 'object') this.bail(`Invalid path ${referenceName}`); + } + + if (!referenceName || !this.generator.cache.has(referenceName)) { + const derivedContext = new Context( + this.generator, + this.thingType, + referenceName ? [referenceName] : [], + this.propertyPath, + new Map(), + ); + const result = transformDefinition(derivedContext, definition); + referenceName ??= crypto.createHash('md5').update(JSON.stringify(result)).digest('hex'); + + this.generator.cache.set(referenceName, {mapping: result, dependencies: derivedContext.dependencies}); + } + + const cached = this.generator.cache.get(referenceName); + if (!cached) this.bail('Internal error'); + for (const [name, paths] of cached.dependencies) { + for (const path of paths) { + this.addDependency(name, [...this.propertyPath.slice(0, -1), path].join('.')); + } + } + return [referenceName, cached.mapping]; + } + + /** + * @param modification {Partial} + */ + registerSearchMod(modification) { + this.generator.searchMods.mods = deepmerge( + this.generator.searchMods.mods, + renderTemplate(modification, [ + ['{name}', this.path[0]], + ['{prop}', this.propertyPath.join('.')], + ['{type}', this.thingType], + ['{_type}', sanitizeTypeName(this.thingType)], + ]), + ); + } + + /** + * @private + * @param name {string} + * @param path {string} + */ + addDependency(name, path) { + if (!this.dependencies.has(name)) { + this.dependencies.set(name, new Set([path])); + } else { + this.dependencies.get(name)?.add(path); + } + } + + /** + * Step down into a property + * @param property {string} + * @returns {Context} + */ + step(property) { + return new Context( + this.generator, + this.thingType, + [...this.path, property], + [...this.propertyPath, property], + this.dependencies, + ); + } + + /** + * Bail and throw + * @param reason {string} + * @returns {never} + */ + bail(reason) { + throw new Error(`${this.path.join('.')} ${reason}`); + } +} diff --git a/packages/es-mapping-generator/src/generator/context.ts b/packages/es-mapping-generator/src/generator/context.ts deleted file mode 100644 index 411a174a..00000000 --- a/packages/es-mapping-generator/src/generator/context.ts +++ /dev/null @@ -1,115 +0,0 @@ -import {JSONSchema7} from 'json-schema'; -import {transformDefinition} from './definition.js'; -import crypto from 'crypto'; -import { - MappingProperty, - MappingDynamicProperty, - SearchRequest, -} from '@elastic/elasticsearch/lib/api/types.js'; -import deepmerge from 'deepmerge'; -import {MappingGenerator, sanitizeTypeName} from './mapping-generator.js'; -import {renderTemplate} from '../template.js'; - -/** - * Get the name from a $ref such as `#/definitions/SCThing` - */ -function getNameFromRef(ref: string): string { - return decodeURI(ref).replace(/^#\/definitions\//, ''); -} - -export class Context { - constructor( - readonly generator: MappingGenerator, - readonly thingType: string, - readonly path: string[], - readonly propertyPath: string[], - readonly dependencies: Map>, - ) {} - - resolveReference(reference: string): MappingProperty { - return this.deriveContext(reference)[1]; - } - - resolveUnion(types: JSONSchema7[]): MappingDynamicProperty { - for (const type of types) { - const [name] = this.deriveContext(type.$ref ?? type); - this.addDependency(name, this.propertyPath.join('.')); - } - - return { - type: '{dynamic_property}', - }; - } - - private deriveContext(reference: string | JSONSchema7): [dependencyName: string, mapping: MappingProperty] { - let referenceName = typeof reference === 'string' ? getNameFromRef(reference) : undefined; - let definition = typeof reference === 'string' ? undefined : reference; - - if (!definition && !this.generator.cache.has(referenceName!)) { - definition = this.generator.project.definitions![referenceName!] as JSONSchema7; - if (typeof definition !== 'object') this.bail(`Invalid path ${referenceName!}`); - } - - if (!referenceName || !this.generator.cache.has(referenceName)) { - const derivedContext = new Context( - this.generator, - this.thingType, - referenceName ? [referenceName] : [], - this.propertyPath, - new Map(), - ); - const result = transformDefinition(derivedContext, definition!); - referenceName ??= crypto.createHash('md5').update(JSON.stringify(result)).digest('hex'); - - this.generator.cache.set(referenceName, {mapping: result, dependencies: derivedContext.dependencies}); - } - - const {mapping, dependencies} = this.generator.cache.get(referenceName)!; - for (const [name, paths] of dependencies) { - for (const path of paths) { - this.addDependency(name, [...this.propertyPath.slice(0, -1), path].join('.')); - } - } - return [referenceName, mapping]; - } - - registerSearchMod(modification: Partial) { - this.generator.searchMods.mods = deepmerge>( - this.generator.searchMods.mods, - renderTemplate(modification, [ - ['{name}', this.path[0]], - ['{prop}', this.propertyPath.join('.')], - ['{type}', this.thingType], - ['{_type}', sanitizeTypeName(this.thingType)], - ]), - ); - } - - private addDependency(name: string, path: string) { - if (!this.dependencies.has(name)) { - this.dependencies.set(name, new Set([path])); - } else { - this.dependencies.get(name)!.add(path); - } - } - - /** - * Step down into a property - */ - step(property: string): Context { - return new Context( - this.generator, - this.thingType, - [...this.path, property], - [...this.propertyPath, property], - this.dependencies, - ); - } - - /** - * Bail and throw - */ - bail(reason: string): never { - throw new Error(`${this.path.join('.')} ${reason}`); - } -} diff --git a/packages/es-mapping-generator/src/generator/definition.ts b/packages/es-mapping-generator/src/generator/definition.js similarity index 57% rename from packages/es-mapping-generator/src/generator/definition.ts rename to packages/es-mapping-generator/src/generator/definition.js index 3ae15705..26836cf1 100644 --- a/packages/es-mapping-generator/src/generator/definition.ts +++ b/packages/es-mapping-generator/src/generator/definition.js @@ -1,27 +1,29 @@ -import {JSONSchema7} from 'json-schema'; -import {MappingProperty} from '@elastic/elasticsearch/lib/api/types.js'; import {transformBase} from './base.js'; import {Context} from './context.js'; import deepmerge from 'deepmerge'; -import {resolveDsl} from './dsl.js'; +import {resolveOptions} from './options.js'; import {getTags, INDEXABLE_TAG_NAME} from './tags.js'; /** * Transform JSONSchema + * @typedef {import('../types.js').MappingProperty} MappingProperty + * @param context {Context} + * @param definition {import('json-schema').JSONSchema7} + * @returns {MappingProperty} */ -export function transformDefinition(context: Context, definition: JSONSchema7): MappingProperty { +export function transformDefinition(context, definition) { if (definition.$ref) return context.resolveReference(definition.$ref); const tags = getTags(definition); tags.delete(INDEXABLE_TAG_NAME); let base = transformBase(context, definition); if (tags.size > 0) { - const options = resolveDsl(context, {extends: [...tags]}); + const options = resolveOptions(context, {extends: [...tags]}); if (options.override) { base = options.override; } if (options.merge) { - base = deepmerge(base, options.merge); + base = /** @type {typeof deepmerge} */ (deepmerge)(base, options.merge); } if (options.search) { context.registerSearchMod(options.search); diff --git a/packages/es-mapping-generator/src/generator/index.ts b/packages/es-mapping-generator/src/generator/index.js similarity index 77% rename from packages/es-mapping-generator/src/generator/index.ts rename to packages/es-mapping-generator/src/generator/index.js index bbf25848..fe9f8fb8 100644 --- a/packages/es-mapping-generator/src/generator/index.ts +++ b/packages/es-mapping-generator/src/generator/index.js @@ -1,34 +1,16 @@ -import type {JSONSchema7} from 'json-schema'; -import {ElasticsearchOptionsDSL} from '../dsl/schema.js'; -import {IndicesPutTemplateRequest, MappingProperty} from '@elastic/elasticsearch/lib/api/types.js'; import {MappingGenerator} from './mapping-generator.js'; import {getTags, INDEXABLE_TAG_NAME} from './tags.js'; -import {ElasticsearchConfig} from '../../schema/mappings.js'; - -export interface GeneratorOptions { - /** - * Presets you can extend - */ - presets: Record; - /** - * Override specific types - */ - overrides: Record; - /** - * Template for the generated index request - * - * Supports `{type}` and `{sanitized_type}` (same as `{type}`, but no spaces) template substitutions - */ - template: Partial; -} /** * Fully transform a project + * @param project {import('json-schema').JSONSchema7} + * @returns {import('../../schema/mappings.js').default} */ -export function transformProject(project: JSONSchema7): ElasticsearchConfig { +export function transformProject(project) { const context = new MappingGenerator(project, OPTIONS); - const results: Record = {}; + /** @type {Record} */ + const results = {}; for (const name in project.definitions) { const definition = project.definitions[name]; if (typeof definition !== 'object' || !getTags(definition).has(INDEXABLE_TAG_NAME)) continue; @@ -42,7 +24,8 @@ export function transformProject(project: JSONSchema7): ElasticsearchConfig { }; } -const OPTIONS: GeneratorOptions = { +/** @type {import('../types.js').GeneratorOptions} */ +const OPTIONS = { template: { name: 'template_{_type}', index_patterns: 'stapps_{_type}*', @@ -132,7 +115,7 @@ const OPTIONS: GeneratorOptions = { language: 'de', country: 'DE', variant: '@collation=phonebook', - } as never, + }, }, }, }, diff --git a/packages/es-mapping-generator/src/generator/mapping-generator.js b/packages/es-mapping-generator/src/generator/mapping-generator.js new file mode 100644 index 00000000..f919b83c --- /dev/null +++ b/packages/es-mapping-generator/src/generator/mapping-generator.js @@ -0,0 +1,88 @@ +import {Context} from './context.js'; +import deepmerge from 'deepmerge'; +import {renderTemplate} from '../template.js'; + +/** + * Sanitize a type name + * @param typeName {string} + * @returns {string} + */ +export function sanitizeTypeName(typeName) { + return typeName.replaceAll(' ', '_'); +} + +/** + * @typedef {import('json-schema').JSONSchema7} JSONSchema + * @typedef {import('../types.js').MappingProperty} MappingProperty + * @typedef {import('../types.js').MappingTypeMapping} MappingTypeMapping + * @typedef {import('../types.js').IndicesPutTemplateRequest} IndicesPutTemplateRequest + * @typedef {import('../types.js').SearchRequest} SearchRequest + */ +export class MappingGenerator { + /** @type {Map>}>} */ + cache; + + /** @type {{mods: Partial}} */ + searchMods = {mods: {}}; + + /** + * @param project {JSONSchema & Pick, 'definitions'>} + * @param options {import('../types.js').GeneratorOptions} + */ + constructor(project, options) { + if (!project.definitions) throw new Error('Invalid schema'); + this.project = project; + this.template = options.template ?? {}; + this.presets = new Map(Object.entries(options.presets)); + this.cache = new Map( + Object.entries(options.overrides).map(([name, mapping]) => [ + name, + { + mapping, + dependencies: new Map(), + }, + ]), + ); + } + + /** + * @param name {string} + * @returns {[string, IndicesPutTemplateRequest]} + */ + buildTemplate(name) { + const definition = this.project.definitions[name]; + if (typeof definition === 'boolean' || !definition.properties) throw new Error('Invalid schema'); + const thingTypeDefinition = definition.properties.type; + if (typeof thingTypeDefinition === 'boolean') throw new Error('Invalid schema'); + const thingType = thingTypeDefinition.const; + + if (typeof thingType !== 'string') { + throw new TypeError(`${name} needs a valid thing type`); + } + const mappingContext = new Context(this, thingType, [name], [], new Map()); + const mappings = mappingContext.resolveReference(name); + + const request = deepmerge( + {mappings: mappings}, + renderTemplate(this.template, [ + ['{name}', name], + ['{type}', thingType], + ['{_type}', sanitizeTypeName(thingType)], + ]), + ); + + if (mappingContext.dependencies.size > 0) { + request.mappings.dynamic_templates = []; + for (const [name, paths] of mappingContext.dependencies) { + request.mappings.dynamic_templates.push({ + [name]: { + path_match: paths.size > 1 ? [...paths] : paths.values().next().value, + mapping: mappingContext.resolveReference(name), + }, + }); + } + } + + return [thingType, request]; + } +} diff --git a/packages/es-mapping-generator/src/generator/mapping-generator.ts b/packages/es-mapping-generator/src/generator/mapping-generator.ts deleted file mode 100644 index 4ec3dfec..00000000 --- a/packages/es-mapping-generator/src/generator/mapping-generator.ts +++ /dev/null @@ -1,76 +0,0 @@ -import {GeneratorOptions} from './index.js'; -import {JSONSchema7} from 'json-schema'; -import {ElasticsearchOptionsDSL} from '../dsl/schema.js'; -import { - IndicesPutTemplateRequest, - MappingProperty, - MappingTypeMapping, - SearchRequest, -} from '@elastic/elasticsearch/lib/api/types.js'; -import {Context} from './context.js'; -import deepmerge from 'deepmerge'; -import {renderTemplate} from '../template.js'; - -/** - * Sanitize a type name - */ -export function sanitizeTypeName(typeName: string): string { - return typeName.replaceAll(' ', '_'); -} - -export class MappingGenerator { - readonly presets: Map; - - readonly cache: Map>}>; - - readonly searchMods: {mods: Partial} = {mods: {}}; - - readonly template: Partial; - - constructor(readonly project: JSONSchema7, options: GeneratorOptions) { - this.template = options.template ?? {}; - this.presets = new Map(Object.entries(options.presets)); - this.cache = new Map( - Object.entries(options.overrides).map(([name, mapping]) => [ - name, - { - mapping, - dependencies: new Map(), - }, - ]), - ); - } - - buildTemplate(name: string): [string, IndicesPutTemplateRequest] { - const thingType = ((this.project.definitions![name] as JSONSchema7).properties!.type as JSONSchema7) - .const; - if (typeof thingType !== 'string') { - throw new TypeError(`${name} needs a valid thing type`); - } - const mappingContext = new Context(this, thingType, [name], [], new Map()); - const mappings = mappingContext.resolveReference(name); - - const request: IndicesPutTemplateRequest = deepmerge( - {mappings: mappings as MappingTypeMapping}, - renderTemplate(this.template, [ - ['{name}', name], - ['{type}', thingType], - ['{_type}', sanitizeTypeName(thingType)], - ]), - ); - - if (mappingContext.dependencies.size > 0) { - request.mappings!.dynamic_templates = []; - for (const [name, paths] of mappingContext.dependencies) { - request.mappings!.dynamic_templates.push({ - [name]: { - path_match: paths.size > 1 ? [...paths] : paths.values().next().value, - mapping: mappingContext.resolveReference(name), - }, - }); - } - } - - return [thingType, request]; - } -} diff --git a/packages/es-mapping-generator/src/generator/dsl.ts b/packages/es-mapping-generator/src/generator/options.js similarity index 53% rename from packages/es-mapping-generator/src/generator/dsl.ts rename to packages/es-mapping-generator/src/generator/options.js index e612a06d..e938c031 100644 --- a/packages/es-mapping-generator/src/generator/dsl.ts +++ b/packages/es-mapping-generator/src/generator/options.js @@ -1,18 +1,15 @@ import {Context} from './context.js'; -import {ElasticsearchOptionsDSL} from '../dsl/schema.js'; import deepmerge from 'deepmerge'; -type ResolvedOptions = Omit; - /** - * Resolve DSL inheritance + * Resolve option inheritance + * @param context {Context} + * @param options {import('../types.js').ElasticsearchOptions} + * @returns {import('../types.js').ResolvedOptions} */ -export function resolveDsl( - context: Context, - {extends: parents, ...result}: ElasticsearchOptionsDSL, -): ResolvedOptions { +export function resolveOptions(context, {extends: parents, ...result}) { for (const reference of parents ?? []) { - result = deepmerge( + result = deepmerge( result, reference.startsWith('@') ? resolveReferencePath(context, reference) @@ -25,20 +22,27 @@ export function resolveDsl( /** * Resolve preset references + * @param context {Context} + * @param reference {string} + * @returns {import('../types.js').ResolvedOptions} */ -function resolvePresetReference(context: Context, reference: string): ResolvedOptions { +function resolvePresetReference(context, reference) { if (!context.generator.presets.has(reference)) return context.bail(`Missing preset ${reference}`); - return resolveDsl(context, context.generator.presets.get(reference)!); + return resolveOptions(context, context.generator.presets.get(reference)); } /** * Resolve @references + * @param context {Context} + * @param reference {string} + * @returns {import('../types.js').ResolvedOptions} */ -function resolveReferencePath(context: Context, reference: string): ResolvedOptions { +function resolveReferencePath(context, reference) { const [type, ...path] = reference.replace(/^@/, '').split('.'); let declaration = context.resolveReference(type); while (path.length > 0) { - const property = path.shift()!; + const property = path.shift(); + if (!property) context.bail('internal logic error'); if (!('properties' in declaration && declaration.properties && property in declaration.properties)) context.bail(`Invalid reference ${reference}`); diff --git a/packages/es-mapping-generator/src/generator/tags.js b/packages/es-mapping-generator/src/generator/tags.js new file mode 100644 index 00000000..9c750b43 --- /dev/null +++ b/packages/es-mapping-generator/src/generator/tags.js @@ -0,0 +1,14 @@ +export const INDEXABLE_TAG_NAME = 'indexable'; + +/** + * Get elasticsearch tags + * @param definition {import('json-schema').JSONSchema7} + * @returns {Set} + */ +export function getTags(definition) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return new Set( + /** @type {{elasticsearch?: string}} */ (definition).elasticsearch?.split(/\s/).map(it => it.trim()) ?? + [], + ); +} diff --git a/packages/es-mapping-generator/src/generator/tags.ts b/packages/es-mapping-generator/src/generator/tags.ts deleted file mode 100644 index d1438df5..00000000 --- a/packages/es-mapping-generator/src/generator/tags.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {JSONSchema7} from 'json-schema'; - -export const INDEXABLE_TAG_NAME = 'indexable'; - -/** - * Get elasticsearch tags - */ -export function getTags(definition: JSONSchema7): Set { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return new Set( - (definition as {elasticsearch: string}).elasticsearch?.split(/\s/).map(it => it.trim()) ?? [], - ); -} diff --git a/packages/es-mapping-generator/src/generator/transformers/object.js b/packages/es-mapping-generator/src/generator/transformers/object.js new file mode 100644 index 00000000..4d05d37e --- /dev/null +++ b/packages/es-mapping-generator/src/generator/transformers/object.js @@ -0,0 +1,27 @@ +import {transformDefinition} from '../definition.js'; + +/** + * Transform a JSON Schema with `object` type + * @typedef {import('../../types.js').MappingProperty} MappingProperty + * @typedef {import('json-schema').JSONSchema7} JSONSchema + * + * @param context {import('../context.js').Context} + * @param definition {JSONSchema} + * @returns {MappingProperty} + */ +export function transformObject(context, definition) { + /** @satisfies {MappingProperty} */ + const value = { + dynamic: definition.additionalProperties === true ? undefined : 'strict', + properties: /** @type {Record} */ ({}), + }; + + for (const key in definition.properties) { + value.properties[key] = transformDefinition( + context.step(key), + /** @type {JSONSchema} */ (definition.properties[key]), + ); + } + + return value; +} diff --git a/packages/es-mapping-generator/src/generator/transformers/object.ts b/packages/es-mapping-generator/src/generator/transformers/object.ts deleted file mode 100644 index 957e7b01..00000000 --- a/packages/es-mapping-generator/src/generator/transformers/object.ts +++ /dev/null @@ -1,20 +0,0 @@ -import {JSONSchema7} from 'json-schema'; -import {MappingProperty} from '@elastic/elasticsearch/lib/api/types.js'; -import {transformDefinition} from '../definition.js'; -import {Context} from '../context.js'; - -/** - * Transform a JSON Schema with `object` type - */ -export function transformObject(context: Context, definition: JSONSchema7): MappingProperty { - const value = { - dynamic: definition.additionalProperties === true ? undefined : 'strict', - properties: {} as Record, - } satisfies MappingProperty; - - for (const key in definition.properties!) { - value.properties[key] = transformDefinition(context.step(key), definition.properties[key] as JSONSchema7); - } - - return value; -} diff --git a/packages/es-mapping-generator/src/generator/transformers/string.ts b/packages/es-mapping-generator/src/generator/transformers/string.js similarity index 52% rename from packages/es-mapping-generator/src/generator/transformers/string.ts rename to packages/es-mapping-generator/src/generator/transformers/string.js index dfb780d9..189b59e6 100644 --- a/packages/es-mapping-generator/src/generator/transformers/string.ts +++ b/packages/es-mapping-generator/src/generator/transformers/string.js @@ -1,7 +1,7 @@ -import {JSONSchema7} from 'json-schema'; -import {MappingProperty} from '@elastic/elasticsearch/lib/api/types.js'; - -const stringFormats = new Map([ +/** + * @type {Map} + */ +const stringFormats = new Map([ ['date', {type: 'date', format: 'date'}], ['time', {type: 'date', format: 'time'}], ['date-time', {type: 'date', format: 'date_optional_time'}], @@ -11,9 +11,11 @@ const stringFormats = new Map([ /** * Transform a JSON Schema with `string` type + * @param definition {import('json-schema').JSONSchema7} + * @returns {import('../../types.js').MappingProperty} */ -export function transformString(definition: JSONSchema7): MappingProperty { +export function transformString(definition) { return definition.format && stringFormats.has(definition.format) - ? stringFormats.get(definition.format)! + ? stringFormats.get(definition.format) ?? {type: 'keyword'} : {type: 'keyword'}; } diff --git a/packages/es-mapping-generator/src/index.ts b/packages/es-mapping-generator/src/index.js similarity index 61% rename from packages/es-mapping-generator/src/index.ts rename to packages/es-mapping-generator/src/index.js index 35f51f97..4a1be57b 100644 --- a/packages/es-mapping-generator/src/index.ts +++ b/packages/es-mapping-generator/src/index.js @@ -1,18 +1,19 @@ import {transformProject} from './generator/index.js'; -import {SchemaConsumer} from '@openstapps/json-schema-generator'; import {readFile} from 'fs/promises'; -import path from 'path'; +import {join, dirname} from 'path'; import {fileURLToPath} from 'url'; const mappingTypes = await readFile( - path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'schema', 'mappings.d.ts'), + join(dirname(fileURLToPath(import.meta.url)), '..', 'schema', 'mappings.d.ts'), 'utf8', ); /** * JSON Schema Generator plugin for Elasticsearch Mappings + * @param fileName {string} + * @returns {[string, import('@openstapps/json-schema-generator').SchemaConsumer]} */ -export function elasticsearchMappingGenerator(fileName: string): [string, SchemaConsumer] { +export function elasticsearchMappingGenerator(fileName) { return [ 'Elasticsearch-Mappings', function (schema) { diff --git a/packages/es-mapping-generator/src/template.js b/packages/es-mapping-generator/src/template.js new file mode 100644 index 00000000..dbc5113d --- /dev/null +++ b/packages/es-mapping-generator/src/template.js @@ -0,0 +1,15 @@ +/** + * Render a template + * @template T + * @param template {T} The template to render (must be stringify-able) + * @param substitutions {[string, string][]} the substitutions + * @returns {T} + */ +export function renderTemplate(template, substitutions) { + return JSON.parse( + substitutions.reduce( + (template, [search, replace]) => template.replaceAll(search, replace), + JSON.stringify(template), + ), + ); +} diff --git a/packages/es-mapping-generator/src/template.ts b/packages/es-mapping-generator/src/template.ts deleted file mode 100644 index 5476f382..00000000 --- a/packages/es-mapping-generator/src/template.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Render a template - * @param template The template to render (must be stringify-able) - * @param substitutions the substitutions - */ -export function renderTemplate(template: T, substitutions: [string, string][]): T { - return JSON.parse( - substitutions.reduce( - (template, [search, replace]) => template.replaceAll(search, replace), - JSON.stringify(template), - ), - ); -} diff --git a/packages/es-mapping-generator/src/types.d.ts b/packages/es-mapping-generator/src/types.d.ts new file mode 100644 index 00000000..25989f46 --- /dev/null +++ b/packages/es-mapping-generator/src/types.d.ts @@ -0,0 +1,56 @@ +import {MappingProperty, SearchRequest} from '@elastic/elasticsearch/lib/api/types.d.ts'; +import {IndicesPutTemplateRequest} from '@elastic/elasticsearch/lib/api/types.js'; + +export { + MappingProperty, + SearchRequest, + MappingDynamicProperty, + MappingTypeMapping, + IndicesPutTemplateRequest, +} from '@elastic/elasticsearch/lib/api/types.d.ts'; + +export interface ElasticsearchOptions { + /** + * Mark an interface as indexable + */ + indexable?: true; + /** + * Inherit customization options from another item + */ + extends?: string[]; + /** + * Completely override the property + */ + override?: MappingProperty; + /** + * Merge property values + */ + merge?: MappingProperty; + /** + * Modify the search request + * + * Supports `{name}`, `{type}` and `{prop}` templates substitutions anywhere + */ + search?: Partial; +} + +export interface GeneratorOptions { + /** + * Presets you can extend + */ + presets: Record; + /** + * Override specific types + */ + overrides: Record; + /** + * Template for the generated index request + * + * Supports `{type}` and `{sanitized_type}` (same as `{type}`, but no spaces) template substitutions + */ + template: Partial; +} + +export type ResolvedOptions = Omit; + +export {elasticsearchMappingGenerator} from './index.js'; diff --git a/packages/gitlab-api/package.json b/packages/gitlab-api/package.json index cec90bad..35c80725 100644 --- a/packages/gitlab-api/package.json +++ b/packages/gitlab-api/package.json @@ -39,7 +39,7 @@ "@openstapps/tsconfig": "workspace:*", "@types/node": "18.15.3", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typedoc": "0.24.8", "typescript": "5.1.6" }, diff --git a/packages/json-schema-generator/package.json b/packages/json-schema-generator/package.json index 15835a5a..54b54656 100644 --- a/packages/json-schema-generator/package.json +++ b/packages/json-schema-generator/package.json @@ -13,15 +13,14 @@ "core", "validator" ], - "main": "lib/index.js", - "types": "lib/index.d.ts", + "main": "src/index.js", + "types": "src/types.d.ts", "files": [ "lib", "README.md", "CHANGELOG.md" ], "scripts": { - "build": "tsup-node --dts", "docs": "typedoc --json ./docs/docs.json --options ../../typedoc.base.json src/index.ts", "format": "prettier . -c --ignore-path ../../.gitignore", "format:fix": "prettier --write . --ignore-path ../../.gitignore", @@ -51,20 +50,10 @@ "mocha": "10.2.0", "mocha-junit-reporter": "2.2.0", "nock": "13.3.1", - "ts-node": "10.9.1", - "tsup": "6.7.0", "typedoc": "0.24.8", + "ts-node": "10.9.1", "typescript": "5.1.6" }, - "tsup": { - "entry": [ - "src/index.ts" - ], - "sourcemap": true, - "clean": true, - "format": "esm", - "outDir": "lib" - }, "prettier": "@openstapps/prettier-config", "eslintConfig": { "extends": [ diff --git a/packages/json-schema-generator/src/generator/compile-schema.ts b/packages/json-schema-generator/src/generator/compile-schema.js similarity index 85% rename from packages/json-schema-generator/src/generator/compile-schema.ts rename to packages/json-schema-generator/src/generator/compile-schema.js index e89bfb66..330e9aa1 100644 --- a/packages/json-schema-generator/src/generator/compile-schema.ts +++ b/packages/json-schema-generator/src/generator/compile-schema.js @@ -1,11 +1,13 @@ import {createGenerator} from 'ts-json-schema-generator'; import {getValidatableTypes} from './get-validatable-types.js'; -import {JSONSchema7} from 'json-schema'; /** * Compile the JSON schema for a path + * @param path {string} + * @param tsconfig {string} + * @returns {[schema: import('json-schema').JSONSchema7, type: string]} */ -export function compileSchema(path: string, tsconfig: string): [schma: JSONSchema7, type: string] { +export function compileSchema(path, tsconfig) { const generator = createGenerator({ path, tsconfig, diff --git a/packages/json-schema-generator/src/generator/get-validatable-types.ts b/packages/json-schema-generator/src/generator/get-validatable-types.js similarity index 77% rename from packages/json-schema-generator/src/generator/get-validatable-types.ts rename to packages/json-schema-generator/src/generator/get-validatable-types.js index 8f1bd071..92e62ef9 100644 --- a/packages/json-schema-generator/src/generator/get-validatable-types.ts +++ b/packages/json-schema-generator/src/generator/get-validatable-types.js @@ -2,10 +2,13 @@ import {ts} from 'ts-json-schema-generator'; /** * Get all types with `@validatable` annotations + * @param program {ts.Program} + * @returns {Set} */ -export function getValidatableTypes(program: ts.Program) { +export function getValidatableTypes(program) { const checker = program.getTypeChecker(); - const declarationNames = new Set(); + /** @type {Set} */ + const declarationNames = new Set(); for (const sourceFile of program.getSourceFiles()) { const sourceFileSymbol = checker.getSymbolAtLocation(sourceFile); @@ -27,8 +30,10 @@ export function getValidatableTypes(program: ts.Program) { /** * Type predicate for if a JSDoc tag is `@validatable` + * @param tag {ts.JSDocTag} + * @returns {tag is ts.JSDocTag} */ // eslint-disable-next-line unicorn/prevent-abbreviations -function isValidatableJSDocTag(tag: ts.JSDocTag): tag is ts.JSDocTag { +function isValidatableJSDocTag(tag) { return tag.tagName.escapedText === 'validatable'; } diff --git a/packages/json-schema-generator/src/index.ts b/packages/json-schema-generator/src/index.js similarity index 70% rename from packages/json-schema-generator/src/index.ts rename to packages/json-schema-generator/src/index.js index 83940929..b2cfbb13 100644 --- a/packages/json-schema-generator/src/index.ts +++ b/packages/json-schema-generator/src/index.js @@ -1,11 +1,7 @@ import {compileSchema} from './generator/compile-schema.js'; -import {generateFiles, Plugin, PluginContext} from '@openstapps/tsup-plugin'; -import {JSONSchema7} from 'json-schema'; -import {Plugin as EsbuildPlugin} from 'esbuild'; +import {generateFiles} from '@openstapps/tsup-plugin'; import {createGenerator} from 'ts-json-schema-generator'; -export type SchemaConsumer = (this: PluginContext, schema: JSONSchema7) => Record; - /** * ESBuild Plugin for directly importing schemas * @@ -19,13 +15,16 @@ export type SchemaConsumer = (this: PluginContext, schema: JSONSchema7) => Recor * interface Bar {} * // ./schema-consumer.ts * import {default as barSchema} from 'schema:./my-type.js#Bar' + * + * @type {import('esbuild').Plugin} */ -export const esbuildJsonSchemaPlugin: EsbuildPlugin = { +export const esbuildJsonSchemaPlugin = { name: 'json-schema', setup(build) { const fileRegex = /^schema:/; const namespace = 'json-schema-ns'; - const schemas = new Map(); + /** @type {Map} */ + const schemas = new Map(); build.onResolve({filter: fileRegex}, ({path, importer}) => { const [from, name] = path.replace(fileRegex, '').split('#', 1); @@ -56,22 +55,22 @@ export const esbuildJsonSchemaPlugin: EsbuildPlugin = { /** * TSUp plugin for generating JSONSchema files - * @param schemaName the name of the generated schema - * @param schemaConsumers any consumers that can directly use the schema + * @param schemaName {string} the name of the generated schema + * @param schemaConsumers {Array<[string, import('./types.js').SchemaConsumer]>} any consumers + * that can directly use the schema + * @returns {import('@openstapps/tsup-plugin').Plugin} */ -export function jsonSchemaPlugin( - schemaName: string, - ...schemaConsumers: Array<[string, SchemaConsumer]> -): Plugin { +export function jsonSchemaPlugin(schemaName, ...schemaConsumers) { return { name: 'json-schema-generator', async buildEnd() { - let schema: JSONSchema7; + /** @type {import('json-schema').JSONSchema7} */ + let schema; await generateFiles('JSON-Schema', async function () { - const [jsonSchema, types] = compileSchema( - (this.options.entry as string[])[0], - this.options.tsconfig!, - ); + if (!this.options.tsconfig) throw new Error('Must supply a tsconfig'); + if (!Array.isArray(this.options.entry)) throw new Error('Must supply entry as an array'); + + const [jsonSchema, types] = compileSchema(this.options.entry[0], this.options.tsconfig); schema = jsonSchema; return { diff --git a/packages/json-schema-generator/src/types.d.ts b/packages/json-schema-generator/src/types.d.ts new file mode 100644 index 00000000..a81335c0 --- /dev/null +++ b/packages/json-schema-generator/src/types.d.ts @@ -0,0 +1,6 @@ +import {JSONSchema7} from 'json-schema'; +import {PluginContext} from '@openstapps/tsup-plugin/src/types.js'; + +export type SchemaConsumer = (this: PluginContext, schema: JSONSchema7) => Record; + +export {compileSchema, jsonSchemaPlugin, esbuildJsonSchemaPlugin} from './index.js'; diff --git a/packages/json-schema-generator/test/resources/foo.d.ts b/packages/json-schema-generator/test/resources/foo.d.ts new file mode 100644 index 00000000..bd26ac11 --- /dev/null +++ b/packages/json-schema-generator/test/resources/foo.d.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + +/** + * This is a simple interface declaration for + * testing the schema generation and validation. + * + * @validatable + */ +export interface Foo { + /** + * lorem parameter + */ + lorem: 'lorem' | 'ipsum'; + + /** + * String literal type property + */ + type: FooType; +} + +/** + * This is a simple type declaration for + * usage in the Foo interface. + */ +export type FooType = 'Foo'; diff --git a/packages/json-schema-generator/test/schema.spec.ts b/packages/json-schema-generator/test/schema.spec.js similarity index 64% rename from packages/json-schema-generator/test/schema.spec.ts rename to packages/json-schema-generator/test/schema.spec.js index fe924771..c1fb4389 100644 --- a/packages/json-schema-generator/test/schema.spec.ts +++ b/packages/json-schema-generator/test/schema.spec.js @@ -13,46 +13,36 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ -import {Logger} from 'packages/logger/lib/index.js'; import {expect} from 'chai'; -import {Converter} from '../../core-tools/src/schema.js'; +import {compileSchema} from '../src/index.js'; import path from 'path'; import {fileURLToPath} from 'url'; -process.on('unhandledRejection', (error: unknown) => { - if (error instanceof Error) { - void Logger.error('UNHANDLED REJECTION', error.stack); - } - process.exit(1); -}); - describe('Schema', function () { this.timeout(40_000); this.slow(10_000); it('should create schema', function () { - const converter = new Converter( + const [schema, _types] = compileSchema( path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'src', 'resources'), + path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'tsconfig.json'), ); - const schema = converter.getSchema('Foo', '0.0.1'); expect(schema).to.be.deep.equal({ - $id: 'https://core.stapps.tu-berlin.de/v0.0.1/lib/schema/Foo.json', $schema: 'http://json-schema.org/draft-07/schema#', - additionalProperties: false, definitions: { FooType: { description: 'This is a simple type declaration for usage in the Foo interface.', const: 'Foo', type: 'string', }, - SCFoo: { + Foo: { additionalProperties: false, description: 'This is a simple interface declaration for testing the schema generation and validation.', properties: { lorem: { - description: 'Dummy parameter', + description: 'lorem parameter', enum: ['lorem', 'ipsum'], type: 'string', }, @@ -65,20 +55,6 @@ describe('Schema', function () { type: 'object', }, }, - description: 'This is a simple interface declaration for testing the schema generation and validation.', - properties: { - lorem: { - description: 'Dummy parameter', - enum: ['lorem', 'ipsum'], - type: 'string', - }, - type: { - $ref: '#/definitions/FooType', - description: 'String literal type property', - }, - }, - required: ['lorem', 'type'], - type: 'object', }); }); }); diff --git a/packages/logger/package.json b/packages/logger/package.json index f195fe50..ae2cd72b 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -39,17 +39,17 @@ "@openstapps/tsconfig": "workspace:*", "@types/chai": "4.3.5", "@types/chai-as-promised": "7.1.5", - "@types/chai-spies": "1.0.3", + "@types/chai-spies": "1.0.6", "@types/mocha": "10.0.1", "@types/node": "18.15.3", "c8": "7.14.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", - "chai-spies": "1.0.0", + "chai-spies": "1.1.0", "mocha": "10.2.0", "mocha-junit-reporter": "2.2.0", "ts-node": "10.9.1", - "tsup": "6.7.0", + "tsup": "7.2.0", "typedoc": "0.24.8", "typescript": "5.1.6" }, diff --git a/packages/tsup-plugin/package.json b/packages/tsup-plugin/package.json index c957a29f..d48b79ef 100644 --- a/packages/tsup-plugin/package.json +++ b/packages/tsup-plugin/package.json @@ -13,8 +13,8 @@ "core", "validator" ], - "types": "src/types.d.ts", "main": "src/index.js", + "types": "src/types.d.ts", "files": [ "lib", "README.md", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bd114438..75561015 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -189,11 +189,11 @@ importers: specifier: 2.0.12 version: 2.0.12 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -207,20 +207,20 @@ importers: specifier: 7.0.3 version: 7.0.3 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) get-port: specifier: 5.1.1 version: 5.1.1 @@ -249,8 +249,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typescript: specifier: 5.1.6 version: 5.1.6 @@ -301,11 +301,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -322,20 +322,20 @@ importers: specifier: 2.2.2 version: 2.2.2 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -352,8 +352,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typescript: specifier: 5.1.6 version: 5.1.6 @@ -372,8 +372,8 @@ importers: specifier: workspace:* version: link:../../packages/logger '@types/cli-progress': - specifier: 3.11.0 - version: 3.11.0 + specifier: 3.11.5 + version: 3.11.5 '@types/express': specifier: 4.17.17 version: 4.17.17 @@ -427,14 +427,14 @@ importers: specifier: 7.1.5 version: 7.1.5 '@types/chai-spies': - specifier: 1.0.3 - version: 1.0.3 + specifier: 1.0.6 + version: 1.0.6 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -445,23 +445,23 @@ importers: specifier: 7.1.1 version: 7.1.1(chai@4.3.7) chai-spies: - specifier: 1.0.0 - version: 1.0.0(chai@4.3.7) + specifier: 1.1.0 + version: 1.1.0(chai@4.3.7) eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -478,8 +478,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typescript: specifier: 5.1.6 version: 5.1.6 @@ -551,11 +551,11 @@ importers: specifier: 3.2.9 version: 3.2.9 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -563,20 +563,20 @@ importers: specifier: 4.3.7 version: 4.3.7 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -596,8 +596,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) configuration/backend-config: devDependencies: @@ -611,26 +611,26 @@ importers: specifier: workspace:* version: link:../tsconfig '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) prettier: specifier: 2.8.6 version: 2.8.6 @@ -638,23 +638,23 @@ importers: configuration/eslint-config: dependencies: '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) devDependencies: '@openstapps/tsconfig': specifier: workspace:* @@ -663,8 +663,8 @@ importers: specifier: 18.15.3 version: 18.15.3 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 typescript: specifier: 5.1.6 version: 5.1.6 @@ -733,11 +733,11 @@ importers: specifier: 0.2.3 version: 0.2.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -748,20 +748,20 @@ importers: specifier: 7.1.1 version: 7.1.1(chai@4.3.7) eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -775,8 +775,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typescript: specifier: 5.1.6 version: 5.1.6 @@ -820,11 +820,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -838,20 +838,20 @@ importers: specifier: 2.2.2 version: 2.2.2 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -868,8 +868,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typescript: specifier: 5.1.6 version: 5.1.6 @@ -919,32 +919,32 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) prettier: specifier: 2.8.6 version: 2.8.6 tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typescript: specifier: 5.1.6 version: 5.1.6 @@ -1146,19 +1146,19 @@ importers: version: 16.1.4 '@angular-eslint/builder': specifier: 16.1.0 - version: 16.1.0(eslint@8.43.0)(typescript@5.1.6) + version: 16.1.0(eslint@8.53.0)(typescript@5.1.6) '@angular-eslint/eslint-plugin': specifier: 16.1.0 - version: 16.1.0(eslint@8.43.0)(typescript@5.1.6) + version: 16.1.0(eslint@8.53.0)(typescript@5.1.6) '@angular-eslint/eslint-plugin-template': specifier: 16.1.0 - version: 16.1.0(eslint@8.43.0)(typescript@5.1.6) + version: 16.1.0(eslint@8.53.0)(typescript@5.1.6) '@angular-eslint/schematics': specifier: 16.1.0 - version: 16.1.0(@angular/cli@16.1.4)(eslint@8.43.0)(typescript@5.1.6) + version: 16.1.0(@angular/cli@16.1.4)(eslint@8.53.0)(typescript@5.1.6) '@angular-eslint/template-parser': specifier: 16.1.0 - version: 16.1.0(eslint@8.43.0)(typescript@5.1.6) + version: 16.1.0(eslint@8.53.0)(typescript@5.1.6) '@angular/cli': specifier: 16.1.4 version: 16.1.4 @@ -1238,11 +1238,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) cordova-res: specifier: 0.15.4 version: 0.15.4 @@ -1250,17 +1250,17 @@ importers: specifier: 13.2.0 version: 13.2.0 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) fontkit: specifier: 2.0.2 version: 2.0.2 @@ -1373,8 +1373,8 @@ importers: specifier: 7.1.5 version: 7.1.5 '@types/chai-spies': - specifier: 1.0.3 - version: 1.0.3 + specifier: 1.0.6 + version: 1.0.6 '@types/mocha': specifier: 10.0.1 version: 10.0.1 @@ -1382,11 +1382,11 @@ importers: specifier: 0.6.32 version: 0.6.32 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -1397,8 +1397,8 @@ importers: specifier: 7.1.1 version: 7.1.1(chai@4.3.7) chai-spies: - specifier: 1.0.0 - version: 1.0.0(chai@4.3.7) + specifier: 1.1.0 + version: 1.1.0(chai@4.3.7) conventional-changelog-cli: specifier: 2.2.2 version: 2.2.2 @@ -1406,20 +1406,20 @@ importers: specifier: 2.30.0 version: 2.30.0 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -1436,8 +1436,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typedoc: specifier: 0.24.8 version: 0.24.8(typescript@5.1.6) @@ -1500,17 +1500,17 @@ importers: specifier: 7.1.5 version: 7.1.5 '@types/chai-spies': - specifier: 1.0.3 - version: 1.0.3 + specifier: 1.0.6 + version: 1.0.6 '@types/mocha': specifier: 10.0.1 version: 10.0.1 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -1521,26 +1521,26 @@ importers: specifier: 7.1.1 version: 7.1.1(chai@4.3.7) chai-spies: - specifier: 1.0.0 - version: 1.0.0(chai@4.3.7) + specifier: 1.1.0 + version: 1.1.0(chai@4.3.7) conventional-changelog-cli: specifier: 2.2.2 version: 2.2.2 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -1557,8 +1557,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typedoc: specifier: 0.24.8 version: 0.24.8(typescript@5.1.6) @@ -1587,11 +1587,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -1599,20 +1599,20 @@ importers: specifier: 4.3.7 version: 4.3.7 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -1626,8 +1626,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typedoc: specifier: 0.24.8 version: 0.24.8(typescript@5.1.6) @@ -1696,11 +1696,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -1711,20 +1711,20 @@ importers: specifier: 1.0.6 version: 1.0.6 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -1744,8 +1744,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typedoc: specifier: 0.24.8 version: 0.24.8(typescript@5.1.6) @@ -1796,11 +1796,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -1808,20 +1808,20 @@ importers: specifier: 4.3.7 version: 4.3.7 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -1834,12 +1834,6 @@ importers: prettier: specifier: 2.8.6 version: 2.8.6 - ts-node: - specifier: 10.9.1 - version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) - tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) typedoc: specifier: 0.24.8 version: 0.24.8(typescript@5.1.6) @@ -1881,11 +1875,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -1893,20 +1887,20 @@ importers: specifier: 4.3.7 version: 4.3.7 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -1920,8 +1914,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typedoc: specifier: 0.24.8 version: 0.24.8(typescript@5.1.6) @@ -1975,11 +1969,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -1990,20 +1984,20 @@ importers: specifier: 0.17.19 version: 0.17.19 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -2020,8 +2014,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typedoc: specifier: 0.24.8 version: 0.24.8(typescript@5.1.6) @@ -2054,26 +2048,26 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) prettier: specifier: 2.8.6 version: 2.8.6 @@ -2081,8 +2075,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typedoc: specifier: 0.24.8 version: 0.24.8(typescript@5.1.6) @@ -2133,11 +2127,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -2148,20 +2142,20 @@ importers: specifier: 0.17.19 version: 0.17.19 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -2177,9 +2171,6 @@ importers: ts-node: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) - tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) typedoc: specifier: 0.24.8 version: 0.24.8(typescript@5.1.6) @@ -2218,8 +2209,8 @@ importers: specifier: 7.1.5 version: 7.1.5 '@types/chai-spies': - specifier: 1.0.3 - version: 1.0.3 + specifier: 1.0.6 + version: 1.0.6 '@types/mocha': specifier: 10.0.1 version: 10.0.1 @@ -2227,11 +2218,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -2242,23 +2233,23 @@ importers: specifier: 7.1.1 version: 7.1.1(chai@4.3.7) chai-spies: - specifier: 1.0.0 - version: 1.0.0(chai@4.3.7) + specifier: 1.1.0 + version: 1.1.0(chai@4.3.7) eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -2272,8 +2263,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) tsup: - specifier: 6.7.0 - version: 6.7.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: 7.2.0 + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) typedoc: specifier: 0.24.8 version: 0.24.8(typescript@5.1.6) @@ -2321,11 +2312,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -2336,20 +2327,20 @@ importers: specifier: 0.17.19 version: 0.17.19 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -2376,7 +2367,7 @@ importers: version: 2.0.20 tsup: specifier: 7.2.0 - version: 7.2.0(typescript@5.1.6) + version: 7.2.0(ts-node@10.9.1)(typescript@5.1.6) devDependencies: '@openstapps/eslint-config': specifier: workspace:* @@ -2409,11 +2400,11 @@ importers: specifier: 18.15.3 version: 18.15.3 '@typescript-eslint/eslint-plugin': - specifier: 5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.60.1 - version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) + specifier: 6.10.0 + version: 6.10.0(eslint@8.53.0)(typescript@5.1.6) c8: specifier: 7.14.0 version: 7.14.0 @@ -2424,20 +2415,20 @@ importers: specifier: 0.17.19 version: 0.17.19 eslint: - specifier: 8.43.0 - version: 8.43.0 + specifier: 8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.43.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsdoc: - specifier: 46.4.2 - version: 46.4.2(eslint@8.43.0) + specifier: 46.8.2 + version: 46.8.2(eslint@8.53.0) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6) + specifier: 5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6) eslint-plugin-unicorn: - specifier: 47.0.0 - version: 47.0.0(eslint@8.43.0) + specifier: 49.0.0 + version: 49.0.0(eslint@8.53.0) mocha: specifier: 10.2.0 version: 10.2.0 @@ -2711,14 +2702,14 @@ packages: - chokidar dev: true - /@angular-eslint/builder@16.1.0(eslint@8.43.0)(typescript@5.1.6): + /@angular-eslint/builder@16.1.0(eslint@8.53.0)(typescript@5.1.6): resolution: {integrity: sha512-KIkE2SI1twFKoCiF/k2VR3ojOcc7TD1xPyY4kbUrx/Gxp+XEzar7O29I/ztzL4eHPBM+Uh3/NwS/jvjjBxjgAg==} peerDependencies: eslint: ^7.20.0 || ^8.0.0 typescript: '*' dependencies: '@nx/devkit': 16.5.1(nx@16.5.1) - eslint: 8.43.0 + eslint: 8.53.0 nx: 16.5.1 typescript: 5.1.6 transitivePeerDependencies: @@ -2731,45 +2722,45 @@ packages: resolution: {integrity: sha512-5EFAWXuFJADr3imo/ZYshY8s0K7U7wyysnE2LXnpT9PAi5rmkzt70UNZNRuamCbXr4tdIiu+fXWOj7tUuJKnnw==} dev: true - /@angular-eslint/eslint-plugin-template@16.1.0(eslint@8.43.0)(typescript@5.1.6): + /@angular-eslint/eslint-plugin-template@16.1.0(eslint@8.53.0)(typescript@5.1.6): resolution: {integrity: sha512-wQHWR5vqWGgO7mqoG5ixXeplIlz/OmxBJE9QMLPTZE8GdaTx8+F/5J37OWh84zCpD3mOa/FHYZxBDm2MfUmA1Q==} peerDependencies: eslint: ^7.20.0 || ^8.0.0 typescript: '*' dependencies: '@angular-eslint/bundled-angular-compiler': 16.1.0 - '@angular-eslint/utils': 16.1.0(eslint@8.43.0)(typescript@5.1.6) - '@typescript-eslint/type-utils': 5.62.0(eslint@8.43.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.43.0)(typescript@5.1.6) + '@angular-eslint/utils': 16.1.0(eslint@8.53.0)(typescript@5.1.6) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.53.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.1.6) aria-query: 5.3.0 axobject-query: 3.1.1 - eslint: 8.43.0 + eslint: 8.53.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@angular-eslint/eslint-plugin@16.1.0(eslint@8.43.0)(typescript@5.1.6): + /@angular-eslint/eslint-plugin@16.1.0(eslint@8.53.0)(typescript@5.1.6): resolution: {integrity: sha512-BFzzJJlgQgWc8avdSBkaDWAzNSUqcwWy0L1iZSBdXGoIOxj72kLbwe99emb8M+rUfCveljQkeM2pcYu8XLbJIA==} peerDependencies: eslint: ^7.20.0 || ^8.0.0 typescript: '*' dependencies: - '@angular-eslint/utils': 16.1.0(eslint@8.43.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.43.0)(typescript@5.1.6) - eslint: 8.43.0 + '@angular-eslint/utils': 16.1.0(eslint@8.53.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.1.6) + eslint: 8.53.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@angular-eslint/schematics@16.1.0(@angular/cli@16.1.4)(eslint@8.43.0)(typescript@5.1.6): + /@angular-eslint/schematics@16.1.0(@angular/cli@16.1.4)(eslint@8.53.0)(typescript@5.1.6): resolution: {integrity: sha512-L1tmP3R2krHyveaRXAvn/SeDoBFNpS1VtPPrzZm1NYr1qPcAxf3NtG2nnoyVFu6WZGt59ZGHNQ/dZxnXvm0UGg==} peerDependencies: '@angular/cli': '>= 16.0.0 < 17.0.0' dependencies: - '@angular-eslint/eslint-plugin': 16.1.0(eslint@8.43.0)(typescript@5.1.6) - '@angular-eslint/eslint-plugin-template': 16.1.0(eslint@8.43.0)(typescript@5.1.6) + '@angular-eslint/eslint-plugin': 16.1.0(eslint@8.53.0)(typescript@5.1.6) + '@angular-eslint/eslint-plugin-template': 16.1.0(eslint@8.53.0)(typescript@5.1.6) '@angular/cli': 16.1.4 '@nx/devkit': 16.5.1(nx@16.5.1) ignore: 5.2.4 @@ -2785,27 +2776,27 @@ packages: - typescript dev: true - /@angular-eslint/template-parser@16.1.0(eslint@8.43.0)(typescript@5.1.6): + /@angular-eslint/template-parser@16.1.0(eslint@8.53.0)(typescript@5.1.6): resolution: {integrity: sha512-DOQtzVehtbO7+BQ+FMOXRsxGRjHb3ve6M+S4qASKTiI+twtONjRODcHezD3N4PDkjpKPbOnk7YnFsHur5csUNw==} peerDependencies: eslint: ^7.20.0 || ^8.0.0 typescript: '*' dependencies: '@angular-eslint/bundled-angular-compiler': 16.1.0 - eslint: 8.43.0 + eslint: 8.53.0 eslint-scope: 7.2.0 typescript: 5.1.6 dev: true - /@angular-eslint/utils@16.1.0(eslint@8.43.0)(typescript@5.1.6): + /@angular-eslint/utils@16.1.0(eslint@8.53.0)(typescript@5.1.6): resolution: {integrity: sha512-u5XscYUq1F/7RuwyVIV2a280QL27lyQz434VYR+Np/oO21NGj5jxoRKb55xhXT9EFVs5Sy4JYeEUp6S75J/cUw==} peerDependencies: eslint: ^7.20.0 || ^8.0.0 typescript: '*' dependencies: '@angular-eslint/bundled-angular-compiler': 16.1.0 - '@typescript-eslint/utils': 5.62.0(eslint@8.43.0)(typescript@5.1.6) - eslint: 8.43.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.1.6) + eslint: 8.53.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color @@ -3408,6 +3399,10 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.22.5: resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} @@ -5807,11 +5802,11 @@ packages: - supports-color dev: false - /@es-joy/jsdoccomment@0.39.4: - resolution: {integrity: sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==} + /@es-joy/jsdoccomment@0.40.1: + resolution: {integrity: sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==} engines: {node: '>=16'} dependencies: - comment-parser: 1.3.1 + comment-parser: 1.4.0 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 @@ -5830,7 +5825,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: false optional: true /@esbuild/android-arm@0.17.19: @@ -5848,7 +5842,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: false optional: true /@esbuild/android-x64@0.17.19: @@ -5866,7 +5859,6 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: false optional: true /@esbuild/darwin-arm64@0.17.19: @@ -5884,7 +5876,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: false optional: true /@esbuild/darwin-x64@0.17.19: @@ -5902,7 +5893,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: false optional: true /@esbuild/freebsd-arm64@0.17.19: @@ -5920,7 +5910,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: false optional: true /@esbuild/freebsd-x64@0.17.19: @@ -5938,7 +5927,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: false optional: true /@esbuild/linux-arm64@0.17.19: @@ -5956,7 +5944,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-arm@0.17.19: @@ -5974,7 +5961,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-ia32@0.17.19: @@ -5992,7 +5978,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-loong64@0.17.19: @@ -6010,7 +5995,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-mips64el@0.17.19: @@ -6028,7 +6012,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-ppc64@0.17.19: @@ -6046,7 +6029,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-riscv64@0.17.19: @@ -6064,7 +6046,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-s390x@0.17.19: @@ -6082,7 +6063,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/linux-x64@0.17.19: @@ -6100,7 +6080,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false optional: true /@esbuild/netbsd-x64@0.17.19: @@ -6118,7 +6097,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: false optional: true /@esbuild/openbsd-x64@0.17.19: @@ -6136,7 +6114,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: false optional: true /@esbuild/sunos-x64@0.17.19: @@ -6154,7 +6131,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: false optional: true /@esbuild/win32-arm64@0.17.19: @@ -6172,7 +6148,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: false optional: true /@esbuild/win32-ia32@0.17.19: @@ -6190,7 +6165,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: false optional: true /@esbuild/win32-x64@0.17.19: @@ -6208,29 +6182,32 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: false optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.43.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.43.0 - eslint-visitor-keys: 3.4.1 + eslint: 8.53.0 + eslint-visitor-keys: 3.4.3 + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} /@eslint-community/regexpp@4.5.1: resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - /@eslint/eslintrc@2.1.0: - resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) - espree: 9.6.0 + espree: 9.6.1 globals: 13.20.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -6240,8 +6217,8 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/js@8.43.0: - resolution: {integrity: sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==} + /@eslint/js@8.53.0: + resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} /@foliojs-fork/fontkit@1.9.1: @@ -6298,11 +6275,11 @@ packages: '@capacitor/core': 4.6.1 dev: false - /@humanwhocodes/config-array@0.11.10: - resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 + '@humanwhocodes/object-schema': 2.0.1 debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: @@ -6312,8 +6289,8 @@ packages: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} /@hutson/parse-repository-url@3.0.2: resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} @@ -7022,6 +6999,17 @@ packages: requiresBuild: true optional: true + /@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.3.0 + is-glob: 4.0.3 + open: 9.1.0 + picocolors: 1.0.0 + tslib: 2.6.2 + /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true @@ -7255,12 +7243,6 @@ packages: '@types/chai': 4.3.5 dev: true - /@types/chai-spies@1.0.3: - resolution: {integrity: sha512-RBZjhVuK7vrg4rWMt04UF5zHYwfHnpk5mIWu3nQvU3AKGDixXzSjZ6v0zke6pBcaJqMv3IBZ5ibLWPMRDL0sLw==} - dependencies: - '@types/chai': 4.3.5 - dev: true - /@types/chai-spies@1.0.6: resolution: {integrity: sha512-xkk4HmhBB9OQeTAifa9MJ+6R5/Rq9+ungDe4JidZD+vqZVeiWZwc2i7/pd1ZKjyGlSBIQePoWdyUyFUGT0rv5w==} dependencies: @@ -7271,12 +7253,6 @@ packages: resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} dev: true - /@types/cli-progress@3.11.0: - resolution: {integrity: sha512-XhXhBv1R/q2ahF3BM7qT5HLzJNlIL0wbcGyZVjqOTqAybAnsLisd7gy1UCyIqpL+5Iv6XhlSyzjLCnI2sIdbCg==} - dependencies: - '@types/node': 18.15.3 - dev: false - /@types/cli-progress@3.11.5: resolution: {integrity: sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g==} dependencies: @@ -7596,6 +7572,10 @@ packages: /@types/semver@7.3.13: resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@types/semver@7.5.4: + resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} /@types/send@0.17.1: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} @@ -7718,59 +7698,54 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin@5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6): - resolution: {integrity: sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.1.6): + resolution: {integrity: sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 5.60.1 - '@typescript-eslint/type-utils': 5.60.1(eslint@8.43.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.60.1(eslint@8.43.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.10.0 + '@typescript-eslint/type-utils': 6.10.0(eslint@8.53.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.10.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.43.0 - grapheme-splitter: 1.0.4 + eslint: 8.53.0 + graphemer: 1.4.0 ignore: 5.2.4 - natural-compare-lite: 1.4.0 - semver: 7.3.8 - tsutils: 3.21.0(typescript@5.1.6) + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color - /@typescript-eslint/parser@5.60.1(eslint@8.43.0)(typescript@5.1.6): - resolution: {integrity: sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.1.6): + resolution: {integrity: sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.60.1 - '@typescript-eslint/types': 5.60.1 - '@typescript-eslint/typescript-estree': 5.60.1(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.10.0 + '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.10.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.43.0 + eslint: 8.53.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color - /@typescript-eslint/scope-manager@5.60.1: - resolution: {integrity: sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.60.1 - '@typescript-eslint/visitor-keys': 5.60.1 - /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7779,26 +7754,14 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.60.1(eslint@8.43.0)(typescript@5.1.6): - resolution: {integrity: sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + /@typescript-eslint/scope-manager@6.10.0: + resolution: {integrity: sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/typescript-estree': 5.60.1(typescript@5.1.6) - '@typescript-eslint/utils': 5.60.1(eslint@8.43.0)(typescript@5.1.6) - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.43.0 - tsutils: 3.21.0(typescript@5.1.6) - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/visitor-keys': 6.10.0 - /@typescript-eslint/type-utils@5.62.0(eslint@8.43.0)(typescript@5.1.6): + /@typescript-eslint/type-utils@5.62.0(eslint@8.53.0)(typescript@5.1.6): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -7809,43 +7772,42 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.43.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.43.0 + eslint: 8.53.0 tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.60.1: - resolution: {integrity: sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/type-utils@6.10.0(eslint@8.53.0)(typescript@5.1.6): + resolution: {integrity: sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.1.6) + '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.1.6) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.53.0 + ts-api-utils: 1.0.3(typescript@5.1.6) + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.60.1(typescript@5.1.6): - resolution: {integrity: sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.60.1 - '@typescript-eslint/visitor-keys': 5.60.1 - debug: 4.3.4(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0(typescript@5.1.6) - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color + /@typescript-eslint/types@6.10.0: + resolution: {integrity: sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==} + engines: {node: ^16.0.0 || >=18.0.0} /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} @@ -7868,38 +7830,39 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.60.1(eslint@8.43.0)(typescript@5.1.6): - resolution: {integrity: sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/typescript-estree@6.10.0(typescript@5.1.6): + resolution: {integrity: sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.60.1 - '@typescript-eslint/types': 5.60.1 - '@typescript-eslint/typescript-estree': 5.60.1(typescript@5.1.6) - eslint: 8.43.0 - eslint-scope: 5.1.1 - semver: 7.3.8 + '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/visitor-keys': 6.10.0 + debug: 4.3.4(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color - - typescript - /@typescript-eslint/utils@5.62.0(eslint@8.43.0)(typescript@5.1.6): + /@typescript-eslint/utils@5.62.0(eslint@8.53.0)(typescript@5.1.6): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@types/json-schema': 7.0.14 '@types/semver': 7.3.13 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - eslint: 8.43.0 + eslint: 8.53.0 eslint-scope: 5.1.1 semver: 7.3.8 transitivePeerDependencies: @@ -7907,21 +7870,42 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@5.60.1: - resolution: {integrity: sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/utils@6.10.0(eslint@8.53.0)(typescript@5.1.6): + resolution: {integrity: sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/types': 5.60.1 - eslint-visitor-keys: 3.4.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@types/json-schema': 7.0.14 + '@types/semver': 7.5.4 + '@typescript-eslint/scope-manager': 6.10.0 + '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.1.6) + eslint: 8.53.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@6.10.0: + resolution: {integrity: sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.10.0 + eslint-visitor-keys: 3.4.1 + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + /@vitejs/plugin-basic-ssl@1.0.1(vite@4.3.9): resolution: {integrity: sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==} engines: {node: '>=14.6.0'} @@ -8706,7 +8690,6 @@ packages: /big-integer@1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} engines: {node: '>=0.6'} - dev: true /big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -8803,6 +8786,12 @@ packages: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} dev: true + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.51 + /bplist-parser@0.3.2: resolution: {integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==} engines: {node: '>= 5.10.0'} @@ -8914,15 +8903,11 @@ packages: semver: 7.3.8 dev: true - /bundle-require@4.0.1(esbuild@0.17.19): - resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.17' + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} dependencies: - esbuild: 0.17.19 - load-tsconfig: 0.2.5 - dev: true + run-applescript: 5.0.0 /bundle-require@4.0.1(esbuild@0.18.20): resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} @@ -8932,7 +8917,6 @@ packages: dependencies: esbuild: 0.18.20 load-tsconfig: 0.2.5 - dev: false /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} @@ -9081,15 +9065,6 @@ packages: check-error: 1.0.2 dev: true - /chai-spies@1.0.0(chai@4.3.7): - resolution: {integrity: sha512-elF2ZUczBsFoP07qCfMO/zeggs8pqCf3fZGyK5+2X4AndS8jycZYID91ztD9oQ7d/0tnS963dPkd0frQEThDsg==} - engines: {node: '>= 4.0.0'} - peerDependencies: - chai: '*' - dependencies: - chai: 4.3.7 - dev: true - /chai-spies@1.1.0(chai@4.3.7): resolution: {integrity: sha512-ikaUhQvQWchRYj2K54itFp3nrcxaFRpSDQxDlRzSn9aWgu9Pi7lD8yFxTso4WnQ39+WZ69oB/qOvqp+isJIIWA==} engines: {node: '>= 4.0.0'} @@ -9457,8 +9432,8 @@ packages: engines: {node: ^12.20.0 || >=14} dev: true - /comment-parser@1.3.1: - resolution: {integrity: sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==} + /comment-parser@1.4.0: + resolution: {integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==} engines: {node: '>= 12.0.0'} /common-tags@1.8.2: @@ -10580,6 +10555,22 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 + /default-gateway@6.0.3: resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} engines: {node: '>= 10'} @@ -10603,6 +10594,10 @@ packages: engines: {node: '>=8'} dev: true + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + /define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} @@ -11193,7 +11188,6 @@ packages: '@esbuild/win32-arm64': 0.18.20 '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 - dev: false /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -11236,26 +11230,26 @@ packages: source-map: 0.1.43 dev: true - /eslint-config-prettier@8.8.0(eslint@8.43.0): - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + /eslint-config-prettier@9.0.0(eslint@8.53.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.43.0 + eslint: 8.53.0 - /eslint-plugin-jsdoc@46.4.2(eslint@8.43.0): - resolution: {integrity: sha512-fmIgOe7irf9otkMtsPjr5P39wC5LzA6aEU/nydfUlc8JaEiS93uhPaxI+x/v5s1Ckm+IZeP3006do2n2ehZcNQ==} + /eslint-plugin-jsdoc@46.8.2(eslint@8.53.0): + resolution: {integrity: sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==} engines: {node: '>=16'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@es-joy/jsdoccomment': 0.39.4 + '@es-joy/jsdoccomment': 0.40.1 are-docs-informative: 0.0.2 - comment-parser: 1.3.1 + comment-parser: 1.4.0 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.43.0 + eslint: 8.53.0 esquery: 1.5.0 is-builtin-module: 3.2.1 semver: 7.5.4 @@ -11263,44 +11257,68 @@ packages: transitivePeerDependencies: - supports-color - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.6): - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} + /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@2.8.6): + resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=7.28.0' + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' eslint-config-prettier: '*' - prettier: '>=2.0.0' + prettier: '>=3.0.0' peerDependenciesMeta: + '@types/eslint': + optional: true eslint-config-prettier: optional: true dependencies: - eslint: 8.43.0 - eslint-config-prettier: 8.8.0(eslint@8.43.0) + eslint: 8.53.0 + eslint-config-prettier: 9.0.0(eslint@8.53.0) prettier: 2.8.6 prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 + dev: true - /eslint-plugin-unicorn@47.0.0(eslint@8.43.0): - resolution: {integrity: sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==} + /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3): + resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.53.0 + eslint-config-prettier: 9.0.0(eslint@8.53.0) + prettier: 3.0.3 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 + dev: false + + /eslint-plugin-unicorn@49.0.0(eslint@8.53.0): + resolution: {integrity: sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q==} engines: {node: '>=16'} peerDependencies: - eslint: '>=8.38.0' + eslint: '>=8.52.0' dependencies: - '@babel/helper-validator-identifier': 7.22.5 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) + '@babel/helper-validator-identifier': 7.22.20 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.43.0 + eslint: 8.53.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.0.2 - lodash: 4.17.21 pluralize: 8.0.0 read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - safe-regex: 2.1.1 - semver: 7.3.8 + semver: 7.5.4 strip-indent: 3.0.0 /eslint-scope@5.1.1: @@ -11309,6 +11327,7 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 + dev: true /eslint-scope@7.2.0: resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} @@ -11316,32 +11335,45 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 /eslint-visitor-keys@3.4.1: resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /eslint@8.43.0: - resolution: {integrity: sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /eslint@8.53.0: + resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) - '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.1.0 - '@eslint/js': 8.43.0 - '@humanwhocodes/config-array': 0.11.10 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.53.0 + '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.1 - espree: 9.6.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -11351,7 +11383,6 @@ packages: globals: 13.20.0 graphemer: 1.4.0 ignore: 5.2.4 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -11363,18 +11394,17 @@ packages: natural-compare: 1.4.0 optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color - /espree@9.6.0: - resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==} + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.3 /esprima@1.0.4: resolution: {integrity: sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==} @@ -11408,6 +11438,7 @@ packages: /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} + dev: true /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} @@ -11510,6 +11541,20 @@ packages: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + /executable@4.1.1: resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} engines: {node: '>=4'} @@ -12447,6 +12492,7 @@ packages: /grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -12820,6 +12866,10 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: @@ -13172,7 +13222,11 @@ packages: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true - dev: true + + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true /is-domain@0.0.1: resolution: {integrity: sha512-hLm9uZUDm/sk0+xZgxyJluSf4B37sg3ivzv4ndTxNCAMnWFUUsHh1u4eh2maEcEvQl3mc65a9pJ/KURGItbLIg==} @@ -13201,6 +13255,13 @@ packages: dependencies: is-extglob: 2.1.1 + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + /is-installed-globally@0.4.0: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} @@ -13305,6 +13366,10 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -13384,7 +13449,6 @@ packages: engines: {node: '>=8'} dependencies: is-docker: 2.2.1 - dev: true /isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -14514,6 +14578,10 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -14858,9 +14926,6 @@ packages: - supports-color dev: true - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -15214,6 +15279,12 @@ packages: dependencies: path-key: 3.1.1 + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + /npmlog@6.0.2: resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -15364,6 +15435,12 @@ packages: dependencies: mimic-fn: 2.1.0 + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + /open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} @@ -15390,6 +15467,15 @@ packages: is-wsl: 2.2.0 dev: true + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} + dependencies: + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 + /openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} dev: false @@ -15722,6 +15808,10 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -15794,7 +15884,6 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -15870,24 +15959,7 @@ packages: - supports-color dev: true - /postcss-load-config@3.1.4(ts-node@10.9.1): - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 2.1.0 - ts-node: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) - yaml: 1.10.2 - dev: true - - /postcss-load-config@4.0.1: + /postcss-load-config@4.0.1(ts-node@10.9.1): resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: @@ -15900,8 +15972,8 @@ packages: optional: true dependencies: lilconfig: 2.1.0 + ts-node: 10.9.1(@types/node@18.15.3)(typescript@5.1.6) yaml: 2.3.4 - dev: false /postcss-loader@7.3.2(postcss@8.4.24)(webpack@5.86.0): resolution: {integrity: sha512-c7qDlXErX6n0VT+LUsW+nwefVtTu3ORtVvK8EXuUIDcxo+b/euYqpuHlJAvePb0Af5e8uMjR/13e0lTuYifaig==} @@ -16072,6 +16144,12 @@ packages: engines: {node: '>=10.13.0'} hasBin: true + /prettier@3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + engines: {node: '>=14'} + hasBin: true + dev: false + /pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} @@ -16731,6 +16809,12 @@ packages: engines: {node: 0.12.* || 4.* || 6.* || >= 7.*} dev: true + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -16773,11 +16857,6 @@ packages: is-regex: 1.1.4 dev: true - /safe-regex@2.1.1: - resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} - dependencies: - regexp-tree: 0.1.27 - /safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} @@ -17667,6 +17746,10 @@ packages: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -17986,6 +18069,13 @@ packages: engines: {node: '>=0.10'} dev: true + /synckit@0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.4.2 + tslib: 2.6.2 + /syncpack@10.5.1: resolution: {integrity: sha512-YGKX0x7I4LxP62gJZnjMiv9eROQnbymeVU1heLdOhuiGNDuIcT/fk1M2kh1VYSBuuFIaGTP30LNEbPx4zy5MQg==} engines: {node: '>=14'} @@ -18212,6 +18302,10 @@ packages: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} dev: true + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -18299,6 +18393,14 @@ packages: engines: {node: '>=12'} dev: true + /ts-api-utils@1.0.3(typescript@5.1.6): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.1.6 + /ts-custom-error@3.3.1: resolution: {integrity: sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==} engines: {node: '>=14.0.0'} @@ -18380,6 +18482,7 @@ packages: /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true /tslib@2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} @@ -18388,43 +18491,10 @@ packages: resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} dev: true - /tsup@6.7.0(ts-node@10.9.1)(typescript@5.1.6): - resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} - engines: {node: '>=14.18'} - hasBin: true - peerDependencies: - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.1.0' - peerDependenciesMeta: - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - dependencies: - bundle-require: 4.0.1(esbuild@0.17.19) - cac: 6.7.14 - chokidar: 3.5.3 - debug: 4.3.4(supports-color@8.1.1) - esbuild: 0.17.19 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - postcss-load-config: 3.1.4(ts-node@10.9.1) - resolve-from: 5.0.0 - rollup: 3.26.2 - source-map: 0.8.0-beta.0 - sucrase: 3.32.0 - tree-kill: 1.2.2 - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color - - ts-node - dev: true + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsup@7.2.0(typescript@5.1.6): + /tsup@7.2.0(ts-node@10.9.1)(typescript@5.1.6): resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} engines: {node: '>=16.14'} hasBin: true @@ -18448,7 +18518,7 @@ packages: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.1 + postcss-load-config: 4.0.1(ts-node@10.9.1) resolve-from: 5.0.0 rollup: 3.26.2 source-map: 0.8.0-beta.0 @@ -18458,7 +18528,6 @@ packages: transitivePeerDependencies: - supports-color - ts-node - dev: false /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -18468,6 +18537,7 @@ packages: dependencies: tslib: 1.14.1 typescript: 5.1.6 + dev: true /tty-table@4.2.1: resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} @@ -18831,7 +18901,6 @@ packages: /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - dev: true /update-browserslist-db@1.0.11(browserslist@4.21.9): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}