From fe8ed1f894b0768568d0e5edf16e543f16f50624 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Wed, 23 Oct 2024 15:22:41 +0200 Subject: [PATCH 01/33] feat: add usecase for fetching tokens --- packages/runtime/src/Runtime.ts | 5 + .../src/extensibility/TransportServices.ts | 4 +- .../facades/transport/TagsFacade.ts | 12 ++ .../extensibility/facades/transport/index.ts | 3 +- .../runtime/src/useCases/transport/index.ts | 3 +- .../src/useCases/transport/tags/GetTags.ts | 15 +++ .../src/useCases/transport/tags/index.ts | 1 + .../transport/src/core/TransportController.ts | 3 +- .../src/modules/accounts/AccountController.ts | 3 + .../src/modules/tags/TagController.ts | 24 ++++ .../modules/tags/backbone/BackboneGetTag.ts | 9 ++ .../src/modules/tags/backbone/TagClient.ts | 9 ++ .../test/modules/tags/TagsController.test.ts | 111 ++++++++++++++++++ 13 files changed, 198 insertions(+), 4 deletions(-) create mode 100644 packages/runtime/src/extensibility/facades/transport/TagsFacade.ts create mode 100644 packages/runtime/src/useCases/transport/tags/GetTags.ts create mode 100644 packages/runtime/src/useCases/transport/tags/index.ts create mode 100644 packages/transport/src/modules/tags/TagController.ts create mode 100644 packages/transport/src/modules/tags/backbone/BackboneGetTag.ts create mode 100644 packages/transport/src/modules/tags/backbone/TagClient.ts create mode 100644 packages/transport/test/modules/tags/TagsController.test.ts diff --git a/packages/runtime/src/Runtime.ts b/packages/runtime/src/Runtime.ts index 6f2faa8e7..860ea0be4 100644 --- a/packages/runtime/src/Runtime.ts +++ b/packages/runtime/src/Runtime.ts @@ -30,6 +30,7 @@ import { TokenController, Transport } from "@nmshd/transport"; +import { TagController } from "@nmshd/transport/src/modules/tags/TagController"; import { Container, Scope } from "@nmshd/typescript-ioc"; import { buildInformation } from "./buildInformation"; import { DatabaseSchemaUpgrader } from "./DatabaseSchemaUpgrader"; @@ -250,6 +251,10 @@ export abstract class Runtime { .factory(() => this.getAccountController().relationshipTemplates) .scope(Scope.Request); + Container.bind(TagController) + .factory(() => this.getAccountController().tags) + .scope(Scope.Request); + Container.bind(RelationshipsController) .factory(() => this.getAccountController().relationships) .scope(Scope.Request); diff --git a/packages/runtime/src/extensibility/TransportServices.ts b/packages/runtime/src/extensibility/TransportServices.ts index ecf2c97ac..e33cbf0b7 100644 --- a/packages/runtime/src/extensibility/TransportServices.ts +++ b/packages/runtime/src/extensibility/TransportServices.ts @@ -8,6 +8,7 @@ import { MessagesFacade, RelationshipsFacade, RelationshipTemplatesFacade, + TagsFacade, TokensFacade } from "./facades/transport"; @@ -21,6 +22,7 @@ export class TransportServices { @Inject public readonly account: AccountFacade, @Inject public readonly devices: DevicesFacade, @Inject public readonly challenges: ChallengesFacade, - @Inject public readonly identityDeletionProcesses: IdentityDeletionProcessesFacade + @Inject public readonly identityDeletionProcesses: IdentityDeletionProcessesFacade, + @Inject public readonly tags: TagsFacade ) {} } diff --git a/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts b/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts new file mode 100644 index 000000000..d2db94873 --- /dev/null +++ b/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts @@ -0,0 +1,12 @@ +import { Result } from "@js-soft/ts-utils"; +import { BackboneGetTag } from "@nmshd/transport/src/modules/tags/backbone/BackboneGetTag"; +import { Inject } from "@nmshd/typescript-ioc"; +import { GetTagsUseCase } from "../../.."; + +export class TagsFacade { + public constructor(@Inject private readonly getTagsUseCase: GetTagsUseCase) {} + + public async getTags(): Promise> { + return await this.getTagsUseCase.execute(); + } +} diff --git a/packages/runtime/src/extensibility/facades/transport/index.ts b/packages/runtime/src/extensibility/facades/transport/index.ts index a14fc3df7..0d0121eaa 100644 --- a/packages/runtime/src/extensibility/facades/transport/index.ts +++ b/packages/runtime/src/extensibility/facades/transport/index.ts @@ -4,6 +4,7 @@ export * from "./DevicesFacade"; export * from "./FilesFacade"; export * from "./IdentityDeletionProcessesFacade"; export * from "./MessagesFacade"; -export * from "./RelationshipTemplatesFacade"; export * from "./RelationshipsFacade"; +export * from "./RelationshipTemplatesFacade"; +export * from "./TagsFacade"; export * from "./TokensFacade"; diff --git a/packages/runtime/src/useCases/transport/index.ts b/packages/runtime/src/useCases/transport/index.ts index 0bce894c3..7396b62ab 100644 --- a/packages/runtime/src/useCases/transport/index.ts +++ b/packages/runtime/src/useCases/transport/index.ts @@ -4,6 +4,7 @@ export * from "./devices"; export * from "./files"; export * from "./identityDeletionProcesses"; export * from "./messages"; -export * from "./relationshipTemplates"; export * from "./relationships"; +export * from "./relationshipTemplates"; +export * from "./tags"; export * from "./tokens"; diff --git a/packages/runtime/src/useCases/transport/tags/GetTags.ts b/packages/runtime/src/useCases/transport/tags/GetTags.ts new file mode 100644 index 000000000..743b153a7 --- /dev/null +++ b/packages/runtime/src/useCases/transport/tags/GetTags.ts @@ -0,0 +1,15 @@ +import { Result } from "@js-soft/ts-utils"; +import { TagController } from "@nmshd/transport/src/modules/tags/TagController"; +import { BackboneGetTag } from "@nmshd/transport/src/modules/tags/backbone/BackboneGetTag"; +import { Inject } from "@nmshd/typescript-ioc"; +import { UseCase } from "../../common"; + +export class GetTagsUseCase extends UseCase { + public constructor(@Inject private readonly tagController: TagController) { + super(); + } + + protected async executeInternal(): Promise> { + return Result.ok(await this.tagController.getTags()); + } +} diff --git a/packages/runtime/src/useCases/transport/tags/index.ts b/packages/runtime/src/useCases/transport/tags/index.ts new file mode 100644 index 000000000..02a7c3733 --- /dev/null +++ b/packages/runtime/src/useCases/transport/tags/index.ts @@ -0,0 +1 @@ +export * from "./GetTags"; diff --git a/packages/transport/src/core/TransportController.ts b/packages/transport/src/core/TransportController.ts index 05e549fa1..897c12224 100644 --- a/packages/transport/src/core/TransportController.ts +++ b/packages/transport/src/core/TransportController.ts @@ -29,7 +29,8 @@ export enum ControllerName { RelationshipTemplator = "RelationshipTemplator", Secret = "Secret", Sync = "Sync", - Token = "Token" + Token = "Token", + Tag = "Tag" } export class TransportController { diff --git a/packages/transport/src/modules/accounts/AccountController.ts b/packages/transport/src/modules/accounts/AccountController.ts index 40b2592cd..4bbcc8bd5 100644 --- a/packages/transport/src/modules/accounts/AccountController.ts +++ b/packages/transport/src/modules/accounts/AccountController.ts @@ -31,6 +31,7 @@ import { SecretController } from "../secrets/SecretController"; import { ChangedItems } from "../sync/ChangedItems"; import { SyncController } from "../sync/SyncController"; import { SynchronizedCollection } from "../sync/SynchronizedCollection"; +import { TagController } from "../tags/TagController"; import { TokenController } from "../tokens/TokenController"; import { IdentityController } from "./IdentityController"; import { IdentityDeletionProcessController } from "./IdentityDeletionProcessController"; @@ -63,6 +64,7 @@ export class AccountController { public relationshipTemplates: RelationshipTemplateController; private synchronization: SyncController; public tokens: TokenController; + public tags: TagController; private relationshipSecrets: RelationshipSecretController; private readonly _log: ILogger; @@ -213,6 +215,7 @@ export class AccountController { this.relationshipTemplates = await new RelationshipTemplateController(this, this.relationshipSecrets).init(); this.messages = await new MessageController(this).init(); this.tokens = await new TokenController(this).init(); + this.tags = await new TagController(this).init(); this.synchronization = await new SyncController(this, this.dependencyOverrides, this.unpushedDatawalletModifications, this.config.datawalletEnabled).init(); diff --git a/packages/transport/src/modules/tags/TagController.ts b/packages/transport/src/modules/tags/TagController.ts new file mode 100644 index 000000000..20b8a2160 --- /dev/null +++ b/packages/transport/src/modules/tags/TagController.ts @@ -0,0 +1,24 @@ +import { AccountController, ControllerName, TransportController } from "../.."; +import { BackboneGetTag } from "./backbone/BackboneGetTag"; +import { TagClient } from "./backbone/TagClient"; + +export class TagController extends TransportController { + private client: TagClient; + + public constructor(parent: AccountController) { + super(ControllerName.Tag, parent); + } + + public override async init(): Promise { + await super.init(); + + this.client = new TagClient(this.config, this.parent.authenticator, this.transport.correlator); + + return this; + } + + public async getTags(): Promise { + const tags = (await this.client.getTags()).value; + return tags; + } +} diff --git a/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts b/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts new file mode 100644 index 000000000..27be967dc --- /dev/null +++ b/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts @@ -0,0 +1,9 @@ +export interface BackboneGetTag { + supportedLanguages: string[]; + tagsForAttributeValueTypes: Record>; +} + +interface Tag { + displayNames: Record; + children?: Record; +} diff --git a/packages/transport/src/modules/tags/backbone/TagClient.ts b/packages/transport/src/modules/tags/backbone/TagClient.ts new file mode 100644 index 000000000..3e25b6a9d --- /dev/null +++ b/packages/transport/src/modules/tags/backbone/TagClient.ts @@ -0,0 +1,9 @@ +import { ClientResult } from "../../../core/backbone/ClientResult"; +import { RESTClientAuthenticate } from "../../../core/backbone/RESTClientAuthenticate"; +import { BackboneGetTag } from "./BackboneGetTag"; + +export class TagClient extends RESTClientAuthenticate { + public async getTags(): Promise> { + return await this.get("/api/v1/Tags"); + } +} diff --git a/packages/transport/test/modules/tags/TagsController.test.ts b/packages/transport/test/modules/tags/TagsController.test.ts new file mode 100644 index 000000000..617595482 --- /dev/null +++ b/packages/transport/test/modules/tags/TagsController.test.ts @@ -0,0 +1,111 @@ +import { IDatabaseConnection } from "@js-soft/docdb-access-abstractions"; +import { AccountController, ClientResult, Transport } from "../../../src"; +import { BackboneGetTag } from "../../../src/modules/tags/backbone/BackboneGetTag"; +import { TagClient } from "../../../src/modules/tags/backbone/TagClient"; +import { TestUtil } from "../../testHelpers/TestUtil"; + +describe("AccountController", function () { + let connection: IDatabaseConnection; + + let transport: Transport; + + let account: AccountController; + + /* eslint-disable @typescript-eslint/naming-convention */ + const mockTags: BackboneGetTag = { + supportedLanguages: ["de", "en"], + tagsForAttributeValueTypes: { + IdentityFileReference: { + schulabschluss: { + displayNames: { + de: "Abschluss", + en: "Degree" + }, + children: { + realschule: { + displayNames: { + de: "Realschule", + en: "Secondary School" + }, + children: { + zeugnis: { + displayNames: { + de: "Zeugnis", + en: "Diploma" + } + } + } + }, + + gymnasium: { + displayNames: { + de: "Gymnasium", + en: "High School" + }, + children: { + zeugnis: { + displayNames: { + de: "Zeugnis", + en: "Diploma" + } + } + } + } + } + } + }, + PhoneNumber: { + notfall: { + displayNames: { + de: "Notfallkontakt", + en: "Emergency Contact" + } + } + }, + StreetAddress: { + lieferung: { + displayNames: { + de: "Lieferadresse", + en: "Deliver Address" + } + }, + heimat: { + displayNames: { + de: "Heimatadresse", + en: "Home Address" + } + } + } + } + }; + /* eslint-enable @typescript-eslint/naming-convention */ + + beforeAll(async function () { + connection = await TestUtil.createDatabaseConnection(); + transport = TestUtil.createTransport(connection); + + await transport.init(); + + const accounts = await TestUtil.provideAccounts(transport, 1); + account = accounts[0]; + const tagClient = (account.tags as any).client as TagClient; + + const mockGetTags = jest.fn().mockImplementation(() => { + return Promise.resolve(ClientResult.ok(mockTags)); + }); + + tagClient.getTags = mockGetTags.bind(tagClient); + }); + + afterAll(async function () { + await account.close(); + + await connection.close(); + }); + + test("should receive the legal tags", async function () { + const tags = await account.tags.getTags(); + + expect(tags).toStrictEqual(mockTags); + }); +}); From 327272c6b074757fa23926ea8af9023eaffe4f5c Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Thu, 24 Oct 2024 11:08:57 +0200 Subject: [PATCH 02/33] chore: fix circular dependencies --- .dev/compose.backbone.env | 2 +- package-lock.json | 3520 ++++++++++------- packages/runtime/package.json | 2 +- packages/runtime/src/Runtime.ts | 10 +- .../facades/transport/TagsFacade.ts | 4 +- packages/runtime/src/modules/DeciderModule.ts | 3 +- .../attributes/GetRepositoryAttributes.ts | 3 +- .../src/useCases/transport/tags/GetTags.ts | 3 +- packages/transport/src/modules/index.ts | 3 + .../src/modules/tags/TagController.ts | 4 +- .../test/modules/tags/TagsController.test.ts | 4 +- 11 files changed, 2118 insertions(+), 1440 deletions(-) diff --git a/.dev/compose.backbone.env b/.dev/compose.backbone.env index 903a8dc09..075825603 100644 --- a/.dev/compose.backbone.env +++ b/.dev/compose.backbone.env @@ -1 +1 @@ -BACKBONE_VERSION=6.13.2 +BACKBONE_VERSION=6.15.0 diff --git a/package-lock.json b/package-lock.json index af90160ab..fd60b90b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,6 +34,8 @@ }, "node_modules/@ampproject/remapping": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -45,11 +47,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.9.tgz", + "integrity": "sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.25.9", "picocolors": "^1.0.0" }, "engines": { @@ -57,7 +61,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.4", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.9.tgz", + "integrity": "sha512-yD+hEuJ/+wAJ4Ox2/rpNv5HIuPG82x3ZlQvYVn8iYCprdxzE7P1udpGF1jyjQVBU4dgznN+k2h103vxZ7NdPyw==", "dev": true, "license": "MIT", "engines": { @@ -65,20 +71,22 @@ } }, "node_modules/@babel/core": { - "version": "7.24.5", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.9.tgz", + "integrity": "sha512-WYvQviPw+Qyib0v92AwNIrdLISTp7RfDkM7bPqBvpbnhY4wq8HvHBZREVdYDXk98C8BkOIVnHAY3yvj7AVISxQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.24.5", - "@babel/helpers": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helpers": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -95,6 +103,8 @@ }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -102,27 +112,31 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.5", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.9.tgz", + "integrity": "sha512-omlUGkr5EaoIJrhLf9CJ0TvjBRpd9+AXRG//0GEQ9THSo8wPiTlbpy1/Ow8ZTrbXpjd9FHXfbFQx32I04ht0FA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.5", + "@babel/types": "^7.25.9", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -132,64 +146,39 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.0" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.5", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.9.tgz", + "integrity": "sha512-TvLZY/F3+GvdRYFZFyxMvnsKi+4oJdgZzU3BoGN9Uc2d9C6zfNwJcKKhjqLAhK8i46mv93jsO74fDh3ih6rpHA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-simple-access": "^7.24.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/helper-validator-identifier": "^7.24.5" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -199,7 +188,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.5", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "license": "MIT", "engines": { @@ -207,47 +198,43 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.5" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "license": "MIT", "engines": { @@ -255,24 +242,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.5", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.9.tgz", + "integrity": "sha512-oKWp3+usOJSzDZOucZUAMayhPz/xVjzymyDzUN8dk0Wd3RWMlGLXi07UCQ/CgQVb8LvXx3XBajJH4XGgkt7H7g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5" + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.5", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", + "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-validator-identifier": "^7.25.9", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -283,6 +273,8 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "license": "MIT", "dependencies": { @@ -294,6 +286,8 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "license": "MIT", "dependencies": { @@ -307,6 +301,8 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "license": "MIT", "dependencies": { @@ -315,11 +311,15 @@ }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true, "license": "MIT" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "license": "MIT", "engines": { @@ -328,6 +328,8 @@ }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "license": "MIT", "engines": { @@ -336,6 +338,8 @@ }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "license": "MIT", "dependencies": { @@ -346,12 +350,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", - "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.9.tgz", + "integrity": "sha512-aI3jjAAO1fh7vY/pBGsn1i9LDbRP43+asrRlkPuTXW5yHXtd1NgTEMudbBoDDxrf1daEEfPJqR+JBMakzrR4Dg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.25.2" + "@babel/types": "^7.25.9" }, "bin": { "parser": "bin/babel-parser.js" @@ -362,6 +367,8 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "license": "MIT", "dependencies": { @@ -373,6 +380,8 @@ }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "license": "MIT", "dependencies": { @@ -384,6 +393,8 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "license": "MIT", "dependencies": { @@ -393,8 +404,42 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.9.tgz", + "integrity": "sha512-u3EN9ub8LyYvgTnrgp8gboElouayiwPdnM7x5tcnW3iSt09/lQYPwMNK40I9IUxo7QOZhAsPHCmmuO7EPdruqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "license": "MIT", "dependencies": { @@ -406,6 +451,8 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "license": "MIT", "dependencies": { @@ -416,11 +463,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.1", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -431,6 +480,8 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "license": "MIT", "dependencies": { @@ -442,6 +493,8 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -453,6 +506,8 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "license": "MIT", "dependencies": { @@ -464,6 +519,8 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "license": "MIT", "dependencies": { @@ -475,6 +532,8 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -486,6 +545,8 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "license": "MIT", "dependencies": { @@ -495,8 +556,26 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "license": "MIT", "dependencies": { @@ -510,11 +589,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.1", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -524,31 +605,32 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.5", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -558,6 +640,8 @@ }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "license": "MIT", "engines": { @@ -565,14 +649,14 @@ } }, "node_modules/@babel/types": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", - "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.9.tgz", + "integrity": "sha512-OwS2CM5KocvQ/k7dFJa8i5bNGJP0hXWfVCfDkqRFP1IreH1JDC7wG6eCYCi0+McbfT8OR/kNqsI0UU0xP9H6PQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -580,11 +664,15 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true, "license": "MIT" }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "license": "MIT", "dependencies": { @@ -596,6 +684,8 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "license": "MIT", "dependencies": { @@ -608,6 +698,7 @@ "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-5.0.0.tgz", "integrity": "sha512-D/9dozteKcutI5OdxJd8rU+fL6XgaaRg60sPPJWkT33OCiRfkCu5wO5B/yXTaaL2e6EB0lcCBGe5E0XscZCvvQ==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^7.0.0" @@ -618,6 +709,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "license": "MIT", "dependencies": { @@ -631,7 +724,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", "dev": true, "license": "MIT", "engines": { @@ -640,6 +735,8 @@ }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "license": "MIT", "dependencies": { @@ -660,24 +757,10 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -685,14 +768,10 @@ "concat-map": "0.0.1" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -707,6 +786,7 @@ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -717,6 +797,7 @@ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", @@ -731,6 +812,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -741,6 +823,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -750,6 +833,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -765,10 +850,13 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "deprecated": "Use @eslint/object-schema instead", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "license": "ISC", "dependencies": { @@ -784,7 +872,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -794,13 +884,30 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", "dependencies": { @@ -817,6 +924,8 @@ }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "license": "MIT", "dependencies": { @@ -829,8 +938,28 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "license": "ISC", "dependencies": { @@ -846,6 +975,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", "dependencies": { @@ -854,6 +985,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -866,6 +999,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "license": "MIT", "dependencies": { @@ -878,6 +1013,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -889,6 +1026,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -903,6 +1042,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -914,6 +1055,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { @@ -922,11 +1065,15 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "license": "MIT", "engines": { @@ -935,6 +1082,8 @@ }, "node_modules/@jest/console": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "license": "MIT", "dependencies": { @@ -951,6 +1100,8 @@ }, "node_modules/@jest/core": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "license": "MIT", "dependencies": { @@ -997,6 +1148,8 @@ }, "node_modules/@jest/environment": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "license": "MIT", "dependencies": { @@ -1011,6 +1164,8 @@ }, "node_modules/@jest/expect": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1023,6 +1178,8 @@ }, "node_modules/@jest/expect-utils": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "license": "MIT", "dependencies": { @@ -1034,6 +1191,8 @@ }, "node_modules/@jest/fake-timers": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1050,6 +1209,8 @@ }, "node_modules/@jest/globals": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1064,6 +1225,8 @@ }, "node_modules/@jest/reporters": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "license": "MIT", "dependencies": { @@ -1106,6 +1269,8 @@ }, "node_modules/@jest/schemas": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "license": "MIT", "dependencies": { @@ -1117,6 +1282,8 @@ }, "node_modules/@jest/source-map": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "license": "MIT", "dependencies": { @@ -1130,6 +1297,8 @@ }, "node_modules/@jest/test-result": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "license": "MIT", "dependencies": { @@ -1144,6 +1313,8 @@ }, "node_modules/@jest/test-sequencer": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "license": "MIT", "dependencies": { @@ -1158,6 +1329,8 @@ }, "node_modules/@jest/transform": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "license": "MIT", "dependencies": { @@ -1183,6 +1356,8 @@ }, "node_modules/@jest/types": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "license": "MIT", "dependencies": { @@ -1199,6 +1374,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "license": "MIT", "dependencies": { @@ -1212,6 +1389,8 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { @@ -1220,6 +1399,8 @@ }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "license": "MIT", "engines": { @@ -1230,10 +1411,13 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1243,10 +1427,14 @@ }, "node_modules/@js-soft/docdb-access-abstractions": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@js-soft/docdb-access-abstractions/-/docdb-access-abstractions-1.0.4.tgz", + "integrity": "sha512-pz5/K/C3e74qzlYRQcv3DY2P854OOSumyVzwZ4GzYV5Wd9QjWdxtn9TWp10WLNi+Y1eWQPNB3LiLuVch4rBROQ==", "license": "MIT" }, "node_modules/@js-soft/docdb-access-loki": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@js-soft/docdb-access-loki/-/docdb-access-loki-1.1.0.tgz", + "integrity": "sha512-KOmSOIt6AkbumC4Ta1sDEt/v1IzfsMPIuIbbLSlerz3kxmkBaEGyYqyd3Dn2eRPrwijPzjT4WsZsTFMZzwrGzw==", "license": "MIT", "dependencies": { "@js-soft/docdb-access-abstractions": "1.0.4", @@ -1259,6 +1447,7 @@ "resolved": "https://registry.npmjs.org/@js-soft/docdb-access-mongo/-/docdb-access-mongo-1.1.9.tgz", "integrity": "sha512-TpcaStkB9LNCJWX/JQV7Bo5XtgesZ/Du8H02cWQcVNnwP7JgoPs7Rp4yY/6j49UB3tGb3v0cQMFCKUWtvFWdDQ==", "dev": true, + "license": "MIT", "dependencies": { "@js-soft/docdb-access-abstractions": "1.0.4", "mongodb": "6.8.0" @@ -1267,13 +1456,15 @@ "node_modules/@js-soft/docdb-querytranslator": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@js-soft/docdb-querytranslator/-/docdb-querytranslator-1.1.5.tgz", - "integrity": "sha512-VfuAWmGF3fJ/hrbvk+2CYh3p6kdqlcdUtHrOM6LK9q7lnZrVHmlnaE242fhGoUiAiKF0w5PWhUtd5/lggEb0EA==" + "integrity": "sha512-VfuAWmGF3fJ/hrbvk+2CYh3p6kdqlcdUtHrOM6LK9q7lnZrVHmlnaE242fhGoUiAiKF0w5PWhUtd5/lggEb0EA==", + "license": "MIT" }, "node_modules/@js-soft/eslint-config-ts": { "version": "1.6.13", "resolved": "https://registry.npmjs.org/@js-soft/eslint-config-ts/-/eslint-config-ts-1.6.13.tgz", "integrity": "sha512-vNz99IT2dZBATuKwv4nh94Bl+aZ+Yn04DWXg9Vov5saJUJ2TK78BG++VFSJnYsyt9dK81gU0oGZDew9KruqrsQ==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/eslint-plugin": "^8.10.0", "@typescript-eslint/parser": "^8.10.0", @@ -1288,6 +1479,8 @@ }, "node_modules/@js-soft/license-check": { "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@js-soft/license-check/-/license-check-1.0.9.tgz", + "integrity": "sha512-cupYi2KYDnwjPn77hoHpRgbGh8PKESYSFudFqgzzwA/4LqFCV1N2nLV5UHxhmtr3j7S6AmFeOAo19s1TsQUf3w==", "dev": true, "license": "MIT", "dependencies": { @@ -1309,6 +1502,7 @@ "resolved": "https://registry.npmjs.org/@js-soft/node-logger/-/node-logger-1.2.0.tgz", "integrity": "sha512-jEvBpqvhds+ReW46981UHtqaQVc2T1DpPmzo7SsaYMywIrV8O4c0gmZSOtZ3M4pTXysoSf121jTxxVMCXdQWFw==", "dev": true, + "license": "MIT", "dependencies": { "@js-soft/logging-abstractions": "1.0.1", "correlation-id": "^5.2.0", @@ -1320,6 +1514,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/@js-soft/simple-logger/-/simple-logger-1.0.5.tgz", "integrity": "sha512-ISrOACkOKJrlxsRazXHzXC1NeVxJEqUnorwPbb74wLPUkS09IY+8QE17QUkoLhv3R7eMJrhlaUMW/ZLyCn+kWQ==", + "license": "MIT", "dependencies": { "@js-soft/logging-abstractions": "1.0.1", "json-stringify-safe": "^5.0.1", @@ -1339,6 +1534,8 @@ }, "node_modules/@js-soft/ts-utils": { "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@js-soft/ts-utils/-/ts-utils-2.3.3.tgz", + "integrity": "sha512-BIa+uKckmFH7mfetmR0edGVGTXNUok17+PuqUyjgIGhlHw+sV+1ax8wEjABQhezv+Kf4eWfsSbReszZe+8TNYw==", "license": "MIT", "dependencies": { "eventemitter2": "^6.4.9", @@ -1348,10 +1545,14 @@ }, "node_modules/@js-soft/ts-utils/node_modules/reflect-metadata": { "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", "license": "Apache-2.0" }, "node_modules/@js-soft/web-logger": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@js-soft/web-logger/-/web-logger-1.0.4.tgz", + "integrity": "sha512-Gj+i0Ho9Yd3Z3rzpySpyeFTYkyHvgZ/ac97KxQrOEKAV8158D/Ewoims+MQKWUhoigvpLJj9ZIooKcBFW/ygsg==", "dev": true, "license": "MIT", "dependencies": { @@ -1365,6 +1566,7 @@ "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.9.tgz", "integrity": "sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==", "dev": true, + "license": "MIT", "dependencies": { "sparse-bitfield": "^3.0.3" } @@ -1389,6 +1591,7 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/@nmshd/crypto/-/crypto-2.0.7.tgz", "integrity": "sha512-yL/Hq5AgNFr94B5gCeBtDMX8naZy/RV/Mlo5yNfj46xW6yDrANa3r2f3mnaQpO2SA3unkDLkqQwO0TxLttmkvQ==", + "license": "MIT", "dependencies": { "libsodium-wrappers-sumo": "0.7.15", "uuid": "10.0.0" @@ -1420,6 +1623,8 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { @@ -1432,6 +1637,8 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", "engines": { @@ -1440,6 +1647,8 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { @@ -1452,6 +1661,8 @@ }, "node_modules/@npmcli/agent": { "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "dev": true, "license": "ISC", "dependencies": { @@ -1465,52 +1676,17 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/agent/node_modules/agent-base": { - "version": "7.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@npmcli/agent/node_modules/http-proxy-agent": { - "version": "7.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.2.2", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/@npmcli/agent/node_modules/socks-proxy-agent": { - "version": "8.0.3", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">= 14" - } + "license": "ISC" }, "node_modules/@npmcli/fs": { - "version": "3.1.0", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dev": true, "license": "ISC", "dependencies": { @@ -1521,11 +1697,14 @@ } }, "node_modules/@npmcli/git": { - "version": "5.0.6", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", "dev": true, "license": "ISC", "dependencies": { "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", "proc-log": "^4.0.0", @@ -1540,6 +1719,8 @@ }, "node_modules/@npmcli/git/node_modules/isexe": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "license": "ISC", "engines": { @@ -1547,15 +1728,16 @@ } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.2.2", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/@npmcli/git/node_modules/which": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "license": "ISC", "dependencies": { @@ -1570,6 +1752,8 @@ }, "node_modules/@npmcli/installed-package-contents": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, "license": "ISC", "dependencies": { @@ -1585,6 +1769,8 @@ }, "node_modules/@npmcli/node-gyp": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", "dev": true, "license": "ISC", "engines": { @@ -1592,7 +1778,9 @@ } }, "node_modules/@npmcli/package-json": { - "version": "5.1.0", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.1.tgz", + "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", "dev": true, "license": "ISC", "dependencies": { @@ -1609,55 +1797,30 @@ } }, "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "10.3.12", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@npmcli/package-json/node_modules/hosted-git-info": { - "version": "7.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/package-json/node_modules/lru-cache": { - "version": "10.2.2", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/@npmcli/package-json/node_modules/minipass": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/@npmcli/promise-spawn": { - "version": "7.0.1", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, "license": "ISC", "dependencies": { @@ -1669,6 +1832,8 @@ }, "node_modules/@npmcli/promise-spawn/node_modules/isexe": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "license": "ISC", "engines": { @@ -1677,6 +1842,8 @@ }, "node_modules/@npmcli/promise-spawn/node_modules/which": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "license": "ISC", "dependencies": { @@ -1690,7 +1857,9 @@ } }, "node_modules/@npmcli/redact": { - "version": "2.0.0", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", "dev": true, "license": "ISC", "engines": { @@ -1699,6 +1868,8 @@ }, "node_modules/@npmcli/run-script": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", "dev": true, "license": "ISC", "dependencies": { @@ -1715,6 +1886,8 @@ }, "node_modules/@npmcli/run-script/node_modules/isexe": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "license": "ISC", "engines": { @@ -1723,6 +1896,8 @@ }, "node_modules/@npmcli/run-script/node_modules/which": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "license": "ISC", "dependencies": { @@ -1737,6 +1912,8 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, "license": "MIT", "optional": true, @@ -1745,11 +1922,13 @@ } }, "node_modules/@sigstore/bundle": { - "version": "2.3.1", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -1757,6 +1936,8 @@ }, "node_modules/@sigstore/core": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1764,7 +1945,9 @@ } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.1", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1772,151 +1955,73 @@ } }, "node_modules/@sigstore/sign": { - "version": "2.3.0", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.0", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "make-fetch-happen": "^13.0.0" + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sigstore/sign/node_modules/cacache": { - "version": "18.0.2", + "node_modules/@sigstore/tuf": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sigstore/sign/node_modules/glob": { - "version": "10.3.12", + "node_modules/@sigstore/verify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sigstore/sign/node_modules/lru-cache": { - "version": "10.2.2", + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } + "license": "MIT" }, - "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { - "version": "13.0.1", + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/minipass": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@sigstore/sign/node_modules/minipass-collect": { - "version": "2.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@sigstore/tuf": { - "version": "2.3.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.0", - "tuf-js": "^2.2.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify": { - "version": "1.2.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.1", - "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "dev": true, - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -1924,9 +2029,9 @@ } }, "node_modules/@ts-graphviz/adapter": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@ts-graphviz/adapter/-/adapter-2.0.3.tgz", - "integrity": "sha512-wHSN23UdLz4vuYUBZCzq2/tfLicwStSo3cUWnzvMNxG2ngcuYauQCQInv4CI5IObq+PFol28RVrG9Ffa9BuIRA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@ts-graphviz/adapter/-/adapter-2.0.5.tgz", + "integrity": "sha512-K/xd2SJskbSLcUz9uYW9IDy26I3Oyutj/LREjJgcuLMxT3um4sZfy9LiUhGErHjxLRaNcaDVGSsmWeiNuhidXg==", "dev": true, "funding": [ { @@ -1938,17 +2043,18 @@ "url": "https://opencollective.com/ts-graphviz" } ], + "license": "MIT", "dependencies": { - "@ts-graphviz/common": "^2.1.2" + "@ts-graphviz/common": "^2.1.4" }, "engines": { "node": ">=18" } }, "node_modules/@ts-graphviz/ast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@ts-graphviz/ast/-/ast-2.0.3.tgz", - "integrity": "sha512-NhOgJdOHGSn5h5ydsFreLIKFBwQ59drzZ6y0B98+KeEMqduv5hXxcQoDabw8yzeNe9B92AfR5OpUYthcdAsYgw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@ts-graphviz/ast/-/ast-2.0.5.tgz", + "integrity": "sha512-HVT+Bn/smDzmKNJFccwgrpJaEUMPzXQ8d84JcNugzTHNUVgxAIe2Vbf4ug351YJpowivQp6/N7XCluQMjtgi5w==", "dev": true, "funding": [ { @@ -1960,17 +2066,18 @@ "url": "https://opencollective.com/ts-graphviz" } ], + "license": "MIT", "dependencies": { - "@ts-graphviz/common": "^2.1.2" + "@ts-graphviz/common": "^2.1.4" }, "engines": { "node": ">=18" } }, "node_modules/@ts-graphviz/common": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ts-graphviz/common/-/common-2.1.2.tgz", - "integrity": "sha512-Wyh5fOZNYyNP1mymbcHg/9atWR33NhHWIDrNa4hfbel3v340YQ+q+LMwAuIPuPt1qXINvOEhkowO5dvJWqfnPA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@ts-graphviz/common/-/common-2.1.4.tgz", + "integrity": "sha512-PNEzOgE4vgvorp/a4Ev26jVNtiX200yODoyPa8r6GfpPZbxWKW6bdXF6xWqzMkQoO1CnJOYJx2VANDbGqCqCCw==", "dev": true, "funding": [ { @@ -1982,14 +2089,15 @@ "url": "https://opencollective.com/ts-graphviz" } ], + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@ts-graphviz/core": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@ts-graphviz/core/-/core-2.0.3.tgz", - "integrity": "sha512-EZ+XlSwjdLtscoBOnA/Ba6QBrmoxAR73tJFjnWxaJQsZxWBQv6bLUrDgZUdXkXRAOSkRHn0uXY6Wq/3SsV2WtQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@ts-graphviz/core/-/core-2.0.5.tgz", + "integrity": "sha512-YwaCGAG3Hs0nhxl+2lVuwuTTAK3GO2XHqOGvGIwXQB16nV858rrR5w2YmWCw9nhd11uLTStxLsCAhI9koWBqDA==", "dev": true, "funding": [ { @@ -2001,9 +2109,10 @@ "url": "https://opencollective.com/ts-graphviz" } ], + "license": "MIT", "dependencies": { - "@ts-graphviz/ast": "^2.0.3", - "@ts-graphviz/common": "^2.1.2" + "@ts-graphviz/ast": "^2.0.5", + "@ts-graphviz/common": "^2.1.4" }, "engines": { "node": ">=18" @@ -2011,26 +2120,36 @@ }, "node_modules/@tsconfig/node10": { "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true, "license": "MIT" }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "dev": true, "license": "MIT", "engines": { @@ -2038,12 +2157,14 @@ } }, "node_modules/@tufjs/models": { - "version": "2.0.0", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, "license": "MIT", "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" + "minimatch": "^9.0.4" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -2051,6 +2172,8 @@ }, "node_modules/@types/babel__core": { "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", "dependencies": { @@ -2063,6 +2186,8 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "license": "MIT", "dependencies": { @@ -2071,6 +2196,8 @@ }, "node_modules/@types/babel__template": { "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "license": "MIT", "dependencies": { @@ -2079,7 +2206,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.5", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, "license": "MIT", "dependencies": { @@ -2088,6 +2217,8 @@ }, "node_modules/@types/graceful-fs": { "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2096,11 +2227,15 @@ }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true, "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "license": "MIT", "dependencies": { @@ -2109,6 +2244,8 @@ }, "node_modules/@types/istanbul-reports": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2116,10 +2253,11 @@ } }, "node_modules/@types/jest": { - "version": "29.5.13", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.13.tgz", - "integrity": "sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==", + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -2127,11 +2265,15 @@ }, "node_modules/@types/json-schema": { "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, "license": "MIT" }, "node_modules/@types/json-stringify-safe": { "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/json-stringify-safe/-/json-stringify-safe-5.0.3.tgz", + "integrity": "sha512-oNOjRxLfPeYbBSQ60maucaFNqbslVOPU4WWs5t/sHvAh6tyo/CThXSG+E24tEzkgh/fzvxyDrYdOJufgeNy1sQ==", "dev": true, "license": "MIT" }, @@ -2139,10 +2281,13 @@ "version": "4.17.12", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz", "integrity": "sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/lokijs": { "version": "1.5.14", + "resolved": "https://registry.npmjs.org/@types/lokijs/-/lokijs-1.5.14.tgz", + "integrity": "sha512-4Fic47BX3Qxr8pd12KT6/T1XWU8dOlJBIp1jGoMbaDbiEvdv50rAii+B3z1b/J2pvMywcVP+DBPGP5/lgLOKGA==", "license": "MIT" }, "node_modules/@types/luxon": { @@ -2153,16 +2298,19 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.7.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.7.tgz", - "integrity": "sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==", + "version": "22.7.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.9.tgz", + "integrity": "sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~6.19.2" } }, "node_modules/@types/qrcode": { "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.5.tgz", + "integrity": "sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==", "dev": true, "license": "MIT", "dependencies": { @@ -2173,10 +2321,13 @@ "version": "6.9.16", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/stack-utils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true, "license": "MIT" }, @@ -2184,25 +2335,30 @@ "version": "10.0.0", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/webidl-conversions": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/whatwg-url": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/webidl-conversions": "*" } }, "node_modules/@types/yargs": { - "version": "17.0.32", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, "license": "MIT", "dependencies": { @@ -2211,6 +2367,8 @@ }, "node_modules/@types/yargs-parser": { "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true, "license": "MIT" }, @@ -2219,6 +2377,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.11.0.tgz", "integrity": "sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.11.0", @@ -2247,41 +2406,12 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", - "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", - "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.11.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/parser": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.11.0.tgz", "integrity": "sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "8.11.0", "@typescript-eslint/types": "8.11.0", @@ -2305,69 +2435,12 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", - "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz", - "integrity": "sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.11.0", - "@typescript-eslint/visitor-keys": "8.11.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", - "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.11.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/scope-manager": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz", "integrity": "sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "8.11.0", "@typescript-eslint/visitor-keys": "8.11.0" @@ -2380,41 +2453,12 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", - "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", - "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.11.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.11.0.tgz", "integrity": "sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "8.11.0", "@typescript-eslint/utils": "8.11.0", @@ -2434,134 +2478,12 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", - "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz", - "integrity": "sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.11.0", - "@typescript-eslint/visitor-keys": "8.11.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", - "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.11.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.11.0.tgz", - "integrity": "sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.11.0", - "@typescript-eslint/types": "8.11.0", - "@typescript-eslint/typescript-estree": "8.11.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -2570,11 +2492,12 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/typescript-estree": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz", "integrity": "sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "8.11.0", "@typescript-eslint/visitor-keys": "8.11.0", @@ -2598,14 +2521,17 @@ } } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/utils": { "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", - "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.11.0.tgz", + "integrity": "sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==", "dev": true, + "license": "MIT", "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.11.0", "@typescript-eslint/types": "8.11.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/typescript-estree": "8.11.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2613,20 +2539,23 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", + "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/types": "8.11.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -2635,72 +2564,83 @@ }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true, "license": "ISC" }, "node_modules/@vue/compiler-core": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.35.tgz", - "integrity": "sha512-gKp0zGoLnMYtw4uS/SJRRO7rsVggLjvot3mcctlMXunYNsX+aRJDqqw/lV5/gHK91nvaAAlWFgdVl020AW1Prg==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.12.tgz", + "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/parser": "^7.24.7", - "@vue/shared": "3.4.35", + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.12", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.35.tgz", - "integrity": "sha512-pWIZRL76/oE/VMhdv/ovZfmuooEni6JPG1BFe7oLk5DZRo/ImydXijoZl/4kh2406boRQ7lxTYzbZEEXEhj9NQ==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", + "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.4.35", - "@vue/shared": "3.4.35" + "@vue/compiler-core": "3.5.12", + "@vue/shared": "3.5.12" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.35.tgz", - "integrity": "sha512-xacnRS/h/FCsjsMfxBkzjoNxyxEyKyZfBch/P4vkLRvYJwe5ChXmZZrj8Dsed/752H2Q3JE8kYu9Uyha9J6PgA==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz", + "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/parser": "^7.24.7", - "@vue/compiler-core": "3.4.35", - "@vue/compiler-dom": "3.4.35", - "@vue/compiler-ssr": "3.4.35", - "@vue/shared": "3.4.35", + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.12", + "@vue/compiler-dom": "3.5.12", + "@vue/compiler-ssr": "3.5.12", + "@vue/shared": "3.5.12", "estree-walker": "^2.0.2", - "magic-string": "^0.30.10", - "postcss": "^8.4.40", + "magic-string": "^0.30.11", + "postcss": "^8.4.47", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.35.tgz", - "integrity": "sha512-7iynB+0KB1AAJKk/biENTV5cRGHRdbdaD7Mx3nWcm1W8bVD6QmnH3B4AHhQQ1qZHhqFwzEzMwiytXm3PX1e60A==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz", + "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.35", - "@vue/shared": "3.4.35" + "@vue/compiler-dom": "3.5.12", + "@vue/shared": "3.5.12" } }, "node_modules/@vue/shared": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.35.tgz", - "integrity": "sha512-hvuhBYYDe+b1G8KHxsQ0diDqDMA8D9laxWZhNAjE83VZb5UDaXl9Xnz7cGdDSyiHM90qqI/CyGMcpBpiDy6VVQ==", - "dev": true + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.12.tgz", + "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==", + "dev": true, + "license": "MIT" }, "node_modules/abbrev": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "license": "ISC" }, "node_modules/acorn": { - "version": "8.11.3", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", + "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", "dev": true, "license": "MIT", "bin": { @@ -2712,6 +2652,8 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -2719,15 +2661,34 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.2", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/aggregate-error": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "license": "MIT", "dependencies": { @@ -2739,14 +2700,16 @@ } }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { "type": "github", @@ -2755,6 +2718,8 @@ }, "node_modules/ajv-formats": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", "license": "MIT", "dependencies": { "ajv": "^8.0.0" @@ -2768,8 +2733,32 @@ } } }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, "node_modules/ansi-escapes": { "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2784,6 +2773,8 @@ }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -2795,6 +2786,8 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "license": "MIT", "engines": { "node": ">=8" @@ -2802,6 +2795,8 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -2815,11 +2810,15 @@ }, "node_modules/any-promise": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true, "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "license": "ISC", "dependencies": { @@ -2834,20 +2833,27 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/arg": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true, "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, "license": "Python-2.0" }, "node_modules/array-find-index": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", "dev": true, "license": "MIT", "engines": { @@ -2856,6 +2862,8 @@ }, "node_modules/array-union": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "license": "MIT", "engines": { @@ -2864,6 +2872,8 @@ }, "node_modules/asap": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true, "license": "MIT" }, @@ -2872,24 +2882,29 @@ "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-6.0.0.tgz", "integrity": "sha512-LFRg7178Fw5R4FAEwZxVqiRI8IxSM+Ay2UBrHoCerXNme+kMMMfz7T3xDGV/c2fer87hcrtgJGsnSOfUrPK6ng==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" }, "node_modules/asynckit": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, "node_modules/axios": { "version": "1.7.7", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -2898,6 +2913,8 @@ }, "node_modules/babel-jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "license": "MIT", "dependencies": { @@ -2918,6 +2935,8 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -2933,6 +2952,8 @@ }, "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -2948,6 +2969,8 @@ }, "node_modules/babel-plugin-istanbul/node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -2956,6 +2979,8 @@ }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "license": "MIT", "dependencies": { @@ -2969,22 +2994,27 @@ } }, "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -2992,6 +3022,8 @@ }, "node_modules/babel-preset-jest": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "license": "MIT", "dependencies": { @@ -3007,11 +3039,15 @@ }, "node_modules/balanced-match": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ { @@ -3031,6 +3067,8 @@ }, "node_modules/bl": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "license": "MIT", "dependencies": { @@ -3041,6 +3079,8 @@ }, "node_modules/brace-expansion": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { @@ -3052,6 +3092,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -3060,7 +3101,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.0", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -3078,10 +3121,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -3092,6 +3135,8 @@ }, "node_modules/bs-logger": { "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "license": "MIT", "dependencies": { @@ -3103,6 +3148,8 @@ }, "node_modules/bser": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3110,16 +3157,19 @@ } }, "node_modules/bson": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.8.0.tgz", - "integrity": "sha512-iOJg8pr7wq2tg/zSlCCHMi3hMm5JTOxLTagf3zxhcenHsFp+c6uOs6K7W5UE7A4QIJGtqh/ZovFNMP4mOPJynQ==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.9.0.tgz", + "integrity": "sha512-X9hJeyeM0//Fus+0pc5dSUMhhrrmWwQUtdavaQeF3Ta6m69matZkGWV/MrBcnwUeLC8W9kwwc2hfkZgUuCX3Ig==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=16.20.1" } }, "node_modules/buffer": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -3143,19 +3193,67 @@ }, "node_modules/buffer-from": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true, "license": "MIT" }, - "node_modules/builtins": { - "version": "5.1.0", + "node_modules/cacache": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", "dependencies": { - "semver": "^7.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/call-bind": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -3173,6 +3271,8 @@ }, "node_modules/callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "license": "MIT", "engines": { @@ -3181,13 +3281,17 @@ }, "node_modules/camelcase": { "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001615", + "version": "1.0.30001669", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", + "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", "dev": true, "funding": [ { @@ -3207,6 +3311,8 @@ }, "node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -3222,6 +3328,8 @@ }, "node_modules/char-regex": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, "license": "MIT", "engines": { @@ -3230,6 +3338,8 @@ }, "node_modules/chownr": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, "license": "ISC", "engines": { @@ -3238,6 +3348,8 @@ }, "node_modules/ci-info": { "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -3251,12 +3363,16 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.3.1", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", "dev": true, "license": "MIT" }, "node_modules/clean-stack": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, "license": "MIT", "engines": { @@ -3265,6 +3381,8 @@ }, "node_modules/cli-cursor": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "license": "MIT", "dependencies": { @@ -3276,6 +3394,8 @@ }, "node_modules/cli-spinners": { "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "license": "MIT", "engines": { @@ -3287,6 +3407,8 @@ }, "node_modules/cliui": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", "dependencies": { @@ -3298,24 +3420,10 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/clone": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, "license": "MIT", "engines": { @@ -3324,6 +3432,8 @@ }, "node_modules/co": { "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "license": "MIT", "engines": { @@ -3333,11 +3443,15 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true, "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -3348,10 +3462,14 @@ }, "node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -3362,6 +3480,8 @@ }, "node_modules/commander": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, "license": "MIT", "engines": { @@ -3370,16 +3490,22 @@ }, "node_modules/commondir": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true, "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, "license": "MIT" }, "node_modules/convert-source-map": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, @@ -3388,12 +3514,15 @@ "resolved": "https://registry.npmjs.org/correlation-id/-/correlation-id-5.2.0.tgz", "integrity": "sha512-qTsYujgBvWIx05qF9HV4+KoezGTelgqJiFnyEfRsEqjpQUZdWnraOGHD+IMep7lPFg6MiI55fvpC4qruKdY5Dw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.17.0" } }, "node_modules/create-jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3414,11 +3543,15 @@ }, "node_modules/create-require": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true, "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "license": "MIT", "dependencies": { @@ -3432,6 +3565,8 @@ }, "node_modules/date-format": { "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "dev": true, "license": "MIT", "engines": { @@ -3439,10 +3574,12 @@ } }, "node_modules/debug": { - "version": "4.3.4", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -3455,6 +3592,9 @@ }, "node_modules/debuglog": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, "license": "MIT", "engines": { @@ -3463,6 +3603,8 @@ }, "node_modules/decamelize": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3470,6 +3612,8 @@ }, "node_modules/dedent": { "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -3483,6 +3627,8 @@ }, "node_modules/deep-extend": { "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "license": "MIT", "engines": { @@ -3491,11 +3637,15 @@ }, "node_modules/deep-is": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "license": "MIT", "engines": { @@ -3504,6 +3654,8 @@ }, "node_modules/defaults": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "license": "MIT", "dependencies": { @@ -3515,6 +3667,8 @@ }, "node_modules/define-data-property": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -3530,6 +3684,8 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "license": "MIT", "engines": { "node": ">=0.4.0" @@ -3540,6 +3696,7 @@ "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-11.0.1.tgz", "integrity": "sha512-eCt7HSKIC9NxgIykG2DRq3Aewn9UhVS14MB3rEn6l/AsEI1FBg6ZGSlCU0SZ6Tjm2kkhj6/8c2pViinuyKELhg==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^12.0.0", "filing-cabinet": "^5.0.1", @@ -3558,12 +3715,15 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/detect-newline": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "license": "MIT", "engines": { @@ -3575,6 +3735,7 @@ "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-6.0.0.tgz", "integrity": "sha512-NTqfYfwNsW7AQltKSEaWR66hGkTeD52Kz3eRQ+nfkA9ZFZt3iifRCWh+yZ/m6t3H42JFwVFTrml/D64R2PAIOA==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^6.0.0", "escodegen": "^2.1.0", @@ -3593,6 +3754,7 @@ "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-6.0.0.tgz", "integrity": "sha512-R55jTS6Kkmy6ukdrbzY4x+I7KkXiuDPpFzUViFV/tm2PBGtTCjkh9ZmTuJc1SaziMHJOe636dtiZLEuzBL9drg==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^6.0.0", "node-source-walk": "^7.0.0" @@ -3606,6 +3768,7 @@ "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-5.0.0.tgz", "integrity": "sha512-NGTnzjvgeMW1khUSEXCzPDoraLenWbUjCFjwxReH+Ir+P6LGjYtaBbAvITWn2H0VSC+eM7/9LFOTAkrta6hNYg==", "dev": true, + "license": "MIT", "dependencies": { "node-source-walk": "^7.0.0" }, @@ -3618,6 +3781,7 @@ "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-7.0.0.tgz", "integrity": "sha512-pSXA6dyqmBPBuERpoOKKTUUjQCZwZPLRbd1VdsTbt6W+m/+6ROl4BbE87yQBUtLoK7yX8pvXHdKyM/xNIW9F7A==", "dev": true, + "license": "MIT", "dependencies": { "is-url": "^1.2.4", "postcss-values-parser": "^6.0.2" @@ -3634,6 +3798,7 @@ "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-6.0.0.tgz", "integrity": "sha512-h5GCfFMkPm4ZUUfGHVPKNHKT8jV7cSmgK+s4dgQH4/dIUNh9/huR1fjEQrblOQNDalSU7k7g+tiW9LJ+nVEUhg==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^7.0.0" @@ -3647,6 +3812,7 @@ "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-5.0.0.tgz", "integrity": "sha512-Y64HyMqntdsCh1qAH7ci95dk0nnpA29g319w/5d/oYcHolcGUVJbIhOirOFjfN1KnMAXAFm5FIkZ4l2EKFGgxg==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^7.0.0" @@ -3660,6 +3826,7 @@ "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-5.0.0.tgz", "integrity": "sha512-KMHOsPY6aq3196WteVhkY5FF+6Nnc/r7q741E+Gq+Ax9mhE2iwj8Hlw8pl+749hPDRDBHZ2WlgOjP+twIG61vQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -3669,6 +3836,7 @@ "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-13.0.0.tgz", "integrity": "sha512-tcMYfiFWoUejSbvSblw90NDt76/4mNftYCX0SMnVRYzSXv8Fvo06hi4JOPdNvVNxRtCAKg3MJ3cBJh+ygEMH+A==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "^7.6.0", "ast-module-types": "^6.0.0", @@ -3681,13 +3849,76 @@ "typescript": "^5.4.4" } }, + "node_modules/detective-typescript/node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/detective-typescript/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/detective-typescript/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/detective-vue2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detective-vue2/-/detective-vue2-2.0.3.tgz", - "integrity": "sha512-AgWdSfVnft8uPGnUkdvE1EDadEENDCzoSRMt2xZfpxsjqVO617zGWXbB8TGIxHaqHz/nHa6lOSgAB8/dt0yEug==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detective-vue2/-/detective-vue2-2.1.0.tgz", + "integrity": "sha512-IHQVhwk7dKaJ+GHBsL27mS9NRO1/vLZJPSODqtJgKquij0/UL8NvrbXbADbYeTkwyh1ReW/v9u9IRyEO5dvGZg==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/compiler-sfc": "^3.4.27", + "@dependents/detective-less": "^5.0.0", + "@vue/compiler-sfc": "^3.5.12", "detective-es6": "^5.0.0", "detective-sass": "^6.0.0", "detective-scss": "^5.0.0", @@ -3703,6 +3934,8 @@ }, "node_modules/dezalgo": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dev": true, "license": "ISC", "dependencies": { @@ -3712,6 +3945,8 @@ }, "node_modules/diff": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -3720,6 +3955,8 @@ }, "node_modules/diff-sequences": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "license": "MIT", "engines": { @@ -3728,10 +3965,14 @@ }, "node_modules/dijkstrajs": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", "license": "MIT" }, "node_modules/dir-glob": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "license": "MIT", "dependencies": { @@ -3743,6 +3984,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3754,6 +3997,8 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true, "license": "MIT" }, @@ -3762,6 +4007,7 @@ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "jake": "^10.8.5" }, @@ -3773,12 +4019,16 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.754", + "version": "1.5.45", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.45.tgz", + "integrity": "sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==", "dev": true, "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", "engines": { @@ -3790,10 +4040,14 @@ }, "node_modules/emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "license": "MIT" }, "node_modules/encoding": { "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "license": "MIT", "optional": true, @@ -3803,6 +4057,8 @@ }, "node_modules/enhanced-publish": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/enhanced-publish/-/enhanced-publish-1.1.3.tgz", + "integrity": "sha512-Mu5yTcSP6W4zlNS914PiqY0PGDyOfl7mx7oszCvFIifuA4HuJCMD8b0abXURwZ+4iLWR6xPSP6d5EKKpzPFbOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3813,10 +4069,11 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", - "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -3830,6 +4087,7 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -3839,6 +4097,8 @@ }, "node_modules/env-paths": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, "license": "MIT", "engines": { @@ -3847,11 +4107,15 @@ }, "node_modules/err-code": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true, "license": "MIT" }, "node_modules/error-ex": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "license": "MIT", "dependencies": { @@ -3860,6 +4124,8 @@ }, "node_modules/es-define-property": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" @@ -3870,13 +4136,17 @@ }, "node_modules/es-errors": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/escalade": { - "version": "3.1.2", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { @@ -3885,6 +4155,8 @@ }, "node_modules/escape-string-regexp": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", "engines": { @@ -3899,6 +4171,7 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -3919,7 +4192,9 @@ "version": "8.57.1", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -3975,6 +4250,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-chai-expect/-/eslint-plugin-chai-expect-3.1.0.tgz", "integrity": "sha512-a9F8b38hhJsR7fgDEfyMxppZXCnCW6OOHj7cQfygsm9guXqdSzfpwrHX5FT93gSExDqD71HQglF1lLkGBwhJ+g==", "dev": true, + "license": "MIT", "engines": { "node": "10.* || 12.* || || 14.* || 16.* || >= 18.*" }, @@ -4041,6 +4317,8 @@ }, "node_modules/eslint-scope": { "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4085,6 +4363,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", "engines": { @@ -4094,24 +4374,10 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -4119,14 +4385,10 @@ "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -4138,6 +4400,8 @@ }, "node_modules/espree": { "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4154,6 +4418,8 @@ }, "node_modules/esprima": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "license": "BSD-2-Clause", "bin": { @@ -4165,7 +4431,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -4177,6 +4445,8 @@ }, "node_modules/esrecurse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4188,6 +4458,8 @@ }, "node_modules/estraverse": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -4198,10 +4470,13 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -4210,10 +4485,14 @@ }, "node_modules/eventemitter2": { "version": "6.4.9", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", + "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", "license": "MIT" }, "node_modules/execa": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "license": "MIT", "dependencies": { @@ -4236,6 +4515,8 @@ }, "node_modules/exit": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -4243,6 +4524,8 @@ }, "node_modules/expect": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "license": "MIT", "dependencies": { @@ -4258,15 +4541,21 @@ }, "node_modules/exponential-backoff": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", "dev": true, "license": "Apache-2.0" }, "node_modules/fast-deep-equal": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "license": "MIT", "dependencies": { @@ -4282,6 +4571,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -4293,25 +4584,34 @@ }, "node_modules/fast-json-patch": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz", + "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==", "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "license": "BSD-3-Clause" }, "node_modules/fastq": { "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "license": "ISC", "dependencies": { @@ -4320,6 +4620,8 @@ }, "node_modules/fb-watchman": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -4328,6 +4630,8 @@ }, "node_modules/file-entry-cache": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "license": "MIT", "dependencies": { @@ -4342,6 +4646,7 @@ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, + "license": "Apache-2.0", "dependencies": { "minimatch": "^5.0.1" } @@ -4351,6 +4656,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -4363,6 +4669,7 @@ "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-5.0.2.tgz", "integrity": "sha512-RZlFj8lzyu6jqtFBeXNqUjjNG6xm+gwXue3T70pRxw1W40kJwlgq0PSWAmh0nAnn5DHuBIecLXk9+1VKS9ICXA==", "dev": true, + "license": "MIT", "dependencies": { "app-module-path": "^2.2.0", "commander": "^12.0.0", @@ -4388,6 +4695,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -4397,6 +4705,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -4406,6 +4715,8 @@ }, "node_modules/find-up": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { @@ -4421,6 +4732,8 @@ }, "node_modules/flat-cache": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "license": "MIT", "dependencies": { @@ -4434,11 +4747,15 @@ }, "node_modules/flatted": { "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true, "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.6", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", @@ -4456,7 +4773,9 @@ } }, "node_modules/foreground-child": { - "version": "3.1.1", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, "license": "ISC", "dependencies": { @@ -4472,6 +4791,8 @@ }, "node_modules/foreground-child/node_modules/signal-exit": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", "engines": { @@ -4497,6 +4818,8 @@ }, "node_modules/fs-extra": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "license": "MIT", "dependencies": { @@ -4510,6 +4833,8 @@ }, "node_modules/fs-minipass": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, "license": "ISC", "dependencies": { @@ -4519,16 +4844,10 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, "license": "ISC" }, @@ -4549,6 +4868,8 @@ }, "node_modules/function-bind": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4556,6 +4877,8 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "license": "MIT", "engines": { @@ -4567,6 +4890,7 @@ "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-6.0.0.tgz", "integrity": "sha512-hFM7oivtlgJ3d6XWD6G47l8Wyh/C6vFw5G24Kk1Tbq85yh5gcM8Fne5/lFhiuxB+RT6+SI7I1ThB9lG4FBh3jw==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^6.0.0", "node-source-walk": "^7.0.0" @@ -4577,6 +4901,8 @@ }, "node_modules/get-caller-file": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -4584,6 +4910,8 @@ }, "node_modules/get-intrinsic": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -4603,10 +4931,13 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/get-package-type": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "license": "MIT", "engines": { @@ -4615,6 +4946,8 @@ }, "node_modules/get-stream": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "license": "MIT", "engines": { @@ -4626,6 +4959,9 @@ }, "node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -4645,6 +4981,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "license": "ISC", "dependencies": { @@ -4656,6 +4994,8 @@ }, "node_modules/glob/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -4665,6 +5005,8 @@ }, "node_modules/glob/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -4676,6 +5018,8 @@ }, "node_modules/globals": { "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4690,6 +5034,8 @@ }, "node_modules/globby": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "license": "MIT", "dependencies": { @@ -4712,6 +5058,7 @@ "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.5" }, @@ -4724,6 +5071,8 @@ }, "node_modules/gopd": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" @@ -4734,16 +5083,22 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true, "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -4752,6 +5107,8 @@ }, "node_modules/has-property-descriptors": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" @@ -4762,6 +5119,8 @@ }, "node_modules/has-proto": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -4772,6 +5131,8 @@ }, "node_modules/has-symbols": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -4782,6 +5143,8 @@ }, "node_modules/hasown": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -4790,34 +5153,62 @@ "node": ">= 0.4" } }, + "node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/html-escaper": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true, "license": "MIT" }, "node_modules/http-cache-semantics": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true, "license": "BSD-2-Clause" }, - "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { "node": ">= 14" } }, - "node_modules/https-proxy-agent/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "license": "MIT", "dependencies": { - "debug": "^4.3.4" + "agent-base": "^7.0.2", + "debug": "4" }, "engines": { "node": ">= 14" @@ -4825,6 +5216,8 @@ }, "node_modules/human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -4833,6 +5226,8 @@ }, "node_modules/iconv-lite": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "license": "MIT", "optional": true, @@ -4845,6 +5240,8 @@ }, "node_modules/ieee754": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { @@ -4863,7 +5260,9 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.1", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { @@ -4871,7 +5270,9 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.4", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", "dev": true, "license": "ISC", "dependencies": { @@ -4883,6 +5284,8 @@ }, "node_modules/import-fresh": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "license": "MIT", "dependencies": { @@ -4897,7 +5300,9 @@ } }, "node_modules/import-local": { - "version": "3.1.0", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, "license": "MIT", "dependencies": { @@ -4916,6 +5321,8 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", "engines": { @@ -4924,6 +5331,8 @@ }, "node_modules/indent-string": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "license": "MIT", "engines": { @@ -4932,6 +5341,9 @@ }, "node_modules/inflight": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "license": "ISC", "dependencies": { @@ -4941,11 +5353,25 @@ }, "node_modules/inherits": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true, "license": "ISC" }, + "node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/ip-address": { "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dev": true, "license": "MIT", "dependencies": { @@ -4958,15 +5384,22 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true, "license": "MIT" }, "node_modules/is-core-module": { - "version": "2.13.1", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dev": true, "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4974,6 +5407,8 @@ }, "node_modules/is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", "engines": { @@ -4982,6 +5417,8 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "license": "MIT", "engines": { "node": ">=8" @@ -4989,6 +5426,8 @@ }, "node_modules/is-generator-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "license": "MIT", "engines": { @@ -4997,6 +5436,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", "dependencies": { @@ -5008,6 +5449,8 @@ }, "node_modules/is-interactive": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, "license": "MIT", "engines": { @@ -5016,6 +5459,8 @@ }, "node_modules/is-lambda": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true, "license": "MIT" }, @@ -5024,6 +5469,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -5033,12 +5479,15 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-path-inside": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "license": "MIT", "engines": { @@ -5050,12 +5499,15 @@ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-stream": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "license": "MIT", "engines": { @@ -5067,6 +5519,8 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "license": "MIT", "engines": { @@ -5080,13 +5534,15 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-url-superb": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5096,11 +5552,15 @@ }, "node_modules/isexe": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, "license": "ISC" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -5108,7 +5568,9 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "6.0.2", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -5124,6 +5586,8 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -5137,6 +5601,8 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -5150,6 +5616,8 @@ }, "node_modules/istanbul-reports": { "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -5161,15 +5629,14 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -5178,10 +5645,11 @@ } }, "node_modules/jake": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", - "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -5200,6 +5668,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5210,6 +5679,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5219,6 +5689,8 @@ }, "node_modules/jest": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "license": "MIT", "dependencies": { @@ -5244,6 +5716,8 @@ }, "node_modules/jest-changed-files": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "license": "MIT", "dependencies": { @@ -5257,6 +5731,8 @@ }, "node_modules/jest-circus": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "license": "MIT", "dependencies": { @@ -5287,6 +5763,8 @@ }, "node_modules/jest-cli": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "license": "MIT", "dependencies": { @@ -5319,6 +5797,8 @@ }, "node_modules/jest-config": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5363,6 +5843,8 @@ }, "node_modules/jest-diff": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "license": "MIT", "dependencies": { @@ -5377,6 +5859,8 @@ }, "node_modules/jest-docblock": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "license": "MIT", "dependencies": { @@ -5388,6 +5872,8 @@ }, "node_modules/jest-each": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5403,6 +5889,8 @@ }, "node_modules/jest-environment-node": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "license": "MIT", "dependencies": { @@ -5419,11 +5907,15 @@ }, "node_modules/jest-expect-message": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/jest-expect-message/-/jest-expect-message-1.1.3.tgz", + "integrity": "sha512-bTK77T4P+zto+XepAX3low8XVQxDgaEqh3jSTQOG8qvPpD69LsIdyJTa+RmnJh3HNSzJng62/44RPPc7OIlFxg==", "dev": true, "license": "MIT" }, "node_modules/jest-get-type": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "license": "MIT", "engines": { @@ -5432,6 +5924,8 @@ }, "node_modules/jest-haste-map": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "license": "MIT", "dependencies": { @@ -5456,6 +5950,8 @@ }, "node_modules/jest-leak-detector": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "license": "MIT", "dependencies": { @@ -5468,6 +5964,8 @@ }, "node_modules/jest-matcher-utils": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "license": "MIT", "dependencies": { @@ -5482,6 +5980,8 @@ }, "node_modules/jest-message-util": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "license": "MIT", "dependencies": { @@ -5501,6 +6001,8 @@ }, "node_modules/jest-mock": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "license": "MIT", "dependencies": { @@ -5514,6 +6016,8 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "license": "MIT", "engines": { @@ -5530,6 +6034,8 @@ }, "node_modules/jest-regex-util": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "license": "MIT", "engines": { @@ -5538,6 +6044,8 @@ }, "node_modules/jest-resolve": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "license": "MIT", "dependencies": { @@ -5557,6 +6065,8 @@ }, "node_modules/jest-resolve-dependencies": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "license": "MIT", "dependencies": { @@ -5569,6 +6079,8 @@ }, "node_modules/jest-runner": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5600,6 +6112,8 @@ }, "node_modules/jest-runtime": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5632,6 +6146,8 @@ }, "node_modules/jest-snapshot": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "license": "MIT", "dependencies": { @@ -5662,6 +6178,8 @@ }, "node_modules/jest-util": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "license": "MIT", "dependencies": { @@ -5678,6 +6196,8 @@ }, "node_modules/jest-validate": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "license": "MIT", "dependencies": { @@ -5694,6 +6214,8 @@ }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", "engines": { @@ -5705,6 +6227,8 @@ }, "node_modules/jest-watcher": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "license": "MIT", "dependencies": { @@ -5723,6 +6247,8 @@ }, "node_modules/jest-worker": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "license": "MIT", "dependencies": { @@ -5737,6 +6263,8 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5751,16 +6279,22 @@ }, "node_modules/js-logger": { "version": "1.6.1", + "resolved": "https://registry.npmjs.org/js-logger/-/js-logger-1.6.1.tgz", + "integrity": "sha512-yTgMCPXVjhmg28CuUH8CKjU+cIKL/G+zTu4Fn4lQxs8mRFH/03QTNvEFngcxfg/gRDiQAOoyCKmMTOm9ayOzXA==", "dev": true, "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { @@ -5772,27 +6306,35 @@ }, "node_modules/jsbn": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", "dev": true, "license": "MIT" }, "node_modules/jsesc": { - "version": "2.5.2", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, "license": "MIT" }, "node_modules/json-parse-even-better-errors": { - "version": "3.0.1", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, "license": "MIT", "engines": { @@ -5800,12 +6342,16 @@ } }, "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, "license": "MIT" }, @@ -5817,6 +6363,8 @@ }, "node_modules/json5": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", "bin": { @@ -5828,6 +6376,8 @@ }, "node_modules/jsonfile": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, "license": "MIT", "optionalDependencies": { @@ -5836,6 +6386,8 @@ }, "node_modules/jsonparse": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" @@ -5844,6 +6396,8 @@ }, "node_modules/keyv": { "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "license": "MIT", "dependencies": { @@ -5852,6 +6406,8 @@ }, "node_modules/kleur": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, "license": "MIT", "engines": { @@ -5860,6 +6416,8 @@ }, "node_modules/leven": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "license": "MIT", "engines": { @@ -5868,6 +6426,8 @@ }, "node_modules/levn": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5881,18 +6441,22 @@ "node_modules/libsodium-sumo": { "version": "0.7.15", "resolved": "https://registry.npmjs.org/libsodium-sumo/-/libsodium-sumo-0.7.15.tgz", - "integrity": "sha512-5tPmqPmq8T8Nikpm1Nqj0hBHvsLFCXvdhBFV7SGOitQPZAA6jso8XoL0r4L7vmfKXr486fiQInvErHtEvizFMw==" + "integrity": "sha512-5tPmqPmq8T8Nikpm1Nqj0hBHvsLFCXvdhBFV7SGOitQPZAA6jso8XoL0r4L7vmfKXr486fiQInvErHtEvizFMw==", + "license": "ISC" }, "node_modules/libsodium-wrappers-sumo": { "version": "0.7.15", "resolved": "https://registry.npmjs.org/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.15.tgz", "integrity": "sha512-aSWY8wKDZh5TC7rMvEdTHoyppVq/1dTSAeAR7H6pzd6QRT3vQWcT5pGwCotLcpPEOLXX6VvqihSPkpEhYAjANA==", + "license": "ISC", "dependencies": { "libsodium-sumo": "^0.7.15" } }, "node_modules/license-checker": { "version": "25.0.1", + "resolved": "https://registry.npmjs.org/license-checker/-/license-checker-25.0.1.tgz", + "integrity": "sha512-mET5AIwl7MR2IAKYYoVBBpV0OnkKQ1xGj2IMMeEFIs42QAkEVjRtFZGWmQ28WeU7MP779iAgOaOy93Mn44mn6g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -5913,6 +6477,8 @@ }, "node_modules/license-checker/node_modules/ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "license": "MIT", "dependencies": { @@ -5924,6 +6490,8 @@ }, "node_modules/license-checker/node_modules/chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5937,6 +6505,8 @@ }, "node_modules/license-checker/node_modules/color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "license": "MIT", "dependencies": { @@ -5945,11 +6515,15 @@ }, "node_modules/license-checker/node_modules/color-name": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true, "license": "MIT" }, "node_modules/license-checker/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5958,6 +6532,8 @@ }, "node_modules/license-checker/node_modules/escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "license": "MIT", "engines": { @@ -5966,6 +6542,8 @@ }, "node_modules/license-checker/node_modules/has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "license": "MIT", "engines": { @@ -5974,6 +6552,8 @@ }, "node_modules/license-checker/node_modules/semver": { "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "license": "ISC", "bin": { @@ -5982,6 +6562,8 @@ }, "node_modules/license-checker/node_modules/supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "license": "MIT", "dependencies": { @@ -5993,11 +6575,15 @@ }, "node_modules/lines-and-columns": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true, "license": "MIT" }, "node_modules/locate-path": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { @@ -6018,16 +6604,22 @@ }, "node_modules/lodash.memoize": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true, "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "license": "MIT", "dependencies": { @@ -6043,6 +6635,8 @@ }, "node_modules/log4js": { "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -6058,10 +6652,14 @@ }, "node_modules/lokijs": { "version": "1.5.12", + "resolved": "https://registry.npmjs.org/lokijs/-/lokijs-1.5.12.tgz", + "integrity": "sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q==", "license": "MIT" }, "node_modules/lru-cache": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", "dependencies": { @@ -6082,6 +6680,7 @@ "resolved": "https://registry.npmjs.org/madge/-/madge-8.0.0.tgz", "integrity": "sha512-9sSsi3TBPhmkTCIpVQF0SPiChj1L7Rq9kU2KDG1o6v2XH9cCw086MopjVCD+vuoL5v8S77DTbVopTO8OUiQpIw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "commander": "^7.2.0", @@ -6116,16 +6715,19 @@ } }, "node_modules/magic-string": { - "version": "0.30.11", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", - "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/make-dir": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "license": "MIT", "dependencies": { @@ -6140,11 +6742,39 @@ }, "node_modules/make-error": { "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true, "license": "ISC" }, + "node_modules/make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/makeerror": { "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -6155,15 +6785,20 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true, "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -6175,6 +6810,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -6185,6 +6821,8 @@ }, "node_modules/mime-db": { "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -6192,6 +6830,8 @@ }, "node_modules/mime-types": { "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -6202,6 +6842,8 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "license": "MIT", "engines": { @@ -6209,7 +6851,9 @@ } }, "node_modules/minimatch": { - "version": "9.0.4", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -6224,6 +6868,8 @@ }, "node_modules/minimist": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "license": "MIT", "funding": { @@ -6231,15 +6877,32 @@ } }, "node_modules/minipass": { - "version": "5.0.0", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "license": "ISC", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" } }, "node_modules/minipass-fetch": { - "version": "3.0.4", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "dev": true, "license": "MIT", "dependencies": { @@ -6254,16 +6917,10 @@ "encoding": "^0.1.13" } }, - "node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/minipass-flush": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "license": "ISC", "dependencies": { @@ -6275,6 +6932,8 @@ }, "node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -6286,36 +6945,15 @@ }, "node_modules/minipass-flush/node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-json-stream/node_modules/yallist": { - "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, "node_modules/minipass-pipeline": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "license": "ISC", "dependencies": { @@ -6327,6 +6965,8 @@ }, "node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -6338,11 +6978,15 @@ }, "node_modules/minipass-pipeline/node_modules/yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, "node_modules/minipass-sized": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "license": "ISC", "dependencies": { @@ -6354,6 +6998,8 @@ }, "node_modules/minipass-sized/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -6365,11 +7011,15 @@ }, "node_modules/minipass-sized/node_modules/yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, "node_modules/minizlib": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "license": "MIT", "dependencies": { @@ -6382,6 +7032,8 @@ }, "node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -6393,11 +7045,15 @@ }, "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, "node_modules/mkdirp": { "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "license": "MIT", "dependencies": { @@ -6412,6 +7068,7 @@ "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-6.0.0.tgz", "integrity": "sha512-sEGP5nKEXU7fGSZUML/coJbrO+yQtxcppDAYWRE9ovWsTbFoUHB2qDUx564WUzDaBHXsD46JBbIK5WVTwCyu3w==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^6.0.0", "node-source-walk": "^7.0.0" @@ -6428,6 +7085,7 @@ "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-9.0.2.tgz", "integrity": "sha512-p7PzSVEWiW9fHRX9oM+V4aV5B2nCVddVNv4DZ/JB6t9GsXY4E+ZVhPpnwUX7bbJyGeeVZqhS8q/JZ/H77IqPFA==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^12.1.0", "glob": "^7.2.3", @@ -6446,6 +7104,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -6455,6 +7114,7 @@ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.8.0.tgz", "integrity": "sha512-HGQ9NWDle5WvwMnrvUxsFYPd3JEbqD3RgABHBQRuoCEND0qzhsd0iH5ypHsf1eJ+sXmvmyKpP+FLOKY8Il7jMw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@mongodb-js/saslprep": "^1.1.5", "bson": "^6.7.0", @@ -6501,13 +7161,16 @@ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz", "integrity": "sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@types/whatwg-url": "^11.0.2", "whatwg-url": "^13.0.0" } }, "node_modules/ms": { - "version": "2.1.2", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/nanoid": { @@ -6521,167 +7184,101 @@ "url": "https://github.com/sponsors/ai" } ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-gyp": { - "version": "10.1.0", - "dev": true, "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/node-gyp/node_modules/abbrev": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/node-gyp/node_modules/cacache": { - "version": "18.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/node-gyp/node_modules/glob": { - "version": "10.3.12", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" + "nanoid": "bin/nanoid.cjs" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "3.1.1", - "dev": true, - "license": "ISC", "engines": { - "node": ">=16" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/node-gyp/node_modules/lru-cache": { - "version": "10.2.2", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, - "license": "ISC", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "license": "MIT", "engines": { - "node": "14 || >=16.14" + "node": ">= 0.6" } }, - "node_modules/node-gyp/node_modules/make-fetch-happen": { - "version": "13.0.1", + "node_modules/node-gyp": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/make-fetch-happen/node_modules/proc-log": { - "version": "4.2.0", + "node_modules/node-gyp/node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "dev": true, "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/minipass": { - "version": "7.0.4", + "node_modules/node-gyp/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/minipass-collect": { - "version": "2.0.1", + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16" } }, "node_modules/node-gyp/node_modules/nopt": { - "version": "7.2.0", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, "license": "ISC", "dependencies": { @@ -6694,16 +7291,10 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/proc-log": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/node-gyp/node_modules/which": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "license": "ISC", "dependencies": { @@ -6718,11 +7309,15 @@ }, "node_modules/node-int64": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true, "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.14", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true, "license": "MIT" }, @@ -6731,6 +7326,7 @@ "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-7.0.0.tgz", "integrity": "sha512-1uiY543L+N7Og4yswvlm5NCKgPKDEXd9AUR9Jh3gen6oOeBsesr6LqhXom1er3eRzSUcVRWXzhv8tSNrIfGHKw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.24.4" }, @@ -6740,6 +7336,8 @@ }, "node_modules/nopt": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", "dev": true, "license": "ISC", "dependencies": { @@ -6751,12 +7349,13 @@ } }, "node_modules/normalize-package-data": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, @@ -6764,27 +7363,10 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "7.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/normalize-package-data/node_modules/lru-cache": { - "version": "10.2.2", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/normalize-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "license": "MIT", "engines": { @@ -6792,7 +7374,9 @@ } }, "node_modules/npm-bundled": { - "version": "3.0.0", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", "dev": true, "license": "ISC", "dependencies": { @@ -6807,6 +7391,7 @@ "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-17.1.4.tgz", "integrity": "sha512-crOUeN2GngqlkRCFQ/zi1zsneWd9IGZgIfAWYGAuhYiPnfbBTmJBL7Yq1wI0e1dsW8CfWc+h348WmfCREqeOBA==", "dev": true, + "license": "Apache-2.0", "bin": { "ncu": "build/cli.js", "npm-check-updates": "build/cli.js" @@ -6818,6 +7403,8 @@ }, "node_modules/npm-install-checks": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -6829,6 +7416,8 @@ }, "node_modules/npm-normalize-package-bin": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, "license": "ISC", "engines": { @@ -6836,7 +7425,9 @@ } }, "node_modules/npm-package-arg": { - "version": "11.0.2", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", "dev": true, "license": "ISC", "dependencies": { @@ -6849,27 +7440,10 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm-package-arg/node_modules/hosted-git-info": { - "version": "7.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-package-arg/node_modules/lru-cache": { - "version": "10.2.2", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/npm-packlist": { "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", "dev": true, "license": "ISC", "dependencies": { @@ -6880,7 +7454,9 @@ } }, "node_modules/npm-pick-manifest": { - "version": "9.0.0", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", "dev": true, "license": "ISC", "dependencies": { @@ -6894,15 +7470,17 @@ } }, "node_modules/npm-registry-fetch": { - "version": "17.0.0", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", + "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", "dev": true, "license": "ISC", "dependencies": { "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", "npm-package-arg": "^11.0.0", "proc-log": "^4.0.0" @@ -6911,100 +7489,10 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/cacache": { - "version": "18.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/glob": { - "version": "10.3.12", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "10.2.2", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "13.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/minipass": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/npm-registry-fetch/node_modules/minipass-collect": { - "version": "2.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "license": "MIT", "dependencies": { @@ -7015,14 +7503,21 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/once": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "license": "ISC", "dependencies": { @@ -7031,6 +7526,8 @@ }, "node_modules/onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "license": "MIT", "dependencies": { @@ -7045,6 +7542,8 @@ }, "node_modules/optionator": { "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", "dependencies": { @@ -7061,6 +7560,8 @@ }, "node_modules/ora": { "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7083,6 +7584,8 @@ }, "node_modules/os-homedir": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", "dev": true, "license": "MIT", "engines": { @@ -7091,6 +7594,8 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, "license": "MIT", "engines": { @@ -7099,6 +7604,9 @@ }, "node_modules/osenv": { "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", "dev": true, "license": "ISC", "dependencies": { @@ -7108,6 +7616,8 @@ }, "node_modules/p-limit": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7122,6 +7632,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", "dependencies": { @@ -7136,6 +7648,8 @@ }, "node_modules/p-map": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7150,13 +7664,24 @@ }, "node_modules/p-try": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/pacote": { - "version": "18.0.3", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", + "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", "dev": true, "license": "ISC", "dependencies": { @@ -7179,84 +7704,16 @@ "tar": "^6.1.11" }, "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/cacache": { - "version": "18.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "pacote": "bin/index.js" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/pacote/node_modules/glob": { - "version": "10.3.12", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/pacote/node_modules/lru-cache": { - "version": "10.2.2", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/pacote/node_modules/minipass": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/pacote/node_modules/minipass-collect": { - "version": "2.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "license": "MIT", "dependencies": { @@ -7268,6 +7725,8 @@ }, "node_modules/parse-json": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "license": "MIT", "dependencies": { @@ -7285,11 +7744,15 @@ }, "node_modules/parse-json/node_modules/json-parse-even-better-errors": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true, "license": "MIT" }, "node_modules/parse-ms": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", "dev": true, "license": "MIT", "engines": { @@ -7298,6 +7761,8 @@ }, "node_modules/path-exists": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "license": "MIT", "engines": { "node": ">=8" @@ -7305,6 +7770,8 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "license": "MIT", "engines": { @@ -7313,6 +7780,8 @@ }, "node_modules/path-key": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { @@ -7321,11 +7790,15 @@ }, "node_modules/path-parse": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true, "license": "MIT" }, "node_modules/path-scurry": { - "version": "1.10.2", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -7333,22 +7806,23 @@ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/path-type": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "license": "MIT", "engines": { @@ -7356,13 +7830,16 @@ } }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", "engines": { @@ -7374,6 +7851,8 @@ }, "node_modules/pirates": { "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, "license": "MIT", "engines": { @@ -7382,6 +7861,8 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7393,6 +7874,8 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -7405,6 +7888,8 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -7416,6 +7901,8 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -7430,6 +7917,8 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -7441,6 +7930,8 @@ }, "node_modules/pluralize": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, "license": "MIT", "engines": { @@ -7449,15 +7940,17 @@ }, "node_modules/pngjs": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/postcss": { - "version": "8.4.40", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz", - "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "funding": [ { @@ -7473,10 +7966,11 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -7487,6 +7981,7 @@ "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", "dev": true, + "license": "MPL-2.0", "dependencies": { "color-name": "^1.1.4", "is-url-superb": "^4.0.0", @@ -7504,6 +7999,7 @@ "resolved": "https://registry.npmjs.org/precinct/-/precinct-12.1.2.tgz", "integrity": "sha512-x2qVN3oSOp3D05ihCd8XdkIPuEQsyte7PSxzLqiRgktu79S5Dr1I75/S+zAup8/0cwjoiJTQztE9h0/sWp9bJQ==", "dev": true, + "license": "MIT", "dependencies": { "@dependents/detective-less": "^5.0.0", "commander": "^12.1.0", @@ -7533,12 +8029,15 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/prelude-ls": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "license": "MIT", "engines": { @@ -7550,6 +8049,7 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -7562,6 +8062,8 @@ }, "node_modules/pretty-format": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7575,6 +8077,8 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "engines": { @@ -7586,6 +8090,8 @@ }, "node_modules/pretty-ms": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7600,6 +8106,8 @@ }, "node_modules/proc-log": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "dev": true, "license": "ISC", "engines": { @@ -7608,11 +8116,15 @@ }, "node_modules/promise-inflight": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true, "license": "ISC" }, "node_modules/promise-retry": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, "license": "MIT", "dependencies": { @@ -7625,6 +8137,8 @@ }, "node_modules/prompts": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7637,10 +8151,14 @@ }, "node_modules/proxy-from-env": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" }, "node_modules/punycode": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { @@ -7649,6 +8167,8 @@ }, "node_modules/pure-rand": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -7666,6 +8186,7 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", "dependencies": { "dijkstrajs": "^1.0.1", "pngjs": "^5.0.0", @@ -7680,6 +8201,8 @@ }, "node_modules/qrcode/node_modules/cliui": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -7689,6 +8212,8 @@ }, "node_modules/qrcode/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "license": "MIT", "dependencies": { "locate-path": "^5.0.0", @@ -7700,6 +8225,8 @@ }, "node_modules/qrcode/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "license": "MIT", "dependencies": { "p-locate": "^4.1.0" @@ -7710,6 +8237,8 @@ }, "node_modules/qrcode/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "license": "MIT", "dependencies": { "p-try": "^2.0.0" @@ -7723,6 +8252,8 @@ }, "node_modules/qrcode/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "license": "MIT", "dependencies": { "p-limit": "^2.2.0" @@ -7733,6 +8264,8 @@ }, "node_modules/qrcode/node_modules/wrap-ansi": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -7745,10 +8278,14 @@ }, "node_modules/qrcode/node_modules/y18n": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "license": "ISC" }, "node_modules/qrcode/node_modules/yargs": { "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "license": "MIT", "dependencies": { "cliui": "^6.0.0", @@ -7769,6 +8306,8 @@ }, "node_modules/qrcode/node_modules/yargs-parser": { "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "license": "ISC", "dependencies": { "camelcase": "^5.0.0", @@ -7782,6 +8321,7 @@ "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.6" }, @@ -7794,6 +8334,8 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -7815,7 +8357,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rambda": { "version": "7.5.0", @@ -7826,6 +8369,8 @@ }, "node_modules/rc": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { @@ -7840,11 +8385,15 @@ }, "node_modules/rc/node_modules/ini": { "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, "license": "ISC" }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, "license": "MIT", "engines": { @@ -7853,11 +8402,16 @@ }, "node_modules/react-is": { "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, "license": "MIT" }, "node_modules/read-installed": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", + "integrity": "sha512-O03wg/IYuV/VtnK2h/KXEt9VIbMUFbk3ERG0Iu4FhLZw0EP0T9znqrYDGn6ncbEsXUFaUjiVAWXHzxwt3lhRPQ==", + "deprecated": "This package is no longer supported.", "dev": true, "license": "ISC", "dependencies": { @@ -7874,6 +8428,8 @@ }, "node_modules/read-installed/node_modules/semver": { "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "license": "ISC", "bin": { @@ -7882,6 +8438,9 @@ }, "node_modules/read-package-json": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", "dev": true, "license": "ISC", "dependencies": { @@ -7893,16 +8452,22 @@ }, "node_modules/read-package-json/node_modules/hosted-git-info": { "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true, "license": "ISC" }, "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true, "license": "MIT" }, "node_modules/read-package-json/node_modules/normalize-package-data": { "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -7914,11 +8479,15 @@ }, "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true, "license": "ISC" }, "node_modules/read-package-json/node_modules/semver": { "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "license": "ISC", "bin": { @@ -7927,6 +8496,8 @@ }, "node_modules/readable-stream": { "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "license": "MIT", "dependencies": { @@ -7940,6 +8511,9 @@ }, "node_modules/readdir-scoped-modules": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, "license": "ISC", "dependencies": { @@ -7951,10 +8525,14 @@ }, "node_modules/reflect-metadata": { "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "license": "Apache-2.0" }, "node_modules/require-directory": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -7962,6 +8540,8 @@ }, "node_modules/require-from-string": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -7969,6 +8549,8 @@ }, "node_modules/require-main-filename": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "license": "ISC" }, "node_modules/requirejs": { @@ -7976,6 +8558,7 @@ "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.7.tgz", "integrity": "sha512-DouTG8T1WanGok6Qjg2SXuCMzszOo0eHeH9hDZ5Y4x8Je+9JB38HdTLT4/VA8OaUhBa0JPVHJ0pyBkM1z+pDsw==", "dev": true, + "license": "MIT", "bin": { "r_js": "bin/r.js", "r.js": "bin/r.js" @@ -7989,6 +8572,7 @@ "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", "dev": true, + "license": "MIT", "dependencies": { "esprima": "^4.0.0", "stringify-object": "^3.2.1" @@ -7999,6 +8583,8 @@ }, "node_modules/resolve": { "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "license": "MIT", "dependencies": { @@ -8015,6 +8601,8 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "license": "MIT", "dependencies": { @@ -8026,6 +8614,8 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { @@ -8037,12 +8627,15 @@ "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-4.0.0.tgz", "integrity": "sha512-hlY1SybBGm5aYN3PC4rp15MzsJLM1w+MEA/4KU3UBPfz4S0lL3FL6mgv7JgaA8a+ZTeEQAiF1a1BuN2nkqiIlg==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "license": "MIT", "engines": { @@ -8051,6 +8644,8 @@ }, "node_modules/resolve.exports": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, "license": "MIT", "engines": { @@ -8059,6 +8654,8 @@ }, "node_modules/restore-cursor": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "license": "MIT", "dependencies": { @@ -8071,6 +8668,8 @@ }, "node_modules/retry": { "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, "license": "MIT", "engines": { @@ -8079,6 +8678,8 @@ }, "node_modules/reusify": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "license": "MIT", "engines": { @@ -8087,12 +8688,17 @@ } }, "node_modules/rfdc": { - "version": "1.3.1", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true, "license": "MIT" }, "node_modules/rimraf": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -8107,6 +8713,8 @@ }, "node_modules/run-parallel": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -8129,6 +8737,8 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -8147,7 +8757,9 @@ "license": "MIT" }, "node_modules/safe-stable-stringify": { - "version": "2.4.3", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", "dev": true, "license": "MIT", "engines": { @@ -8156,6 +8768,8 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "license": "MIT", "optional": true @@ -8165,6 +8779,7 @@ "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-6.0.1.tgz", "integrity": "sha512-nl9Wxbj9RjEJA5SSV0hSDoU2zYGtE+ANaDS4OFUR7nYrquvBFvPKZZtQHe3lvnxCcylEDV00KUijjdMTUElcVQ==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^12.0.0" }, @@ -8180,6 +8795,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -8189,6 +8805,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -8198,10 +8815,14 @@ }, "node_modules/set-blocking": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "license": "ISC" }, "node_modules/set-function-length": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -8217,6 +8838,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { @@ -8228,6 +8851,8 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { @@ -8236,6 +8861,8 @@ }, "node_modules/side-channel": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -8252,20 +8879,24 @@ }, "node_modules/signal-exit": { "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, "license": "ISC" }, "node_modules/sigstore": { - "version": "2.3.0", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.1", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "@sigstore/sign": "^2.3.0", - "@sigstore/tuf": "^2.3.1", - "@sigstore/verify": "^1.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -8273,11 +8904,15 @@ }, "node_modules/sisteransi": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true, "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "license": "MIT", "engines": { @@ -8286,6 +8921,8 @@ }, "node_modules/slide": { "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", "dev": true, "license": "ISC", "engines": { @@ -8294,6 +8931,8 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, "license": "MIT", "engines": { @@ -8303,6 +8942,8 @@ }, "node_modules/socks": { "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, "license": "MIT", "dependencies": { @@ -8314,8 +8955,25 @@ "npm": ">= 3.0.0" } }, + "node_modules/socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -8323,16 +8981,19 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "license": "MIT", "dependencies": { @@ -8345,12 +9006,15 @@ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", "dev": true, + "license": "MIT", "dependencies": { "memory-pager": "^1.0.2" } }, "node_modules/spdx-compare": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", + "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "dev": true, "license": "MIT", "dependencies": { @@ -8361,6 +9025,8 @@ }, "node_modules/spdx-correct": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -8370,11 +9036,15 @@ }, "node_modules/spdx-exceptions": { "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true, "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "license": "MIT", "dependencies": { @@ -8383,17 +9053,23 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.17", + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", "dev": true, "license": "CC0-1.0" }, "node_modules/spdx-ranges": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", + "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", "dev": true, "license": "(MIT AND CC-BY-3.0)" }, "node_modules/spdx-satisfies": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-4.0.1.tgz", + "integrity": "sha512-WVzZ/cXAzoNmjCWiEluEA3BjHp5tiUmmhn9MK+X0tBbR9sOqtC6UQwmgCNrAIZvNlMuBUYAaHYfb2oqlF9SwKA==", "dev": true, "license": "MIT", "dependencies": { @@ -8404,11 +9080,15 @@ }, "node_modules/sprintf-js": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/ssri": { - "version": "10.0.5", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "dev": true, "license": "ISC", "dependencies": { @@ -8418,16 +9098,10 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/ssri/node_modules/minipass": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/stack-utils": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8439,6 +9113,8 @@ }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, "license": "MIT", "engines": { @@ -8447,6 +9123,8 @@ }, "node_modules/stream-to-array": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", + "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", "dev": true, "license": "MIT", "dependencies": { @@ -8455,6 +9133,8 @@ }, "node_modules/streamroller": { "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, "license": "MIT", "dependencies": { @@ -8468,6 +9148,8 @@ }, "node_modules/string_decoder": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "license": "MIT", "dependencies": { @@ -8476,6 +9158,8 @@ }, "node_modules/string-length": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8488,6 +9172,8 @@ }, "node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -8501,6 +9187,8 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { @@ -8517,6 +9205,7 @@ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", @@ -8528,6 +9217,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -8539,6 +9230,8 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -8550,6 +9243,8 @@ }, "node_modules/strip-bom": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "license": "MIT", "engines": { @@ -8558,6 +9253,8 @@ }, "node_modules/strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "license": "MIT", "engines": { @@ -8566,6 +9263,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", "engines": { @@ -8580,6 +9279,7 @@ "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-6.0.0.tgz", "integrity": "sha512-RaWKxAvPnIXrdby+UWCr1WRfa+lrPMSJPySte4Q6a+rWyjeJyFOLJxr5GrAVfcMCsfVlCuzTAJ/ysYT8p8do7Q==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^12.0.0" }, @@ -8595,12 +9295,15 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -8612,6 +9315,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "license": "MIT", "engines": { @@ -8623,6 +9328,8 @@ }, "node_modules/tapable": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, "license": "MIT", "engines": { @@ -8631,6 +9338,8 @@ }, "node_modules/tar": { "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "license": "ISC", "dependencies": { @@ -8647,6 +9356,8 @@ }, "node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "license": "ISC", "dependencies": { @@ -8658,6 +9369,8 @@ }, "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -8667,8 +9380,20 @@ "node": ">=8" } }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, "node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "license": "MIT", "bin": { @@ -8680,11 +9405,15 @@ }, "node_modules/tar/node_modules/yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, "node_modules/test-exclude": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "license": "ISC", "dependencies": { @@ -8698,6 +9427,8 @@ }, "node_modules/test-exclude/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -8707,6 +9438,8 @@ }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -8718,27 +9451,24 @@ }, "node_modules/text-table": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true, "license": "MIT" }, "node_modules/tmpl": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true, "license": "BSD-3-Clause" }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -8751,6 +9481,7 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.3.0" }, @@ -8760,6 +9491,8 @@ }, "node_modules/treeify": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", "dev": true, "license": "MIT", "engines": { @@ -8771,6 +9504,7 @@ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -8779,9 +9513,9 @@ } }, "node_modules/ts-graphviz": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-2.1.2.tgz", - "integrity": "sha512-9GnOA3yiFaqZeHBEZXWa6kqc61FVhAhxQU5g3KLyGrhRr7OsDGRzs+1z35ctvD+hTTEhrBza6D41+qz+3qs7Zw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-2.1.4.tgz", + "integrity": "sha512-0g465/ES70H0h5rcLUqaenKqNYekQaR9W0m0xUGy3FxueGujpGr+0GN2YWlgLIYSE2Xg0W7Uq1Qqnn7Cg+Af2w==", "dev": true, "funding": [ { @@ -8793,11 +9527,12 @@ "url": "https://opencollective.com/ts-graphviz" } ], + "license": "MIT", "dependencies": { - "@ts-graphviz/adapter": "^2.0.3", - "@ts-graphviz/ast": "^2.0.3", - "@ts-graphviz/common": "^2.1.2", - "@ts-graphviz/core": "^2.0.3" + "@ts-graphviz/adapter": "^2.0.5", + "@ts-graphviz/ast": "^2.0.5", + "@ts-graphviz/common": "^2.1.4", + "@ts-graphviz/core": "^2.0.5" }, "engines": { "node": ">=18" @@ -8808,6 +9543,7 @@ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", "dev": true, + "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", "ejs": "^3.1.10", @@ -8856,6 +9592,7 @@ "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-2.3.0.tgz", "integrity": "sha512-t4lBQAwZc0sOJq9LJt3NgbznIcslVnm0JeEMFq8qIRklpMRY8jlYD0YmnRWbqBKANxkby91P1XanSSlSOFpUmg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.15", "commander": "^12.0.0", @@ -8874,7 +9611,9 @@ } }, "node_modules/ts-json-schema-generator/node_modules/commander": { - "version": "12.0.0", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "license": "MIT", "engines": { @@ -8882,42 +9621,30 @@ } }, "node_modules/ts-json-schema-generator/node_modules/glob": { - "version": "10.3.12", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ts-json-schema-generator/node_modules/minipass": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ts-json-schema-generator/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, "node_modules/ts-mockito": { "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ts-mockito/-/ts-mockito-2.6.1.tgz", + "integrity": "sha512-qU9m/oEBQrKq5hwfbJ7MgmVN5Gu6lFnIGWvpxSjrqq6YYEVv+RwVFWySbZMBgazsWqv6ctAyVBpo9TmAxnOEKw==", "dev": true, "license": "MIT", "dependencies": { @@ -8926,6 +9653,8 @@ }, "node_modules/ts-node": { "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8968,10 +9697,14 @@ }, "node_modules/ts-simple-nameof": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/ts-simple-nameof/-/ts-simple-nameof-1.3.1.tgz", + "integrity": "sha512-E0xwaLwDmKmSmo4DE4i+Rp0CuixeZ6wJcn4+2OugzSoPxWW27aNRHhfhcfAELavHHS077dt998oXIMFq+MqeBw==", "license": "MIT" }, "node_modules/tsconfig-paths": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "license": "MIT", "dependencies": { @@ -8985,119 +9718,40 @@ }, "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/tslib": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "dev": true, + "license": "0BSD" + }, "node_modules/tuf-js": { - "version": "2.2.0", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, "license": "MIT", "dependencies": { - "@tufjs/models": "2.0.0", + "@tufjs/models": "2.0.1", "debug": "^4.3.4", - "make-fetch-happen": "^13.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/cacache": { - "version": "18.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/glob": { - "version": "10.3.12", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "10.2.2", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "13.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" + "make-fetch-happen": "^13.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/tuf-js/node_modules/minipass": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/tuf-js/node_modules/minipass-collect": { - "version": "2.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "license": "MIT", "dependencies": { @@ -9109,6 +9763,8 @@ }, "node_modules/type-detect": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "license": "MIT", "engines": { @@ -9117,6 +9773,8 @@ }, "node_modules/type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -9142,10 +9800,14 @@ }, "node_modules/typescript-logging": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/typescript-logging/-/typescript-logging-2.2.0.tgz", + "integrity": "sha512-mPKFGAgGJmeCqrzA6B64Lqoz6vLPtxa8yCd7sWAnfrz9opuNlxqW57VxjtEOL0OOoQeTdc/kBjGUh8sieBXa8A==", "license": "Apache-2.0" }, "node_modules/typescript-logging-log4ts-style": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/typescript-logging-log4ts-style/-/typescript-logging-log4ts-style-2.2.0.tgz", + "integrity": "sha512-NP8uoFVoNJkhH6iOM1Y8+/RVFoSPCxLe/kgdxQ0uJNhUJh4CLp7CuMIh/njC9mzK0wdq2DgSJcmlzkqnRXx1Eg==", "license": "Apache-2.0", "peerDependencies": { "typescript-logging": "~2.2.0" @@ -9155,10 +9817,13 @@ "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unique-filename": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, "license": "ISC", "dependencies": { @@ -9170,6 +9835,8 @@ }, "node_modules/unique-slug": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dev": true, "license": "ISC", "dependencies": { @@ -9181,6 +9848,8 @@ }, "node_modules/universalify": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, "license": "MIT", "engines": { @@ -9188,7 +9857,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.14", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -9206,8 +9877,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -9218,6 +9889,8 @@ }, "node_modules/uri-js": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -9226,11 +9899,15 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true, "license": "MIT" }, "node_modules/util-extend": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", "dev": true, "license": "MIT" }, @@ -9242,17 +9919,22 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true, "license": "MIT" }, "node_modules/v8-to-istanbul": { - "version": "9.2.0", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "license": "ISC", "dependencies": { @@ -9266,6 +9948,8 @@ }, "node_modules/validate-npm-package-license": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -9274,18 +9958,19 @@ } }, "node_modules/validate-npm-package-name": { - "version": "5.0.0", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, "license": "ISC", - "dependencies": { - "builtins": "^5.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/walkdir": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", + "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", "dev": true, "license": "MIT", "engines": { @@ -9294,6 +9979,8 @@ }, "node_modules/walker": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -9302,6 +9989,8 @@ }, "node_modules/wcwidth": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, "license": "MIT", "dependencies": { @@ -9313,6 +10002,7 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } @@ -9322,6 +10012,7 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "^4.1.1", "webidl-conversions": "^7.0.0" @@ -9332,6 +10023,8 @@ }, "node_modules/which": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", "dependencies": { @@ -9346,10 +10039,14 @@ }, "node_modules/which-module": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "license": "ISC" }, "node_modules/word-wrap": { "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", "engines": { @@ -9357,16 +10054,18 @@ } }, "node_modules/wrap-ansi": { - "version": "8.1.0", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -9375,6 +10074,8 @@ "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", "dependencies": { @@ -9389,70 +10090,17 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true, "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "license": "ISC", "dependencies": { @@ -9465,6 +10113,8 @@ }, "node_modules/y18n": { "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "license": "ISC", "engines": { @@ -9473,11 +10123,15 @@ }, "node_modules/yallist": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", "dependencies": { @@ -9495,6 +10149,8 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "license": "ISC", "engines": { @@ -9503,6 +10159,8 @@ }, "node_modules/yn": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, "license": "MIT", "engines": { @@ -9511,6 +10169,8 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "license": "MIT", "engines": { @@ -9620,13 +10280,37 @@ "ts-json-schema-generator": "2.3.0" } }, + "packages/runtime/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "packages/runtime/node_modules/ajv-errors": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", + "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", "license": "MIT", "peerDependencies": { "ajv": "^8.0.1" } }, + "packages/runtime/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, "packages/transport": { "name": "@nmshd/transport", "license": "MIT", @@ -9663,12 +10347,6 @@ "expect": "^29.7.0", "ts-mockito": "^2.6.1" } - }, - "packages/utils": { - "name": "@nmshd/utils", - "extraneous": true, - "license": "MIT", - "devDependencies": {} } } } diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 64565679d..7250165db 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -41,7 +41,7 @@ "cobertura", "lcov" ], - "maxWorkers": 1, + "maxWorkers": "50%", "preset": "ts-jest", "setupFilesAfterEnv": [ "./test/customMatchers.ts", diff --git a/packages/runtime/src/Runtime.ts b/packages/runtime/src/Runtime.ts index 860ea0be4..bb7835238 100644 --- a/packages/runtime/src/Runtime.ts +++ b/packages/runtime/src/Runtime.ts @@ -27,10 +27,10 @@ import { MessageController, RelationshipsController, RelationshipTemplateController, + TagController, TokenController, Transport } from "@nmshd/transport"; -import { TagController } from "@nmshd/transport/src/modules/tags/TagController"; import { Container, Scope } from "@nmshd/typescript-ioc"; import { buildInformation } from "./buildInformation"; import { DatabaseSchemaUpgrader } from "./DatabaseSchemaUpgrader"; @@ -251,10 +251,6 @@ export abstract class Runtime { .factory(() => this.getAccountController().relationshipTemplates) .scope(Scope.Request); - Container.bind(TagController) - .factory(() => this.getAccountController().tags) - .scope(Scope.Request); - Container.bind(RelationshipsController) .factory(() => this.getAccountController().relationships) .scope(Scope.Request); @@ -263,6 +259,10 @@ export abstract class Runtime { .factory(() => this.getAccountController().tokens) .scope(Scope.Request); + Container.bind(TagController) + .factory(() => this.getAccountController().tags) + .scope(Scope.Request); + Container.bind(ChallengeController) .factory(() => this.getAccountController().challenges) .scope(Scope.Request); diff --git a/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts b/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts index d2db94873..f97800384 100644 --- a/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts +++ b/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts @@ -1,7 +1,7 @@ import { Result } from "@js-soft/ts-utils"; -import { BackboneGetTag } from "@nmshd/transport/src/modules/tags/backbone/BackboneGetTag"; +import { BackboneGetTag } from "@nmshd/transport"; import { Inject } from "@nmshd/typescript-ioc"; -import { GetTagsUseCase } from "../../.."; +import { GetTagsUseCase } from "../../../useCases/transport/tags/GetTags"; export class TagsFacade { public constructor(@Inject private readonly getTagsUseCase: GetTagsUseCase) {} diff --git a/packages/runtime/src/modules/DeciderModule.ts b/packages/runtime/src/modules/DeciderModule.ts index 03b2b4604..f652910f2 100644 --- a/packages/runtime/src/modules/DeciderModule.ts +++ b/packages/runtime/src/modules/DeciderModule.ts @@ -1,7 +1,6 @@ import { LocalRequestStatus } from "@nmshd/consumption"; import { RequestItemGroupJSON, RequestItemJSONDerivations } from "@nmshd/content"; import { CoreDate } from "@nmshd/core-types"; -import { RuntimeErrors, RuntimeServices } from ".."; import { IncomingRequestStatusChangedEvent, MessageProcessedEvent, @@ -10,7 +9,9 @@ import { RelationshipTemplateProcessedResult } from "../events"; import { ModuleConfiguration, RuntimeModule } from "../extensibility"; +import { RuntimeServices } from "../Runtime"; import { LocalRequestDTO } from "../types"; +import { RuntimeErrors } from "../useCases/common/RuntimeErrors"; import { isAcceptResponseConfig, isDeleteAttributeAcceptResponseConfig, diff --git a/packages/runtime/src/useCases/consumption/attributes/GetRepositoryAttributes.ts b/packages/runtime/src/useCases/consumption/attributes/GetRepositoryAttributes.ts index 76c45d390..2af0ecb84 100644 --- a/packages/runtime/src/useCases/consumption/attributes/GetRepositoryAttributes.ts +++ b/packages/runtime/src/useCases/consumption/attributes/GetRepositoryAttributes.ts @@ -1,9 +1,10 @@ import { Result } from "@js-soft/ts-utils"; import { AttributesController } from "@nmshd/consumption"; import { Inject } from "@nmshd/typescript-ioc"; -import { AttributeMapper, GetAttributesRequestQuery, GetAttributesUseCase } from ".."; import { LocalAttributeDTO } from "../../../types"; import { SchemaRepository, SchemaValidator, UseCase, flattenObject } from "../../common"; +import { AttributeMapper } from "./AttributeMapper"; +import { GetAttributesRequestQuery, GetAttributesUseCase } from "./GetAttributes"; export interface GetRepositoryAttributesRequest { /** diff --git a/packages/runtime/src/useCases/transport/tags/GetTags.ts b/packages/runtime/src/useCases/transport/tags/GetTags.ts index 743b153a7..2e4403632 100644 --- a/packages/runtime/src/useCases/transport/tags/GetTags.ts +++ b/packages/runtime/src/useCases/transport/tags/GetTags.ts @@ -1,6 +1,5 @@ import { Result } from "@js-soft/ts-utils"; -import { TagController } from "@nmshd/transport/src/modules/tags/TagController"; -import { BackboneGetTag } from "@nmshd/transport/src/modules/tags/backbone/BackboneGetTag"; +import { BackboneGetTag, TagController } from "@nmshd/transport"; import { Inject } from "@nmshd/typescript-ioc"; import { UseCase } from "../../common"; diff --git a/packages/transport/src/modules/index.ts b/packages/transport/src/modules/index.ts index cefb1bab6..370335d8e 100644 --- a/packages/transport/src/modules/index.ts +++ b/packages/transport/src/modules/index.ts @@ -112,6 +112,9 @@ export * from "./sync/DatawalletModificationsProcessor"; export * from "./sync/local/DatawalletModification"; export * from "./sync/SyncController"; export * from "./sync/SynchronizedCollection"; +export * from "./tags/backbone/BackboneGetTag"; +export * from "./tags/backbone/TagClient"; +export * from "./tags/TagController"; export * from "./tokens/AnonymousTokenController"; export * from "./tokens/backbone/BackboneGetTokens"; export * from "./tokens/backbone/BackbonePostTokens"; diff --git a/packages/transport/src/modules/tags/TagController.ts b/packages/transport/src/modules/tags/TagController.ts index 20b8a2160..dc0f44241 100644 --- a/packages/transport/src/modules/tags/TagController.ts +++ b/packages/transport/src/modules/tags/TagController.ts @@ -1,6 +1,4 @@ -import { AccountController, ControllerName, TransportController } from "../.."; -import { BackboneGetTag } from "./backbone/BackboneGetTag"; -import { TagClient } from "./backbone/TagClient"; +import { AccountController, BackboneGetTag, ControllerName, TagClient, TransportController } from "../.."; export class TagController extends TransportController { private client: TagClient; diff --git a/packages/transport/test/modules/tags/TagsController.test.ts b/packages/transport/test/modules/tags/TagsController.test.ts index 617595482..af1c02060 100644 --- a/packages/transport/test/modules/tags/TagsController.test.ts +++ b/packages/transport/test/modules/tags/TagsController.test.ts @@ -1,7 +1,5 @@ import { IDatabaseConnection } from "@js-soft/docdb-access-abstractions"; -import { AccountController, ClientResult, Transport } from "../../../src"; -import { BackboneGetTag } from "../../../src/modules/tags/backbone/BackboneGetTag"; -import { TagClient } from "../../../src/modules/tags/backbone/TagClient"; +import { AccountController, BackboneGetTag, ClientResult, TagClient, Transport } from "../../../src"; import { TestUtil } from "../../testHelpers/TestUtil"; describe("AccountController", function () { From 149da134cc8af542598cd81ced805995f23faf69 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Thu, 24 Oct 2024 11:57:23 +0200 Subject: [PATCH 03/33] chore: remove unwanted changes --- .dev/compose.backbone.env | 2 +- packages/runtime/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.dev/compose.backbone.env b/.dev/compose.backbone.env index 075825603..fe44c8c4c 100644 --- a/.dev/compose.backbone.env +++ b/.dev/compose.backbone.env @@ -1 +1 @@ -BACKBONE_VERSION=6.15.0 +BACKBONE_VERSION=6.13.2 \ No newline at end of file diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 7250165db..64565679d 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -41,7 +41,7 @@ "cobertura", "lcov" ], - "maxWorkers": "50%", + "maxWorkers": 1, "preset": "ts-jest", "setupFilesAfterEnv": [ "./test/customMatchers.ts", From dce12f2301610fe51fc4a99ea5a2ece3f4ef2135 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 29 Oct 2024 14:44:15 +0100 Subject: [PATCH 04/33] feat: update backbone to support tags --- .dev/appsettings.override.json | 67 ++ .dev/compose.backbone.env | 2 +- .../runtime/src/useCases/common/Schemas.ts | 640 +++++++++--------- .../src/useCases/transport/tags/GetTags.ts | 6 +- .../test/modules/tags/TagsController.test.ts | 80 +-- 5 files changed, 394 insertions(+), 401 deletions(-) diff --git a/.dev/appsettings.override.json b/.dev/appsettings.override.json index e655dfaec..3bf1c5ea5 100644 --- a/.dev/appsettings.override.json +++ b/.dev/appsettings.override.json @@ -103,6 +103,73 @@ "ConnectionString": "User ID=tokens;Password=Passw0rd;Server=postgres;Port=5432;Database=enmeshed;" } } + }, + "Tags": { + "Application": { + "SupportedLanguages": ["de", "en"], + "TagsForAttributeValueTypes": { + "IdentityFileReference": { + "schulabschluss": { + "displayNames": { + "de": "Abschluss", + "en": "Degree" + }, + "children": { + "realschule": { + "displayNames": { + "de": "Realschule", + "en": "Secondary School" + }, + "children": { + "zeugnis": { + "displayNames": { + "de": "Zeugnis", + "en": "Diploma" + } + } + } + }, + "gymnasium": { + "displayNames": { + "de": "Gymnasium", + "en": "High School" + }, + "children": { + "zeugnis": { + "displayNames": { + "de": "Zeugnis", + "en": "Diploma" + } + } + } + } + } + } + }, + "PhoneNumber": { + "notfall": { + "displayNames": { + "de": "Notfallkontakt", + "en": "Emergency Contact" + } + } + }, + "StreetAddress": { + "lieferung": { + "displayNames": { + "de": "Lieferadresse", + "en": "Deliver Address" + } + }, + "heimat": { + "displayNames": { + "de": "Heimatadresse", + "en": "Home Address" + } + } + } + } + } } }, "Serilog": { diff --git a/.dev/compose.backbone.env b/.dev/compose.backbone.env index fe44c8c4c..7e9d590cd 100644 --- a/.dev/compose.backbone.env +++ b/.dev/compose.backbone.env @@ -1 +1 @@ -BACKBONE_VERSION=6.13.2 \ No newline at end of file +BACKBONE_VERSION=6.16.0 \ No newline at end of file diff --git a/packages/runtime/src/useCases/common/Schemas.ts b/packages/runtime/src/useCases/common/Schemas.ts index 1269dc45a..58bfe3e99 100644 --- a/packages/runtime/src/useCases/common/Schemas.ts +++ b/packages/runtime/src/useCases/common/Schemas.ts @@ -22000,154 +22000,139 @@ export const SendMessageRequest: any = { } } -export const CreateOwnRelationshipTemplateRequest: any = { +export const AcceptRelationshipRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/CreateOwnRelationshipTemplateRequest", + "$ref": "#/definitions/AcceptRelationshipRequest", "definitions": { - "CreateOwnRelationshipTemplateRequest": { + "AcceptRelationshipRequest": { "type": "object", "properties": { - "expiresAt": { - "$ref": "#/definitions/ISO8601DateTimeString" - }, - "content": {}, - "maxNumberOfAllocations": { - "type": "number", - "minimum": 1 - }, - "forIdentity": { - "$ref": "#/definitions/AddressString" + "relationshipId": { + "$ref": "#/definitions/RelationshipIdString" } }, "required": [ - "expiresAt", - "content" + "relationshipId" ], "additionalProperties": false }, - "ISO8601DateTimeString": { - "type": "string", - "errorMessage": "must match ISO8601 datetime format", - "pattern": "^([+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([.,]\\d+(?!:))?)?(\\17[0-5]\\d([.,]\\d+)?)?([zZ]|([+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" - }, - "AddressString": { + "RelationshipIdString": { "type": "string", - "pattern": "did:e:((([A-Za-z0-9]+(-[A-Za-z0-9]+)*)\\.)+[a-z]{2,}|localhost):dids:[0-9a-f]{22}" + "pattern": "REL[A-Za-z0-9]{17}" } } } -export const CreateQRCodeForOwnTemplateRequest: any = { +export const AcceptRelationshipReactivationRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/CreateQRCodeForOwnTemplateRequest", + "$ref": "#/definitions/AcceptRelationshipReactivationRequest", "definitions": { - "CreateQRCodeForOwnTemplateRequest": { + "AcceptRelationshipReactivationRequest": { "type": "object", "properties": { - "templateId": { - "$ref": "#/definitions/RelationshipTemplateIdString" + "relationshipId": { + "$ref": "#/definitions/RelationshipIdString" } }, "required": [ - "templateId" + "relationshipId" ], "additionalProperties": false }, - "RelationshipTemplateIdString": { + "RelationshipIdString": { "type": "string", - "pattern": "RLT[A-Za-z0-9]{17}" + "pattern": "REL[A-Za-z0-9]{17}" } } } -export const CreateTokenForOwnTemplateRequest: any = { +export const CreateRelationshipRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/CreateTokenForOwnTemplateRequest", + "$ref": "#/definitions/CreateRelationshipRequest", "definitions": { - "CreateTokenForOwnTemplateRequest": { + "CreateRelationshipRequest": { "type": "object", "properties": { "templateId": { "$ref": "#/definitions/RelationshipTemplateIdString" }, - "expiresAt": { - "$ref": "#/definitions/ISO8601DateTimeString" - }, - "ephemeral": { - "type": "boolean" - }, - "forIdentity": { - "$ref": "#/definitions/AddressString" - } + "creationContent": {} }, "required": [ - "templateId" + "templateId", + "creationContent" ], "additionalProperties": false }, "RelationshipTemplateIdString": { "type": "string", "pattern": "RLT[A-Za-z0-9]{17}" + } + } +} + +export const DecomposeRelationshipRequest: any = { + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/DecomposeRelationshipRequest", + "definitions": { + "DecomposeRelationshipRequest": { + "type": "object", + "properties": { + "relationshipId": { + "$ref": "#/definitions/RelationshipIdString" + } + }, + "required": [ + "relationshipId" + ], + "additionalProperties": false }, - "ISO8601DateTimeString": { - "type": "string", - "errorMessage": "must match ISO8601 datetime format", - "pattern": "^([+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([.,]\\d+(?!:))?)?(\\17[0-5]\\d([.,]\\d+)?)?([zZ]|([+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" - }, - "AddressString": { + "RelationshipIdString": { "type": "string", - "pattern": "did:e:((([A-Za-z0-9]+(-[A-Za-z0-9]+)*)\\.)+[a-z]{2,}|localhost):dids:[0-9a-f]{22}" + "pattern": "REL[A-Za-z0-9]{17}" } } } -export const CreateTokenQRCodeForOwnTemplateRequest: any = { +export const GetAttributesForRelationshipRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/CreateTokenQRCodeForOwnTemplateRequest", + "$ref": "#/definitions/GetAttributesForRelationshipRequest", "definitions": { - "CreateTokenQRCodeForOwnTemplateRequest": { + "GetAttributesForRelationshipRequest": { "type": "object", "properties": { - "templateId": { - "$ref": "#/definitions/RelationshipTemplateIdString" + "id": { + "$ref": "#/definitions/RelationshipIdString" }, - "expiresAt": { - "$ref": "#/definitions/ISO8601DateTimeString" + "hideTechnical": { + "type": "boolean" }, - "forIdentity": { - "$ref": "#/definitions/AddressString" + "onlyLatestVersions": { + "type": "boolean", + "description": "default: true" } }, "required": [ - "templateId" + "id" ], "additionalProperties": false }, - "RelationshipTemplateIdString": { - "type": "string", - "pattern": "RLT[A-Za-z0-9]{17}" - }, - "ISO8601DateTimeString": { - "type": "string", - "errorMessage": "must match ISO8601 datetime format", - "pattern": "^([+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([.,]\\d+(?!:))?)?(\\17[0-5]\\d([.,]\\d+)?)?([zZ]|([+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" - }, - "AddressString": { + "RelationshipIdString": { "type": "string", - "pattern": "did:e:((([A-Za-z0-9]+(-[A-Za-z0-9]+)*)\\.)+[a-z]{2,}|localhost):dids:[0-9a-f]{22}" + "pattern": "REL[A-Za-z0-9]{17}" } } } -export const GetRelationshipTemplateRequest: any = { +export const GetRelationshipRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/GetRelationshipTemplateRequest", + "$ref": "#/definitions/GetRelationshipRequest", "definitions": { - "GetRelationshipTemplateRequest": { + "GetRelationshipRequest": { "type": "object", "properties": { "id": { - "$ref": "#/definitions/RelationshipTemplateIdString" + "$ref": "#/definitions/RelationshipIdString" } }, "required": [ @@ -22155,72 +22140,53 @@ export const GetRelationshipTemplateRequest: any = { ], "additionalProperties": false }, - "RelationshipTemplateIdString": { + "RelationshipIdString": { "type": "string", - "pattern": "RLT[A-Za-z0-9]{17}" + "pattern": "REL[A-Za-z0-9]{17}" } } } -export const GetRelationshipTemplatesRequest: any = { +export const GetRelationshipByAddressRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/GetRelationshipTemplatesRequest", + "$ref": "#/definitions/GetRelationshipByAddressRequest", "definitions": { - "GetRelationshipTemplatesRequest": { + "GetRelationshipByAddressRequest": { + "type": "object", + "properties": { + "address": { + "$ref": "#/definitions/AddressString" + } + }, + "required": [ + "address" + ], + "additionalProperties": false + }, + "AddressString": { + "type": "string", + "pattern": "did:e:((([A-Za-z0-9]+(-[A-Za-z0-9]+)*)\\.)+[a-z]{2,}|localhost):dids:[0-9a-f]{22}" + } + } +} + +export const GetRelationshipsRequest: any = { + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/GetRelationshipsRequest", + "definitions": { + "GetRelationshipsRequest": { "type": "object", "properties": { "query": { - "$ref": "#/definitions/GetRelationshipTemplatesQuery" - }, - "ownerRestriction": { - "$ref": "#/definitions/OwnerRestriction" + "$ref": "#/definitions/GetRelationshipsQuery" } }, "additionalProperties": false }, - "GetRelationshipTemplatesQuery": { + "GetRelationshipsQuery": { "type": "object", "properties": { - "isOwn": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - }, - "createdAt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - }, - "expiresAt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - }, - "createdBy": { + "peer": { "anyOf": [ { "type": "string" @@ -22233,7 +22199,7 @@ export const GetRelationshipTemplatesRequest: any = { } ] }, - "createdByDevice": { + "status": { "anyOf": [ { "type": "string" @@ -22246,7 +22212,7 @@ export const GetRelationshipTemplatesRequest: any = { } ] }, - "maxNumberOfAllocations": { + "template.id": { "anyOf": [ { "type": "string" @@ -22261,57 +22227,38 @@ export const GetRelationshipTemplatesRequest: any = { } }, "additionalProperties": false - }, - "OwnerRestriction": { - "type": "string", - "enum": [ - "o", - "p" - ] } } } -export const LoadPeerRelationshipTemplateRequest: any = { +export const RejectRelationshipRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/LoadPeerRelationshipTemplateRequest", + "$ref": "#/definitions/RejectRelationshipRequest", "definitions": { - "LoadPeerRelationshipTemplateRequest": { + "RejectRelationshipRequest": { "type": "object", "properties": { - "reference": { - "anyOf": [ - { - "$ref": "#/definitions/TokenReferenceString" - }, - { - "$ref": "#/definitions/RelationshipTemplateReferenceString" - } - ] + "relationshipId": { + "$ref": "#/definitions/RelationshipIdString" } }, "required": [ - "reference" + "relationshipId" ], - "additionalProperties": false, - "errorMessage": "token / relationship template reference invalid" - }, - "TokenReferenceString": { - "type": "string", - "pattern": "VE9L.{84}" + "additionalProperties": false }, - "RelationshipTemplateReferenceString": { + "RelationshipIdString": { "type": "string", - "pattern": "UkxU.{84}" + "pattern": "REL[A-Za-z0-9]{17}" } } } -export const AcceptRelationshipRequest: any = { +export const RejectRelationshipReactivationRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/AcceptRelationshipRequest", + "$ref": "#/definitions/RejectRelationshipReactivationRequest", "definitions": { - "AcceptRelationshipRequest": { + "RejectRelationshipReactivationRequest": { "type": "object", "properties": { "relationshipId": { @@ -22330,11 +22277,11 @@ export const AcceptRelationshipRequest: any = { } } -export const AcceptRelationshipReactivationRequest: any = { +export const RequestRelationshipReactivationRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/AcceptRelationshipReactivationRequest", + "$ref": "#/definitions/RequestRelationshipReactivationRequest", "definitions": { - "AcceptRelationshipReactivationRequest": { + "RequestRelationshipReactivationRequest": { "type": "object", "properties": { "relationshipId": { @@ -22353,36 +22300,11 @@ export const AcceptRelationshipReactivationRequest: any = { } } -export const CreateRelationshipRequest: any = { - "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/CreateRelationshipRequest", - "definitions": { - "CreateRelationshipRequest": { - "type": "object", - "properties": { - "templateId": { - "$ref": "#/definitions/RelationshipTemplateIdString" - }, - "creationContent": {} - }, - "required": [ - "templateId", - "creationContent" - ], - "additionalProperties": false - }, - "RelationshipTemplateIdString": { - "type": "string", - "pattern": "RLT[A-Za-z0-9]{17}" - } - } -} - -export const DecomposeRelationshipRequest: any = { +export const RevokeRelationshipRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/DecomposeRelationshipRequest", + "$ref": "#/definitions/RevokeRelationshipRequest", "definitions": { - "DecomposeRelationshipRequest": { + "RevokeRelationshipRequest": { "type": "object", "properties": { "relationshipId": { @@ -22401,26 +22323,19 @@ export const DecomposeRelationshipRequest: any = { } } -export const GetAttributesForRelationshipRequest: any = { +export const RevokeRelationshipReactivationRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/GetAttributesForRelationshipRequest", + "$ref": "#/definitions/RevokeRelationshipReactivationRequest", "definitions": { - "GetAttributesForRelationshipRequest": { + "RevokeRelationshipReactivationRequest": { "type": "object", "properties": { - "id": { + "relationshipId": { "$ref": "#/definitions/RelationshipIdString" - }, - "hideTechnical": { - "type": "boolean" - }, - "onlyLatestVersions": { - "type": "boolean", - "description": "default: true" } }, "required": [ - "id" + "relationshipId" ], "additionalProperties": false }, @@ -22431,19 +22346,19 @@ export const GetAttributesForRelationshipRequest: any = { } } -export const GetRelationshipRequest: any = { +export const TerminateRelationshipRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/GetRelationshipRequest", + "$ref": "#/definitions/TerminateRelationshipRequest", "definitions": { - "GetRelationshipRequest": { + "TerminateRelationshipRequest": { "type": "object", "properties": { - "id": { + "relationshipId": { "$ref": "#/definitions/RelationshipIdString" } }, "required": [ - "id" + "relationshipId" ], "additionalProperties": false }, @@ -22454,22 +22369,36 @@ export const GetRelationshipRequest: any = { } } -export const GetRelationshipByAddressRequest: any = { +export const CreateOwnRelationshipTemplateRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/GetRelationshipByAddressRequest", + "$ref": "#/definitions/CreateOwnRelationshipTemplateRequest", "definitions": { - "GetRelationshipByAddressRequest": { + "CreateOwnRelationshipTemplateRequest": { "type": "object", "properties": { - "address": { + "expiresAt": { + "$ref": "#/definitions/ISO8601DateTimeString" + }, + "content": {}, + "maxNumberOfAllocations": { + "type": "number", + "minimum": 1 + }, + "forIdentity": { "$ref": "#/definitions/AddressString" } }, "required": [ - "address" + "expiresAt", + "content" ], "additionalProperties": false }, + "ISO8601DateTimeString": { + "type": "string", + "errorMessage": "must match ISO8601 datetime format", + "pattern": "^([+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([.,]\\d+(?!:))?)?(\\17[0-5]\\d([.,]\\d+)?)?([zZ]|([+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" + }, "AddressString": { "type": "string", "pattern": "did:e:((([A-Za-z0-9]+(-[A-Za-z0-9]+)*)\\.)+[a-z]{2,}|localhost):dids:[0-9a-f]{22}" @@ -22477,201 +22406,272 @@ export const GetRelationshipByAddressRequest: any = { } } -export const GetRelationshipsRequest: any = { +export const CreateQRCodeForOwnTemplateRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/GetRelationshipsRequest", + "$ref": "#/definitions/CreateQRCodeForOwnTemplateRequest", "definitions": { - "GetRelationshipsRequest": { + "CreateQRCodeForOwnTemplateRequest": { "type": "object", "properties": { - "query": { - "$ref": "#/definitions/GetRelationshipsQuery" + "templateId": { + "$ref": "#/definitions/RelationshipTemplateIdString" } }, + "required": [ + "templateId" + ], "additionalProperties": false }, - "GetRelationshipsQuery": { - "type": "object", - "properties": { - "peer": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - }, - "template.id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - } - }, - "additionalProperties": false + "RelationshipTemplateIdString": { + "type": "string", + "pattern": "RLT[A-Za-z0-9]{17}" } } } -export const RejectRelationshipRequest: any = { +export const CreateTokenForOwnTemplateRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/RejectRelationshipRequest", + "$ref": "#/definitions/CreateTokenForOwnTemplateRequest", "definitions": { - "RejectRelationshipRequest": { + "CreateTokenForOwnTemplateRequest": { "type": "object", "properties": { - "relationshipId": { - "$ref": "#/definitions/RelationshipIdString" + "templateId": { + "$ref": "#/definitions/RelationshipTemplateIdString" + }, + "expiresAt": { + "$ref": "#/definitions/ISO8601DateTimeString" + }, + "ephemeral": { + "type": "boolean" + }, + "forIdentity": { + "$ref": "#/definitions/AddressString" } }, "required": [ - "relationshipId" + "templateId" ], "additionalProperties": false }, - "RelationshipIdString": { + "RelationshipTemplateIdString": { "type": "string", - "pattern": "REL[A-Za-z0-9]{17}" + "pattern": "RLT[A-Za-z0-9]{17}" + }, + "ISO8601DateTimeString": { + "type": "string", + "errorMessage": "must match ISO8601 datetime format", + "pattern": "^([+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([.,]\\d+(?!:))?)?(\\17[0-5]\\d([.,]\\d+)?)?([zZ]|([+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" + }, + "AddressString": { + "type": "string", + "pattern": "did:e:((([A-Za-z0-9]+(-[A-Za-z0-9]+)*)\\.)+[a-z]{2,}|localhost):dids:[0-9a-f]{22}" } } } -export const RejectRelationshipReactivationRequest: any = { +export const CreateTokenQRCodeForOwnTemplateRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/RejectRelationshipReactivationRequest", + "$ref": "#/definitions/CreateTokenQRCodeForOwnTemplateRequest", "definitions": { - "RejectRelationshipReactivationRequest": { + "CreateTokenQRCodeForOwnTemplateRequest": { "type": "object", "properties": { - "relationshipId": { - "$ref": "#/definitions/RelationshipIdString" + "templateId": { + "$ref": "#/definitions/RelationshipTemplateIdString" + }, + "expiresAt": { + "$ref": "#/definitions/ISO8601DateTimeString" + }, + "forIdentity": { + "$ref": "#/definitions/AddressString" } }, "required": [ - "relationshipId" + "templateId" ], "additionalProperties": false }, - "RelationshipIdString": { + "RelationshipTemplateIdString": { "type": "string", - "pattern": "REL[A-Za-z0-9]{17}" + "pattern": "RLT[A-Za-z0-9]{17}" + }, + "ISO8601DateTimeString": { + "type": "string", + "errorMessage": "must match ISO8601 datetime format", + "pattern": "^([+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([.,]\\d+(?!:))?)?(\\17[0-5]\\d([.,]\\d+)?)?([zZ]|([+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" + }, + "AddressString": { + "type": "string", + "pattern": "did:e:((([A-Za-z0-9]+(-[A-Za-z0-9]+)*)\\.)+[a-z]{2,}|localhost):dids:[0-9a-f]{22}" } } } -export const RequestRelationshipReactivationRequest: any = { +export const GetRelationshipTemplateRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/RequestRelationshipReactivationRequest", + "$ref": "#/definitions/GetRelationshipTemplateRequest", "definitions": { - "RequestRelationshipReactivationRequest": { + "GetRelationshipTemplateRequest": { "type": "object", "properties": { - "relationshipId": { - "$ref": "#/definitions/RelationshipIdString" + "id": { + "$ref": "#/definitions/RelationshipTemplateIdString" } }, "required": [ - "relationshipId" + "id" ], "additionalProperties": false }, - "RelationshipIdString": { + "RelationshipTemplateIdString": { "type": "string", - "pattern": "REL[A-Za-z0-9]{17}" + "pattern": "RLT[A-Za-z0-9]{17}" } } } -export const RevokeRelationshipRequest: any = { +export const GetRelationshipTemplatesRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/RevokeRelationshipRequest", + "$ref": "#/definitions/GetRelationshipTemplatesRequest", "definitions": { - "RevokeRelationshipRequest": { + "GetRelationshipTemplatesRequest": { "type": "object", "properties": { - "relationshipId": { - "$ref": "#/definitions/RelationshipIdString" + "query": { + "$ref": "#/definitions/GetRelationshipTemplatesQuery" + }, + "ownerRestriction": { + "$ref": "#/definitions/OwnerRestriction" } }, - "required": [ - "relationshipId" - ], "additionalProperties": false }, - "RelationshipIdString": { - "type": "string", - "pattern": "REL[A-Za-z0-9]{17}" - } - } -} - -export const RevokeRelationshipReactivationRequest: any = { - "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/RevokeRelationshipReactivationRequest", - "definitions": { - "RevokeRelationshipReactivationRequest": { + "GetRelationshipTemplatesQuery": { "type": "object", "properties": { - "relationshipId": { - "$ref": "#/definitions/RelationshipIdString" + "isOwn": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "createdAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "expiresAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "createdBy": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "createdByDevice": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "maxNumberOfAllocations": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] } }, - "required": [ - "relationshipId" - ], "additionalProperties": false }, - "RelationshipIdString": { + "OwnerRestriction": { "type": "string", - "pattern": "REL[A-Za-z0-9]{17}" + "enum": [ + "o", + "p" + ] } } } -export const TerminateRelationshipRequest: any = { +export const LoadPeerRelationshipTemplateRequest: any = { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/TerminateRelationshipRequest", + "$ref": "#/definitions/LoadPeerRelationshipTemplateRequest", "definitions": { - "TerminateRelationshipRequest": { + "LoadPeerRelationshipTemplateRequest": { "type": "object", "properties": { - "relationshipId": { - "$ref": "#/definitions/RelationshipIdString" + "reference": { + "anyOf": [ + { + "$ref": "#/definitions/TokenReferenceString" + }, + { + "$ref": "#/definitions/RelationshipTemplateReferenceString" + } + ] } }, "required": [ - "relationshipId" + "reference" ], - "additionalProperties": false + "additionalProperties": false, + "errorMessage": "token / relationship template reference invalid" }, - "RelationshipIdString": { + "TokenReferenceString": { "type": "string", - "pattern": "REL[A-Za-z0-9]{17}" + "pattern": "VE9L.{84}" + }, + "RelationshipTemplateReferenceString": { + "type": "string", + "pattern": "UkxU.{84}" } } } diff --git a/packages/runtime/src/useCases/transport/tags/GetTags.ts b/packages/runtime/src/useCases/transport/tags/GetTags.ts index 2e4403632..7ac1ba06f 100644 --- a/packages/runtime/src/useCases/transport/tags/GetTags.ts +++ b/packages/runtime/src/useCases/transport/tags/GetTags.ts @@ -3,12 +3,14 @@ import { BackboneGetTag, TagController } from "@nmshd/transport"; import { Inject } from "@nmshd/typescript-ioc"; import { UseCase } from "../../common"; -export class GetTagsUseCase extends UseCase { +export type GetTagsUseCaseResponse = BackboneGetTag; + +export class GetTagsUseCase extends UseCase { public constructor(@Inject private readonly tagController: TagController) { super(); } - protected async executeInternal(): Promise> { + protected async executeInternal(): Promise> { return Result.ok(await this.tagController.getTags()); } } diff --git a/packages/transport/test/modules/tags/TagsController.test.ts b/packages/transport/test/modules/tags/TagsController.test.ts index af1c02060..82ed804d6 100644 --- a/packages/transport/test/modules/tags/TagsController.test.ts +++ b/packages/transport/test/modules/tags/TagsController.test.ts @@ -1,5 +1,5 @@ import { IDatabaseConnection } from "@js-soft/docdb-access-abstractions"; -import { AccountController, BackboneGetTag, ClientResult, TagClient, Transport } from "../../../src"; +import { AccountController, Transport } from "../../../src"; import { TestUtil } from "../../testHelpers/TestUtil"; describe("AccountController", function () { @@ -9,75 +9,6 @@ describe("AccountController", function () { let account: AccountController; - /* eslint-disable @typescript-eslint/naming-convention */ - const mockTags: BackboneGetTag = { - supportedLanguages: ["de", "en"], - tagsForAttributeValueTypes: { - IdentityFileReference: { - schulabschluss: { - displayNames: { - de: "Abschluss", - en: "Degree" - }, - children: { - realschule: { - displayNames: { - de: "Realschule", - en: "Secondary School" - }, - children: { - zeugnis: { - displayNames: { - de: "Zeugnis", - en: "Diploma" - } - } - } - }, - - gymnasium: { - displayNames: { - de: "Gymnasium", - en: "High School" - }, - children: { - zeugnis: { - displayNames: { - de: "Zeugnis", - en: "Diploma" - } - } - } - } - } - } - }, - PhoneNumber: { - notfall: { - displayNames: { - de: "Notfallkontakt", - en: "Emergency Contact" - } - } - }, - StreetAddress: { - lieferung: { - displayNames: { - de: "Lieferadresse", - en: "Deliver Address" - } - }, - heimat: { - displayNames: { - de: "Heimatadresse", - en: "Home Address" - } - } - } - } - }; - /* eslint-enable @typescript-eslint/naming-convention */ - beforeAll(async function () { connection = await TestUtil.createDatabaseConnection(); transport = TestUtil.createTransport(connection); @@ -86,13 +17,6 @@ describe("AccountController", function () { const accounts = await TestUtil.provideAccounts(transport, 1); account = accounts[0]; - const tagClient = (account.tags as any).client as TagClient; - - const mockGetTags = jest.fn().mockImplementation(() => { - return Promise.resolve(ClientResult.ok(mockTags)); - }); - - tagClient.getTags = mockGetTags.bind(tagClient); }); afterAll(async function () { @@ -104,6 +28,6 @@ describe("AccountController", function () { test("should receive the legal tags", async function () { const tags = await account.tags.getTags(); - expect(tags).toStrictEqual(mockTags); + expect(tags).toBeDefined(); }); }); From 931a0335f18d90ea48d56d63bd92e33b0fb55113 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 29 Oct 2024 15:45:48 +0100 Subject: [PATCH 05/33] chore: remove circular dependency --- packages/transport/src/modules/tags/TagController.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/transport/src/modules/tags/TagController.ts b/packages/transport/src/modules/tags/TagController.ts index dc0f44241..f200e065b 100644 --- a/packages/transport/src/modules/tags/TagController.ts +++ b/packages/transport/src/modules/tags/TagController.ts @@ -1,4 +1,7 @@ -import { AccountController, BackboneGetTag, ControllerName, TagClient, TransportController } from "../.."; +import { ControllerName, TransportController } from "../../core/TransportController"; +import { AccountController } from "../accounts/AccountController"; +import { BackboneGetTag } from "./backbone/BackboneGetTag"; +import { TagClient } from "./backbone/TagClient"; export class TagController extends TransportController { private client: TagClient; From 6715d70129c1f0dd4d138929f07773ec6cc30995 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Wed, 30 Oct 2024 08:43:52 +0100 Subject: [PATCH 06/33] chore: add tag mapping and rename interfaces --- .../src/extensibility/facades/transport/TagsFacade.ts | 4 ++-- packages/runtime/src/types/transport/TagDTO.ts | 9 +++++++++ packages/runtime/src/useCases/transport/tags/GetTags.ts | 7 ++++--- .../runtime/src/useCases/transport/tags/TagMapper.ts | 8 ++++++++ packages/transport/src/modules/tags/TagController.ts | 4 ++-- .../src/modules/tags/backbone/BackboneGetTag.ts | 8 ++++---- .../transport/src/modules/tags/backbone/TagClient.ts | 6 +++--- 7 files changed, 32 insertions(+), 14 deletions(-) create mode 100644 packages/runtime/src/types/transport/TagDTO.ts create mode 100644 packages/runtime/src/useCases/transport/tags/TagMapper.ts diff --git a/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts b/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts index f97800384..a103c3b0d 100644 --- a/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts +++ b/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts @@ -1,12 +1,12 @@ import { Result } from "@js-soft/ts-utils"; -import { BackboneGetTag } from "@nmshd/transport"; +import { BackboneTagList } from "@nmshd/transport"; import { Inject } from "@nmshd/typescript-ioc"; import { GetTagsUseCase } from "../../../useCases/transport/tags/GetTags"; export class TagsFacade { public constructor(@Inject private readonly getTagsUseCase: GetTagsUseCase) {} - public async getTags(): Promise> { + public async getTags(): Promise> { return await this.getTagsUseCase.execute(); } } diff --git a/packages/runtime/src/types/transport/TagDTO.ts b/packages/runtime/src/types/transport/TagDTO.ts new file mode 100644 index 000000000..dfc93f947 --- /dev/null +++ b/packages/runtime/src/types/transport/TagDTO.ts @@ -0,0 +1,9 @@ +export interface TagListDTO { + supportedLanguages: string[]; + tagsForAttributeValueTypes: Record>; +} + +interface TagDTO { + displayNames: Record; + children?: Record; +} diff --git a/packages/runtime/src/useCases/transport/tags/GetTags.ts b/packages/runtime/src/useCases/transport/tags/GetTags.ts index 7ac1ba06f..2a9ef936b 100644 --- a/packages/runtime/src/useCases/transport/tags/GetTags.ts +++ b/packages/runtime/src/useCases/transport/tags/GetTags.ts @@ -1,9 +1,10 @@ import { Result } from "@js-soft/ts-utils"; -import { BackboneGetTag, TagController } from "@nmshd/transport"; +import { BackboneTagList, TagController } from "@nmshd/transport"; import { Inject } from "@nmshd/typescript-ioc"; import { UseCase } from "../../common"; +import { TagMapper } from "./TagMapper"; -export type GetTagsUseCaseResponse = BackboneGetTag; +export type GetTagsUseCaseResponse = BackboneTagList; export class GetTagsUseCase extends UseCase { public constructor(@Inject private readonly tagController: TagController) { @@ -11,6 +12,6 @@ export class GetTagsUseCase extends UseCase { } protected async executeInternal(): Promise> { - return Result.ok(await this.tagController.getTags()); + return Result.ok(TagMapper.toTagListDTO(await this.tagController.getTags())); } } diff --git a/packages/runtime/src/useCases/transport/tags/TagMapper.ts b/packages/runtime/src/useCases/transport/tags/TagMapper.ts new file mode 100644 index 000000000..4e0d8ea84 --- /dev/null +++ b/packages/runtime/src/useCases/transport/tags/TagMapper.ts @@ -0,0 +1,8 @@ +import { BackboneTagList } from "@nmshd/transport/src/modules/tags/backbone/BackboneGetTag"; +import { TagListDTO } from "../../../types/transport/TagDTO"; + +export class TagMapper { + public static toTagListDTO(tagList: BackboneTagList): TagListDTO { + return tagList; + } +} diff --git a/packages/transport/src/modules/tags/TagController.ts b/packages/transport/src/modules/tags/TagController.ts index f200e065b..ddd9f9cde 100644 --- a/packages/transport/src/modules/tags/TagController.ts +++ b/packages/transport/src/modules/tags/TagController.ts @@ -1,6 +1,6 @@ import { ControllerName, TransportController } from "../../core/TransportController"; import { AccountController } from "../accounts/AccountController"; -import { BackboneGetTag } from "./backbone/BackboneGetTag"; +import { BackboneTagList } from "./backbone/BackboneGetTag"; import { TagClient } from "./backbone/TagClient"; export class TagController extends TransportController { @@ -18,7 +18,7 @@ export class TagController extends TransportController { return this; } - public async getTags(): Promise { + public async getTags(): Promise { const tags = (await this.client.getTags()).value; return tags; } diff --git a/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts b/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts index 27be967dc..ce68862d6 100644 --- a/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts +++ b/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts @@ -1,9 +1,9 @@ -export interface BackboneGetTag { +export interface BackboneTagList { supportedLanguages: string[]; - tagsForAttributeValueTypes: Record>; + tagsForAttributeValueTypes: Record>; } -interface Tag { +interface BackboneTag { displayNames: Record; - children?: Record; + children?: Record; } diff --git a/packages/transport/src/modules/tags/backbone/TagClient.ts b/packages/transport/src/modules/tags/backbone/TagClient.ts index 3e25b6a9d..6142250e9 100644 --- a/packages/transport/src/modules/tags/backbone/TagClient.ts +++ b/packages/transport/src/modules/tags/backbone/TagClient.ts @@ -1,9 +1,9 @@ import { ClientResult } from "../../../core/backbone/ClientResult"; import { RESTClientAuthenticate } from "../../../core/backbone/RESTClientAuthenticate"; -import { BackboneGetTag } from "./BackboneGetTag"; +import { BackboneTagList } from "./BackboneGetTag"; export class TagClient extends RESTClientAuthenticate { - public async getTags(): Promise> { - return await this.get("/api/v1/Tags"); + public async getTags(): Promise> { + return await this.get("/api/v1/Tags"); } } From a5be78da26f717d2239ec2340b2390f1478ea9ad Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Thu, 7 Nov 2024 09:42:00 +0100 Subject: [PATCH 07/33] chore: use TagListDTO --- .../src/extensibility/facades/transport/TagsFacade.ts | 4 ++-- packages/runtime/src/useCases/transport/tags/GetTags.ts | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts b/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts index a103c3b0d..a63de4741 100644 --- a/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts +++ b/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts @@ -1,12 +1,12 @@ import { Result } from "@js-soft/ts-utils"; -import { BackboneTagList } from "@nmshd/transport"; import { Inject } from "@nmshd/typescript-ioc"; +import { TagListDTO } from "../../../types/transport/TagDTO"; import { GetTagsUseCase } from "../../../useCases/transport/tags/GetTags"; export class TagsFacade { public constructor(@Inject private readonly getTagsUseCase: GetTagsUseCase) {} - public async getTags(): Promise> { + public async getTags(): Promise> { return await this.getTagsUseCase.execute(); } } diff --git a/packages/runtime/src/useCases/transport/tags/GetTags.ts b/packages/runtime/src/useCases/transport/tags/GetTags.ts index 2a9ef936b..75424df43 100644 --- a/packages/runtime/src/useCases/transport/tags/GetTags.ts +++ b/packages/runtime/src/useCases/transport/tags/GetTags.ts @@ -1,17 +1,16 @@ import { Result } from "@js-soft/ts-utils"; -import { BackboneTagList, TagController } from "@nmshd/transport"; +import { TagController } from "@nmshd/transport"; import { Inject } from "@nmshd/typescript-ioc"; +import { TagListDTO } from "../../../types/transport/TagDTO"; import { UseCase } from "../../common"; import { TagMapper } from "./TagMapper"; -export type GetTagsUseCaseResponse = BackboneTagList; - -export class GetTagsUseCase extends UseCase { +export class GetTagsUseCase extends UseCase { public constructor(@Inject private readonly tagController: TagController) { super(); } - protected async executeInternal(): Promise> { + protected async executeInternal(): Promise> { return Result.ok(TagMapper.toTagListDTO(await this.tagController.getTags())); } } From 3232c3c5692c9e0930e51330bb4c29163805ab6a Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Fri, 8 Nov 2024 09:30:55 +0100 Subject: [PATCH 08/33] chore: pr comments --- packages/runtime/src/Runtime.ts | 4 +-- .../src/useCases/transport/tags/GetTags.ts | 7 +++--- .../src/modules/accounts/AccountController.ts | 6 ++--- packages/transport/src/modules/index.ts | 2 +- .../src/modules/tags/TagController.ts | 25 ------------------- .../test/modules/tags/TagsController.test.ts | 4 +-- 6 files changed, 12 insertions(+), 36 deletions(-) delete mode 100644 packages/transport/src/modules/tags/TagController.ts diff --git a/packages/runtime/src/Runtime.ts b/packages/runtime/src/Runtime.ts index bb7835238..ece1ae320 100644 --- a/packages/runtime/src/Runtime.ts +++ b/packages/runtime/src/Runtime.ts @@ -27,7 +27,7 @@ import { MessageController, RelationshipsController, RelationshipTemplateController, - TagController, + TagsController, TokenController, Transport } from "@nmshd/transport"; @@ -259,7 +259,7 @@ export abstract class Runtime { .factory(() => this.getAccountController().tokens) .scope(Scope.Request); - Container.bind(TagController) + Container.bind(TagsController) .factory(() => this.getAccountController().tags) .scope(Scope.Request); diff --git a/packages/runtime/src/useCases/transport/tags/GetTags.ts b/packages/runtime/src/useCases/transport/tags/GetTags.ts index 75424df43..5cbf63361 100644 --- a/packages/runtime/src/useCases/transport/tags/GetTags.ts +++ b/packages/runtime/src/useCases/transport/tags/GetTags.ts @@ -1,16 +1,17 @@ import { Result } from "@js-soft/ts-utils"; -import { TagController } from "@nmshd/transport"; +import { TagsController } from "@nmshd/transport"; import { Inject } from "@nmshd/typescript-ioc"; import { TagListDTO } from "../../../types/transport/TagDTO"; import { UseCase } from "../../common"; import { TagMapper } from "./TagMapper"; export class GetTagsUseCase extends UseCase { - public constructor(@Inject private readonly tagController: TagController) { + public constructor(@Inject private readonly tagController: TagsController) { super(); } protected async executeInternal(): Promise> { - return Result.ok(TagMapper.toTagListDTO(await this.tagController.getTags())); + const tagListDTO = TagMapper.toTagListDTO(await this.tagController.getTags()); + return Result.ok(tagListDTO); } } diff --git a/packages/transport/src/modules/accounts/AccountController.ts b/packages/transport/src/modules/accounts/AccountController.ts index 4bbcc8bd5..35cb09713 100644 --- a/packages/transport/src/modules/accounts/AccountController.ts +++ b/packages/transport/src/modules/accounts/AccountController.ts @@ -31,7 +31,7 @@ import { SecretController } from "../secrets/SecretController"; import { ChangedItems } from "../sync/ChangedItems"; import { SyncController } from "../sync/SyncController"; import { SynchronizedCollection } from "../sync/SynchronizedCollection"; -import { TagController } from "../tags/TagController"; +import { TagsController } from "../tags/TagsController"; import { TokenController } from "../tokens/TokenController"; import { IdentityController } from "./IdentityController"; import { IdentityDeletionProcessController } from "./IdentityDeletionProcessController"; @@ -64,7 +64,7 @@ export class AccountController { public relationshipTemplates: RelationshipTemplateController; private synchronization: SyncController; public tokens: TokenController; - public tags: TagController; + public tags: TagsController; private relationshipSecrets: RelationshipSecretController; private readonly _log: ILogger; @@ -215,7 +215,7 @@ export class AccountController { this.relationshipTemplates = await new RelationshipTemplateController(this, this.relationshipSecrets).init(); this.messages = await new MessageController(this).init(); this.tokens = await new TokenController(this).init(); - this.tags = await new TagController(this).init(); + this.tags = await new TagsController(this).init(); this.synchronization = await new SyncController(this, this.dependencyOverrides, this.unpushedDatawalletModifications, this.config.datawalletEnabled).init(); diff --git a/packages/transport/src/modules/index.ts b/packages/transport/src/modules/index.ts index 370335d8e..d8010d74c 100644 --- a/packages/transport/src/modules/index.ts +++ b/packages/transport/src/modules/index.ts @@ -114,7 +114,7 @@ export * from "./sync/SyncController"; export * from "./sync/SynchronizedCollection"; export * from "./tags/backbone/BackboneGetTag"; export * from "./tags/backbone/TagClient"; -export * from "./tags/TagController"; +export * from "./tags/TagsController"; export * from "./tokens/AnonymousTokenController"; export * from "./tokens/backbone/BackboneGetTokens"; export * from "./tokens/backbone/BackbonePostTokens"; diff --git a/packages/transport/src/modules/tags/TagController.ts b/packages/transport/src/modules/tags/TagController.ts deleted file mode 100644 index ddd9f9cde..000000000 --- a/packages/transport/src/modules/tags/TagController.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ControllerName, TransportController } from "../../core/TransportController"; -import { AccountController } from "../accounts/AccountController"; -import { BackboneTagList } from "./backbone/BackboneGetTag"; -import { TagClient } from "./backbone/TagClient"; - -export class TagController extends TransportController { - private client: TagClient; - - public constructor(parent: AccountController) { - super(ControllerName.Tag, parent); - } - - public override async init(): Promise { - await super.init(); - - this.client = new TagClient(this.config, this.parent.authenticator, this.transport.correlator); - - return this; - } - - public async getTags(): Promise { - const tags = (await this.client.getTags()).value; - return tags; - } -} diff --git a/packages/transport/test/modules/tags/TagsController.test.ts b/packages/transport/test/modules/tags/TagsController.test.ts index 82ed804d6..727175ab1 100644 --- a/packages/transport/test/modules/tags/TagsController.test.ts +++ b/packages/transport/test/modules/tags/TagsController.test.ts @@ -2,7 +2,7 @@ import { IDatabaseConnection } from "@js-soft/docdb-access-abstractions"; import { AccountController, Transport } from "../../../src"; import { TestUtil } from "../../testHelpers/TestUtil"; -describe("AccountController", function () { +describe("TagsController", function () { let connection: IDatabaseConnection; let transport: Transport; @@ -25,7 +25,7 @@ describe("AccountController", function () { await connection.close(); }); - test("should receive the legal tags", async function () { + test("should receive the legal tags from backbone", async function () { const tags = await account.tags.getTags(); expect(tags).toBeDefined(); From adcfc180a90f5c77500bff8cafefe1b0bf61bc1b Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Fri, 8 Nov 2024 09:31:24 +0100 Subject: [PATCH 09/33] chore: pr comments --- .../src/modules/tags/TagsController.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 packages/transport/src/modules/tags/TagsController.ts diff --git a/packages/transport/src/modules/tags/TagsController.ts b/packages/transport/src/modules/tags/TagsController.ts new file mode 100644 index 000000000..d243b7cb5 --- /dev/null +++ b/packages/transport/src/modules/tags/TagsController.ts @@ -0,0 +1,25 @@ +import { ControllerName, TransportController } from "../../core/TransportController"; +import { AccountController } from "../accounts/AccountController"; +import { BackboneTagList } from "./backbone/BackboneGetTag"; +import { TagClient } from "./backbone/TagClient"; + +export class TagsController extends TransportController { + private client: TagClient; + + public constructor(parent: AccountController) { + super(ControllerName.Tag, parent); + } + + public override async init(): Promise { + await super.init(); + + this.client = new TagClient(this.config, this.parent.authenticator, this.transport.correlator); + + return this; + } + + public async getTags(): Promise { + const tags = (await this.client.getTags()).value; + return tags; + } +} From 8c2973587b8f07104a09ad89338fc1d1bc787d6d Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 12 Nov 2024 13:25:22 +0100 Subject: [PATCH 10/33] Update TagsController.test.ts --- packages/transport/test/modules/tags/TagsController.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/transport/test/modules/tags/TagsController.test.ts b/packages/transport/test/modules/tags/TagsController.test.ts index 727175ab1..8b738e0be 100644 --- a/packages/transport/test/modules/tags/TagsController.test.ts +++ b/packages/transport/test/modules/tags/TagsController.test.ts @@ -25,7 +25,7 @@ describe("TagsController", function () { await connection.close(); }); - test("should receive the legal tags from backbone", async function () { + test("should receive the legal tags from the Backbone", async function () { const tags = await account.tags.getTags(); expect(tags).toBeDefined(); From d6727c49885d8469c05c08b2f93f73da59a31e4d Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Wed, 13 Nov 2024 13:18:59 +0100 Subject: [PATCH 11/33] chore: add TagList Serializable --- .../src/useCases/transport/tags/TagMapper.ts | 4 ++-- .../src/modules/tags/TagsController.ts | 8 +++---- .../src/modules/tags/data/TagList.ts | 21 +++++++++++++++++++ 3 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 packages/transport/src/modules/tags/data/TagList.ts diff --git a/packages/runtime/src/useCases/transport/tags/TagMapper.ts b/packages/runtime/src/useCases/transport/tags/TagMapper.ts index 4e0d8ea84..0c3185a4a 100644 --- a/packages/runtime/src/useCases/transport/tags/TagMapper.ts +++ b/packages/runtime/src/useCases/transport/tags/TagMapper.ts @@ -1,8 +1,8 @@ -import { BackboneTagList } from "@nmshd/transport/src/modules/tags/backbone/BackboneGetTag"; +import { TagList } from "@nmshd/transport/src/modules/tags/data/TagList"; import { TagListDTO } from "../../../types/transport/TagDTO"; export class TagMapper { - public static toTagListDTO(tagList: BackboneTagList): TagListDTO { + public static toTagListDTO(tagList: TagList): TagListDTO { return tagList; } } diff --git a/packages/transport/src/modules/tags/TagsController.ts b/packages/transport/src/modules/tags/TagsController.ts index d243b7cb5..0c7a01b8c 100644 --- a/packages/transport/src/modules/tags/TagsController.ts +++ b/packages/transport/src/modules/tags/TagsController.ts @@ -1,7 +1,7 @@ import { ControllerName, TransportController } from "../../core/TransportController"; import { AccountController } from "../accounts/AccountController"; -import { BackboneTagList } from "./backbone/BackboneGetTag"; import { TagClient } from "./backbone/TagClient"; +import { TagList } from "./data/TagList"; export class TagsController extends TransportController { private client: TagClient; @@ -18,8 +18,8 @@ export class TagsController extends TransportController { return this; } - public async getTags(): Promise { - const tags = (await this.client.getTags()).value; - return tags; + public async getTags(): Promise { + const backBoneTagList = (await this.client.getTags()).value; + return TagList.fromAny(backBoneTagList); } } diff --git a/packages/transport/src/modules/tags/data/TagList.ts b/packages/transport/src/modules/tags/data/TagList.ts new file mode 100644 index 000000000..3b9217027 --- /dev/null +++ b/packages/transport/src/modules/tags/data/TagList.ts @@ -0,0 +1,21 @@ +import { Serializable, serialize, validate } from "@js-soft/ts-serval"; + +export class TagList extends Serializable { + @serialize() + @validate() + public supportedLanguages: string[]; + + @serialize() + @validate() + public tagsForAttributeValueTypes: Record>; +} + +export class Tag extends Serializable { + @serialize() + @validate() + public displayNames: Record; + + @serialize() + @validate({ nullable: true }) + public children?: Record; +} From 0c9d7ca7b79543469f34c73bf0998bdeaeb230ec Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Wed, 13 Nov 2024 17:52:13 +0100 Subject: [PATCH 12/33] Aktualisieren von TagsController.ts --- packages/transport/src/modules/tags/TagsController.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/transport/src/modules/tags/TagsController.ts b/packages/transport/src/modules/tags/TagsController.ts index 0c7a01b8c..dd00a555e 100644 --- a/packages/transport/src/modules/tags/TagsController.ts +++ b/packages/transport/src/modules/tags/TagsController.ts @@ -19,7 +19,7 @@ export class TagsController extends TransportController { } public async getTags(): Promise { - const backBoneTagList = (await this.client.getTags()).value; - return TagList.fromAny(backBoneTagList); + const backboneTagList = (await this.client.getTags()).value; + return TagList.fromAny(backboneTagList); } } From 9dd97b630a5ba684f5ba9385f62cfb6f844b28bf Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Fri, 22 Nov 2024 11:12:31 +0100 Subject: [PATCH 13/33] chore: add rest client mocking --- .dev/appsettings.override.json | 65 +-------------- .../facades/transport/TagsFacade.ts | 4 +- .../runtime/src/types/transport/TagDTO.ts | 2 +- packages/runtime/src/types/transport/index.ts | 3 +- .../src/useCases/transport/tags/GetTags.ts | 4 +- .../src/useCases/transport/tags/TagMapper.ts | 37 ++++++++- packages/transport/src/modules/index.ts | 1 + .../src/modules/tags/data/TagList.ts | 2 +- .../test/modules/tags/TagsController.test.ts | 81 ++++++++++++++++++- 9 files changed, 124 insertions(+), 75 deletions(-) diff --git a/.dev/appsettings.override.json b/.dev/appsettings.override.json index 3bf1c5ea5..3100b336c 100644 --- a/.dev/appsettings.override.json +++ b/.dev/appsettings.override.json @@ -106,69 +106,8 @@ }, "Tags": { "Application": { - "SupportedLanguages": ["de", "en"], - "TagsForAttributeValueTypes": { - "IdentityFileReference": { - "schulabschluss": { - "displayNames": { - "de": "Abschluss", - "en": "Degree" - }, - "children": { - "realschule": { - "displayNames": { - "de": "Realschule", - "en": "Secondary School" - }, - "children": { - "zeugnis": { - "displayNames": { - "de": "Zeugnis", - "en": "Diploma" - } - } - } - }, - "gymnasium": { - "displayNames": { - "de": "Gymnasium", - "en": "High School" - }, - "children": { - "zeugnis": { - "displayNames": { - "de": "Zeugnis", - "en": "Diploma" - } - } - } - } - } - } - }, - "PhoneNumber": { - "notfall": { - "displayNames": { - "de": "Notfallkontakt", - "en": "Emergency Contact" - } - } - }, - "StreetAddress": { - "lieferung": { - "displayNames": { - "de": "Lieferadresse", - "en": "Deliver Address" - } - }, - "heimat": { - "displayNames": { - "de": "Heimatadresse", - "en": "Home Address" - } - } - } - } + "SupportedLanguages": ["en"], + "TagsForAttributeValueTypes": {} } } }, diff --git a/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts b/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts index a63de4741..eec8ec272 100644 --- a/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts +++ b/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts @@ -1,7 +1,7 @@ import { Result } from "@js-soft/ts-utils"; import { Inject } from "@nmshd/typescript-ioc"; -import { TagListDTO } from "../../../types/transport/TagDTO"; -import { GetTagsUseCase } from "../../../useCases/transport/tags/GetTags"; +import { TagListDTO } from "../../../types"; +import { GetTagsUseCase } from "../../../useCases"; export class TagsFacade { public constructor(@Inject private readonly getTagsUseCase: GetTagsUseCase) {} diff --git a/packages/runtime/src/types/transport/TagDTO.ts b/packages/runtime/src/types/transport/TagDTO.ts index dfc93f947..fa7abb69c 100644 --- a/packages/runtime/src/types/transport/TagDTO.ts +++ b/packages/runtime/src/types/transport/TagDTO.ts @@ -3,7 +3,7 @@ export interface TagListDTO { tagsForAttributeValueTypes: Record>; } -interface TagDTO { +export interface TagDTO { displayNames: Record; children?: Record; } diff --git a/packages/runtime/src/types/transport/index.ts b/packages/runtime/src/types/transport/index.ts index 2235cf6e4..7e2d2eeb0 100644 --- a/packages/runtime/src/types/transport/index.ts +++ b/packages/runtime/src/types/transport/index.ts @@ -2,11 +2,12 @@ export * from "./ChallengeDTO"; export * from "./DeviceDTO"; export * from "./DeviceOnboardingInfoDTO"; export * from "./FileDTO"; -export * from "./IdentityDTO"; export * from "./IdentityDeletionProcessDTO"; +export * from "./IdentityDTO"; export * from "./MessageDTO"; export * from "./MessageWithAttachmentsDTO"; export * from "./RecipientDTO"; export * from "./RelationshipDTO"; export * from "./RelationshipTemplateDTO"; +export * from "./TagDTO"; export * from "./TokenDTO"; diff --git a/packages/runtime/src/useCases/transport/tags/GetTags.ts b/packages/runtime/src/useCases/transport/tags/GetTags.ts index 5cbf63361..95b5f3815 100644 --- a/packages/runtime/src/useCases/transport/tags/GetTags.ts +++ b/packages/runtime/src/useCases/transport/tags/GetTags.ts @@ -11,7 +11,7 @@ export class GetTagsUseCase extends UseCase { } protected async executeInternal(): Promise> { - const tagListDTO = TagMapper.toTagListDTO(await this.tagController.getTags()); - return Result.ok(tagListDTO); + const tagList = await this.tagController.getTags(); + return Result.ok(TagMapper.toTagListDTO(tagList)); } } diff --git a/packages/runtime/src/useCases/transport/tags/TagMapper.ts b/packages/runtime/src/useCases/transport/tags/TagMapper.ts index 0c3185a4a..0ea89bcc3 100644 --- a/packages/runtime/src/useCases/transport/tags/TagMapper.ts +++ b/packages/runtime/src/useCases/transport/tags/TagMapper.ts @@ -1,8 +1,39 @@ -import { TagList } from "@nmshd/transport/src/modules/tags/data/TagList"; -import { TagListDTO } from "../../../types/transport/TagDTO"; +import { Tag, TagList } from "@nmshd/transport"; +import { TagDTO, TagListDTO } from "../../../types"; export class TagMapper { public static toTagListDTO(tagList: TagList): TagListDTO { - return tagList; + return { + supportedLanguages: tagList.supportedLanguages, + tagsForAttributeValueTypes: Object.entries(tagList.tagsForAttributeValueTypes).reduce( + (acc, [key, value]) => { + acc[key] = Object.entries(value).reduce( + (acc2, [key2, value2]) => { + acc2[key2] = TagMapper.toTagDTO(value2); + return acc2; + }, + {} as Record + ); + return acc; + }, + {} as Record> + ) + }; + } + + public static toTagDTO(tagListDTO: Tag): TagDTO { + const tagDTO: TagDTO = { + displayNames: tagListDTO.displayNames + }; + if (tagListDTO.children) { + tagDTO.children = Object.entries(tagListDTO.children).reduce( + (acc, [key, value]) => { + acc[key] = TagMapper.toTagDTO(value); + return acc; + }, + {} as Record + ); + } + return tagDTO; } } diff --git a/packages/transport/src/modules/index.ts b/packages/transport/src/modules/index.ts index d8010d74c..e6df74145 100644 --- a/packages/transport/src/modules/index.ts +++ b/packages/transport/src/modules/index.ts @@ -114,6 +114,7 @@ export * from "./sync/SyncController"; export * from "./sync/SynchronizedCollection"; export * from "./tags/backbone/BackboneGetTag"; export * from "./tags/backbone/TagClient"; +export * from "./tags/data/TagList"; export * from "./tags/TagsController"; export * from "./tokens/AnonymousTokenController"; export * from "./tokens/backbone/BackboneGetTokens"; diff --git a/packages/transport/src/modules/tags/data/TagList.ts b/packages/transport/src/modules/tags/data/TagList.ts index 3b9217027..7979b7f79 100644 --- a/packages/transport/src/modules/tags/data/TagList.ts +++ b/packages/transport/src/modules/tags/data/TagList.ts @@ -1,7 +1,7 @@ import { Serializable, serialize, validate } from "@js-soft/ts-serval"; export class TagList extends Serializable { - @serialize() + @serialize({ type: String }) @validate() public supportedLanguages: string[]; diff --git a/packages/transport/test/modules/tags/TagsController.test.ts b/packages/transport/test/modules/tags/TagsController.test.ts index 8b738e0be..6dd59a725 100644 --- a/packages/transport/test/modules/tags/TagsController.test.ts +++ b/packages/transport/test/modules/tags/TagsController.test.ts @@ -1,5 +1,6 @@ import { IDatabaseConnection } from "@js-soft/docdb-access-abstractions"; -import { AccountController, Transport } from "../../../src"; +import { AccountController, ClientResult, TagClient, Transport } from "../../../src"; +import { RestClientMocker } from "../../testHelpers/RestClientMocker"; import { TestUtil } from "../../testHelpers/TestUtil"; describe("TagsController", function () { @@ -9,6 +10,76 @@ describe("TagsController", function () { let account: AccountController; + let clientMocker: RestClientMocker; + + /* eslint-disable @typescript-eslint/naming-convention */ + const mockTags = { + supportedLanguages: ["de", "en"], + tagsForAttributeValueTypes: { + IdentityFileReference: { + schulabschluss: { + displayNames: { + de: "Abschluss", + en: "Degree" + }, + children: { + realschule: { + displayNames: { + de: "Realschule", + en: "Secondary School" + }, + children: { + zeugnis: { + displayNames: { + de: "Zeugnis", + en: "Diploma" + } + } + } + }, + gymnasium: { + displayNames: { + de: "Gymnasium", + en: "High School" + }, + children: { + zeugnis: { + displayNames: { + de: "Zeugnis", + en: "Diploma" + } + } + } + } + } + } + }, + PhoneNumber: { + notfall: { + displayNames: { + de: "Notfallkontakt", + en: "Emergency Contact" + } + } + }, + StreetAddress: { + lieferung: { + displayNames: { + de: "Lieferadresse", + en: "Deliver Address" + } + }, + heimat: { + displayNames: { + de: "Heimatadresse", + en: "Home Address" + } + } + } + } + }; + /* eslint-enable @typescript-eslint/naming-convention */ + beforeAll(async function () { connection = await TestUtil.createDatabaseConnection(); transport = TestUtil.createTransport(connection); @@ -17,6 +88,9 @@ describe("TagsController", function () { const accounts = await TestUtil.provideAccounts(transport, 1); account = accounts[0]; + + const client = (account.tags as any).client as TagClient; + clientMocker = new RestClientMocker(client); }); afterAll(async function () { @@ -26,8 +100,11 @@ describe("TagsController", function () { }); test("should receive the legal tags from the Backbone", async function () { + clientMocker.mockMethod("getTags", () => { + return ClientResult.ok(mockTags); + }); const tags = await account.tags.getTags(); - expect(tags).toBeDefined(); + expect(tags.toJSON()).toStrictEqual(mockTags); }); }); From 5e41bfdd73909187a1eea88707216f9d5fa384f9 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Fri, 22 Nov 2024 11:12:47 +0100 Subject: [PATCH 14/33] chore: add missing file --- packages/runtime/test/lib/RestClientMocker.ts | 20 ++++ packages/runtime/test/transport/tags.test.ts | 99 +++++++++++++++++++ .../test/testHelpers/RestClientMocker.ts | 20 ++++ 3 files changed, 139 insertions(+) create mode 100644 packages/runtime/test/lib/RestClientMocker.ts create mode 100644 packages/runtime/test/transport/tags.test.ts create mode 100644 packages/transport/test/testHelpers/RestClientMocker.ts diff --git a/packages/runtime/test/lib/RestClientMocker.ts b/packages/runtime/test/lib/RestClientMocker.ts new file mode 100644 index 000000000..8540cb115 --- /dev/null +++ b/packages/runtime/test/lib/RestClientMocker.ts @@ -0,0 +1,20 @@ +import { ClientResult, RESTClient } from "@nmshd/transport"; + +export class RestClientMocker { + private readonly mockedMethods: { fnName: keyof T; originalProperty: any }[] = []; + public constructor(private client: T) {} + public mockMethod(fnName: keyof T, callback: () => ClientResult): void { + this.mockedMethods.push({ fnName, originalProperty: this.client[fnName] }); + + const mockFn = jest.fn().mockImplementation(() => { + return Promise.resolve(callback()); + }); + this.client[fnName] = mockFn.bind(this.client); + } + + public restore(): void { + for (const { fnName, originalProperty } of this.mockedMethods) { + this.client[fnName] = originalProperty; + } + } +} diff --git a/packages/runtime/test/transport/tags.test.ts b/packages/runtime/test/transport/tags.test.ts new file mode 100644 index 000000000..a5d351af5 --- /dev/null +++ b/packages/runtime/test/transport/tags.test.ts @@ -0,0 +1,99 @@ +import { ClientResult, TagClient } from "@nmshd/transport"; +import { RuntimeServiceProvider, TestRuntimeServices } from "../lib"; +import { RestClientMocker } from "../lib/RestClientMocker"; + +const serviceProvider = new RuntimeServiceProvider(); +let runtimeService: TestRuntimeServices; + +let clientMocker: RestClientMocker; + +beforeAll(async () => { + runtimeService = (await serviceProvider.launch(1))[0]; + const client = (runtimeService.transport.tags as any).getTagsUseCase.tagController.client as TagClient; + clientMocker = new RestClientMocker(client); +}, 30000); + +afterAll(() => serviceProvider.stop()); + +afterEach(() => { + clientMocker.restore(); +}); + +describe("Tags", function () { + /* eslint-disable @typescript-eslint/naming-convention */ + const mockTags = { + supportedLanguages: ["de", "en"], + tagsForAttributeValueTypes: { + IdentityFileReference: { + schulabschluss: { + displayNames: { + de: "Abschluss", + en: "Degree" + }, + children: { + realschule: { + displayNames: { + de: "Realschule", + en: "Secondary School" + }, + children: { + zeugnis: { + displayNames: { + de: "Zeugnis", + en: "Diploma" + } + } + } + }, + gymnasium: { + displayNames: { + de: "Gymnasium", + en: "High School" + }, + children: { + zeugnis: { + displayNames: { + de: "Zeugnis", + en: "Diploma" + } + } + } + } + } + } + }, + PhoneNumber: { + notfall: { + displayNames: { + de: "Notfallkontakt", + en: "Emergency Contact" + } + } + }, + StreetAddress: { + lieferung: { + displayNames: { + de: "Lieferadresse", + en: "Deliver Address" + } + }, + heimat: { + displayNames: { + de: "Heimatadresse", + en: "Home Address" + } + } + } + } + }; + /* eslint-enable @typescript-eslint/naming-convention */ + + test("should receive the legal tags from the Backbone", async function () { + clientMocker.mockMethod("getTags", () => { + return ClientResult.ok(mockTags); + }); + const tags = await runtimeService.transport.tags.getTags(); + + expect(tags.value).toStrictEqual(mockTags); + }); +}); diff --git a/packages/transport/test/testHelpers/RestClientMocker.ts b/packages/transport/test/testHelpers/RestClientMocker.ts new file mode 100644 index 000000000..7e540336c --- /dev/null +++ b/packages/transport/test/testHelpers/RestClientMocker.ts @@ -0,0 +1,20 @@ +import { ClientResult, RESTClient } from "../../src"; + +export class RestClientMocker { + private readonly mockedMethods: { fnName: keyof T; originalProperty: any }[] = []; + public constructor(private client: T) {} + public mockMethod(fnName: keyof T, callback: () => ClientResult): void { + this.mockedMethods.push({ fnName, originalProperty: this.client[fnName] }); + + const mockFn = jest.fn().mockImplementation(() => { + return Promise.resolve(callback()); + }); + this.client[fnName] = mockFn.bind(this.client); + } + + public restore(): void { + for (const { fnName, originalProperty } of this.mockedMethods) { + this.client[fnName] = originalProperty; + } + } +} From 5a6c4496421551ee2dd5e8be092b1291e0b51c8c Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Fri, 22 Nov 2024 11:24:53 +0100 Subject: [PATCH 15/33] Update packages/transport/src/core/TransportController.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Julian König <33655937+jkoenig134@users.noreply.github.com> --- packages/transport/src/core/TransportController.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/transport/src/core/TransportController.ts b/packages/transport/src/core/TransportController.ts index 897c12224..949edd3b9 100644 --- a/packages/transport/src/core/TransportController.ts +++ b/packages/transport/src/core/TransportController.ts @@ -29,8 +29,8 @@ export enum ControllerName { RelationshipTemplator = "RelationshipTemplator", Secret = "Secret", Sync = "Sync", - Token = "Token", - Tag = "Tag" + Tag = "Tag", + Token = "Token" } export class TransportController { From 770d2a4d359b8e8e31ec4723cd4d8d607ed87033 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Fri, 22 Nov 2024 11:29:15 +0100 Subject: [PATCH 16/33] chore: add PR comments --- .dev/compose.backbone.env | 2 +- packages/transport/src/modules/tags/data/TagList.ts | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.dev/compose.backbone.env b/.dev/compose.backbone.env index 7e9d590cd..274de34da 100644 --- a/.dev/compose.backbone.env +++ b/.dev/compose.backbone.env @@ -1 +1 @@ -BACKBONE_VERSION=6.16.0 \ No newline at end of file +BACKBONE_VERSION=6.16.0 diff --git a/packages/transport/src/modules/tags/data/TagList.ts b/packages/transport/src/modules/tags/data/TagList.ts index 7979b7f79..32d072b6b 100644 --- a/packages/transport/src/modules/tags/data/TagList.ts +++ b/packages/transport/src/modules/tags/data/TagList.ts @@ -1,5 +1,6 @@ -import { Serializable, serialize, validate } from "@js-soft/ts-serval"; +import { Serializable, serialize, type, validate } from "@js-soft/ts-serval"; +@type("TagList") export class TagList extends Serializable { @serialize({ type: String }) @validate() @@ -10,6 +11,7 @@ export class TagList extends Serializable { public tagsForAttributeValueTypes: Record>; } +@type("Tag") export class Tag extends Serializable { @serialize() @validate() From f0ce8349a13f558a5c4e87fc16b9faa359f2f9b7 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Mon, 25 Nov 2024 08:59:43 +0100 Subject: [PATCH 17/33] chore: fix tests --- packages/transport/test/modules/tags/TagsController.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/transport/test/modules/tags/TagsController.test.ts b/packages/transport/test/modules/tags/TagsController.test.ts index 6dd59a725..2143ea795 100644 --- a/packages/transport/test/modules/tags/TagsController.test.ts +++ b/packages/transport/test/modules/tags/TagsController.test.ts @@ -105,6 +105,6 @@ describe("TagsController", function () { }); const tags = await account.tags.getTags(); - expect(tags.toJSON()).toStrictEqual(mockTags); + expect(tags.toJSON()).toStrictEqualExcluding(mockTags, "@type"); }); }); From 3817210dd6454dd59433fc0ac512a7ec83abff5c Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Wed, 27 Nov 2024 11:32:43 +0100 Subject: [PATCH 18/33] chore: PR comments --- package-lock.json | 3 +- packages/runtime/package.json | 7 +- .../src/useCases/transport/tags/GetTags.ts | 4 +- packages/runtime/test/lib/RestClientMocker.ts | 20 ------ packages/runtime/test/transport/tags.test.ts | 72 +++++-------------- .../test/modules/tags/TagsController.test.ts | 70 +++++------------- .../test/testHelpers/RestClientMocker.ts | 20 ------ 7 files changed, 45 insertions(+), 151 deletions(-) delete mode 100644 packages/runtime/test/lib/RestClientMocker.ts delete mode 100644 packages/transport/test/testHelpers/RestClientMocker.ts diff --git a/package-lock.json b/package-lock.json index 322cb1b34..28e819344 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10098,7 +10098,8 @@ "@types/lodash": "^4.17.13", "@types/luxon": "^3.4.2", "@types/qrcode": "^1.5.5", - "ts-json-schema-generator": "2.3.0" + "ts-json-schema-generator": "2.3.0", + "ts-mockito": "^2.6.1" } }, "packages/runtime/node_modules/ajv": { diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 376cee3a2..9737ff10a 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -70,6 +70,7 @@ "@nmshd/crypto": "2.1.0", "@nmshd/iql": "^1.0.2", "@nmshd/transport": "*", + "@nmshd/typescript-ioc": "3.2.4", "ajv": "^8.17.1", "ajv-errors": "^3.0.0", "ajv-formats": "^3.0.1", @@ -78,8 +79,7 @@ "luxon": "^3.5.0", "qrcode": "1.5.4", "reflect-metadata": "^0.2.2", - "ts-simple-nameof": "^1.3.1", - "@nmshd/typescript-ioc": "3.2.4" + "ts-simple-nameof": "^1.3.1" }, "devDependencies": { "@js-soft/docdb-access-loki": "1.1.0", @@ -89,7 +89,8 @@ "@types/lodash": "^4.17.13", "@types/luxon": "^3.4.2", "@types/qrcode": "^1.5.5", - "ts-json-schema-generator": "2.3.0" + "ts-json-schema-generator": "2.3.0", + "ts-mockito": "^2.6.1" }, "publishConfig": { "access": "public", diff --git a/packages/runtime/src/useCases/transport/tags/GetTags.ts b/packages/runtime/src/useCases/transport/tags/GetTags.ts index 95b5f3815..e07d04d96 100644 --- a/packages/runtime/src/useCases/transport/tags/GetTags.ts +++ b/packages/runtime/src/useCases/transport/tags/GetTags.ts @@ -6,12 +6,12 @@ import { UseCase } from "../../common"; import { TagMapper } from "./TagMapper"; export class GetTagsUseCase extends UseCase { - public constructor(@Inject private readonly tagController: TagsController) { + public constructor(@Inject private readonly tagsController: TagsController) { super(); } protected async executeInternal(): Promise> { - const tagList = await this.tagController.getTags(); + const tagList = await this.tagsController.getTags(); return Result.ok(TagMapper.toTagListDTO(tagList)); } } diff --git a/packages/runtime/test/lib/RestClientMocker.ts b/packages/runtime/test/lib/RestClientMocker.ts deleted file mode 100644 index 8540cb115..000000000 --- a/packages/runtime/test/lib/RestClientMocker.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ClientResult, RESTClient } from "@nmshd/transport"; - -export class RestClientMocker { - private readonly mockedMethods: { fnName: keyof T; originalProperty: any }[] = []; - public constructor(private client: T) {} - public mockMethod(fnName: keyof T, callback: () => ClientResult): void { - this.mockedMethods.push({ fnName, originalProperty: this.client[fnName] }); - - const mockFn = jest.fn().mockImplementation(() => { - return Promise.resolve(callback()); - }); - this.client[fnName] = mockFn.bind(this.client); - } - - public restore(): void { - for (const { fnName, originalProperty } of this.mockedMethods) { - this.client[fnName] = originalProperty; - } - } -} diff --git a/packages/runtime/test/transport/tags.test.ts b/packages/runtime/test/transport/tags.test.ts index a5d351af5..1297fc85b 100644 --- a/packages/runtime/test/transport/tags.test.ts +++ b/packages/runtime/test/transport/tags.test.ts @@ -1,22 +1,22 @@ import { ClientResult, TagClient } from "@nmshd/transport"; +import { reset, spy, when } from "ts-mockito"; import { RuntimeServiceProvider, TestRuntimeServices } from "../lib"; -import { RestClientMocker } from "../lib/RestClientMocker"; const serviceProvider = new RuntimeServiceProvider(); let runtimeService: TestRuntimeServices; -let clientMocker: RestClientMocker; +let mockedRestClient: TagClient; beforeAll(async () => { runtimeService = (await serviceProvider.launch(1))[0]; - const client = (runtimeService.transport.tags as any).getTagsUseCase.tagController.client as TagClient; - clientMocker = new RestClientMocker(client); + const client = runtimeService.transport.tags["getTagsUseCase"]["tagController"]["client"] as TagClient; + mockedRestClient = spy(client); }, 30000); afterAll(() => serviceProvider.stop()); afterEach(() => { - clientMocker.restore(); + reset(mockedRestClient); }); describe("Tags", function () { @@ -24,63 +24,31 @@ describe("Tags", function () { const mockTags = { supportedLanguages: ["de", "en"], tagsForAttributeValueTypes: { - IdentityFileReference: { - schulabschluss: { + PhoneNumber: { + emergency: { displayNames: { - de: "Abschluss", - en: "Degree" + de: "Notfallkontakt", + en: "Emergency Contact" }, children: { - realschule: { + first: { displayNames: { - de: "Realschule", - en: "Secondary School" - }, - children: { - zeugnis: { - displayNames: { - de: "Zeugnis", - en: "Diploma" - } - } + de: "Erster Notfallkontakt", + en: "First Emergency Contact" } }, - gymnasium: { + second: { displayNames: { - de: "Gymnasium", - en: "High School" - }, - children: { - zeugnis: { - displayNames: { - de: "Zeugnis", - en: "Diploma" - } - } + de: "Zweiter Notfallkontakt", + en: "Second Emergency Contact" } } } - } - }, - PhoneNumber: { - notfall: { - displayNames: { - de: "Notfallkontakt", - en: "Emergency Contact" - } - } - }, - StreetAddress: { - lieferung: { - displayNames: { - de: "Lieferadresse", - en: "Deliver Address" - } }, - heimat: { + private: { displayNames: { - de: "Heimatadresse", - en: "Home Address" + de: "Privat", + en: "Private" } } } @@ -89,9 +57,7 @@ describe("Tags", function () { /* eslint-enable @typescript-eslint/naming-convention */ test("should receive the legal tags from the Backbone", async function () { - clientMocker.mockMethod("getTags", () => { - return ClientResult.ok(mockTags); - }); + when(mockedRestClient.getTags()).thenResolve(ClientResult.ok(mockTags)); const tags = await runtimeService.transport.tags.getTags(); expect(tags.value).toStrictEqual(mockTags); diff --git a/packages/transport/test/modules/tags/TagsController.test.ts b/packages/transport/test/modules/tags/TagsController.test.ts index 2143ea795..9047bc790 100644 --- a/packages/transport/test/modules/tags/TagsController.test.ts +++ b/packages/transport/test/modules/tags/TagsController.test.ts @@ -1,6 +1,6 @@ import { IDatabaseConnection } from "@js-soft/docdb-access-abstractions"; +import { spy, when } from "ts-mockito"; import { AccountController, ClientResult, TagClient, Transport } from "../../../src"; -import { RestClientMocker } from "../../testHelpers/RestClientMocker"; import { TestUtil } from "../../testHelpers/TestUtil"; describe("TagsController", function () { @@ -10,69 +10,37 @@ describe("TagsController", function () { let account: AccountController; - let clientMocker: RestClientMocker; + let mockedClient: TagClient; /* eslint-disable @typescript-eslint/naming-convention */ const mockTags = { supportedLanguages: ["de", "en"], tagsForAttributeValueTypes: { - IdentityFileReference: { - schulabschluss: { + PhoneNumber: { + emergency: { displayNames: { - de: "Abschluss", - en: "Degree" + de: "Notfallkontakt", + en: "Emergency Contact" }, children: { - realschule: { + first: { displayNames: { - de: "Realschule", - en: "Secondary School" - }, - children: { - zeugnis: { - displayNames: { - de: "Zeugnis", - en: "Diploma" - } - } + de: "Erster Notfallkontakt", + en: "First Emergency Contact" } }, - gymnasium: { + second: { displayNames: { - de: "Gymnasium", - en: "High School" - }, - children: { - zeugnis: { - displayNames: { - de: "Zeugnis", - en: "Diploma" - } - } + de: "Zweiter Notfallkontakt", + en: "Second Emergency Contact" } } } - } - }, - PhoneNumber: { - notfall: { - displayNames: { - de: "Notfallkontakt", - en: "Emergency Contact" - } - } - }, - StreetAddress: { - lieferung: { - displayNames: { - de: "Lieferadresse", - en: "Deliver Address" - } }, - heimat: { + private: { displayNames: { - de: "Heimatadresse", - en: "Home Address" + de: "Privat", + en: "Private" } } } @@ -89,8 +57,8 @@ describe("TagsController", function () { const accounts = await TestUtil.provideAccounts(transport, 1); account = accounts[0]; - const client = (account.tags as any).client as TagClient; - clientMocker = new RestClientMocker(client); + const client = account.tags["client"]; + mockedClient = spy(client); }); afterAll(async function () { @@ -100,9 +68,7 @@ describe("TagsController", function () { }); test("should receive the legal tags from the Backbone", async function () { - clientMocker.mockMethod("getTags", () => { - return ClientResult.ok(mockTags); - }); + when(mockedClient.getTags()).thenResolve(ClientResult.ok(mockTags)); const tags = await account.tags.getTags(); expect(tags.toJSON()).toStrictEqualExcluding(mockTags, "@type"); diff --git a/packages/transport/test/testHelpers/RestClientMocker.ts b/packages/transport/test/testHelpers/RestClientMocker.ts deleted file mode 100644 index 7e540336c..000000000 --- a/packages/transport/test/testHelpers/RestClientMocker.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ClientResult, RESTClient } from "../../src"; - -export class RestClientMocker { - private readonly mockedMethods: { fnName: keyof T; originalProperty: any }[] = []; - public constructor(private client: T) {} - public mockMethod(fnName: keyof T, callback: () => ClientResult): void { - this.mockedMethods.push({ fnName, originalProperty: this.client[fnName] }); - - const mockFn = jest.fn().mockImplementation(() => { - return Promise.resolve(callback()); - }); - this.client[fnName] = mockFn.bind(this.client); - } - - public restore(): void { - for (const { fnName, originalProperty } of this.mockedMethods) { - this.client[fnName] = originalProperty; - } - } -} From 926a5b5a2297607986c85c184e47b73ba385076b Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Wed, 27 Nov 2024 11:33:45 +0100 Subject: [PATCH 19/33] chore: fix tests --- packages/runtime/test/transport/tags.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/runtime/test/transport/tags.test.ts b/packages/runtime/test/transport/tags.test.ts index 1297fc85b..98acc51a4 100644 --- a/packages/runtime/test/transport/tags.test.ts +++ b/packages/runtime/test/transport/tags.test.ts @@ -9,7 +9,7 @@ let mockedRestClient: TagClient; beforeAll(async () => { runtimeService = (await serviceProvider.launch(1))[0]; - const client = runtimeService.transport.tags["getTagsUseCase"]["tagController"]["client"] as TagClient; + const client = runtimeService.transport.tags["getTagsUseCase"]["tagsController"]["client"] as TagClient; mockedRestClient = spy(client); }, 30000); From d8f5f7050d42db473d8d4017447a4a96ecf79ee6 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 3 Dec 2024 15:05:27 +0100 Subject: [PATCH 20/33] chore: move tags to consumptiong --- .../attributes/AttributesController.ts | 10 +++- .../src/modules/attributes/index.ts | 1 + .../local/AttributeTagCollection.ts} | 12 ++--- packages/consumption/test/customMatchers.ts | 48 +++++++++++++++++++ .../AttributeTagCollection.test.ts} | 20 ++++---- packages/runtime/src/Runtime.ts | 5 -- .../src/extensibility/TransportServices.ts | 2 - .../facades/consumption/AttributesFacade.ts | 10 +++- .../facades/transport/TagsFacade.ts | 12 ----- .../extensibility/facades/transport/index.ts | 1 - .../runtime/src/types/consumption/TagDTO.ts | 9 ++++ .../runtime/src/types/consumption/index.ts | 1 + .../runtime/src/types/transport/TagDTO.ts | 9 ---- packages/runtime/src/types/transport/index.ts | 1 - .../consumption/attributes/AttributeMapper.ts | 39 ++++++++++++++- .../attributes/GetAttributeTagCollection.ts | 17 +++++++ .../useCases/consumption/attributes/index.ts | 1 + .../runtime/src/useCases/transport/index.ts | 1 - .../src/useCases/transport/tags/GetTags.ts | 17 ------- .../src/useCases/transport/tags/TagMapper.ts | 39 --------------- .../src/useCases/transport/tags/index.ts | 1 - .../attributeTagCollection.test.ts} | 6 +-- .../src/modules/accounts/AccountController.ts | 3 -- packages/transport/src/modules/index.ts | 2 - .../src/modules/tags/TagsController.ts | 25 ---------- .../modules/tags/backbone/BackboneGetTag.ts | 2 +- .../src/modules/tags/backbone/TagClient.ts | 6 +-- 27 files changed, 155 insertions(+), 145 deletions(-) rename packages/{transport/src/modules/tags/data/TagList.ts => consumption/src/modules/attributes/local/AttributeTagCollection.ts} (63%) rename packages/{transport/test/modules/tags/TagsController.test.ts => consumption/test/modules/attributes/AttributeTagCollection.test.ts} (77%) delete mode 100644 packages/runtime/src/extensibility/facades/transport/TagsFacade.ts create mode 100644 packages/runtime/src/types/consumption/TagDTO.ts delete mode 100644 packages/runtime/src/types/transport/TagDTO.ts create mode 100644 packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts delete mode 100644 packages/runtime/src/useCases/transport/tags/GetTags.ts delete mode 100644 packages/runtime/src/useCases/transport/tags/TagMapper.ts delete mode 100644 packages/runtime/src/useCases/transport/tags/index.ts rename packages/runtime/test/{transport/tags.test.ts => consumption/attributeTagCollection.test.ts} (87%) delete mode 100644 packages/transport/src/modules/tags/TagsController.ts diff --git a/packages/consumption/src/modules/attributes/AttributesController.ts b/packages/consumption/src/modules/attributes/AttributesController.ts index a97c7fb6e..ce77dbeae 100644 --- a/packages/consumption/src/modules/attributes/AttributesController.ts +++ b/packages/consumption/src/modules/attributes/AttributesController.ts @@ -16,7 +16,7 @@ import { } from "@nmshd/content"; import { CoreAddress, CoreDate, CoreId, ICoreDate, ICoreId } from "@nmshd/core-types"; import * as iql from "@nmshd/iql"; -import { SynchronizedCollection, TransportCoreErrors } from "@nmshd/transport"; +import { SynchronizedCollection, TagClient, TransportCoreErrors } from "@nmshd/transport"; import _ from "lodash"; import { nameof } from "ts-simple-nameof"; import { ConsumptionBaseController } from "../../consumption/ConsumptionBaseController"; @@ -35,6 +35,7 @@ import { ThirdPartyRelationshipAttributeSucceededEvent } from "./events"; import { AttributeSuccessorParams, AttributeSuccessorParamsJSON, IAttributeSuccessorParams } from "./local/AttributeSuccessorParams"; +import { AttributeTagCollection } from "./local/AttributeTagCollection"; import { CreateRepositoryAttributeParams, ICreateRepositoryAttributeParams } from "./local/CreateRepositoryAttributeParams"; import { CreateSharedLocalAttributeCopyParams, ICreateSharedLocalAttributeCopyParams } from "./local/CreateSharedLocalAttributeCopyParams"; import { ICreateSharedLocalAttributeParams } from "./local/CreateSharedLocalAttributeParams"; @@ -45,6 +46,7 @@ import { IdentityAttributeQueryTranslator, RelationshipAttributeQueryTranslator, export class AttributesController extends ConsumptionBaseController { private attributes: SynchronizedCollection; + private tagsClient: TagClient; public constructor( parent: ConsumptionController, @@ -59,6 +61,7 @@ export class AttributesController extends ConsumptionBaseController { await super.init(); this.attributes = await this.parent.accountController.getSynchronizedCollection("Attributes"); + this.tagsClient = new TagClient(this.parent.transport.config, this.parent.accountController.authenticator, this.parent.transport.correlator); return this; } @@ -1290,4 +1293,9 @@ export class AttributesController extends ConsumptionBaseController { return ownSharedAttributeSuccessors; } + + public async getAttributeTagCollection(): Promise { + const backboneTagList = (await this.tagsClient.getTags()).value; + return AttributeTagCollection.fromAny(backboneTagList); + } } diff --git a/packages/consumption/src/modules/attributes/index.ts b/packages/consumption/src/modules/attributes/index.ts index dc83fa843..e5332f173 100644 --- a/packages/consumption/src/modules/attributes/index.ts +++ b/packages/consumption/src/modules/attributes/index.ts @@ -1,6 +1,7 @@ export * from "./AttributesController"; export * from "./events"; export * from "./local/AttributeSuccessorParams"; +export * from "./local/AttributeTagCollection"; export * from "./local/CreateRepositoryAttributeParams"; export * from "./local/CreateSharedLocalAttributeCopyParams"; export * from "./local/CreateSharedLocalAttributeParams"; diff --git a/packages/transport/src/modules/tags/data/TagList.ts b/packages/consumption/src/modules/attributes/local/AttributeTagCollection.ts similarity index 63% rename from packages/transport/src/modules/tags/data/TagList.ts rename to packages/consumption/src/modules/attributes/local/AttributeTagCollection.ts index 32d072b6b..dfae67dd6 100644 --- a/packages/transport/src/modules/tags/data/TagList.ts +++ b/packages/consumption/src/modules/attributes/local/AttributeTagCollection.ts @@ -1,23 +1,23 @@ import { Serializable, serialize, type, validate } from "@js-soft/ts-serval"; -@type("TagList") -export class TagList extends Serializable { +@type("AttributeTagCollection") +export class AttributeTagCollection extends Serializable { @serialize({ type: String }) @validate() public supportedLanguages: string[]; @serialize() @validate() - public tagsForAttributeValueTypes: Record>; + public tagsForAttributeValueTypes: Record>; } -@type("Tag") -export class Tag extends Serializable { +@type("AttributeTag") +export class AttributeTag extends Serializable { @serialize() @validate() public displayNames: Record; @serialize() @validate({ nullable: true }) - public children?: Record; + public children?: Record; } diff --git a/packages/consumption/test/customMatchers.ts b/packages/consumption/test/customMatchers.ts index da38e13e5..7e8f61b75 100644 --- a/packages/consumption/test/customMatchers.ts +++ b/packages/consumption/test/customMatchers.ts @@ -1,4 +1,6 @@ +import { SerializableBase } from "@js-soft/ts-serval"; import { ErrorValidationResult, SuccessfulValidationResult, ValidationResult } from "../src"; +import { set } from "lodash"; expect.extend({ successfulValidationResult(actual: ValidationResult) { @@ -38,6 +40,51 @@ expect.extend({ } return { pass: true, message: () => "" }; + }, + + toStrictEqualExcluding(received: unknown, expected: unknown, ...excludes: string[]) { + if (received instanceof SerializableBase) { + received = received.toJSON(); + } + if (expected instanceof SerializableBase) { + expected = expected.toJSON(); + } + + const receivedClone = JSON.parse(JSON.stringify(received)); + const expectedClone = JSON.parse(JSON.stringify(expected)); + + excludes.forEach((exclud) => { + set(receivedClone, exclud, undefined); + set(expectedClone, exclud, undefined); + }); + + const matcherName = "toStrictEqual"; + const options = { + comment: "deep equality", + isNot: this.isNot, + promise: this.promise + }; + + const pass = this.equals(receivedClone, expectedClone, undefined, true); + + let message: string; + if (pass) { + message = + `${this.utils.matcherHint(matcherName, undefined, undefined, options)}\n\n` + + `Expected: not ${this.utils.printExpected(expectedClone)}\n${ + this.utils.stringify(expectedClone) === this.utils.stringify(receivedClone) ? "" : `Received: ${this.utils.printReceived(receivedClone)}` + }`; + } else { + message = `${this.utils.matcherHint(matcherName, undefined, undefined, options)}\n\n${this.utils.printDiffOrStringify( + expectedClone, + receivedClone, + "Expected", + "Received", + this.expand ?? true + )}`; + } + + return { message: () => message, pass }; } }); @@ -46,6 +93,7 @@ declare global { interface Matchers { successfulValidationResult(): R; errorValidationResult(error?: { code?: string; message?: string | RegExp }): R; + toStrictEqualExcluding(expected: unknown, ...ignoreProperties: string[]): R; } } } diff --git a/packages/transport/test/modules/tags/TagsController.test.ts b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts similarity index 77% rename from packages/transport/test/modules/tags/TagsController.test.ts rename to packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts index 9047bc790..7d0103464 100644 --- a/packages/transport/test/modules/tags/TagsController.test.ts +++ b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts @@ -1,14 +1,16 @@ import { IDatabaseConnection } from "@js-soft/docdb-access-abstractions"; +import { AccountController, ClientResult, TagClient, Transport } from "@nmshd/transport"; import { spy, when } from "ts-mockito"; -import { AccountController, ClientResult, TagClient, Transport } from "../../../src"; -import { TestUtil } from "../../testHelpers/TestUtil"; +import { ConsumptionController } from "../../../src"; +import { TestUtil } from "../../core/TestUtil"; -describe("TagsController", function () { +describe("AttributeTagCollection", function () { let connection: IDatabaseConnection; let transport: Transport; - let account: AccountController; + let consumptionController: ConsumptionController; + let accountController: AccountController; let mockedClient: TagClient; @@ -49,27 +51,27 @@ describe("TagsController", function () { /* eslint-enable @typescript-eslint/naming-convention */ beforeAll(async function () { - connection = await TestUtil.createDatabaseConnection(); + connection = await TestUtil.createConnection(); transport = TestUtil.createTransport(connection); await transport.init(); const accounts = await TestUtil.provideAccounts(transport, 1); - account = accounts[0]; + ({ consumptionController, accountController } = accounts[0]); - const client = account.tags["client"]; + const client = consumptionController.attributes["tagsClient"]; mockedClient = spy(client); }); afterAll(async function () { - await account.close(); + await accountController.close(); await connection.close(); }); test("should receive the legal tags from the Backbone", async function () { when(mockedClient.getTags()).thenResolve(ClientResult.ok(mockTags)); - const tags = await account.tags.getTags(); + const tags = await consumptionController.attributes.getAttributeTagCollection(); expect(tags.toJSON()).toStrictEqualExcluding(mockTags, "@type"); }); diff --git a/packages/runtime/src/Runtime.ts b/packages/runtime/src/Runtime.ts index 6474832cd..4ebfe50fa 100644 --- a/packages/runtime/src/Runtime.ts +++ b/packages/runtime/src/Runtime.ts @@ -28,7 +28,6 @@ import { PublicRelationshipTemplateReferencesController, RelationshipsController, RelationshipTemplateController, - TagsController, TokenController, Transport } from "@nmshd/transport"; @@ -260,10 +259,6 @@ export abstract class Runtime { .factory(() => this.getAccountController().tokens) .scope(Scope.Request); - Container.bind(TagsController) - .factory(() => this.getAccountController().tags) - .scope(Scope.Request); - Container.bind(PublicRelationshipTemplateReferencesController) .factory(() => this.getAccountController().publicRelationshipTemplateReferences) .scope(Scope.Request); diff --git a/packages/runtime/src/extensibility/TransportServices.ts b/packages/runtime/src/extensibility/TransportServices.ts index 7853125bb..5445b3097 100644 --- a/packages/runtime/src/extensibility/TransportServices.ts +++ b/packages/runtime/src/extensibility/TransportServices.ts @@ -9,7 +9,6 @@ import { PublicRelationshipTemplateReferencesFacade, RelationshipsFacade, RelationshipTemplatesFacade, - TagsFacade, TokensFacade } from "./facades/transport"; @@ -24,7 +23,6 @@ export class TransportServices { @Inject public readonly publicRelationshipTemplateReferences: PublicRelationshipTemplateReferencesFacade, @Inject public readonly relationships: RelationshipsFacade, @Inject public readonly relationshipTemplates: RelationshipTemplatesFacade, - @Inject public readonly tags: TagsFacade, @Inject public readonly tokens: TokensFacade ) {} } diff --git a/packages/runtime/src/extensibility/facades/consumption/AttributesFacade.ts b/packages/runtime/src/extensibility/facades/consumption/AttributesFacade.ts index ef3a92d4e..91e166a35 100644 --- a/packages/runtime/src/extensibility/facades/consumption/AttributesFacade.ts +++ b/packages/runtime/src/extensibility/facades/consumption/AttributesFacade.ts @@ -1,6 +1,6 @@ import { Result } from "@js-soft/ts-utils"; import { Inject } from "@nmshd/typescript-ioc"; -import { LocalAttributeDTO, LocalRequestDTO } from "../../../types"; +import { AttributeTagCollectionDTO, LocalAttributeDTO, LocalRequestDTO } from "../../../types"; import { ChangeDefaultRepositoryAttributeRequest, ChangeDefaultRepositoryAttributeUseCase, @@ -30,6 +30,7 @@ import { ExecuteThirdPartyRelationshipAttributeQueryRequest, ExecuteThirdPartyRelationshipAttributeQueryUseCase, GetAttributeRequest, + GetAttributeTagCollectionUseCase, GetAttributeUseCase, GetAttributesRequest, GetAttributesUseCase, @@ -84,7 +85,8 @@ export class AttributesFacade { @Inject private readonly deletePeerSharedAttributeAndNotifyOwnerUseCase: DeletePeerSharedAttributeAndNotifyOwnerUseCase, @Inject private readonly deleteThirdPartyRelationshipAttributeAndNotifyPeerUseCase: DeleteThirdPartyRelationshipAttributeAndNotifyPeerUseCase, @Inject private readonly deleteRepositoryAttributeUseCase: DeleteRepositoryAttributeUseCase, - @Inject private readonly deleteSharedAttributesForRejectedOrRevokedRelationshipUseCase: DeleteSharedAttributesForRejectedOrRevokedRelationshipUseCase + @Inject private readonly deleteSharedAttributesForRejectedOrRevokedRelationshipUseCase: DeleteSharedAttributesForRejectedOrRevokedRelationshipUseCase, + @Inject private readonly getAttributeTagCollectionUseCase: GetAttributeTagCollectionUseCase ) {} public async createRepositoryAttribute(request: CreateRepositoryAttributeRequest): Promise> { @@ -199,4 +201,8 @@ export class AttributesFacade { public async deleteSharedAttributesForRejectedOrRevokedRelationship(request: DeleteSharedAttributesForRejectedOrRevokedRelationshipRequest): Promise> { return await this.deleteSharedAttributesForRejectedOrRevokedRelationshipUseCase.execute(request); } + + public async getAttributeTagCollection(): Promise> { + return await this.getAttributeTagCollectionUseCase.execute(); + } } diff --git a/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts b/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts deleted file mode 100644 index eec8ec272..000000000 --- a/packages/runtime/src/extensibility/facades/transport/TagsFacade.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Result } from "@js-soft/ts-utils"; -import { Inject } from "@nmshd/typescript-ioc"; -import { TagListDTO } from "../../../types"; -import { GetTagsUseCase } from "../../../useCases"; - -export class TagsFacade { - public constructor(@Inject private readonly getTagsUseCase: GetTagsUseCase) {} - - public async getTags(): Promise> { - return await this.getTagsUseCase.execute(); - } -} diff --git a/packages/runtime/src/extensibility/facades/transport/index.ts b/packages/runtime/src/extensibility/facades/transport/index.ts index b12519406..2f313be75 100644 --- a/packages/runtime/src/extensibility/facades/transport/index.ts +++ b/packages/runtime/src/extensibility/facades/transport/index.ts @@ -7,5 +7,4 @@ export * from "./MessagesFacade"; export * from "./PublicRelationshipTemplateReferencesFacade"; export * from "./RelationshipsFacade"; export * from "./RelationshipTemplatesFacade"; -export * from "./TagsFacade"; export * from "./TokensFacade"; diff --git a/packages/runtime/src/types/consumption/TagDTO.ts b/packages/runtime/src/types/consumption/TagDTO.ts new file mode 100644 index 000000000..734aed106 --- /dev/null +++ b/packages/runtime/src/types/consumption/TagDTO.ts @@ -0,0 +1,9 @@ +export interface AttributeTagCollectionDTO { + supportedLanguages: string[]; + tagsForAttributeValueTypes: Record>; +} + +export interface AttributeTagDTO { + displayNames: Record; + children?: Record; +} diff --git a/packages/runtime/src/types/consumption/index.ts b/packages/runtime/src/types/consumption/index.ts index 1847dd25d..fcf81fe24 100644 --- a/packages/runtime/src/types/consumption/index.ts +++ b/packages/runtime/src/types/consumption/index.ts @@ -6,3 +6,4 @@ export * from "./LocalNotificationDTO"; export * from "./LocalRequestDTO"; export * from "./RequestValidationResultDTO"; export * from "./SettingDTO"; +export * from "./TagDTO"; diff --git a/packages/runtime/src/types/transport/TagDTO.ts b/packages/runtime/src/types/transport/TagDTO.ts deleted file mode 100644 index fa7abb69c..000000000 --- a/packages/runtime/src/types/transport/TagDTO.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface TagListDTO { - supportedLanguages: string[]; - tagsForAttributeValueTypes: Record>; -} - -export interface TagDTO { - displayNames: Record; - children?: Record; -} diff --git a/packages/runtime/src/types/transport/index.ts b/packages/runtime/src/types/transport/index.ts index bab4f57b1..c0e6f8064 100644 --- a/packages/runtime/src/types/transport/index.ts +++ b/packages/runtime/src/types/transport/index.ts @@ -10,5 +10,4 @@ export * from "./PublicRelationshipTemplateReferenceDTO"; export * from "./RecipientDTO"; export * from "./RelationshipDTO"; export * from "./RelationshipTemplateDTO"; -export * from "./TagDTO"; export * from "./TokenDTO"; diff --git a/packages/runtime/src/useCases/consumption/attributes/AttributeMapper.ts b/packages/runtime/src/useCases/consumption/attributes/AttributeMapper.ts index bef4a1c3d..e1d350d16 100644 --- a/packages/runtime/src/useCases/consumption/attributes/AttributeMapper.ts +++ b/packages/runtime/src/useCases/consumption/attributes/AttributeMapper.ts @@ -1,5 +1,5 @@ -import { LocalAttribute, LocalAttributeDeletionInfoJSON, LocalAttributeShareInfoJSON } from "@nmshd/consumption"; -import { LocalAttributeDTO } from "../../../types"; +import { AttributeTag, AttributeTagCollection, LocalAttribute, LocalAttributeDeletionInfoJSON, LocalAttributeShareInfoJSON } from "@nmshd/consumption"; +import { AttributeTagCollectionDTO, AttributeTagDTO, LocalAttributeDTO } from "../../../types"; export class AttributeMapper { public static toAttributeDTO(attribute: LocalAttribute): LocalAttributeDTO { @@ -19,4 +19,39 @@ export class AttributeMapper { public static toAttributeDTOList(attributes: LocalAttribute[]): LocalAttributeDTO[] { return attributes.map((attribute) => this.toAttributeDTO(attribute)); } + + public static toAttributeTagCollectionDTO(tagList: AttributeTagCollection): AttributeTagCollectionDTO { + return { + supportedLanguages: tagList.supportedLanguages, + tagsForAttributeValueTypes: Object.entries(tagList.tagsForAttributeValueTypes).reduce( + (acc, [key, value]) => { + acc[key] = Object.entries(value).reduce( + (acc2, [key2, value2]) => { + acc2[key2] = AttributeMapper.toAttributeTagDTO(value2); + return acc2; + }, + {} as Record + ); + return acc; + }, + {} as Record> + ) + }; + } + + public static toAttributeTagDTO(tagListDTO: AttributeTag): AttributeTagDTO { + const tagDTO: AttributeTagDTO = { + displayNames: tagListDTO.displayNames + }; + if (tagListDTO.children) { + tagDTO.children = Object.entries(tagListDTO.children).reduce( + (acc, [key, value]) => { + acc[key] = AttributeMapper.toAttributeTagDTO(value); + return acc; + }, + {} as Record + ); + } + return tagDTO; + } } diff --git a/packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts b/packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts new file mode 100644 index 000000000..12d25753f --- /dev/null +++ b/packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts @@ -0,0 +1,17 @@ +import { Result } from "@js-soft/ts-utils"; +import { AttributesController } from "@nmshd/consumption"; +import { Inject } from "@nmshd/typescript-ioc"; +import { AttributeTagCollectionDTO } from "../../../types"; +import { UseCase } from "../../common"; +import { AttributeMapper } from "./AttributeMapper"; + +export class GetAttributeTagCollectionUseCase extends UseCase { + public constructor(@Inject private readonly attributesController: AttributesController) { + super(); + } + + protected async executeInternal(): Promise> { + const tagList = await this.attributesController.getAttributeTagCollection(); + return Result.ok(AttributeMapper.toAttributeTagCollectionDTO(tagList)); + } +} diff --git a/packages/runtime/src/useCases/consumption/attributes/index.ts b/packages/runtime/src/useCases/consumption/attributes/index.ts index 2c86ebc51..3bc18e249 100644 --- a/packages/runtime/src/useCases/consumption/attributes/index.ts +++ b/packages/runtime/src/useCases/consumption/attributes/index.ts @@ -13,6 +13,7 @@ export * from "./ExecuteRelationshipAttributeQuery"; export * from "./ExecuteThirdPartyRelationshipAttributeQuery"; export * from "./GetAttribute"; export * from "./GetAttributes"; +export * from "./GetAttributeTagCollection"; export * from "./GetOwnSharedAttributes"; export * from "./GetPeerSharedAttributes"; export * from "./GetRepositoryAttributes"; diff --git a/packages/runtime/src/useCases/transport/index.ts b/packages/runtime/src/useCases/transport/index.ts index 85cb285d4..51425e014 100644 --- a/packages/runtime/src/useCases/transport/index.ts +++ b/packages/runtime/src/useCases/transport/index.ts @@ -7,5 +7,4 @@ export * from "./messages"; export * from "./publicRelationshipTemplateReferences"; export * from "./relationships"; export * from "./relationshipTemplates"; -export * from "./tags"; export * from "./tokens"; diff --git a/packages/runtime/src/useCases/transport/tags/GetTags.ts b/packages/runtime/src/useCases/transport/tags/GetTags.ts deleted file mode 100644 index e07d04d96..000000000 --- a/packages/runtime/src/useCases/transport/tags/GetTags.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Result } from "@js-soft/ts-utils"; -import { TagsController } from "@nmshd/transport"; -import { Inject } from "@nmshd/typescript-ioc"; -import { TagListDTO } from "../../../types/transport/TagDTO"; -import { UseCase } from "../../common"; -import { TagMapper } from "./TagMapper"; - -export class GetTagsUseCase extends UseCase { - public constructor(@Inject private readonly tagsController: TagsController) { - super(); - } - - protected async executeInternal(): Promise> { - const tagList = await this.tagsController.getTags(); - return Result.ok(TagMapper.toTagListDTO(tagList)); - } -} diff --git a/packages/runtime/src/useCases/transport/tags/TagMapper.ts b/packages/runtime/src/useCases/transport/tags/TagMapper.ts deleted file mode 100644 index 0ea89bcc3..000000000 --- a/packages/runtime/src/useCases/transport/tags/TagMapper.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Tag, TagList } from "@nmshd/transport"; -import { TagDTO, TagListDTO } from "../../../types"; - -export class TagMapper { - public static toTagListDTO(tagList: TagList): TagListDTO { - return { - supportedLanguages: tagList.supportedLanguages, - tagsForAttributeValueTypes: Object.entries(tagList.tagsForAttributeValueTypes).reduce( - (acc, [key, value]) => { - acc[key] = Object.entries(value).reduce( - (acc2, [key2, value2]) => { - acc2[key2] = TagMapper.toTagDTO(value2); - return acc2; - }, - {} as Record - ); - return acc; - }, - {} as Record> - ) - }; - } - - public static toTagDTO(tagListDTO: Tag): TagDTO { - const tagDTO: TagDTO = { - displayNames: tagListDTO.displayNames - }; - if (tagListDTO.children) { - tagDTO.children = Object.entries(tagListDTO.children).reduce( - (acc, [key, value]) => { - acc[key] = TagMapper.toTagDTO(value); - return acc; - }, - {} as Record - ); - } - return tagDTO; - } -} diff --git a/packages/runtime/src/useCases/transport/tags/index.ts b/packages/runtime/src/useCases/transport/tags/index.ts deleted file mode 100644 index 02a7c3733..000000000 --- a/packages/runtime/src/useCases/transport/tags/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./GetTags"; diff --git a/packages/runtime/test/transport/tags.test.ts b/packages/runtime/test/consumption/attributeTagCollection.test.ts similarity index 87% rename from packages/runtime/test/transport/tags.test.ts rename to packages/runtime/test/consumption/attributeTagCollection.test.ts index 98acc51a4..cb922895e 100644 --- a/packages/runtime/test/transport/tags.test.ts +++ b/packages/runtime/test/consumption/attributeTagCollection.test.ts @@ -9,7 +9,7 @@ let mockedRestClient: TagClient; beforeAll(async () => { runtimeService = (await serviceProvider.launch(1))[0]; - const client = runtimeService.transport.tags["getTagsUseCase"]["tagsController"]["client"] as TagClient; + const client = runtimeService.consumption.attributes["getAttributeTagCollectionUseCase"]["attributesController"]["tagsClient"] as TagClient; mockedRestClient = spy(client); }, 30000); @@ -19,7 +19,7 @@ afterEach(() => { reset(mockedRestClient); }); -describe("Tags", function () { +describe("get attributeTagCollection", function () { /* eslint-disable @typescript-eslint/naming-convention */ const mockTags = { supportedLanguages: ["de", "en"], @@ -58,7 +58,7 @@ describe("Tags", function () { test("should receive the legal tags from the Backbone", async function () { when(mockedRestClient.getTags()).thenResolve(ClientResult.ok(mockTags)); - const tags = await runtimeService.transport.tags.getTags(); + const tags = await runtimeService.consumption.attributes.getAttributeTagCollection(); expect(tags.value).toStrictEqual(mockTags); }); diff --git a/packages/transport/src/modules/accounts/AccountController.ts b/packages/transport/src/modules/accounts/AccountController.ts index b935d93ac..96e761ea4 100644 --- a/packages/transport/src/modules/accounts/AccountController.ts +++ b/packages/transport/src/modules/accounts/AccountController.ts @@ -32,7 +32,6 @@ import { SecretController } from "../secrets/SecretController"; import { ChangedItems } from "../sync/ChangedItems"; import { SyncController } from "../sync/SyncController"; import { SynchronizedCollection } from "../sync/SynchronizedCollection"; -import { TagsController } from "../tags/TagsController"; import { TokenController } from "../tokens/TokenController"; import { IdentityController } from "./IdentityController"; import { IdentityDeletionProcessController } from "./IdentityDeletionProcessController"; @@ -66,7 +65,6 @@ export class AccountController { public relationshipTemplates: RelationshipTemplateController; private synchronization: SyncController; public tokens: TokenController; - public tags: TagsController; private relationshipSecrets: RelationshipSecretController; private readonly _log: ILogger; @@ -217,7 +215,6 @@ export class AccountController { this.relationshipTemplates = await new RelationshipTemplateController(this, this.relationshipSecrets).init(); this.messages = await new MessageController(this).init(); this.tokens = await new TokenController(this).init(); - this.tags = await new TagsController(this).init(); this.publicRelationshipTemplateReferences = await new PublicRelationshipTemplateReferencesController(this).init(); this.synchronization = await new SyncController(this, this.dependencyOverrides, this.unpushedDatawalletModifications, this.config.datawalletEnabled).init(); diff --git a/packages/transport/src/modules/index.ts b/packages/transport/src/modules/index.ts index 570f3c520..7840742e0 100644 --- a/packages/transport/src/modules/index.ts +++ b/packages/transport/src/modules/index.ts @@ -117,8 +117,6 @@ export * from "./sync/SyncController"; export * from "./sync/SynchronizedCollection"; export * from "./tags/backbone/BackboneGetTag"; export * from "./tags/backbone/TagClient"; -export * from "./tags/data/TagList"; -export * from "./tags/TagsController"; export * from "./tokens/AnonymousTokenController"; export * from "./tokens/backbone/BackboneGetTokens"; export * from "./tokens/backbone/BackbonePostTokens"; diff --git a/packages/transport/src/modules/tags/TagsController.ts b/packages/transport/src/modules/tags/TagsController.ts deleted file mode 100644 index dd00a555e..000000000 --- a/packages/transport/src/modules/tags/TagsController.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ControllerName, TransportController } from "../../core/TransportController"; -import { AccountController } from "../accounts/AccountController"; -import { TagClient } from "./backbone/TagClient"; -import { TagList } from "./data/TagList"; - -export class TagsController extends TransportController { - private client: TagClient; - - public constructor(parent: AccountController) { - super(ControllerName.Tag, parent); - } - - public override async init(): Promise { - await super.init(); - - this.client = new TagClient(this.config, this.parent.authenticator, this.transport.correlator); - - return this; - } - - public async getTags(): Promise { - const backboneTagList = (await this.client.getTags()).value; - return TagList.fromAny(backboneTagList); - } -} diff --git a/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts b/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts index ce68862d6..37c6a3cee 100644 --- a/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts +++ b/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts @@ -1,4 +1,4 @@ -export interface BackboneTagList { +export interface BackboneDefinedTags { supportedLanguages: string[]; tagsForAttributeValueTypes: Record>; } diff --git a/packages/transport/src/modules/tags/backbone/TagClient.ts b/packages/transport/src/modules/tags/backbone/TagClient.ts index 6142250e9..4affcb99f 100644 --- a/packages/transport/src/modules/tags/backbone/TagClient.ts +++ b/packages/transport/src/modules/tags/backbone/TagClient.ts @@ -1,9 +1,9 @@ import { ClientResult } from "../../../core/backbone/ClientResult"; import { RESTClientAuthenticate } from "../../../core/backbone/RESTClientAuthenticate"; -import { BackboneTagList } from "./BackboneGetTag"; +import { BackboneDefinedTags } from "./BackboneGetTag"; export class TagClient extends RESTClientAuthenticate { - public async getTags(): Promise> { - return await this.get("/api/v1/Tags"); + public async getTags(): Promise> { + return await this.get("/api/v1/Tags"); } } From 76bcb1277ab0958a34fa192317e0b91639856c1d Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 3 Dec 2024 15:17:42 +0100 Subject: [PATCH 21/33] chore: fix linting --- packages/consumption/test/customMatchers.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/consumption/test/customMatchers.ts b/packages/consumption/test/customMatchers.ts index 7e8f61b75..dcca386f8 100644 --- a/packages/consumption/test/customMatchers.ts +++ b/packages/consumption/test/customMatchers.ts @@ -1,6 +1,6 @@ import { SerializableBase } from "@js-soft/ts-serval"; -import { ErrorValidationResult, SuccessfulValidationResult, ValidationResult } from "../src"; import { set } from "lodash"; +import { ErrorValidationResult, SuccessfulValidationResult, ValidationResult } from "../src"; expect.extend({ successfulValidationResult(actual: ValidationResult) { @@ -41,7 +41,7 @@ expect.extend({ return { pass: true, message: () => "" }; }, - + toStrictEqualExcluding(received: unknown, expected: unknown, ...excludes: string[]) { if (received instanceof SerializableBase) { received = received.toJSON(); From c30dd02504766f12548cdacb3d144371f649c3ea Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 3 Dec 2024 15:27:51 +0100 Subject: [PATCH 22/33] chore: rename backbone attrubte tag --- .../src/modules/attributes/AttributesController.ts | 8 ++++---- .../test/consumption/attributeTagCollection.test.ts | 8 ++++---- .../transport/src/modules/tags/backbone/BackboneGetTag.ts | 8 ++++---- packages/transport/src/modules/tags/backbone/TagClient.ts | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/consumption/src/modules/attributes/AttributesController.ts b/packages/consumption/src/modules/attributes/AttributesController.ts index ce77dbeae..c2b600019 100644 --- a/packages/consumption/src/modules/attributes/AttributesController.ts +++ b/packages/consumption/src/modules/attributes/AttributesController.ts @@ -16,7 +16,7 @@ import { } from "@nmshd/content"; import { CoreAddress, CoreDate, CoreId, ICoreDate, ICoreId } from "@nmshd/core-types"; import * as iql from "@nmshd/iql"; -import { SynchronizedCollection, TagClient, TransportCoreErrors } from "@nmshd/transport"; +import { AttributeTagClient, SynchronizedCollection, TransportCoreErrors } from "@nmshd/transport"; import _ from "lodash"; import { nameof } from "ts-simple-nameof"; import { ConsumptionBaseController } from "../../consumption/ConsumptionBaseController"; @@ -46,7 +46,7 @@ import { IdentityAttributeQueryTranslator, RelationshipAttributeQueryTranslator, export class AttributesController extends ConsumptionBaseController { private attributes: SynchronizedCollection; - private tagsClient: TagClient; + private tagsClient: AttributeTagClient; public constructor( parent: ConsumptionController, @@ -61,7 +61,7 @@ export class AttributesController extends ConsumptionBaseController { await super.init(); this.attributes = await this.parent.accountController.getSynchronizedCollection("Attributes"); - this.tagsClient = new TagClient(this.parent.transport.config, this.parent.accountController.authenticator, this.parent.transport.correlator); + this.tagsClient = new AttributeTagClient(this.parent.transport.config, this.parent.accountController.authenticator, this.parent.transport.correlator); return this; } @@ -1295,7 +1295,7 @@ export class AttributesController extends ConsumptionBaseController { } public async getAttributeTagCollection(): Promise { - const backboneTagList = (await this.tagsClient.getTags()).value; + const backboneTagList = (await this.tagsClient.getBackboneAttributeTagCollection()).value; return AttributeTagCollection.fromAny(backboneTagList); } } diff --git a/packages/runtime/test/consumption/attributeTagCollection.test.ts b/packages/runtime/test/consumption/attributeTagCollection.test.ts index cb922895e..922044be6 100644 --- a/packages/runtime/test/consumption/attributeTagCollection.test.ts +++ b/packages/runtime/test/consumption/attributeTagCollection.test.ts @@ -1,15 +1,15 @@ -import { ClientResult, TagClient } from "@nmshd/transport"; +import { ClientResult, DefinedTagClient } from "@nmshd/transport"; import { reset, spy, when } from "ts-mockito"; import { RuntimeServiceProvider, TestRuntimeServices } from "../lib"; const serviceProvider = new RuntimeServiceProvider(); let runtimeService: TestRuntimeServices; -let mockedRestClient: TagClient; +let mockedRestClient: DefinedTagClient; beforeAll(async () => { runtimeService = (await serviceProvider.launch(1))[0]; - const client = runtimeService.consumption.attributes["getAttributeTagCollectionUseCase"]["attributesController"]["tagsClient"] as TagClient; + const client = runtimeService.consumption.attributes["getAttributeTagCollectionUseCase"]["attributesController"]["tagsClient"] as DefinedTagClient; mockedRestClient = spy(client); }, 30000); @@ -57,7 +57,7 @@ describe("get attributeTagCollection", function () { /* eslint-enable @typescript-eslint/naming-convention */ test("should receive the legal tags from the Backbone", async function () { - when(mockedRestClient.getTags()).thenResolve(ClientResult.ok(mockTags)); + when(mockedRestClient.getBackboneDefinedTags()).thenResolve(ClientResult.ok(mockTags)); const tags = await runtimeService.consumption.attributes.getAttributeTagCollection(); expect(tags.value).toStrictEqual(mockTags); diff --git a/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts b/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts index 37c6a3cee..248d47001 100644 --- a/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts +++ b/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts @@ -1,9 +1,9 @@ -export interface BackboneDefinedTags { +export interface BackboneAttributeTagCollection { supportedLanguages: string[]; - tagsForAttributeValueTypes: Record>; + tagsForAttributeValueTypes: Record>; } -interface BackboneTag { +interface BackboneAttributeTag { displayNames: Record; - children?: Record; + children?: Record; } diff --git a/packages/transport/src/modules/tags/backbone/TagClient.ts b/packages/transport/src/modules/tags/backbone/TagClient.ts index 4affcb99f..7faca9e7e 100644 --- a/packages/transport/src/modules/tags/backbone/TagClient.ts +++ b/packages/transport/src/modules/tags/backbone/TagClient.ts @@ -1,9 +1,9 @@ import { ClientResult } from "../../../core/backbone/ClientResult"; import { RESTClientAuthenticate } from "../../../core/backbone/RESTClientAuthenticate"; -import { BackboneDefinedTags } from "./BackboneGetTag"; +import { BackboneAttributeTagCollection } from "./BackboneGetTag"; -export class TagClient extends RESTClientAuthenticate { - public async getTags(): Promise> { - return await this.get("/api/v1/Tags"); +export class AttributeTagClient extends RESTClientAuthenticate { + public async getBackboneAttributeTagCollection(): Promise> { + return await this.get("/api/v1/Tags"); } } From 2f7d21b22f6bc0d413117bd1966bb2a9c01e4bcf Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 3 Dec 2024 15:33:51 +0100 Subject: [PATCH 23/33] chore: rename backbone attrubte tag --- .../src/modules/attributes/AttributesController.ts | 6 +++--- .../modules/attributes/AttributeTagCollection.test.ts | 8 ++++---- .../test/consumption/attributeTagCollection.test.ts | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/consumption/src/modules/attributes/AttributesController.ts b/packages/consumption/src/modules/attributes/AttributesController.ts index c2b600019..062e64c59 100644 --- a/packages/consumption/src/modules/attributes/AttributesController.ts +++ b/packages/consumption/src/modules/attributes/AttributesController.ts @@ -46,7 +46,7 @@ import { IdentityAttributeQueryTranslator, RelationshipAttributeQueryTranslator, export class AttributesController extends ConsumptionBaseController { private attributes: SynchronizedCollection; - private tagsClient: AttributeTagClient; + private attributeTagClient: AttributeTagClient; public constructor( parent: ConsumptionController, @@ -61,7 +61,7 @@ export class AttributesController extends ConsumptionBaseController { await super.init(); this.attributes = await this.parent.accountController.getSynchronizedCollection("Attributes"); - this.tagsClient = new AttributeTagClient(this.parent.transport.config, this.parent.accountController.authenticator, this.parent.transport.correlator); + this.attributeTagClient = new AttributeTagClient(this.parent.transport.config, this.parent.accountController.authenticator, this.parent.transport.correlator); return this; } @@ -1295,7 +1295,7 @@ export class AttributesController extends ConsumptionBaseController { } public async getAttributeTagCollection(): Promise { - const backboneTagList = (await this.tagsClient.getBackboneAttributeTagCollection()).value; + const backboneTagList = (await this.attributeTagClient.getBackboneAttributeTagCollection()).value; return AttributeTagCollection.fromAny(backboneTagList); } } diff --git a/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts index 7d0103464..b686f8dce 100644 --- a/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts +++ b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts @@ -1,5 +1,5 @@ import { IDatabaseConnection } from "@js-soft/docdb-access-abstractions"; -import { AccountController, ClientResult, TagClient, Transport } from "@nmshd/transport"; +import { AccountController, AttributeTagClient, ClientResult, Transport } from "@nmshd/transport"; import { spy, when } from "ts-mockito"; import { ConsumptionController } from "../../../src"; import { TestUtil } from "../../core/TestUtil"; @@ -12,7 +12,7 @@ describe("AttributeTagCollection", function () { let consumptionController: ConsumptionController; let accountController: AccountController; - let mockedClient: TagClient; + let mockedClient: AttributeTagClient; /* eslint-disable @typescript-eslint/naming-convention */ const mockTags = { @@ -59,7 +59,7 @@ describe("AttributeTagCollection", function () { const accounts = await TestUtil.provideAccounts(transport, 1); ({ consumptionController, accountController } = accounts[0]); - const client = consumptionController.attributes["tagsClient"]; + const client = consumptionController.attributes["attributeTagClient"]; mockedClient = spy(client); }); @@ -70,7 +70,7 @@ describe("AttributeTagCollection", function () { }); test("should receive the legal tags from the Backbone", async function () { - when(mockedClient.getTags()).thenResolve(ClientResult.ok(mockTags)); + when(mockedClient.getBackboneAttributeTagCollection()).thenResolve(ClientResult.ok(mockTags)); const tags = await consumptionController.attributes.getAttributeTagCollection(); expect(tags.toJSON()).toStrictEqualExcluding(mockTags, "@type"); diff --git a/packages/runtime/test/consumption/attributeTagCollection.test.ts b/packages/runtime/test/consumption/attributeTagCollection.test.ts index 922044be6..b749ca7f8 100644 --- a/packages/runtime/test/consumption/attributeTagCollection.test.ts +++ b/packages/runtime/test/consumption/attributeTagCollection.test.ts @@ -1,15 +1,15 @@ -import { ClientResult, DefinedTagClient } from "@nmshd/transport"; +import { AttributeTagClient, ClientResult } from "@nmshd/transport"; import { reset, spy, when } from "ts-mockito"; import { RuntimeServiceProvider, TestRuntimeServices } from "../lib"; const serviceProvider = new RuntimeServiceProvider(); let runtimeService: TestRuntimeServices; -let mockedRestClient: DefinedTagClient; +let mockedRestClient: AttributeTagClient; beforeAll(async () => { runtimeService = (await serviceProvider.launch(1))[0]; - const client = runtimeService.consumption.attributes["getAttributeTagCollectionUseCase"]["attributesController"]["tagsClient"] as DefinedTagClient; + const client = runtimeService.consumption.attributes["getAttributeTagCollectionUseCase"]["attributesController"]["attributeTagClient"] as AttributeTagClient; mockedRestClient = spy(client); }, 30000); @@ -57,7 +57,7 @@ describe("get attributeTagCollection", function () { /* eslint-enable @typescript-eslint/naming-convention */ test("should receive the legal tags from the Backbone", async function () { - when(mockedRestClient.getBackboneDefinedTags()).thenResolve(ClientResult.ok(mockTags)); + when(mockedRestClient.getBackboneAttributeTagCollection()).thenResolve(ClientResult.ok(mockTags)); const tags = await runtimeService.consumption.attributes.getAttributeTagCollection(); expect(tags.value).toStrictEqual(mockTags); From a68c371736d586e8c5341215df8398ab9218c8df Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 3 Dec 2024 15:36:09 +0100 Subject: [PATCH 24/33] chore: naming --- .../src/modules/attributes/AttributesController.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/consumption/src/modules/attributes/AttributesController.ts b/packages/consumption/src/modules/attributes/AttributesController.ts index 062e64c59..82ad12a05 100644 --- a/packages/consumption/src/modules/attributes/AttributesController.ts +++ b/packages/consumption/src/modules/attributes/AttributesController.ts @@ -1295,7 +1295,7 @@ export class AttributesController extends ConsumptionBaseController { } public async getAttributeTagCollection(): Promise { - const backboneTagList = (await this.attributeTagClient.getBackboneAttributeTagCollection()).value; - return AttributeTagCollection.fromAny(backboneTagList); + const backboneAttributeTagCollection = (await this.attributeTagClient.getBackboneAttributeTagCollection()).value; + return AttributeTagCollection.fromAny(backboneAttributeTagCollection); } } From 7f9ac6fe4730ce6d23d050080e3afe9abfd05499 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 3 Dec 2024 15:38:39 +0100 Subject: [PATCH 25/33] chore: improve code --- .../test/modules/attributes/AttributeTagCollection.test.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts index b686f8dce..fb34d1a32 100644 --- a/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts +++ b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts @@ -56,8 +56,7 @@ describe("AttributeTagCollection", function () { await transport.init(); - const accounts = await TestUtil.provideAccounts(transport, 1); - ({ consumptionController, accountController } = accounts[0]); + ({ consumptionController, accountController } = (await TestUtil.provideAccounts(transport, 1))[0]); const client = consumptionController.attributes["attributeTagClient"]; mockedClient = spy(client); From 4f434c4e1b535adf401888700d76dc3be0dccbc4 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 3 Dec 2024 15:42:03 +0100 Subject: [PATCH 26/33] chore: renaming --- .../consumption/{TagDTO.ts => AttributeTagCollectionDTO.ts} | 0 packages/runtime/src/types/consumption/index.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename packages/runtime/src/types/consumption/{TagDTO.ts => AttributeTagCollectionDTO.ts} (100%) diff --git a/packages/runtime/src/types/consumption/TagDTO.ts b/packages/runtime/src/types/consumption/AttributeTagCollectionDTO.ts similarity index 100% rename from packages/runtime/src/types/consumption/TagDTO.ts rename to packages/runtime/src/types/consumption/AttributeTagCollectionDTO.ts diff --git a/packages/runtime/src/types/consumption/index.ts b/packages/runtime/src/types/consumption/index.ts index fcf81fe24..ed1d44c7e 100644 --- a/packages/runtime/src/types/consumption/index.ts +++ b/packages/runtime/src/types/consumption/index.ts @@ -1,3 +1,4 @@ +export * from "./AttributeTagCollectionDTO"; export * from "./DraftDTO"; export * from "./IdentityMetadataDTO"; export * from "./LocalAttributeDTO"; @@ -6,4 +7,3 @@ export * from "./LocalNotificationDTO"; export * from "./LocalRequestDTO"; export * from "./RequestValidationResultDTO"; export * from "./SettingDTO"; -export * from "./TagDTO"; From 22c19ec6f49f27d4745d80d1ef1ecec38f298619 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 3 Dec 2024 15:47:33 +0100 Subject: [PATCH 27/33] chore: renaming --- .../consumption/attributes/AttributeMapper.ts | 39 +------------------ .../attributes/GetAttributeTagCollection.ts | 4 +- .../useCases/consumption/attributes/index.ts | 1 + 3 files changed, 5 insertions(+), 39 deletions(-) diff --git a/packages/runtime/src/useCases/consumption/attributes/AttributeMapper.ts b/packages/runtime/src/useCases/consumption/attributes/AttributeMapper.ts index e1d350d16..bef4a1c3d 100644 --- a/packages/runtime/src/useCases/consumption/attributes/AttributeMapper.ts +++ b/packages/runtime/src/useCases/consumption/attributes/AttributeMapper.ts @@ -1,5 +1,5 @@ -import { AttributeTag, AttributeTagCollection, LocalAttribute, LocalAttributeDeletionInfoJSON, LocalAttributeShareInfoJSON } from "@nmshd/consumption"; -import { AttributeTagCollectionDTO, AttributeTagDTO, LocalAttributeDTO } from "../../../types"; +import { LocalAttribute, LocalAttributeDeletionInfoJSON, LocalAttributeShareInfoJSON } from "@nmshd/consumption"; +import { LocalAttributeDTO } from "../../../types"; export class AttributeMapper { public static toAttributeDTO(attribute: LocalAttribute): LocalAttributeDTO { @@ -19,39 +19,4 @@ export class AttributeMapper { public static toAttributeDTOList(attributes: LocalAttribute[]): LocalAttributeDTO[] { return attributes.map((attribute) => this.toAttributeDTO(attribute)); } - - public static toAttributeTagCollectionDTO(tagList: AttributeTagCollection): AttributeTagCollectionDTO { - return { - supportedLanguages: tagList.supportedLanguages, - tagsForAttributeValueTypes: Object.entries(tagList.tagsForAttributeValueTypes).reduce( - (acc, [key, value]) => { - acc[key] = Object.entries(value).reduce( - (acc2, [key2, value2]) => { - acc2[key2] = AttributeMapper.toAttributeTagDTO(value2); - return acc2; - }, - {} as Record - ); - return acc; - }, - {} as Record> - ) - }; - } - - public static toAttributeTagDTO(tagListDTO: AttributeTag): AttributeTagDTO { - const tagDTO: AttributeTagDTO = { - displayNames: tagListDTO.displayNames - }; - if (tagListDTO.children) { - tagDTO.children = Object.entries(tagListDTO.children).reduce( - (acc, [key, value]) => { - acc[key] = AttributeMapper.toAttributeTagDTO(value); - return acc; - }, - {} as Record - ); - } - return tagDTO; - } } diff --git a/packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts b/packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts index 12d25753f..0a88a2954 100644 --- a/packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts +++ b/packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts @@ -3,7 +3,7 @@ import { AttributesController } from "@nmshd/consumption"; import { Inject } from "@nmshd/typescript-ioc"; import { AttributeTagCollectionDTO } from "../../../types"; import { UseCase } from "../../common"; -import { AttributeMapper } from "./AttributeMapper"; +import { AttributeTagCollectionMapper } from "./AttributeTagCollectionMapper"; export class GetAttributeTagCollectionUseCase extends UseCase { public constructor(@Inject private readonly attributesController: AttributesController) { @@ -12,6 +12,6 @@ export class GetAttributeTagCollectionUseCase extends UseCase> { const tagList = await this.attributesController.getAttributeTagCollection(); - return Result.ok(AttributeMapper.toAttributeTagCollectionDTO(tagList)); + return Result.ok(AttributeTagCollectionMapper.toAttributeTagCollectionDTO(tagList)); } } diff --git a/packages/runtime/src/useCases/consumption/attributes/index.ts b/packages/runtime/src/useCases/consumption/attributes/index.ts index 3bc18e249..4934b8c4a 100644 --- a/packages/runtime/src/useCases/consumption/attributes/index.ts +++ b/packages/runtime/src/useCases/consumption/attributes/index.ts @@ -1,4 +1,5 @@ export * from "./AttributeMapper"; +export * from "./AttributeTagCollectionMapper"; export * from "./ChangeDefaultRepositoryAttribute"; export * from "./CreateAndShareRelationshipAttribute"; export * from "./CreateRepositoryAttribute"; From 405d20fc97fb891bdc1fb4a8d4cac741f4db479a Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Tue, 3 Dec 2024 15:47:43 +0100 Subject: [PATCH 28/33] chore: add missing file --- .../AttributeTagCollectionMapper.ts | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 packages/runtime/src/useCases/consumption/attributes/AttributeTagCollectionMapper.ts diff --git a/packages/runtime/src/useCases/consumption/attributes/AttributeTagCollectionMapper.ts b/packages/runtime/src/useCases/consumption/attributes/AttributeTagCollectionMapper.ts new file mode 100644 index 000000000..b1eaaa1ef --- /dev/null +++ b/packages/runtime/src/useCases/consumption/attributes/AttributeTagCollectionMapper.ts @@ -0,0 +1,39 @@ +import { AttributeTag, AttributeTagCollection } from "@nmshd/consumption"; +import { AttributeTagCollectionDTO, AttributeTagDTO } from "../../../types"; + +export class AttributeTagCollectionMapper { + public static toAttributeTagCollectionDTO(tagList: AttributeTagCollection): AttributeTagCollectionDTO { + return { + supportedLanguages: tagList.supportedLanguages, + tagsForAttributeValueTypes: Object.entries(tagList.tagsForAttributeValueTypes).reduce( + (acc, [key, value]) => { + acc[key] = Object.entries(value).reduce( + (acc2, [key2, value2]) => { + acc2[key2] = AttributeTagCollectionMapper.toAttributeTagDTO(value2); + return acc2; + }, + {} as Record + ); + return acc; + }, + {} as Record> + ) + }; + } + + public static toAttributeTagDTO(tagListDTO: AttributeTag): AttributeTagDTO { + const tagDTO: AttributeTagDTO = { + displayNames: tagListDTO.displayNames + }; + if (tagListDTO.children) { + tagDTO.children = Object.entries(tagListDTO.children).reduce( + (acc, [key, value]) => { + acc[key] = AttributeTagCollectionMapper.toAttributeTagDTO(value); + return acc; + }, + {} as Record + ); + } + return tagDTO; + } +} From 49b89d52b0caf7ea753a28242624ada007584233 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Wed, 4 Dec 2024 08:29:41 +0100 Subject: [PATCH 29/33] chore: PR comments --- .../modules/attributes/AttributesController.ts | 2 +- .../attributes/local/AttributeTagCollection.ts | 18 ++++++++++++++++-- .../attributes/GetAttributeTagCollection.ts | 4 ++-- packages/transport/src/modules/index.ts | 4 ++-- .../{TagClient.ts => AttributeTagClient.ts} | 6 +++--- .../BackboneGetAttributeTagCollection.ts | 9 +++++++++ .../modules/tags/backbone/BackboneGetTag.ts | 9 --------- 7 files changed, 33 insertions(+), 19 deletions(-) rename packages/transport/src/modules/tags/backbone/{TagClient.ts => AttributeTagClient.ts} (57%) create mode 100644 packages/transport/src/modules/tags/backbone/BackboneGetAttributeTagCollection.ts delete mode 100644 packages/transport/src/modules/tags/backbone/BackboneGetTag.ts diff --git a/packages/consumption/src/modules/attributes/AttributesController.ts b/packages/consumption/src/modules/attributes/AttributesController.ts index 82ad12a05..b515abd7d 100644 --- a/packages/consumption/src/modules/attributes/AttributesController.ts +++ b/packages/consumption/src/modules/attributes/AttributesController.ts @@ -1296,6 +1296,6 @@ export class AttributesController extends ConsumptionBaseController { public async getAttributeTagCollection(): Promise { const backboneAttributeTagCollection = (await this.attributeTagClient.getBackboneAttributeTagCollection()).value; - return AttributeTagCollection.fromAny(backboneAttributeTagCollection); + return AttributeTagCollection.from(backboneAttributeTagCollection); } } diff --git a/packages/consumption/src/modules/attributes/local/AttributeTagCollection.ts b/packages/consumption/src/modules/attributes/local/AttributeTagCollection.ts index dfae67dd6..159a85580 100644 --- a/packages/consumption/src/modules/attributes/local/AttributeTagCollection.ts +++ b/packages/consumption/src/modules/attributes/local/AttributeTagCollection.ts @@ -1,7 +1,17 @@ import { Serializable, serialize, type, validate } from "@js-soft/ts-serval"; +export interface IAttributeTagCollection { + supportedLanguages: string[]; + tagsForAttributeValueTypes: Record>; +} + +export interface IAttributeTag { + displayNames: Record; + children?: Record; +} + @type("AttributeTagCollection") -export class AttributeTagCollection extends Serializable { +export class AttributeTagCollection extends Serializable implements IAttributeTagCollection { @serialize({ type: String }) @validate() public supportedLanguages: string[]; @@ -9,10 +19,14 @@ export class AttributeTagCollection extends Serializable { @serialize() @validate() public tagsForAttributeValueTypes: Record>; + + public static from(value: IAttributeTagCollection): AttributeTagCollection { + return this.fromAny(value); + } } @type("AttributeTag") -export class AttributeTag extends Serializable { +export class AttributeTag extends Serializable implements IAttributeTag { @serialize() @validate() public displayNames: Record; diff --git a/packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts b/packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts index 0a88a2954..c3050b958 100644 --- a/packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts +++ b/packages/runtime/src/useCases/consumption/attributes/GetAttributeTagCollection.ts @@ -11,7 +11,7 @@ export class GetAttributeTagCollectionUseCase extends UseCase> { - const tagList = await this.attributesController.getAttributeTagCollection(); - return Result.ok(AttributeTagCollectionMapper.toAttributeTagCollectionDTO(tagList)); + const attributeTagCollection = await this.attributesController.getAttributeTagCollection(); + return Result.ok(AttributeTagCollectionMapper.toAttributeTagCollectionDTO(attributeTagCollection)); } } diff --git a/packages/transport/src/modules/index.ts b/packages/transport/src/modules/index.ts index 7840742e0..8803e8004 100644 --- a/packages/transport/src/modules/index.ts +++ b/packages/transport/src/modules/index.ts @@ -115,8 +115,8 @@ export * from "./sync/DatawalletModificationsProcessor"; export * from "./sync/local/DatawalletModification"; export * from "./sync/SyncController"; export * from "./sync/SynchronizedCollection"; -export * from "./tags/backbone/BackboneGetTag"; -export * from "./tags/backbone/TagClient"; +export * from "./tags/backbone/AttributeTagClient"; +export * from "./tags/backbone/BackboneGetAttributeTagCollection"; export * from "./tokens/AnonymousTokenController"; export * from "./tokens/backbone/BackboneGetTokens"; export * from "./tokens/backbone/BackbonePostTokens"; diff --git a/packages/transport/src/modules/tags/backbone/TagClient.ts b/packages/transport/src/modules/tags/backbone/AttributeTagClient.ts similarity index 57% rename from packages/transport/src/modules/tags/backbone/TagClient.ts rename to packages/transport/src/modules/tags/backbone/AttributeTagClient.ts index 7faca9e7e..76dbbec0d 100644 --- a/packages/transport/src/modules/tags/backbone/TagClient.ts +++ b/packages/transport/src/modules/tags/backbone/AttributeTagClient.ts @@ -1,9 +1,9 @@ import { ClientResult } from "../../../core/backbone/ClientResult"; import { RESTClientAuthenticate } from "../../../core/backbone/RESTClientAuthenticate"; -import { BackboneAttributeTagCollection } from "./BackboneGetTag"; +import { BackboneGetAttributeTagCollection } from "./BackboneGetAttributeTagCollection"; export class AttributeTagClient extends RESTClientAuthenticate { - public async getBackboneAttributeTagCollection(): Promise> { - return await this.get("/api/v1/Tags"); + public async getBackboneAttributeTagCollection(): Promise> { + return await this.get("/api/v1/Tags"); } } diff --git a/packages/transport/src/modules/tags/backbone/BackboneGetAttributeTagCollection.ts b/packages/transport/src/modules/tags/backbone/BackboneGetAttributeTagCollection.ts new file mode 100644 index 000000000..7d2215f29 --- /dev/null +++ b/packages/transport/src/modules/tags/backbone/BackboneGetAttributeTagCollection.ts @@ -0,0 +1,9 @@ +export interface BackboneGetAttributeTagCollection { + supportedLanguages: string[]; + tagsForAttributeValueTypes: Record>; +} + +interface BackboneGetAttributeTag { + displayNames: Record; + children?: Record; +} diff --git a/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts b/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts deleted file mode 100644 index 248d47001..000000000 --- a/packages/transport/src/modules/tags/backbone/BackboneGetTag.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface BackboneAttributeTagCollection { - supportedLanguages: string[]; - tagsForAttributeValueTypes: Record>; -} - -interface BackboneAttributeTag { - displayNames: Record; - children?: Record; -} From d394750805737fe86715111fa3f30e96d1ad3a7d Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Wed, 4 Dec 2024 13:37:12 +0100 Subject: [PATCH 30/33] chore: remove backbone from client method name --- .../consumption/src/modules/attributes/AttributesController.ts | 2 +- .../test/modules/attributes/AttributeTagCollection.test.ts | 2 +- .../runtime/test/consumption/attributeTagCollection.test.ts | 2 +- .../transport/src/modules/tags/backbone/AttributeTagClient.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/consumption/src/modules/attributes/AttributesController.ts b/packages/consumption/src/modules/attributes/AttributesController.ts index b515abd7d..f0ed4e853 100644 --- a/packages/consumption/src/modules/attributes/AttributesController.ts +++ b/packages/consumption/src/modules/attributes/AttributesController.ts @@ -1295,7 +1295,7 @@ export class AttributesController extends ConsumptionBaseController { } public async getAttributeTagCollection(): Promise { - const backboneAttributeTagCollection = (await this.attributeTagClient.getBackboneAttributeTagCollection()).value; + const backboneAttributeTagCollection = (await this.attributeTagClient.getAttributeTagCollection()).value; return AttributeTagCollection.from(backboneAttributeTagCollection); } } diff --git a/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts index fb34d1a32..7369ac00c 100644 --- a/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts +++ b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts @@ -69,7 +69,7 @@ describe("AttributeTagCollection", function () { }); test("should receive the legal tags from the Backbone", async function () { - when(mockedClient.getBackboneAttributeTagCollection()).thenResolve(ClientResult.ok(mockTags)); + when(mockedClient.getAttributeTagCollection()).thenResolve(ClientResult.ok(mockTags)); const tags = await consumptionController.attributes.getAttributeTagCollection(); expect(tags.toJSON()).toStrictEqualExcluding(mockTags, "@type"); diff --git a/packages/runtime/test/consumption/attributeTagCollection.test.ts b/packages/runtime/test/consumption/attributeTagCollection.test.ts index b749ca7f8..50c27ecba 100644 --- a/packages/runtime/test/consumption/attributeTagCollection.test.ts +++ b/packages/runtime/test/consumption/attributeTagCollection.test.ts @@ -57,7 +57,7 @@ describe("get attributeTagCollection", function () { /* eslint-enable @typescript-eslint/naming-convention */ test("should receive the legal tags from the Backbone", async function () { - when(mockedRestClient.getBackboneAttributeTagCollection()).thenResolve(ClientResult.ok(mockTags)); + when(mockedRestClient.getAttributeTagCollection()).thenResolve(ClientResult.ok(mockTags)); const tags = await runtimeService.consumption.attributes.getAttributeTagCollection(); expect(tags.value).toStrictEqual(mockTags); diff --git a/packages/transport/src/modules/tags/backbone/AttributeTagClient.ts b/packages/transport/src/modules/tags/backbone/AttributeTagClient.ts index 76dbbec0d..03ca1397d 100644 --- a/packages/transport/src/modules/tags/backbone/AttributeTagClient.ts +++ b/packages/transport/src/modules/tags/backbone/AttributeTagClient.ts @@ -3,7 +3,7 @@ import { RESTClientAuthenticate } from "../../../core/backbone/RESTClientAuthent import { BackboneGetAttributeTagCollection } from "./BackboneGetAttributeTagCollection"; export class AttributeTagClient extends RESTClientAuthenticate { - public async getBackboneAttributeTagCollection(): Promise> { + public async getAttributeTagCollection(): Promise> { return await this.get("/api/v1/Tags"); } } From 8863be05b38ef68c1490914e4b6c51786ecc9d46 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Thu, 5 Dec 2024 08:16:26 +0100 Subject: [PATCH 31/33] chore: remove toStrictEqualExcluding --- packages/consumption/test/customMatchers.ts | 48 ------------------- .../attributes/AttributeTagCollection.test.ts | 4 +- 2 files changed, 2 insertions(+), 50 deletions(-) diff --git a/packages/consumption/test/customMatchers.ts b/packages/consumption/test/customMatchers.ts index dcca386f8..da38e13e5 100644 --- a/packages/consumption/test/customMatchers.ts +++ b/packages/consumption/test/customMatchers.ts @@ -1,5 +1,3 @@ -import { SerializableBase } from "@js-soft/ts-serval"; -import { set } from "lodash"; import { ErrorValidationResult, SuccessfulValidationResult, ValidationResult } from "../src"; expect.extend({ @@ -40,51 +38,6 @@ expect.extend({ } return { pass: true, message: () => "" }; - }, - - toStrictEqualExcluding(received: unknown, expected: unknown, ...excludes: string[]) { - if (received instanceof SerializableBase) { - received = received.toJSON(); - } - if (expected instanceof SerializableBase) { - expected = expected.toJSON(); - } - - const receivedClone = JSON.parse(JSON.stringify(received)); - const expectedClone = JSON.parse(JSON.stringify(expected)); - - excludes.forEach((exclud) => { - set(receivedClone, exclud, undefined); - set(expectedClone, exclud, undefined); - }); - - const matcherName = "toStrictEqual"; - const options = { - comment: "deep equality", - isNot: this.isNot, - promise: this.promise - }; - - const pass = this.equals(receivedClone, expectedClone, undefined, true); - - let message: string; - if (pass) { - message = - `${this.utils.matcherHint(matcherName, undefined, undefined, options)}\n\n` + - `Expected: not ${this.utils.printExpected(expectedClone)}\n${ - this.utils.stringify(expectedClone) === this.utils.stringify(receivedClone) ? "" : `Received: ${this.utils.printReceived(receivedClone)}` - }`; - } else { - message = `${this.utils.matcherHint(matcherName, undefined, undefined, options)}\n\n${this.utils.printDiffOrStringify( - expectedClone, - receivedClone, - "Expected", - "Received", - this.expand ?? true - )}`; - } - - return { message: () => message, pass }; } }); @@ -93,7 +46,6 @@ declare global { interface Matchers { successfulValidationResult(): R; errorValidationResult(error?: { code?: string; message?: string | RegExp }): R; - toStrictEqualExcluding(expected: unknown, ...ignoreProperties: string[]): R; } } } diff --git a/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts index 7369ac00c..61f833696 100644 --- a/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts +++ b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts @@ -1,7 +1,7 @@ import { IDatabaseConnection } from "@js-soft/docdb-access-abstractions"; import { AccountController, AttributeTagClient, ClientResult, Transport } from "@nmshd/transport"; import { spy, when } from "ts-mockito"; -import { ConsumptionController } from "../../../src"; +import { AttributeTagCollection, ConsumptionController } from "../../../src"; import { TestUtil } from "../../core/TestUtil"; describe("AttributeTagCollection", function () { @@ -72,6 +72,6 @@ describe("AttributeTagCollection", function () { when(mockedClient.getAttributeTagCollection()).thenResolve(ClientResult.ok(mockTags)); const tags = await consumptionController.attributes.getAttributeTagCollection(); - expect(tags.toJSON()).toStrictEqualExcluding(mockTags, "@type"); + expect(tags).toStrictEqual(AttributeTagCollection.from(mockTags)); }); }); From 447df35a67148b74a69275253b77c2e710d27dd8 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Thu, 5 Dec 2024 11:04:41 +0100 Subject: [PATCH 32/33] chore: rename attrbitetag to tag in transport --- .../src/modules/attributes/AttributesController.ts | 10 +++++----- .../modules/attributes/AttributeTagCollection.test.ts | 6 +++--- .../test/consumption/attributeTagCollection.test.ts | 8 ++++---- packages/transport/src/modules/index.ts | 4 ++-- .../src/modules/tags/backbone/AttributeTagClient.ts | 9 --------- .../tags/backbone/BackboneGetAttributeTagCollection.ts | 9 --------- .../modules/tags/backbone/BackboneGetTagCollection.ts | 9 +++++++++ .../transport/src/modules/tags/backbone/TagClient.ts | 9 +++++++++ 8 files changed, 32 insertions(+), 32 deletions(-) delete mode 100644 packages/transport/src/modules/tags/backbone/AttributeTagClient.ts delete mode 100644 packages/transport/src/modules/tags/backbone/BackboneGetAttributeTagCollection.ts create mode 100644 packages/transport/src/modules/tags/backbone/BackboneGetTagCollection.ts create mode 100644 packages/transport/src/modules/tags/backbone/TagClient.ts diff --git a/packages/consumption/src/modules/attributes/AttributesController.ts b/packages/consumption/src/modules/attributes/AttributesController.ts index f0ed4e853..50c28b88d 100644 --- a/packages/consumption/src/modules/attributes/AttributesController.ts +++ b/packages/consumption/src/modules/attributes/AttributesController.ts @@ -16,7 +16,7 @@ import { } from "@nmshd/content"; import { CoreAddress, CoreDate, CoreId, ICoreDate, ICoreId } from "@nmshd/core-types"; import * as iql from "@nmshd/iql"; -import { AttributeTagClient, SynchronizedCollection, TransportCoreErrors } from "@nmshd/transport"; +import { SynchronizedCollection, TagClient, TransportCoreErrors } from "@nmshd/transport"; import _ from "lodash"; import { nameof } from "ts-simple-nameof"; import { ConsumptionBaseController } from "../../consumption/ConsumptionBaseController"; @@ -46,7 +46,7 @@ import { IdentityAttributeQueryTranslator, RelationshipAttributeQueryTranslator, export class AttributesController extends ConsumptionBaseController { private attributes: SynchronizedCollection; - private attributeTagClient: AttributeTagClient; + private attributeTagClient: TagClient; public constructor( parent: ConsumptionController, @@ -61,7 +61,7 @@ export class AttributesController extends ConsumptionBaseController { await super.init(); this.attributes = await this.parent.accountController.getSynchronizedCollection("Attributes"); - this.attributeTagClient = new AttributeTagClient(this.parent.transport.config, this.parent.accountController.authenticator, this.parent.transport.correlator); + this.attributeTagClient = new TagClient(this.parent.transport.config, this.parent.accountController.authenticator, this.parent.transport.correlator); return this; } @@ -1295,7 +1295,7 @@ export class AttributesController extends ConsumptionBaseController { } public async getAttributeTagCollection(): Promise { - const backboneAttributeTagCollection = (await this.attributeTagClient.getAttributeTagCollection()).value; - return AttributeTagCollection.from(backboneAttributeTagCollection); + const backboneTagCollection = (await this.attributeTagClient.getTagCollection()).value; + return AttributeTagCollection.from(backboneTagCollection); } } diff --git a/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts index 61f833696..a1be00a62 100644 --- a/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts +++ b/packages/consumption/test/modules/attributes/AttributeTagCollection.test.ts @@ -1,5 +1,5 @@ import { IDatabaseConnection } from "@js-soft/docdb-access-abstractions"; -import { AccountController, AttributeTagClient, ClientResult, Transport } from "@nmshd/transport"; +import { AccountController, ClientResult, TagClient, Transport } from "@nmshd/transport"; import { spy, when } from "ts-mockito"; import { AttributeTagCollection, ConsumptionController } from "../../../src"; import { TestUtil } from "../../core/TestUtil"; @@ -12,7 +12,7 @@ describe("AttributeTagCollection", function () { let consumptionController: ConsumptionController; let accountController: AccountController; - let mockedClient: AttributeTagClient; + let mockedClient: TagClient; /* eslint-disable @typescript-eslint/naming-convention */ const mockTags = { @@ -69,7 +69,7 @@ describe("AttributeTagCollection", function () { }); test("should receive the legal tags from the Backbone", async function () { - when(mockedClient.getAttributeTagCollection()).thenResolve(ClientResult.ok(mockTags)); + when(mockedClient.getTagCollection()).thenResolve(ClientResult.ok(mockTags)); const tags = await consumptionController.attributes.getAttributeTagCollection(); expect(tags).toStrictEqual(AttributeTagCollection.from(mockTags)); diff --git a/packages/runtime/test/consumption/attributeTagCollection.test.ts b/packages/runtime/test/consumption/attributeTagCollection.test.ts index 50c27ecba..a15c3a66c 100644 --- a/packages/runtime/test/consumption/attributeTagCollection.test.ts +++ b/packages/runtime/test/consumption/attributeTagCollection.test.ts @@ -1,15 +1,15 @@ -import { AttributeTagClient, ClientResult } from "@nmshd/transport"; +import { ClientResult, TagClient } from "@nmshd/transport"; import { reset, spy, when } from "ts-mockito"; import { RuntimeServiceProvider, TestRuntimeServices } from "../lib"; const serviceProvider = new RuntimeServiceProvider(); let runtimeService: TestRuntimeServices; -let mockedRestClient: AttributeTagClient; +let mockedRestClient: TagClient; beforeAll(async () => { runtimeService = (await serviceProvider.launch(1))[0]; - const client = runtimeService.consumption.attributes["getAttributeTagCollectionUseCase"]["attributesController"]["attributeTagClient"] as AttributeTagClient; + const client = runtimeService.consumption.attributes["getAttributeTagCollectionUseCase"]["attributesController"]["attributeTagClient"] as TagClient; mockedRestClient = spy(client); }, 30000); @@ -57,7 +57,7 @@ describe("get attributeTagCollection", function () { /* eslint-enable @typescript-eslint/naming-convention */ test("should receive the legal tags from the Backbone", async function () { - when(mockedRestClient.getAttributeTagCollection()).thenResolve(ClientResult.ok(mockTags)); + when(mockedRestClient.getTagCollection()).thenResolve(ClientResult.ok(mockTags)); const tags = await runtimeService.consumption.attributes.getAttributeTagCollection(); expect(tags.value).toStrictEqual(mockTags); diff --git a/packages/transport/src/modules/index.ts b/packages/transport/src/modules/index.ts index 8803e8004..71274f426 100644 --- a/packages/transport/src/modules/index.ts +++ b/packages/transport/src/modules/index.ts @@ -115,8 +115,8 @@ export * from "./sync/DatawalletModificationsProcessor"; export * from "./sync/local/DatawalletModification"; export * from "./sync/SyncController"; export * from "./sync/SynchronizedCollection"; -export * from "./tags/backbone/AttributeTagClient"; -export * from "./tags/backbone/BackboneGetAttributeTagCollection"; +export * from "./tags/backbone/BackboneGetTagCollection"; +export * from "./tags/backbone/TagClient"; export * from "./tokens/AnonymousTokenController"; export * from "./tokens/backbone/BackboneGetTokens"; export * from "./tokens/backbone/BackbonePostTokens"; diff --git a/packages/transport/src/modules/tags/backbone/AttributeTagClient.ts b/packages/transport/src/modules/tags/backbone/AttributeTagClient.ts deleted file mode 100644 index 03ca1397d..000000000 --- a/packages/transport/src/modules/tags/backbone/AttributeTagClient.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { ClientResult } from "../../../core/backbone/ClientResult"; -import { RESTClientAuthenticate } from "../../../core/backbone/RESTClientAuthenticate"; -import { BackboneGetAttributeTagCollection } from "./BackboneGetAttributeTagCollection"; - -export class AttributeTagClient extends RESTClientAuthenticate { - public async getAttributeTagCollection(): Promise> { - return await this.get("/api/v1/Tags"); - } -} diff --git a/packages/transport/src/modules/tags/backbone/BackboneGetAttributeTagCollection.ts b/packages/transport/src/modules/tags/backbone/BackboneGetAttributeTagCollection.ts deleted file mode 100644 index 7d2215f29..000000000 --- a/packages/transport/src/modules/tags/backbone/BackboneGetAttributeTagCollection.ts +++ /dev/null @@ -1,9 +0,0 @@ -export interface BackboneGetAttributeTagCollection { - supportedLanguages: string[]; - tagsForAttributeValueTypes: Record>; -} - -interface BackboneGetAttributeTag { - displayNames: Record; - children?: Record; -} diff --git a/packages/transport/src/modules/tags/backbone/BackboneGetTagCollection.ts b/packages/transport/src/modules/tags/backbone/BackboneGetTagCollection.ts new file mode 100644 index 000000000..63766b793 --- /dev/null +++ b/packages/transport/src/modules/tags/backbone/BackboneGetTagCollection.ts @@ -0,0 +1,9 @@ +export interface BackboneGetTagCollection { + supportedLanguages: string[]; + tagsForAttributeValueTypes: Record>; +} + +interface BackboneGetTag { + displayNames: Record; + children?: Record; +} diff --git a/packages/transport/src/modules/tags/backbone/TagClient.ts b/packages/transport/src/modules/tags/backbone/TagClient.ts new file mode 100644 index 000000000..cd28eb6e3 --- /dev/null +++ b/packages/transport/src/modules/tags/backbone/TagClient.ts @@ -0,0 +1,9 @@ +import { ClientResult } from "../../../core/backbone/ClientResult"; +import { RESTClientAuthenticate } from "../../../core/backbone/RESTClientAuthenticate"; +import { BackboneGetTagCollection } from "./BackboneGetTagCollection"; + +export class TagClient extends RESTClientAuthenticate { + public async getTagCollection(): Promise> { + return await this.get("/api/v1/Tags"); + } +} From b9915932c6568d66d518f2546dcfa62ffc9a77a6 Mon Sep 17 00:00:00 2001 From: Sebastian Mahr Date: Thu, 5 Dec 2024 11:14:45 +0100 Subject: [PATCH 33/33] chore: remove unuse controller name --- packages/transport/src/core/TransportController.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/transport/src/core/TransportController.ts b/packages/transport/src/core/TransportController.ts index 59e6662bc..3743cf316 100644 --- a/packages/transport/src/core/TransportController.ts +++ b/packages/transport/src/core/TransportController.ts @@ -30,7 +30,6 @@ export enum ControllerName { RelationshipTemplator = "RelationshipTemplator", Secret = "Secret", Sync = "Sync", - Tag = "Tag", Token = "Token" }