From df1fe540d0f1f435c748e2f2db41c1587776d4dd Mon Sep 17 00:00:00 2001 From: Nino Righi Date: Fri, 21 Nov 2025 14:30:01 +0000 Subject: [PATCH] Merged PR 2043: #5335 Endpoint Unlock wurde erweitert #5335 Endpoint Unlock wurde erweitert --- generated/swagger/crm-api/src/models.ts | 1 + .../src/models/loyalty-bon-item-response.ts | 28 ++ .../src/models/loyalty-bon-response.ts | 6 + .../src/services/loyalty-card.service.ts | 10 +- .../customer-bonus-cards.resource.ts | 5 + .../src/lib/schemas/unlock-card.schema.ts | 1 + .../src/lib/services/crm-search.service.ts | 1 + .../add-customer-card.component.ts | 11 +- .../lock-customer-card.component.ts | 10 + .../lib/customer-loyalty-cards.component.html | 2 +- package-lock.json | 407 +----------------- 11 files changed, 70 insertions(+), 412 deletions(-) create mode 100644 generated/swagger/crm-api/src/models/loyalty-bon-item-response.ts diff --git a/generated/swagger/crm-api/src/models.ts b/generated/swagger/crm-api/src/models.ts index 60b7c7499..f69530b11 100644 --- a/generated/swagger/crm-api/src/models.ts +++ b/generated/swagger/crm-api/src/models.ts @@ -108,6 +108,7 @@ export { ResponseArgsOfLoyaltyBookingInfoDTO } from './models/response-args-of-l export { LoyaltyBookingValues } from './models/loyalty-booking-values'; export { ResponseArgsOfLoyaltyBonResponse } from './models/response-args-of-loyalty-bon-response'; export { LoyaltyBonResponse } from './models/loyalty-bon-response'; +export { LoyaltyBonItemResponse } from './models/loyalty-bon-item-response'; export { LoyaltyBonValues } from './models/loyalty-bon-values'; export { ResponseArgsOfPayerDTO } from './models/response-args-of-payer-dto'; export { ResponseArgsOfShippingAddressDTO } from './models/response-args-of-shipping-address-dto'; diff --git a/generated/swagger/crm-api/src/models/loyalty-bon-item-response.ts b/generated/swagger/crm-api/src/models/loyalty-bon-item-response.ts new file mode 100644 index 000000000..046ee74ed --- /dev/null +++ b/generated/swagger/crm-api/src/models/loyalty-bon-item-response.ts @@ -0,0 +1,28 @@ +/* tslint:disable */ +export interface LoyaltyBonItemResponse { + + /** + * EAB + */ + ean?: string; + + /** + * Artikel + */ + name?: string; + + /** + * Warengruppe + */ + productGroup?: string; + + /** + * Menge + */ + quantity: number; + + /** + * Summe VK + */ + sum: number; +} diff --git a/generated/swagger/crm-api/src/models/loyalty-bon-response.ts b/generated/swagger/crm-api/src/models/loyalty-bon-response.ts index dc74a173b..3df50e903 100644 --- a/generated/swagger/crm-api/src/models/loyalty-bon-response.ts +++ b/generated/swagger/crm-api/src/models/loyalty-bon-response.ts @@ -1,4 +1,5 @@ /* tslint:disable */ +import { LoyaltyBonItemResponse } from './loyalty-bon-item-response'; export interface LoyaltyBonResponse { /** @@ -6,6 +7,11 @@ export interface LoyaltyBonResponse { */ date?: string; + /** + * Positionen + */ + items?: Array; + /** * Summe */ diff --git a/generated/swagger/crm-api/src/services/loyalty-card.service.ts b/generated/swagger/crm-api/src/services/loyalty-card.service.ts index d693fe7d9..91265e17c 100644 --- a/generated/swagger/crm-api/src/services/loyalty-card.service.ts +++ b/generated/swagger/crm-api/src/services/loyalty-card.service.ts @@ -27,7 +27,7 @@ class LoyaltyCardService extends __BaseService { static readonly LoyaltyCardLoyaltyBonCheckPath = '/loyalty/{cardCode}/bon/check'; static readonly LoyaltyCardLoyaltyBonAddPath = '/loyalty/{cardCode}/bon/add'; static readonly LoyaltyCardLockCardPath = '/loyalty/{cardCode}/lock'; - static readonly LoyaltyCardUnlockCardPath = '/loyalty/{cardCode}/unlock'; + static readonly LoyaltyCardUnlockCardPath = '/customer/{customerId}/loyalty/{cardCode}/unlock'; constructor( config: __Configuration, @@ -346,6 +346,8 @@ class LoyaltyCardService extends __BaseService { * Unlock card * @param params The `LoyaltyCardService.LoyaltyCardUnlockCardParams` containing the following parameters: * + * - `customerId`: + * * - `cardCode`: * * - `locale`: @@ -355,10 +357,11 @@ class LoyaltyCardService extends __BaseService { let __headers = new HttpHeaders(); let __body: any = null; + if (params.locale != null) __params = __params.set('locale', params.locale.toString()); let req = new HttpRequest( 'POST', - this.rootUrl + `/loyalty/${encodeURIComponent(String(params.cardCode))}/unlock`, + this.rootUrl + `/customer/${encodeURIComponent(String(params.customerId))}/loyalty/${encodeURIComponent(String(params.cardCode))}/unlock`, __body, { headers: __headers, @@ -377,6 +380,8 @@ class LoyaltyCardService extends __BaseService { * Unlock card * @param params The `LoyaltyCardService.LoyaltyCardUnlockCardParams` containing the following parameters: * + * - `customerId`: + * * - `cardCode`: * * - `locale`: @@ -437,6 +442,7 @@ module LoyaltyCardService { * Parameters for LoyaltyCardUnlockCard */ export interface LoyaltyCardUnlockCardParams { + customerId: number; cardCode: string; locale?: null | string; } diff --git a/libs/crm/data-access/src/lib/resources/customer-bonus-cards.resource.ts b/libs/crm/data-access/src/lib/resources/customer-bonus-cards.resource.ts index 0144912ee..0ac170274 100644 --- a/libs/crm/data-access/src/lib/resources/customer-bonus-cards.resource.ts +++ b/libs/crm/data-access/src/lib/resources/customer-bonus-cards.resource.ts @@ -37,6 +37,11 @@ export class CustomerBonusCardsResource { readonly #customerId = signal(undefined); + /** + * Current customer ID being loaded. + */ + readonly customerId = computed(() => this.#customerId()); + /** * Resource that loads bonus cards based on current parameters. * diff --git a/libs/crm/data-access/src/lib/schemas/unlock-card.schema.ts b/libs/crm/data-access/src/lib/schemas/unlock-card.schema.ts index 60a66b441..f978e8919 100644 --- a/libs/crm/data-access/src/lib/schemas/unlock-card.schema.ts +++ b/libs/crm/data-access/src/lib/schemas/unlock-card.schema.ts @@ -1,6 +1,7 @@ import { z } from 'zod'; export const UnlockCardSchema = z.object({ + customerId: z.number().describe('Unique customer identifier'), cardCode: z.string().describe('Unique card code identifier'), }); diff --git a/libs/crm/data-access/src/lib/services/crm-search.service.ts b/libs/crm/data-access/src/lib/services/crm-search.service.ts index ee7cf8c41..5d353b3d2 100644 --- a/libs/crm/data-access/src/lib/services/crm-search.service.ts +++ b/libs/crm/data-access/src/lib/services/crm-search.service.ts @@ -194,6 +194,7 @@ export class CrmSearchService { const req$ = this.#loyaltyCardService .LoyaltyCardUnlockCard({ + customerId: parsed.customerId, cardCode: parsed.cardCode, }) .pipe(catchResponseArgsErrorPipe()); diff --git a/libs/crm/feature/customer-loyalty-cards/src/lib/components/add-customer-card/add-customer-card.component.ts b/libs/crm/feature/customer-loyalty-cards/src/lib/components/add-customer-card/add-customer-card.component.ts index f3582f14c..0f82892f2 100644 --- a/libs/crm/feature/customer-loyalty-cards/src/lib/components/add-customer-card/add-customer-card.component.ts +++ b/libs/crm/feature/customer-loyalty-cards/src/lib/components/add-customer-card/add-customer-card.component.ts @@ -34,8 +34,6 @@ export class AddCustomerCardComponent implements OnDestroy { #textDialog = injectTextInputDialog(); #feedbackDialog = injectFeedbackDialog(); - readonly customerId = input.required(); - async addCardDialog() { this.#logger.debug('Opening add card dialog'); const dialogRef = this.#textDialog({ @@ -77,8 +75,15 @@ export class AddCustomerCardComponent implements OnDestroy { async addCard(cardCode: string) { this.#logger.info('Adding customer card', () => ({ cardCode })); + const customerId = this.#bonusCardsResource.customerId(); + + if (!customerId) { + this.#logger.warn('Cannot add card: customerId not available'); + return; + } + await this.#customerCardsFacade.addCard({ - customerId: this.customerId(), + customerId, loyaltyCardValues: { cardCode, }, diff --git a/libs/crm/feature/customer-loyalty-cards/src/lib/components/lock-customer-card/lock-customer-card.component.ts b/libs/crm/feature/customer-loyalty-cards/src/lib/components/lock-customer-card/lock-customer-card.component.ts index e320cf298..94134616a 100644 --- a/libs/crm/feature/customer-loyalty-cards/src/lib/components/lock-customer-card/lock-customer-card.component.ts +++ b/libs/crm/feature/customer-loyalty-cards/src/lib/components/lock-customer-card/lock-customer-card.component.ts @@ -39,6 +39,8 @@ export class LockCustomerCardComponent implements OnDestroy { readonly isActive = input.required(); readonly cardCode = input.required(); + readonly #customerId = this.#bonusCardsResource.customerId; + loading = signal(false); async lockCard() { @@ -69,11 +71,19 @@ export class LockCustomerCardComponent implements OnDestroy { } async unlockCard() { + const customerId = this.#customerId(); const cardCode = this.cardCode(); + + if (!customerId) { + this.#logger.warn('Cannot unlock card: customerId not available'); + return; + } + try { this.loading.set(true); await this.#customerCardsFacade.unlockCard({ cardCode, + customerId, }); this.#feedbackDialog({ data: { diff --git a/libs/crm/feature/customer-loyalty-cards/src/lib/customer-loyalty-cards.component.html b/libs/crm/feature/customer-loyalty-cards/src/lib/customer-loyalty-cards.component.html index 767790d1e..6976add2e 100644 --- a/libs/crm/feature/customer-loyalty-cards/src/lib/customer-loyalty-cards.component.html +++ b/libs/crm/feature/customer-loyalty-cards/src/lib/customer-loyalty-cards.component.html @@ -30,6 +30,6 @@ - + } diff --git a/package-lock.json b/package-lock.json index d02cf3349..e59fa4e67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6617,110 +6617,6 @@ "win32" ] }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", - "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mapbox/node-pre-gyp/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", - "optional": true - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir/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", - "optional": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@mdx-js/react": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", @@ -15258,30 +15154,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/aproba": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", - "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", - "dev": true, - "license": "ISC", - "optional": true - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -16774,17 +16646,6 @@ "dev": true, "license": "MIT" }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "color-support": "bin.js" - } - }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", @@ -16972,14 +16833,6 @@ "node": ">=0.8" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true, - "license": "ISC", - "optional": true - }, "node_modules/content-disposition": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", @@ -18461,20 +18314,6 @@ "dev": true, "license": "MIT" }, - "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dedent": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", @@ -19016,6 +18855,7 @@ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "iconv-lite": "^0.6.2" } @@ -20734,72 +20574,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gauge/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==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/gauge/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==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/gauge/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", - "optional": true - }, - "node_modules/gauge/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==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/generator-function": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", @@ -21269,14 +21043,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true, - "license": "ISC", - "optional": true - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -28866,20 +28632,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -29235,14 +28987,6 @@ "thenify-all": "^1.0.0" } }, - "node_modules/nan": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.23.1.tgz", - "integrity": "sha512-r7bBUGKzlqk8oPBDYxt6Z0aEdF1G1rwlMcLk8LCOMbOzf0mG+JUfUzG4fIMWwHWP0iyaLWEQZJmtB7nOHEm/qw==", - "dev": true, - "license": "MIT", - "optional": true - }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -29957,21 +29701,6 @@ "node": ">=8" } }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -33047,73 +32776,6 @@ "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", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/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", - "optional": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/roarr": { "version": "2.15.4", "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", @@ -34150,14 +33812,6 @@ "node": ">= 18" } }, - "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==", - "dev": true, - "license": "ISC", - "optional": true - }, "node_modules/set-cookie-parser": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", @@ -34355,19 +34009,6 @@ "license": "MIT", "optional": true }, - "node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, "node_modules/sirv": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", @@ -38207,52 +37848,6 @@ "node": ">=8" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wide-align/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==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/wide-align/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==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wide-align/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==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",