From 36acf417b8ce71cad2ab3f0630b7be2a4476e5b0 Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Mon, 16 Dec 2024 09:42:53 -0700 Subject: [PATCH 01/14] chore: outputs-setup changes outputs for e2e suites to be in .playwright of project root updates dynamic changesets to save ci computation update eslint ignore files --- .github/workflows/ci.yml | 5 ++--- .github/workflows/publish.yml | 5 ++--- .nx/workflows/dynamic-changesets.yml | 7 ++++--- e2e/autoscript-suites/.eslintignore | 3 ++- e2e/autoscript-suites/playwright.config.ts | 4 ++-- e2e/davinci-suites/.eslintignore | 3 ++- e2e/davinci-suites/playwright.config.ts | 1 + e2e/token-vault-suites/.eslintignore | 3 ++- e2e/token-vault-suites/playwright.config.ts | 1 + nx.json | 6 +++++- 10 files changed, 23 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4cae4ebb8..2952ef6d4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: # This line enables distribution # The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e-ci" targets have been requested - - run: pnpm dlx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" --verbose + - run: pnpm dlx nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yml" --stop-agents-after="e2e-ci" --verbose - run: pnpm exec playwright install @@ -46,6 +46,5 @@ jobs: with: name: playwright-report path: | - ./dist/.playwright/** - ./dist/** + ./**/.playwright/** retention-days: 30 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e1e93705a..bf27b65cd 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -37,7 +37,7 @@ jobs: # This line enables distribution # The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e-ci" targets have been requested - - run: pnpm dlx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" --verbose + - run: pnpm dlx nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yml" --stop-agents-after="e2e-ci" --verbose - run: pnpm exec playwright install @@ -55,8 +55,7 @@ jobs: with: name: playwright-report path: | - ./dist/.playwright/** - ./dist/** + ./**/.playwright/** retention-days: 30 - run: git status diff --git a/.nx/workflows/dynamic-changesets.yml b/.nx/workflows/dynamic-changesets.yml index d3536f3ba..ae47c2dd9 100644 --- a/.nx/workflows/dynamic-changesets.yml +++ b/.nx/workflows/dynamic-changesets.yml @@ -1,4 +1,5 @@ distribute-on: - small-changeset: 3 linux-medium-js - medium-changeset: 6 linux-medium-js - large-changeset: 10 linux-medium-js + small-changeset: 3 linux-medium-js # Distribute on small if 1-25% of projects affected in PR + medium-changeset: 6 linux-medium-js # Distribute on medium if 26-50% of projects affected in PR + large-changeset: 10 linux-medium-js # Distribute on large if 51-75% of projects affected in PR + extra-large-changeset: 15 linux-medium-js # Distribute on extra-large if 76-100% of projects affected in PR diff --git a/e2e/autoscript-suites/.eslintignore b/e2e/autoscript-suites/.eslintignore index 7eb3b6427..ddb904672 100644 --- a/e2e/autoscript-suites/.eslintignore +++ b/e2e/autoscript-suites/.eslintignore @@ -6,4 +6,5 @@ LICENSE .bin dist .eslintignore -*.html \ No newline at end of file +*.html +.playwright/ diff --git a/e2e/autoscript-suites/playwright.config.ts b/e2e/autoscript-suites/playwright.config.ts index 8834f9782..d54635050 100644 --- a/e2e/autoscript-suites/playwright.config.ts +++ b/e2e/autoscript-suites/playwright.config.ts @@ -1,5 +1,4 @@ import * as os from 'os'; -import { PlaywrightTestConfig } from '@playwright/test'; import { nxE2EPreset } from '@nx/playwright/preset'; import { workspaceRoot } from '@nx/devkit'; import { fileURLToPath } from 'url'; @@ -13,8 +12,9 @@ const baseConfig = nxE2EPreset(__filename, { testDir: './src/suites', }); -const config: PlaywrightTestConfig = { +const config = { ...baseConfig, + outputDir: './.playwright', reporter: process.env.CI ? 'github' : 'list', testIgnore: '**/authz-txn*', use: { diff --git a/e2e/davinci-suites/.eslintignore b/e2e/davinci-suites/.eslintignore index 7787c22e4..82f30765b 100644 --- a/e2e/davinci-suites/.eslintignore +++ b/e2e/davinci-suites/.eslintignore @@ -1,3 +1,4 @@ +.playwright/ node_modules *.md LICENSE @@ -5,4 +6,4 @@ LICENSE .env* .bin dist -.eslintignore \ No newline at end of file +.eslintignore diff --git a/e2e/davinci-suites/playwright.config.ts b/e2e/davinci-suites/playwright.config.ts index 7437f157b..d6355155b 100644 --- a/e2e/davinci-suites/playwright.config.ts +++ b/e2e/davinci-suites/playwright.config.ts @@ -14,6 +14,7 @@ const baseConfig = nxE2EPreset(__filename, { const config: PlaywrightTestConfig = { ...baseConfig, + outputDir: './.playwright', reporter: process.env.CI ? 'github' : 'list', timeout: 30000, use: { diff --git a/e2e/token-vault-suites/.eslintignore b/e2e/token-vault-suites/.eslintignore index 7787c22e4..ffffb3d75 100644 --- a/e2e/token-vault-suites/.eslintignore +++ b/e2e/token-vault-suites/.eslintignore @@ -5,4 +5,5 @@ LICENSE .env* .bin dist -.eslintignore \ No newline at end of file +.eslintignore +./.playwright diff --git a/e2e/token-vault-suites/playwright.config.ts b/e2e/token-vault-suites/playwright.config.ts index c60fb1315..b9e0a77f6 100644 --- a/e2e/token-vault-suites/playwright.config.ts +++ b/e2e/token-vault-suites/playwright.config.ts @@ -14,6 +14,7 @@ const baseConfig = nxE2EPreset(__filename, { const config: PlaywrightTestConfig = { ...baseConfig, + outputDir: './.playwright', reporter: process.env.CI ? 'github' : 'list', timeout: 30000, use: { diff --git a/nx.json b/nx.json index e6f043f2c..146a6c3f0 100644 --- a/nx.json +++ b/nx.json @@ -29,6 +29,7 @@ "e2e": { "dependsOn": ["^build"], "inputs": ["noMarkdown", "^noMarkdown"], + "outputs": ["{projectRoot}/.playwright"], "cache": true }, "build": { @@ -57,16 +58,19 @@ "@nx/playwright:run": { "dependsOn": ["^build"], "inputs": ["noMarkdown", "^noMarkdown"], + "outputs": ["{projectRoot}/.playwright"], "cache": true }, "@nx/esbuild:esbuild": { "dependsOn": ["^build"], "cache": true, - "inputs": ["noMarkdown", "^noMarkdown"] + "inputs": ["noMarkdown", "^noMarkdown"], + "outputs": ["{projectRoot}/dist"] }, "e2e-ci--**/*": { "dependsOn": ["^build"], "inputs": ["noMarkdown", "^noMarkdown"], + "outputs": ["{projectRoot}/.playwright"], "cache": true }, "@nx/js:tsc": { From b48e7e1576caa572d12f45c04fdbdee6361f83e9 Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Sun, 24 Nov 2024 10:38:37 -0700 Subject: [PATCH 02/14] chore: remove-project-json This removes all instances of a project.json file. This is just for demonstration purposes. This type of setup uses `nx` more as a background task and uses `pnpm` to execute scripts. Its not very different than the existing setup the core difference is you must reference a project based on the name in its `package.json` file rather than the short-name that the project.json defined. --- e2e/autoscript-apps/package.json | 10 +- e2e/autoscript-suites/package.json | 16 +- e2e/autoscript-suites/playwright.config.ts | 6 +- e2e/autoscript-suites/project.json | 30 - e2e/autoscript-suites/src/env.setup.ts | 29 - e2e/autoscript-suites/tsconfig.spec.json | 4 +- e2e/davinci-app/package.json | 10 +- e2e/davinci-app/project.json | 44 - e2e/mock-api-v2/package.json | 25 +- e2e/mock-api-v2/project.json | 86 - e2e/mock-api/package.json | 10 +- e2e/mock-api/project.json | 50 - e2e/mock-api/tsconfig.app.json | 6 +- e2e/token-vault-app/package.json | 11 +- e2e/token-vault-app/project.json | 46 - e2e/token-vault-interceptor/package.json | 7 +- e2e/token-vault-interceptor/project.json | 32 - e2e/token-vault-proxy/package.json | 11 +- e2e/token-vault-proxy/project.json | 47 - e2e/token-vault-suites/package.json | 16 +- e2e/token-vault-suites/playwright.config.ts | 6 +- e2e/token-vault-suites/project.json | 25 - packages/davinci-client/package.json | 11 +- packages/davinci-client/project.json | 44 - packages/device-client/package.json | 10 +- packages/device-client/project.json | 43 - packages/javascript-sdk/package.json | 11 +- packages/javascript-sdk/project.json | 47 - .../attribute-input-callback.test.ts | 1 + .../callbacks/text-input-callback.test.ts | 1 + ...validated-create-password-callback.test.ts | 1 + ...validated-create-username-callback.test.ts | 1 + .../fr-recovery-codes/script-parser.test.ts | 1 + .../src/fr-webauthn/helpers.test.ts | 1 + packages/javascript-sdk/src/util/url.test.ts | 1 + packages/javascript-sdk/tsconfig.spec.json | 1 + packages/ping-protect/package.json | 6 + packages/ping-protect/project.json | 44 - packages/token-vault/package.json | 6 + packages/token-vault/project.json | 46 - pnpm-lock.yaml | 12112 ++++------------ 41 files changed, 3286 insertions(+), 9629 deletions(-) delete mode 100644 e2e/autoscript-suites/project.json delete mode 100644 e2e/autoscript-suites/src/env.setup.ts delete mode 100644 e2e/davinci-app/project.json delete mode 100644 e2e/mock-api-v2/project.json delete mode 100644 e2e/mock-api/project.json delete mode 100644 e2e/token-vault-app/project.json delete mode 100644 e2e/token-vault-interceptor/project.json delete mode 100644 e2e/token-vault-proxy/project.json delete mode 100644 e2e/token-vault-suites/project.json delete mode 100644 packages/davinci-client/project.json delete mode 100644 packages/device-client/project.json delete mode 100644 packages/javascript-sdk/project.json delete mode 100644 packages/ping-protect/project.json delete mode 100644 packages/token-vault/project.json diff --git a/e2e/autoscript-apps/package.json b/e2e/autoscript-apps/package.json index 746907575..3a538bcce 100644 --- a/e2e/autoscript-apps/package.json +++ b/e2e/autoscript-apps/package.json @@ -1,5 +1,5 @@ { - "name": "autoscript-apps", + "name": "@forgerock/autoscript-apps", "version": "0.0.0", "private": true, "type": "module", @@ -18,5 +18,11 @@ "bugs": { "url": "https://github.com/ForgeRock/forgerock-javascript-sdk/issues" }, - "homepage": "https://github.com/ForgeRock/forgerock-javascript-sdk#readme" + "homepage": "https://github.com/ForgeRock/forgerock-javascript-sdk#readme", + "scripts": { + "build": "vite build --watch false", + "build:watch": "vite --watch", + "serve": "vite dev", + "preview": "vite preview" + } } diff --git a/e2e/autoscript-suites/package.json b/e2e/autoscript-suites/package.json index 637a71c79..670fafe3c 100644 --- a/e2e/autoscript-suites/package.json +++ b/e2e/autoscript-suites/package.json @@ -1,5 +1,5 @@ { - "name": "autoscript-suites", + "name": "@forgerock/autoscript-suites", "version": "0.0.0", "private": true, "description": "ForgeRock JavaScript SDK E2E Suites", @@ -15,5 +15,17 @@ "url": "https://github.com/ForgeRock/forgerock-javascript-sdk/issues" }, "homepage": "https://github.com/ForgeRock/forgerock-javascript-sdk#readme", - "dependencies": {} + "dependencies": {}, + "scripts": { + "e2e": "playwright test", + "e2e:ui": "playwright test --ui", + "lint": "eslint **/*.ts" + }, + "nx": { + "implicitDependencies": [ + "@forgerock/autoscript-apps", + "@forgerock/mock-api", + "@forgerock/mock-api-v2" + ] + } } diff --git a/e2e/autoscript-suites/playwright.config.ts b/e2e/autoscript-suites/playwright.config.ts index d54635050..63d4c4076 100644 --- a/e2e/autoscript-suites/playwright.config.ts +++ b/e2e/autoscript-suites/playwright.config.ts @@ -39,21 +39,21 @@ const config = { ].filter(Boolean), webServer: [ { - command: 'pnpm nx serve mock-api', + command: 'pnpm nx serve @forgerock/mock-api', url: 'http://localhost:9443/healthcheck', ignoreHTTPSErrors: true, reuseExistingServer: !process.env.CI, cwd: workspaceRoot, }, { - command: 'pnpm nx serve mock-api-v2', + command: 'pnpm nx serve @forgerock/mock-api-v2', url: 'http://localhost:9444/healthcheck', ignoreHTTPSErrors: true, reuseExistingServer: !process.env.CI, cwd: workspaceRoot, }, { - command: 'pnpm nx serve autoscript-apps', + command: 'pnpm nx serve @forgerock/autoscript-apps', url: 'http://localhost:8443', ignoreHTTPSErrors: true, reuseExistingServer: !process.env.CI, diff --git a/e2e/autoscript-suites/project.json b/e2e/autoscript-suites/project.json deleted file mode 100644 index 69d7d9a46..000000000 --- a/e2e/autoscript-suites/project.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "autoscript-suites", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "e2e/autoscript-suites/src", - "projectType": "application", - "tags": [], - "implicitDependencies": ["autoscript-apps", "mock-api", "mock-api-v2"], - "targets": { - "e2e": { - "options": {}, - "configurations": { - "ui": { - "ui": true, - "headed": true - } - } - }, - "cbt": { - "command": "pnpm browserstack-node-sdk playwright test --config ./e2e/autoscript-suites/playwright.config.cbt.ts", - "cwd": "e2e/autoscript-suites" - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - } - } -} diff --git a/e2e/autoscript-suites/src/env.setup.ts b/e2e/autoscript-suites/src/env.setup.ts deleted file mode 100644 index 6997f54ce..000000000 --- a/e2e/autoscript-suites/src/env.setup.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * env.setup.js - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { setup as setupDevServer } from 'jest-dev-server'; - -const liveServers = [ - { - command: 'pnpm run start:server:live', - port: 9443, - }, -]; -const mockServers = [ - { - command: 'pnpm run start:server', - port: 9443, - }, -]; -const servers = process.env.LIVE === 'true' ? liveServers : mockServers; - -module.exports = async () => { - await setupDevServer(servers); -}; diff --git a/e2e/autoscript-suites/tsconfig.spec.json b/e2e/autoscript-suites/tsconfig.spec.json index d48ccb404..f1d3e2bb3 100644 --- a/e2e/autoscript-suites/tsconfig.spec.json +++ b/e2e/autoscript-suites/tsconfig.spec.json @@ -2,8 +2,10 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "../../dist/e2e/javascript-sdk-app/", + "composite": true, "strict": false, - "noImplicitAny": false + "noImplicitAny": false, + "module": "NodeNext" }, "include": [ "playwright.config.ts", diff --git a/e2e/davinci-app/package.json b/e2e/davinci-app/package.json index 44dcf7c8b..7c0aecad3 100644 --- a/e2e/davinci-app/package.json +++ b/e2e/davinci-app/package.json @@ -1,5 +1,5 @@ { - "name": "davinci-app", + "name": "@forgerock/davinci-app", "description": "Ping DaVinci Client Test App", "type": "module", "private": true, @@ -8,5 +8,11 @@ "@forgerock/javascript-sdk": "workspace:*" }, "devDependencies": {}, - "version": "0.0.0" + "version": "0.0.0", + "scripts": { + "build": "vite build --watch false", + "dev": "vite dev", + "preview": "vite preview", + "lint": "eslint **/*.ts --fix" + } } diff --git a/e2e/davinci-app/project.json b/e2e/davinci-app/project.json deleted file mode 100644 index 18d0f6681..000000000 --- a/e2e/davinci-app/project.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "davinci-app", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "projectType": "application", - "sourceRoot": "e2e/davinci-app/src", - "tags": ["scope:app"], - "targets": { - "build": { - "outputs": [ - "{projectRoot}/{options.outDir}", - "{workspaceRoot}/dist/e2e/davinci-app" - ], - "options": { - "emptyOutDir": false, - "outDir": "../../dist/e2e/davinci-app" - } - }, - "serve": { - "defaultConfiguration": "development", - "options": { - "host": "localhost", - "port": 5829 - }, - "configurations": { - "development": {}, - "production": {} - } - }, - "preview": { - "defaultConfiguration": "development", - "configurations": { - "development": {}, - "production": {} - } - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - } - } -} diff --git a/e2e/mock-api-v2/package.json b/e2e/mock-api-v2/package.json index 0a7acb646..091526677 100644 --- a/e2e/mock-api-v2/package.json +++ b/e2e/mock-api-v2/package.json @@ -1,13 +1,18 @@ { - "name": "mock-api", - "version": "0.0.0", - "private": true, + "name": "@forgerock/mock-api-v2", + "version": "1.0.0", "description": "", - "main": "./dist/index.js", - "module": "./dist/index.js", - "exports": "./dist/index.js", - "keywords": [], - "author": "", - "type": "module", - "license": "ISC" + "main": "index.js", + "scripts": { + "build": "esbuild \"src/**/*.ts\" --platform=node --outdir=dist --format=cjs --sourcemap --bundle=false", + "build:watch": "esbuild \"src/**/*.ts\" --platform=node --outdir=dist --format=cjs --sourcemap --bundle=false --watch", + "build:prod": "esbuild \"src/**/*.ts\" --platform=node --outdir=dist --format=cjs --bundle=false", + "build:example": "esbuild \"src/**/*.ts\" --platform=node --outdir=dist --format=cjs --sourcemap --bundle=false", + "serve": "node dist/main.js", + "serve:dev": "nodemon dist/main.js", + "serve:example": "node dist/example-server.js", + "test": "vitest run --coverage --coverage.reportsDirectory=../../coverage/mock-api-v2", + "test:watch": "vitest watch --coverage --coverage.reportsDirectory=../../coverage/mock-api-v2", + "lint": "eslint --fix --ignore-path .eslintignore \"**/*.ts\"" + } } diff --git a/e2e/mock-api-v2/project.json b/e2e/mock-api-v2/project.json deleted file mode 100644 index 2d8ac9a4d..000000000 --- a/e2e/mock-api-v2/project.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "mock-api-v2", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "e2e/mock-api-v2/src", - "projectType": "application", - "tags": ["e2e"], - "targets": { - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": ["{projectRoot}/dist"], - "defaultConfiguration": "production", - "options": { - "platform": "node", - "outputPath": "e2e/mock-api-v2/dist", - "format": ["esm"], - "bundle": true, - "main": "e2e/mock-api-v2/src/main.ts", - "tsConfig": "e2e/mock-api-v2/tsconfig.app.json", - "assets": ["e2e/mock-api-v2/src/assets"], - "generatePackageJson": false, - "esbuildOptions": { - "sourcemap": true, - "outExtension": { - ".js": ".js" - } - } - }, - "configurations": { - "development": { - "watch": true - }, - "example-server": { - "main": "e2e/mock-api-v2/src/example-server.ts" - }, - "production": { - "esbuildOptions": { - "sourcemap": false, - "outExtension": { - ".js": ".js" - } - } - } - } - }, - "serve": { - "executor": "@nx/js:node", - "defaultConfiguration": "development", - "options": { - "buildTarget": "mock-api-v2:build" - }, - "configurations": { - "example-server": { - "buildTarget": "mock-api-v2:build:example-server" - }, - "production": { - "buildTarget": "mock-api-v2:build:production" - } - } - }, - "test": { - "inputs": [ - "default", - "^default", - { - "externalDependencies": ["vitest"] - } - ], - "outputs": [ - "{projectRoot}/{options.coverage.reportsDirectory}", - "{workspaceRoot}/coverage/e2e/mock-api-v2" - ], - "configurations": { - "watch": { - "watch": true - } - } - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - } - } -} diff --git a/e2e/mock-api/package.json b/e2e/mock-api/package.json index 8180b1ce5..07764ab2e 100644 --- a/e2e/mock-api/package.json +++ b/e2e/mock-api/package.json @@ -1,5 +1,5 @@ { - "name": "mock-api", + "name": "@forgerock/mock-api", "version": "0.0.0", "private": true, "description": "", @@ -7,5 +7,11 @@ "keywords": [], "author": "", "type": "commonjs", - "license": "ISC" + "license": "ISC", + "scripts": { + "build": "tsc --project ./tsconfig.app.json", + "build:watch": "tsc --project ./tsconfig.app.json --watch", + "serve": "node dist/e2e/mock-api/src/index.js", + "lint": "eslint **/*.ts --fix" + } } diff --git a/e2e/mock-api/project.json b/e2e/mock-api/project.json deleted file mode 100644 index c82029329..000000000 --- a/e2e/mock-api/project.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "mock-api", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "e2e/mock-api/src", - "projectType": "application", - "tags": ["scope:e2e"], - "targets": { - "build": { - "executor": "@nx/js:tsc", - "outputs": ["{projectRoot}/dist"], - "options": { - "outputPath": "e2e/mock-api/dist", - "main": "e2e/mock-api/src/index.js", - "clean": true, - "tsConfig": "e2e/mock-api/tsconfig.app.json", - "assets": ["e2e/mock-api/src/assets", "e2e/mock-api/package.json"] - }, - "configurations": { - "development": { - "watch": true - }, - "production": { - "optimization": true, - "extractLicenses": true, - "inspect": false, - "fileReplacements": [ - { - "replace": "e2e/mock-api/src/environments/environment.ts", - "with": "e2e/mock-api/src/environments/environment.prod.ts" - } - ] - } - } - }, - "serve": { - "executor": "@nx/js:node", - "outputs": ["{projectRoot}/dist"], - "options": { - "buildTarget": "mock-api:build" - } - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - } - } -} diff --git a/e2e/mock-api/tsconfig.app.json b/e2e/mock-api/tsconfig.app.json index 5140abd9d..a60f0bd1b 100644 --- a/e2e/mock-api/tsconfig.app.json +++ b/e2e/mock-api/tsconfig.app.json @@ -1,13 +1,11 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "outDir": "../../dist/out-tsc", + "outDir": "./dist", "module": "Node16", "moduleResolution": "Node16", - "target": "ES6", "composite": true, - "allowJs": true, - "types": ["node", "express"] + "allowJs": true }, "exclude": ["**/*.spec.ts", "**/*.test.ts", "dist"], "include": ["**/*.ts", "**/*.js"] diff --git a/e2e/token-vault-app/package.json b/e2e/token-vault-app/package.json index a95e4ca36..b4756f356 100644 --- a/e2e/token-vault-app/package.json +++ b/e2e/token-vault-app/package.json @@ -1,5 +1,5 @@ { - "name": "token-vault-app", + "name": "@forgerock/token-vault-app", "description": "ForgeRock Token Vault Test App", "private": true, "type": "module", @@ -8,5 +8,12 @@ "@forgerock/token-vault": "workspace:*", "@forgerock/token-vault-interceptor": "workspace:*" }, - "version": "0.0.0" + "version": "0.0.0", + "scripts": { + "build": "vite build --emptyOutDir false --watch false", + "build:dev": "vite build --mode development --emptyOutDir false", + "dev": "vite --host localhost --port 5823", + "preview": "vite preview --host localhost --port 5823", + "lint": "eslint --fix --ignore-path .eslintignore \"**/*.ts\"" + } } diff --git a/e2e/token-vault-app/project.json b/e2e/token-vault-app/project.json deleted file mode 100644 index 7193a7eae..000000000 --- a/e2e/token-vault-app/project.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "token-vault-app", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "projectType": "application", - "sourceRoot": "e2e/token-vault-app/src", - "tags": ["scope:app"], - "targets": { - "build": { - "inputs": ["default", "^default"], - "outputs": ["{projectRoot}/dist"], - "options": { - "emptyOutDir": false - }, - "configurations": { - "development": { - "mode": "development" - } - } - }, - "serve": { - "defaultConfiguration": "development", - "options": { - "host": "localhost", - "port": 5823 - }, - "configurations": { - "development": {}, - "production": {} - } - }, - "preview": { - "defaultConfiguration": "development", - "configurations": { - "development": {}, - "production": {} - } - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - } - } -} diff --git a/e2e/token-vault-interceptor/package.json b/e2e/token-vault-interceptor/package.json index 0b7d8a019..3fe66dec3 100644 --- a/e2e/token-vault-interceptor/package.json +++ b/e2e/token-vault-interceptor/package.json @@ -8,5 +8,10 @@ "module": "./dist/index.iife.js", "exports": "./dist/index.iife.js", "typings": "./dist/index.d.ts", - "private": true + "private": true, + "scripts": { + "build": "vite build --mode production --emptyOutDir false", + "build:dev": "vite build --mode development --emptyOutDir false", + "lint": "eslint --fix --ignore-path .eslintignore \"**/*.ts\"" + } } diff --git a/e2e/token-vault-interceptor/project.json b/e2e/token-vault-interceptor/project.json deleted file mode 100644 index e1ecf6887..000000000 --- a/e2e/token-vault-interceptor/project.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "@forgerock/token-vault-interceptor", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "e2e/token-vault-interceptor/src", - "projectType": "library", - "tags": ["scope:app"], - "targets": { - "build": { - "inputs": ["default", "^default"], - "outputs": ["{projectRoot}/dist"], - "defaultConfiguration": "production", - "options": { - "emptyOutDir": false - }, - "configurations": { - "development": { - "mode": "development" - }, - "production": { - "mode": "production" - } - } - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - } - } -} diff --git a/e2e/token-vault-proxy/package.json b/e2e/token-vault-proxy/package.json index a7bf9c53b..d07de7d1e 100644 --- a/e2e/token-vault-proxy/package.json +++ b/e2e/token-vault-proxy/package.json @@ -1,5 +1,5 @@ { - "name": "token-vault-proxy", + "name": "@forgerock/token-vault-proxy", "version": "0.0.0", "description": "ForgeRock Token Vault Test Proxy", "private": true, @@ -8,5 +8,12 @@ "@forgerock/javascript-sdk": "workspace:*", "@forgerock/token-vault": "workspace:*" }, - "devDependencies": {} + "devDependencies": {}, + "scripts": { + "build": "vite build --mode production", + "build:dev": "vite build --mode development", + "start": "vite --host localhost --port 5833", + "preview": "vite preview --host localhost --port 5833", + "lint": "eslint --fix --ignore-path .eslintignore \"src/**/*.ts\"" + } } diff --git a/e2e/token-vault-proxy/project.json b/e2e/token-vault-proxy/project.json deleted file mode 100644 index 67f6bc307..000000000 --- a/e2e/token-vault-proxy/project.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "token-vault-proxy", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "projectType": "application", - "sourceRoot": "e2e/token-vault-proxy/src", - "tags": ["scope:app"], - "targets": { - "build": { - "inputs": ["default", "^default"], - "outputs": ["{projectRoot}/dist"], - "defaultConfiguration": "production", - "configurations": { - "development": { - "mode": "development" - }, - "production": { - "mode": "production" - } - } - }, - "serve": { - "defaultConfiguration": "development", - "options": { - "host": "localhost", - "port": 5833 - }, - "configurations": { - "development": {}, - "production": {} - } - }, - "preview": { - "defaultConfiguration": "development", - "configurations": { - "development": {}, - "production": {} - } - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - } - } -} diff --git a/e2e/token-vault-suites/package.json b/e2e/token-vault-suites/package.json index 8c7b059b7..836ce1488 100644 --- a/e2e/token-vault-suites/package.json +++ b/e2e/token-vault-suites/package.json @@ -1,5 +1,5 @@ { - "name": "token-vault-suites", + "name": "@forgerock/token-vault-suites", "description": "ForgeRock Token Vault E2E Suites", "private": true, "type": "module", @@ -14,5 +14,17 @@ "bugs": { "url": "https://github.com/ForgeRock/forgerock-javascript-sdk/issues" }, - "homepage": "https://github.com/ForgeRock/forgerock-javascript-sdk#readme" + "homepage": "https://github.com/ForgeRock/forgerock-javascript-sdk#readme", + "scripts": { + "e2e": "playwright test", + "e2e:ui": "playwright test --ui", + "lint": "eslint --fix --ignore-path .eslintignore \"src/**/*.ts\"" + }, + "nx": { + "implicitDependencies": [ + "@forgerock/token-vault-app", + "@forgerock/mock-api", + "@forgerock/mock-api-v2" + ] + } } diff --git a/e2e/token-vault-suites/playwright.config.ts b/e2e/token-vault-suites/playwright.config.ts index b9e0a77f6..af0f627dc 100644 --- a/e2e/token-vault-suites/playwright.config.ts +++ b/e2e/token-vault-suites/playwright.config.ts @@ -26,21 +26,21 @@ const config: PlaywrightTestConfig = { }, webServer: [ { - command: 'pnpm nx serve mock-api', + command: 'pnpm nx serve @forgerock/mock-api', url: 'http://localhost:9443/healthcheck', ignoreHTTPSErrors: true, reuseExistingServer: !process.env.CI, cwd: workspaceRoot, }, { - command: 'pnpm nx serve token-vault-proxy', + command: 'pnpm nx serve @forgerock/token-vault-proxy', port: 5833, ignoreHTTPSErrors: true, reuseExistingServer: !process.env.CI, cwd: workspaceRoot, }, { - command: 'pnpm nx serve token-vault-app', + command: 'pnpm nx serve @forgerock/token-vault-app', port: 5823, ignoreHTTPSErrors: true, reuseExistingServer: !process.env.CI, diff --git a/e2e/token-vault-suites/project.json b/e2e/token-vault-suites/project.json deleted file mode 100644 index 733a05908..000000000 --- a/e2e/token-vault-suites/project.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "token-vault-suites", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "/e2e/token-vault-suites/src", - "projectType": "application", - "tags": ["scope:e2e"], - "implicitDependencies": ["token-vault-app", "token-vault-proxy"], - "targets": { - "e2e": { - "options": {}, - "configurations": { - "ui": { - "ui": true - } - } - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - } - } -} diff --git a/packages/davinci-client/package.json b/packages/davinci-client/package.json index 5ca2ec646..47707f618 100644 --- a/packages/davinci-client/package.json +++ b/packages/davinci-client/package.json @@ -17,7 +17,9 @@ "dependencies": { "@forgerock/javascript-sdk": "workspace:*", "@reduxjs/toolkit": "2.3.0", - "immer": "10.1.1", + "immer": "10.1.1" + }, + "devDependencies": { "vitest": "^1.4.0" }, "exports": { @@ -26,5 +28,12 @@ "require": "./dist/index.js" }, "./types": "./dist/types.d.ts" + }, + "scripts": { + "build": "vite build", + "test": "vitest", + "test:watch": "vitest --watch", + "test:coverage": "vitest --coverage", + "lint": "eslint **/*.ts --fix" } } diff --git a/packages/davinci-client/project.json b/packages/davinci-client/project.json deleted file mode 100644 index 7369a18a1..000000000 --- a/packages/davinci-client/project.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "davinci-client", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "packages/davinci-client/src", - "projectType": "library", - "tags": ["scope:package"], - "targets": { - "docs": { - "command": "pnpm typedoc --options {projectRoot}/typedoc.json" - }, - "build": { - "inputs": [ - "default", - "^default", - { - "externalDependencies": ["vite"] - } - ], - "outputs": ["{projectRoot}/dist"] - }, - "test": { - "inputs": [ - "noMarkdown", - "^noMarkdown", - { - "externalDependencies": ["vitest"] - } - ] - }, - "lint": { - "inputs": [ - "noMarkdown", - "^noMarkdown", - { - "externalDependencies": ["eslint"] - } - ], - "options": { - "fix": true, - "args": ["**/*.ts"] - } - } - } -} diff --git a/packages/device-client/package.json b/packages/device-client/package.json index 312567fc0..1a80a74c7 100644 --- a/packages/device-client/package.json +++ b/packages/device-client/package.json @@ -15,10 +15,18 @@ "files": ["./dist"], "dependencies": { "@reduxjs/toolkit": "2.3.0", - "@forgerock/javascript-sdk": "4.6.0" + "@forgerock/javascript-sdk": "4.6.0", + "immer": "10.1.1" }, "devDependencies": { "msw": "^2.5.1", "vitest": "^1.4.0" + }, + "scripts": { + "build": "vite build", + "test": "vitest", + "test:watch": "vitest --watch", + "test:coverage": "vitest --coverage", + "lint": "eslint **/*.ts --fix" } } diff --git a/packages/device-client/project.json b/packages/device-client/project.json deleted file mode 100644 index f6337495b..000000000 --- a/packages/device-client/project.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "device-client", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "packages/self-service/src", - "projectType": "library", - "tags": ["scope:package"], - "targets": { - "docs": { - "command": "pnpm typedoc --options {projectRoot}/typedoc.json" - }, - "build": { - "outputs": ["{projectRoot}/{options.outDir}", "{projectRoot}/dist"], - "options": { - "assets": ["packages/self-service/*.md"] - } - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - }, - "test": { - "inputs": [ - "default", - "^default", - { - "externalDependencies": ["vitest"] - } - ], - "options": { - "testPathPattern": ["packages/javascript-sdk/src"] - }, - "configurations": { - "watch": { - "watch": true, - "mode": "ui" - } - } - } - } -} diff --git a/packages/javascript-sdk/package.json b/packages/javascript-sdk/package.json index ad8ece6c5..c398f085c 100644 --- a/packages/javascript-sdk/package.json +++ b/packages/javascript-sdk/package.json @@ -50,5 +50,14 @@ } } }, - "type": "module" + "type": "module", + "devDependencies": { + "vitest": "^1.4.0" + }, + "scripts": { + "build": "vite build", + "test": "vitest", + "test:coverage": "vitest --coverage", + "lint": "eslint **/*.ts --fix" + } } diff --git a/packages/javascript-sdk/project.json b/packages/javascript-sdk/project.json deleted file mode 100644 index 3f07bf934..000000000 --- a/packages/javascript-sdk/project.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "javascript-sdk", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "packages/javascript-sdk/src", - "projectType": "library", - "tags": ["scope:sdk"], - "targets": { - "docs": { - "command": "pnpm typedoc --options {projectRoot}/typedoc.json" - }, - "build": { - "inputs": [ - "default", - "^default", - { - "externalDependencies": ["vite"] - } - ], - "outputs": ["{projectRoot}/dist"] - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - }, - "test": { - "inputs": [ - "default", - "^default", - { - "externalDependencies": ["vitest"] - } - ], - "options": { - "testPathPattern": ["packages/javascript-sdk/src"] - }, - "configurations": { - "watch": { - "watch": true, - "mode": "ui" - } - } - } - } -} diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.test.ts index ab0841164..8be0340ca 100644 --- a/packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.test.ts +++ b/packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.test.ts @@ -11,6 +11,7 @@ import { CallbackType } from '../../auth/enums'; import type { Callback } from '../../auth/interfaces'; import AttributeInputCallback from './attribute-input-callback'; +import { describe, expect, it } from 'vitest'; describe('AttributeInputCallback', () => { const payload: Callback = { diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.test.ts index 18b0679df..94bcdc8e0 100644 --- a/packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.test.ts +++ b/packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.test.ts @@ -8,6 +8,7 @@ * of the MIT license. See the LICENSE file for details. */ +import { describe, it, expect } from 'vitest'; import { CallbackType } from '../../auth/enums'; import type { Callback } from '../../auth/interfaces'; import TextInputCallback from './text-input-callback'; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.test.ts index ccfe67cd6..7c0c1f2c3 100644 --- a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.test.ts +++ b/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.test.ts @@ -8,6 +8,7 @@ * of the MIT license. See the LICENSE file for details. */ +import { describe, it, expect } from 'vitest'; import { CallbackType } from '../../auth/enums'; import type { Callback } from '../../auth/interfaces'; import ValidatedCreatePasswordCallback from './validated-create-password-callback'; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.test.ts index 5eed99631..adbc21110 100644 --- a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.test.ts +++ b/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.test.ts @@ -8,6 +8,7 @@ * of the MIT license. See the LICENSE file for details. */ +import { describe, it, expect } from 'vitest'; import { CallbackType } from '../../auth/enums'; import type { Callback } from '../../auth/interfaces'; import ValidatedCreateUsernameCallback from './validated-create-username-callback'; diff --git a/packages/javascript-sdk/src/fr-recovery-codes/script-parser.test.ts b/packages/javascript-sdk/src/fr-recovery-codes/script-parser.test.ts index f3bcc5bac..bcc9bcbf1 100644 --- a/packages/javascript-sdk/src/fr-recovery-codes/script-parser.test.ts +++ b/packages/javascript-sdk/src/fr-recovery-codes/script-parser.test.ts @@ -9,6 +9,7 @@ */ import { parseDeviceNameText, parseDisplayRecoveryCodesText } from './script-parser'; +import { describe, expect, it } from 'vitest'; import { displayRecoveryCodes, expectedRecoveryCodes, diff --git a/packages/javascript-sdk/src/fr-webauthn/helpers.test.ts b/packages/javascript-sdk/src/fr-webauthn/helpers.test.ts index d31dd7204..cf454eb40 100644 --- a/packages/javascript-sdk/src/fr-webauthn/helpers.test.ts +++ b/packages/javascript-sdk/src/fr-webauthn/helpers.test.ts @@ -8,6 +8,7 @@ * of the MIT license. See the LICENSE file for details. */ +import { describe, it, expect } from 'vitest'; import { parseCredentials, parsePubKeyArray } from './helpers'; import { allowCredentials70, diff --git a/packages/javascript-sdk/src/util/url.test.ts b/packages/javascript-sdk/src/util/url.test.ts index 039ea2395..6375a55b8 100644 --- a/packages/javascript-sdk/src/util/url.test.ts +++ b/packages/javascript-sdk/src/util/url.test.ts @@ -8,6 +8,7 @@ * of the MIT license. See the LICENSE file for details. */ +import { describe, it, expect } from 'vitest'; import { getBaseUrl, parseQuery, resolve, stringify } from './url'; describe('The URL utility', () => { diff --git a/packages/javascript-sdk/tsconfig.spec.json b/packages/javascript-sdk/tsconfig.spec.json index dfd5c8d0a..eea2762b1 100644 --- a/packages/javascript-sdk/tsconfig.spec.json +++ b/packages/javascript-sdk/tsconfig.spec.json @@ -10,6 +10,7 @@ }, "include": [ "vite.config.ts", + "src/**/*.mock*.ts", "vitest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", diff --git a/packages/ping-protect/package.json b/packages/ping-protect/package.json index d51172cd1..84427fff1 100644 --- a/packages/ping-protect/package.json +++ b/packages/ping-protect/package.json @@ -21,5 +21,11 @@ "types": "./dist/index.ts.d.ts", "dependencies": { "@forgerock/javascript-sdk": "workspace:*" + }, + "scripts": { + "build": "vite build", + "test": "vitest", + "test:coverage": "vitest --coverage", + "lint": "eslint **/*.ts --fix" } } diff --git a/packages/ping-protect/project.json b/packages/ping-protect/project.json deleted file mode 100644 index f97897cdd..000000000 --- a/packages/ping-protect/project.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "ping-protect", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "packages/ping-protect/src", - "projectType": "library", - "tags": ["scope:package"], - "targets": { - "docs": { - "command": "pnpm typedoc --options {projectRoot}/typedoc.json" - }, - "build": { - "inputs": [ - "default", - "^default", - { - "externalDependencies": ["vite"] - } - ], - "outputs": ["{projectRoot}/dist"] - }, - "lint": { - "options": { - "args": ["**/*.ts"] - } - }, - "test": { - "inputs": [ - "default", - "^default", - { - "externalDependencies": ["vitest"] - } - ], - "options": { - "config": "./vite.config.ts" - }, - "configurations": { - "watch": { - "watch": true - } - } - } - } -} diff --git a/packages/token-vault/package.json b/packages/token-vault/package.json index 4314d9d77..72d6dc543 100644 --- a/packages/token-vault/package.json +++ b/packages/token-vault/package.json @@ -22,5 +22,11 @@ }, "dependencies": { "@forgerock/javascript-sdk": "workspace:*" + }, + "scripts": { + "build": "vite build", + "test": "vitest", + "test:coverage": "vitest --coverage", + "lint": "eslint **/*.ts --fix" } } diff --git a/packages/token-vault/project.json b/packages/token-vault/project.json deleted file mode 100644 index 5478dfba2..000000000 --- a/packages/token-vault/project.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "token-vault", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "packages/token-vault/src", - "projectType": "library", - "tags": ["scope:package"], - "targets": { - "docs": { - "command": "pnpm typedoc --options {projectRoot}/typedoc.json" - }, - "build": { - "inputs": [ - "default", - "^default", - { - "externalDependencies": ["vite"] - } - ], - "outputs": ["{projectRoot}/dist"] - }, - "test": { - "inputs": [ - "default", - "^default", - { - "externalDependencies": ["vitest"] - } - ], - "options": { - "config": "./vite.config.ts" - }, - "configurations": { - "watch": { - "watch": true - } - } - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - } - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ad07e9e8c..9b6d00b00 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,6 +20,7 @@ overrides: rollup@<2.79.2: '>=2.79.2' importers: + .: dependencies: '@changesets/changelog-github': @@ -342,6 +343,7 @@ importers: immer: specifier: 10.1.1 version: 10.1.1 + devDependencies: vitest: specifier: ^1.4.0 version: 1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) @@ -354,6 +356,9 @@ importers: '@reduxjs/toolkit': specifier: 2.3.0 version: 2.3.0(react@18.3.1) + immer: + specifier: 10.1.1 + version: 10.1.1 devDependencies: msw: specifier: ^2.5.1 @@ -362,7 +367,11 @@ importers: specifier: ^1.4.0 version: 1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) - packages/javascript-sdk: {} + packages/javascript-sdk: + devDependencies: + vitest: + specifier: ^1.4.0 + version: 1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) packages/ping-protect: dependencies: @@ -377,1978 +386,1235 @@ importers: version: link:../javascript-sdk packages: + '@aashutoshrathi/word-wrap@1.2.6': - resolution: - { - integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} '@adobe/css-tools@4.3.3': - resolution: - { - integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==, - } + resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} '@ampproject/remapping@2.3.0': - resolution: - { - integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} '@babel/code-frame@7.24.2': - resolution: - { - integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} '@babel/compat-data@7.24.4': - resolution: - { - integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + engines: {node: '>=6.9.0'} '@babel/core@7.24.4': - resolution: - { - integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} + engines: {node: '>=6.9.0'} '@babel/generator@7.24.4': - resolution: - { - integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} + engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.22.5': - resolution: - { - integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': - resolution: - { - integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.23.6': - resolution: - { - integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.24.4': - resolution: - { - integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-create-regexp-features-plugin@7.22.15': - resolution: - { - integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-define-polyfill-provider@0.6.1': - resolution: - { - integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==, - } + resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 '@babel/helper-environment-visitor@7.22.20': - resolution: - { - integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} '@babel/helper-function-name@7.23.0': - resolution: - { - integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} '@babel/helper-hoist-variables@7.22.5': - resolution: - { - integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} '@babel/helper-member-expression-to-functions@7.23.0': - resolution: - { - integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} '@babel/helper-module-imports@7.24.3': - resolution: - { - integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} '@babel/helper-module-transforms@7.23.3': - resolution: - { - integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-optimise-call-expression@7.22.5': - resolution: - { - integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} '@babel/helper-plugin-utils@7.24.8': - resolution: - { - integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + engines: {node: '>=6.9.0'} '@babel/helper-remap-async-to-generator@7.22.20': - resolution: - { - integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-replace-supers@7.24.1': - resolution: - { - integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-simple-access@7.22.5': - resolution: - { - integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} '@babel/helper-skip-transparent-expression-wrappers@7.22.5': - resolution: - { - integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} '@babel/helper-split-export-declaration@7.22.6': - resolution: - { - integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.24.1': - resolution: - { - integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.22.20': - resolution: - { - integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} '@babel/helper-validator-option@7.23.5': - resolution: - { - integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} '@babel/helper-wrap-function@7.22.20': - resolution: - { - integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} '@babel/helpers@7.24.4': - resolution: - { - integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} + engines: {node: '>=6.9.0'} '@babel/highlight@7.24.2': - resolution: - { - integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + engines: {node: '>=6.9.0'} '@babel/parser@7.24.4': - resolution: - { - integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + engines: {node: '>=6.0.0'} hasBin: true '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4': - resolution: - { - integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': - resolution: - { - integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': - resolution: - { - integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': - resolution: - { - integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-proposal-decorators@7.24.1': - resolution: - { - integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: - { - integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-async-generators@7.8.4': - resolution: - { - integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, - } + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-bigint@7.8.3': - resolution: - { - integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, - } + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-properties@7.12.13': - resolution: - { - integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, - } + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: - { - integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-decorators@7.24.1': - resolution: - { - integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: - { - integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, - } + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: - { - integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, - } + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-assertions@7.24.1': - resolution: - { - integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-attributes@7.25.6': - resolution: - { - integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-meta@7.10.4': - resolution: - { - integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, - } + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-json-strings@7.8.3': - resolution: - { - integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, - } + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-jsx@7.24.1': - resolution: - { - integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: - { - integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, - } + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: - { - integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, - } + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: - { - integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, - } + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: - { - integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, - } + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: - { - integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, - } + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: - { - integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, - } + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: - { - integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: - { - integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-typescript@7.24.1': - resolution: - { - integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: - { - integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-arrow-functions@7.24.1': - resolution: - { - integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-async-generator-functions@7.24.3': - resolution: - { - integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-async-to-generator@7.24.1': - resolution: - { - integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-block-scoped-functions@7.24.1': - resolution: - { - integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-block-scoping@7.24.4': - resolution: - { - integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-class-properties@7.24.1': - resolution: - { - integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-class-static-block@7.24.4': - resolution: - { - integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 '@babel/plugin-transform-classes@7.24.1': - resolution: - { - integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-computed-properties@7.24.1': - resolution: - { - integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-destructuring@7.24.1': - resolution: - { - integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-dotall-regex@7.24.1': - resolution: - { - integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-duplicate-keys@7.24.1': - resolution: - { - integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-dynamic-import@7.24.1': - resolution: - { - integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-exponentiation-operator@7.24.1': - resolution: - { - integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-export-namespace-from@7.24.1': - resolution: - { - integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-for-of@7.24.1': - resolution: - { - integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-function-name@7.24.1': - resolution: - { - integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-json-strings@7.24.1': - resolution: - { - integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-literals@7.24.1': - resolution: - { - integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-logical-assignment-operators@7.24.1': - resolution: - { - integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-member-expression-literals@7.24.1': - resolution: - { - integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-amd@7.24.1': - resolution: - { - integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-commonjs@7.24.1': - resolution: - { - integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-systemjs@7.24.1': - resolution: - { - integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-umd@7.24.1': - resolution: - { - integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': - resolution: - { - integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-new-target@7.24.1': - resolution: - { - integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': - resolution: - { - integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-numeric-separator@7.24.1': - resolution: - { - integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-object-rest-spread@7.24.1': - resolution: - { - integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-object-super@7.24.1': - resolution: - { - integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-optional-catch-binding@7.24.1': - resolution: - { - integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-optional-chaining@7.24.1': - resolution: - { - integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-parameters@7.24.1': - resolution: - { - integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-private-methods@7.24.1': - resolution: - { - integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-private-property-in-object@7.24.1': - resolution: - { - integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-property-literals@7.24.1': - resolution: - { - integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-regenerator@7.24.1': - resolution: - { - integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-reserved-words@7.24.1': - resolution: - { - integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-runtime@7.24.3': - resolution: - { - integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-shorthand-properties@7.24.1': - resolution: - { - integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-spread@7.24.1': - resolution: - { - integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-sticky-regex@7.24.1': - resolution: - { - integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-template-literals@7.24.1': - resolution: - { - integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-typeof-symbol@7.24.1': - resolution: - { - integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-typescript@7.24.4': - resolution: - { - integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-escapes@7.24.1': - resolution: - { - integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-property-regex@7.24.1': - resolution: - { - integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-regex@7.24.1': - resolution: - { - integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-sets-regex@7.24.1': - resolution: - { - integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/preset-env@7.24.4': - resolution: - { - integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: - { - integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==, - } + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 '@babel/preset-typescript@7.24.1': - resolution: - { - integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/regjsgen@0.8.0': - resolution: - { - integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==, - } + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} '@babel/runtime@7.24.4': - resolution: - { - integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} + engines: {node: '>=6.9.0'} '@babel/template@7.24.0': - resolution: - { - integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} '@babel/traverse@7.24.1': - resolution: - { - integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + engines: {node: '>=6.9.0'} '@babel/types@7.24.0': - resolution: - { - integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': - resolution: - { - integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==, - } + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} '@bundled-es-modules/cookie@2.0.0': - resolution: - { - integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==, - } + resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==} '@bundled-es-modules/statuses@1.0.1': - resolution: - { - integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==, - } + resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} '@bundled-es-modules/tough-cookie@0.1.6': - resolution: - { - integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==, - } + resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} '@changesets/apply-release-plan@7.0.5': - resolution: - { - integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==, - } + resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} '@changesets/assemble-release-plan@6.0.4': - resolution: - { - integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==, - } + resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} '@changesets/changelog-git@0.2.0': - resolution: - { - integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==, - } + resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} '@changesets/changelog-github@0.5.0': - resolution: - { - integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==, - } + resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} '@changesets/cli@2.27.9': - resolution: - { - integrity: sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg==, - } + resolution: {integrity: sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg==} hasBin: true '@changesets/config@3.0.3': - resolution: - { - integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==, - } + resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} '@changesets/errors@0.2.0': - resolution: - { - integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==, - } + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} '@changesets/get-dependents-graph@2.1.2': - resolution: - { - integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==, - } + resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} '@changesets/get-github-info@0.6.0': - resolution: - { - integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==, - } + resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} '@changesets/get-release-plan@4.0.4': - resolution: - { - integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==, - } + resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} '@changesets/get-version-range-type@0.4.0': - resolution: - { - integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==, - } + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} '@changesets/git@3.0.1': - resolution: - { - integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==, - } + resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} '@changesets/logger@0.1.1': - resolution: - { - integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==, - } + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} '@changesets/parse@0.4.0': - resolution: - { - integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==, - } + resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} '@changesets/pre@2.0.1': - resolution: - { - integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==, - } + resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} '@changesets/read@0.6.1': - resolution: - { - integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==, - } + resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} '@changesets/should-skip-package@0.1.1': - resolution: - { - integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==, - } + resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} '@changesets/types@4.1.0': - resolution: - { - integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==, - } + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} '@changesets/types@6.0.0': - resolution: - { - integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==, - } + resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} '@changesets/write@0.3.2': - resolution: - { - integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==, - } + resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} '@colors/colors@1.6.0': - resolution: - { - integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==, - } - engines: { node: '>=0.1.90' } + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} '@commitlint/cli@19.2.2': - resolution: - { - integrity: sha512-P8cbOHfg2PQRzfICLSrzUVOCVMqjEZ8Hlth6mtJ4yOEjT47Q5PbIGymgX3rLVylNw+3IAT2Djn9IJ2wHbXFzBg==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-P8cbOHfg2PQRzfICLSrzUVOCVMqjEZ8Hlth6mtJ4yOEjT47Q5PbIGymgX3rLVylNw+3IAT2Djn9IJ2wHbXFzBg==} + engines: {node: '>=v18'} hasBin: true '@commitlint/config-conventional@19.2.2': - resolution: - { - integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==} + engines: {node: '>=v18'} '@commitlint/config-validator@19.0.3': - resolution: - { - integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} + engines: {node: '>=v18'} '@commitlint/ensure@19.0.3': - resolution: - { - integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==} + engines: {node: '>=v18'} '@commitlint/execute-rule@19.0.0': - resolution: - { - integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} + engines: {node: '>=v18'} '@commitlint/format@19.0.3': - resolution: - { - integrity: sha512-QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==} + engines: {node: '>=v18'} '@commitlint/is-ignored@19.2.2': - resolution: - { - integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==} + engines: {node: '>=v18'} '@commitlint/lint@19.2.2': - resolution: - { - integrity: sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==} + engines: {node: '>=v18'} '@commitlint/load@19.2.0': - resolution: - { - integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} + engines: {node: '>=v18'} '@commitlint/message@19.0.0': - resolution: - { - integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==} + engines: {node: '>=v18'} '@commitlint/parse@19.0.3': - resolution: - { - integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==} + engines: {node: '>=v18'} '@commitlint/prompt@19.2.2': - resolution: - { - integrity: sha512-ib+5XYws/g4VkP+4IkfH+kTJRbiInPMaq9vjPzfgQvBR3o7KWEQBk4P6ZsZK7VdGANcNXTKo667FNsfyQLPZgg==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-ib+5XYws/g4VkP+4IkfH+kTJRbiInPMaq9vjPzfgQvBR3o7KWEQBk4P6ZsZK7VdGANcNXTKo667FNsfyQLPZgg==} + engines: {node: '>=v18'} '@commitlint/read@19.2.1': - resolution: - { - integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==} + engines: {node: '>=v18'} '@commitlint/resolve-extends@19.1.0': - resolution: - { - integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} + engines: {node: '>=v18'} '@commitlint/rules@19.0.3': - resolution: - { - integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==} + engines: {node: '>=v18'} '@commitlint/to-lines@19.0.0': - resolution: - { - integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==} + engines: {node: '>=v18'} '@commitlint/top-level@19.0.0': - resolution: - { - integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==} + engines: {node: '>=v18'} '@commitlint/types@19.0.3': - resolution: - { - integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==, - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} + engines: {node: '>=v18'} '@cspotcode/source-map-support@0.8.1': - resolution: - { - integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} '@cypress/request@3.0.1': - resolution: - { - integrity: sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==} + engines: {node: '>= 6'} '@dabh/diagnostics@2.0.3': - resolution: - { - integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==, - } + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} '@effect/language-service@0.1.0': - resolution: - { - integrity: sha512-BnlM8LlaqCAYgdRfxlbR7gXGh/FD1scL1fPgNVJEPoOM08od1jtJz+iKhwfaud8TPnnhZR+TED2h5ynjanLeCQ==, - } + resolution: {integrity: sha512-BnlM8LlaqCAYgdRfxlbR7gXGh/FD1scL1fPgNVJEPoOM08od1jtJz+iKhwfaud8TPnnhZR+TED2h5ynjanLeCQ==} '@effect/platform-node-shared@0.8.26': - resolution: - { - integrity: sha512-c7yYFvQwse5ar8JZitBM1fTGAQGfBQUqMRKVxKYux4GDMKw6oaZ8g7eQf9PRpMCxIdBMZlPilIablSJ0DtoPVQ==, - } + resolution: {integrity: sha512-c7yYFvQwse5ar8JZitBM1fTGAQGfBQUqMRKVxKYux4GDMKw6oaZ8g7eQf9PRpMCxIdBMZlPilIablSJ0DtoPVQ==} peerDependencies: '@effect/platform': ^0.58.27 effect: ^3.5.3 '@effect/platform-node@0.53.26': - resolution: - { - integrity: sha512-TPjRJqgp7a3DC30/f1U4vPEH0EgW336rbr+9+0DCYhVkArwVsrZBADNLZLWGHOMfVCTV0/DdCrTzvjdQ0pfG9w==, - } + resolution: {integrity: sha512-TPjRJqgp7a3DC30/f1U4vPEH0EgW336rbr+9+0DCYhVkArwVsrZBADNLZLWGHOMfVCTV0/DdCrTzvjdQ0pfG9w==} peerDependencies: '@effect/platform': ^0.58.27 effect: ^3.5.3 '@effect/platform@0.58.27': - resolution: - { - integrity: sha512-J/5ykWaFNo7rYC0b5/f/v8IC8i6QaOHM+eyUm7YnI01TeamHNvsVd9MB6YFjLBlgkogrKpOvcYDI+2jwyr0Mrw==, - } + resolution: {integrity: sha512-J/5ykWaFNo7rYC0b5/f/v8IC8i6QaOHM+eyUm7YnI01TeamHNvsVd9MB6YFjLBlgkogrKpOvcYDI+2jwyr0Mrw==} peerDependencies: '@effect/schema': ^0.68.23 effect: ^3.5.3 '@effect/schema@0.68.23': - resolution: - { - integrity: sha512-yG8PShEII70yunOO4fKUJPTSzmwLDOrkGI3zc9O5LEgA93TPQKu/Y9jASxgeSMa7Wx7UI8fd9no8oheapfK9Yw==, - } + resolution: {integrity: sha512-yG8PShEII70yunOO4fKUJPTSzmwLDOrkGI3zc9O5LEgA93TPQKu/Y9jASxgeSMa7Wx7UI8fd9no8oheapfK9Yw==} peerDependencies: effect: ^3.5.3 '@effect/vitest@0.6.7': - resolution: - { - integrity: sha512-zBvZBHjn0W7FFn7fOzK79WPk41Mt4PjZUtjbJKVevvYZQBk2so2nWrgWeV2J098YZBjTyG6nWZiW7RfFfwV7cw==, - } + resolution: {integrity: sha512-zBvZBHjn0W7FFn7fOzK79WPk41Mt4PjZUtjbJKVevvYZQBk2so2nWrgWeV2J098YZBjTyG6nWZiW7RfFfwV7cw==} peerDependencies: effect: ^3.5.3 vitest: ^1.4.0 '@emnapi/core@1.2.0': - resolution: - { - integrity: sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==, - } + resolution: {integrity: sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==} '@emnapi/runtime@1.2.0': - resolution: - { - integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==, - } + resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} '@emnapi/wasi-threads@1.0.1': - resolution: - { - integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==, - } + resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} '@esbuild/aix-ppc64@0.19.12': - resolution: - { - integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} cpu: [ppc64] os: [aix] '@esbuild/aix-ppc64@0.21.5': - resolution: - { - integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} cpu: [ppc64] os: [aix] '@esbuild/android-arm64@0.19.12': - resolution: - { - integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} cpu: [arm64] os: [android] '@esbuild/android-arm64@0.21.5': - resolution: - { - integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} cpu: [arm64] os: [android] '@esbuild/android-arm@0.19.12': - resolution: - { - integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} cpu: [arm] os: [android] '@esbuild/android-arm@0.21.5': - resolution: - { - integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} cpu: [arm] os: [android] '@esbuild/android-x64@0.19.12': - resolution: - { - integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} cpu: [x64] os: [android] '@esbuild/android-x64@0.21.5': - resolution: - { - integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} cpu: [x64] os: [android] '@esbuild/darwin-arm64@0.19.12': - resolution: - { - integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] '@esbuild/darwin-arm64@0.21.5': - resolution: - { - integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.19.12': - resolution: - { - integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] '@esbuild/darwin-x64@0.21.5': - resolution: - { - integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] '@esbuild/freebsd-arm64@0.19.12': - resolution: - { - integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-arm64@0.21.5': - resolution: - { - integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.19.12': - resolution: - { - integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] '@esbuild/freebsd-x64@0.21.5': - resolution: - { - integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] '@esbuild/linux-arm64@0.19.12': - resolution: - { - integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] '@esbuild/linux-arm64@0.21.5': - resolution: - { - integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.19.12': - resolution: - { - integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} cpu: [arm] os: [linux] '@esbuild/linux-arm@0.21.5': - resolution: - { - integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.19.12': - resolution: - { - integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] '@esbuild/linux-ia32@0.21.5': - resolution: - { - integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.19.12': - resolution: - { - integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} cpu: [loong64] os: [linux] '@esbuild/linux-loong64@0.21.5': - resolution: - { - integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.19.12': - resolution: - { - integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] '@esbuild/linux-mips64el@0.21.5': - resolution: - { - integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.19.12': - resolution: - { - integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] '@esbuild/linux-ppc64@0.21.5': - resolution: - { - integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.19.12': - resolution: - { - integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] '@esbuild/linux-riscv64@0.21.5': - resolution: - { - integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.19.12': - resolution: - { - integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] '@esbuild/linux-s390x@0.21.5': - resolution: - { - integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.19.12': - resolution: - { - integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} cpu: [x64] os: [linux] '@esbuild/linux-x64@0.21.5': - resolution: - { - integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} cpu: [x64] os: [linux] '@esbuild/netbsd-x64@0.19.12': - resolution: - { - integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] '@esbuild/netbsd-x64@0.21.5': - resolution: - { - integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] '@esbuild/openbsd-x64@0.19.12': - resolution: - { - integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] '@esbuild/openbsd-x64@0.21.5': - resolution: - { - integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] '@esbuild/sunos-x64@0.19.12': - resolution: - { - integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] '@esbuild/sunos-x64@0.21.5': - resolution: - { - integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] '@esbuild/win32-arm64@0.19.12': - resolution: - { - integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] '@esbuild/win32-arm64@0.21.5': - resolution: - { - integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.19.12': - resolution: - { - integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] '@esbuild/win32-ia32@0.21.5': - resolution: - { - integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.19.12': - resolution: - { - integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} cpu: [x64] os: [win32] '@esbuild/win32-x64@0.21.5': - resolution: - { - integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} cpu: [x64] os: [win32] '@eslint-community/eslint-utils@4.4.0': - resolution: - { - integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 '@eslint-community/regexpp@4.10.0': - resolution: - { - integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, - } - engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/eslintrc@2.1.4': - resolution: - { - integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@eslint/js@8.57.0': - resolution: - { - integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@gerrit0/mini-shiki@1.24.4': - resolution: - { - integrity: sha512-YEHW1QeAg6UmxEmswiQbOVEg1CW22b1XUD/lNTliOsu0LD0wqoyleFMnmbTp697QE0pcadQiR5cVtbbAPncvpw==, - } + resolution: {integrity: sha512-YEHW1QeAg6UmxEmswiQbOVEg1CW22b1XUD/lNTliOsu0LD0wqoyleFMnmbTp697QE0pcadQiR5cVtbbAPncvpw==} '@google-cloud/compute@4.7.0': - resolution: - { - integrity: sha512-1UExR08o2XXKdOV8FIK6kcrNb65KVAnv045huJQV6OBiJ+uxubBWm4XxbPaWcT3TvvKGyYSMHG1Qx9/IiwpI1w==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-1UExR08o2XXKdOV8FIK6kcrNb65KVAnv045huJQV6OBiJ+uxubBWm4XxbPaWcT3TvvKGyYSMHG1Qx9/IiwpI1w==} + engines: {node: '>=14.0.0'} '@google-cloud/container@5.17.0': - resolution: - { - integrity: sha512-YluZ+MotPKeil6QKgYXbw9P5OQoF24e4xZYeiHoVwIQxRNAEY9nOEhpbmm8RCd+6pWGnV3N0x+LdC6Uib08I9Q==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-YluZ+MotPKeil6QKgYXbw9P5OQoF24e4xZYeiHoVwIQxRNAEY9nOEhpbmm8RCd+6pWGnV3N0x+LdC6Uib08I9Q==} + engines: {node: '>=14.0.0'} '@google-cloud/resource-manager@5.3.0': - resolution: - { - integrity: sha512-uWJJf6S2PJL7oZ4ezv16aZl9+IJqPo5GzUv1pZ3/qRiMj13p0ylEgX1+LxBpX71eEPKTwMHoJV2IBBe3EAq7Xw==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-uWJJf6S2PJL7oZ4ezv16aZl9+IJqPo5GzUv1pZ3/qRiMj13p0ylEgX1+LxBpX71eEPKTwMHoJV2IBBe3EAq7Xw==} + engines: {node: '>=14.0.0'} '@grpc/grpc-js@1.12.0': - resolution: - { - integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==, - } - engines: { node: '>=12.10.0' } + resolution: {integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==} + engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': - resolution: - { - integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} hasBin: true '@humanwhocodes/config-array@0.11.14': - resolution: - { - integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==, - } - engines: { node: '>=10.10.0' } + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': - resolution: - { - integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, - } - engines: { node: '>=12.22' } + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} '@humanwhocodes/object-schema@2.0.3': - resolution: - { - integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==, - } + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead '@inquirer/confirm@5.0.0': - resolution: - { - integrity: sha512-6QEzj6bZg8atviRIL+pR0tODC854cYSjvZxkyCarr8DVaOJPEyuGys7GmEG3W0Rb8kKSQec7P6okt0sJvNneFw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-6QEzj6bZg8atviRIL+pR0tODC854cYSjvZxkyCarr8DVaOJPEyuGys7GmEG3W0Rb8kKSQec7P6okt0sJvNneFw==} + engines: {node: '>=18'} '@inquirer/core@10.0.0': - resolution: - { - integrity: sha512-7dwoKCGvgZGHWTZfOj2KLmbIAIdiXP9NTrwGaTO/XDfKMEmyBahZpnombiG6JDHmiOrmK3GLEJRXrWExXCDLmQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-7dwoKCGvgZGHWTZfOj2KLmbIAIdiXP9NTrwGaTO/XDfKMEmyBahZpnombiG6JDHmiOrmK3GLEJRXrWExXCDLmQ==} + engines: {node: '>=18'} '@inquirer/figures@1.0.0': - resolution: - { - integrity: sha512-3fw+7+77/duTnMJTeSS44wneszghI4tkr0m0xdIJabbYRe36ElzmsqyboMZ1nFRon6sT+ckVvYDVjwapKv+2sw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-3fw+7+77/duTnMJTeSS44wneszghI4tkr0m0xdIJabbYRe36ElzmsqyboMZ1nFRon6sT+ckVvYDVjwapKv+2sw==} + engines: {node: '>=18'} '@inquirer/figures@1.0.7': - resolution: - { - integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==} + engines: {node: '>=18'} '@inquirer/type@3.0.0': - resolution: - { - integrity: sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==} + engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' '@isaacs/cliui@8.0.2': - resolution: - { - integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} '@istanbuljs/load-nyc-config@1.1.0': - resolution: - { - integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} '@istanbuljs/schema@0.1.3': - resolution: - { - integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} '@jest/console@29.7.0': - resolution: - { - integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/environment@29.7.0': - resolution: - { - integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/expect-utils@29.7.0': - resolution: - { - integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/expect@29.7.0': - resolution: - { - integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/fake-timers@29.7.0': - resolution: - { - integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/globals@29.7.0': - resolution: - { - integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/reporters@29.7.0': - resolution: - { - integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -2356,252 +1622,144 @@ packages: optional: true '@jest/schemas@29.6.3': - resolution: - { - integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/source-map@29.6.3': - resolution: - { - integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/test-result@29.7.0': - resolution: - { - integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/test-sequencer@29.7.0': - resolution: - { - integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/transform@29.7.0': - resolution: - { - integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/types@29.6.3': - resolution: - { - integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jridgewell/gen-mapping@0.3.5': - resolution: - { - integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': - resolution: - { - integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} '@jridgewell/set-array@1.2.1': - resolution: - { - integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} '@jridgewell/source-map@0.3.6': - resolution: - { - integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==, - } + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} '@jridgewell/sourcemap-codec@1.5.0': - resolution: - { - integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, - } + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.25': - resolution: - { - integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, - } + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} '@jridgewell/trace-mapping@0.3.9': - resolution: - { - integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, - } + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} '@js-sdsl/ordered-map@4.4.2': - resolution: - { - integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==, - } + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} '@jsep-plugin/assignment@1.3.0': - resolution: - { - integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==, - } - engines: { node: '>= 10.16.0' } + resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} + engines: {node: '>= 10.16.0'} peerDependencies: jsep: ^0.4.0||^1.0.0 '@jsep-plugin/regex@1.0.4': - resolution: - { - integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==, - } - engines: { node: '>= 10.16.0' } + resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==} + engines: {node: '>= 10.16.0'} peerDependencies: jsep: ^0.4.0||^1.0.0 '@jsonjoy.com/base64@1.1.2': - resolution: - { - integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==, - } - engines: { node: '>=10.0' } + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/json-pack@1.1.0': - resolution: - { - integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==, - } - engines: { node: '>=10.0' } + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} + engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/util@1.3.0': - resolution: - { - integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==, - } - engines: { node: '>=10.0' } + resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} + engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@kubernetes/client-node@1.0.0-rc3': - resolution: - { - integrity: sha512-bTYMBZXVrjfi98N5EZbrmPtcT9NY+TddunSEc25DcsRF1c5c93e5jT+zFwId19hG8e/ue5deKe7YDQiRYFpMlQ==, - } + resolution: {integrity: sha512-bTYMBZXVrjfi98N5EZbrmPtcT9NY+TddunSEc25DcsRF1c5c93e5jT+zFwId19hG8e/ue5deKe7YDQiRYFpMlQ==} '@leichtgewicht/ip-codec@2.0.5': - resolution: - { - integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==, - } + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} '@ljharb/through@2.3.13': - resolution: - { - integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==} + engines: {node: '>= 0.4'} '@manypkg/find-root@1.1.0': - resolution: - { - integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==, - } + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} '@manypkg/get-packages@1.1.3': - resolution: - { - integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==, - } + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} '@microsoft/api-extractor-model@7.29.6': - resolution: - { - integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==, - } + resolution: {integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==} '@microsoft/api-extractor@7.47.7': - resolution: - { - integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==, - } + resolution: {integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==} hasBin: true '@microsoft/tsdoc-config@0.17.0': - resolution: - { - integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==, - } + resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==} '@microsoft/tsdoc@0.15.0': - resolution: - { - integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==, - } + resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==} '@mswjs/interceptors@0.36.5': - resolution: - { - integrity: sha512-aQ8WF5zQwOdcxLsxSEk9Jd01GgGb80xxqCaiDDlewhtwqpSm8MOvUHslwPydVirasdW09++NxDNNftm1vLY8yA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-aQ8WF5zQwOdcxLsxSEk9Jd01GgGb80xxqCaiDDlewhtwqpSm8MOvUHslwPydVirasdW09++NxDNNftm1vLY8yA==} + engines: {node: '>=18'} '@napi-rs/wasm-runtime@0.2.4': - resolution: - { - integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==, - } + resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} '@nodelib/fs.scandir@2.1.5': - resolution: - { - integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} '@nodelib/fs.stat@2.0.5': - resolution: - { - integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} '@nodelib/fs.walk@1.2.8': - resolution: - { - integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} '@nrwl/nx-cloud@19.1.0': - resolution: - { - integrity: sha512-krngXVPfX0Zf6+zJDtcI59/Pt3JfcMPMZ9C/+/x6rvz4WGgyv1s0MI4crEUM0Lx5ZpS4QI0WNDCFVQSfGEBXUg==, - } + resolution: {integrity: sha512-krngXVPfX0Zf6+zJDtcI59/Pt3JfcMPMZ9C/+/x6rvz4WGgyv1s0MI4crEUM0Lx5ZpS4QI0WNDCFVQSfGEBXUg==} '@nx/devkit@20.2.2': - resolution: - { - integrity: sha512-uqs0LVvuRRVAfFdn0ewvmr1vsNV9Ztugw36emcLJxskqhBZb10K+vzdTDAZpg5aVE2ISg1BmPidoOyk1tP+Omg==, - } + resolution: {integrity: sha512-uqs0LVvuRRVAfFdn0ewvmr1vsNV9Ztugw36emcLJxskqhBZb10K+vzdTDAZpg5aVE2ISg1BmPidoOyk1tP+Omg==} peerDependencies: nx: '>= 19 <= 21' '@nx/esbuild@20.2.2': - resolution: - { - integrity: sha512-R6mwMFBboJOUJ+ioRbQ0u4U5eyOZXAkuQcAoN4LlLtwMtWvg8YPtSb24N8SDLO2yXHlEEBNC3NtzzU24a8CR5A==, - } + resolution: {integrity: sha512-R6mwMFBboJOUJ+ioRbQ0u4U5eyOZXAkuQcAoN4LlLtwMtWvg8YPtSb24N8SDLO2yXHlEEBNC3NtzzU24a8CR5A==} peerDependencies: esbuild: ~0.19.2 peerDependenciesMeta: @@ -2609,10 +1767,7 @@ packages: optional: true '@nx/eslint-plugin@20.2.2': - resolution: - { - integrity: sha512-LfRPu6QWPRQgsJ51WtsMyoK7FhvUGO5G5l/m+PyN2FecnZJcrrRCcExt3Sj0btzc0CqCW2gtgSTa1eyC16U0rQ==, - } + resolution: {integrity: sha512-LfRPu6QWPRQgsJ51WtsMyoK7FhvUGO5G5l/m+PyN2FecnZJcrrRCcExt3Sj0btzc0CqCW2gtgSTa1eyC16U0rQ==} peerDependencies: '@typescript-eslint/parser': ^6.13.2 || ^7.0.0 || ^8.0.0 eslint-config-prettier: ^9.0.0 @@ -2621,10 +1776,7 @@ packages: optional: true '@nx/eslint@20.2.2': - resolution: - { - integrity: sha512-GID3r539okSIdqqaLJxOttjbC8xaAbyrGJfSo/jyFLVASN4ZYuwFwWU94Vdn1NsOPHc2kiDa/qQj5mv0gbBfUw==, - } + resolution: {integrity: sha512-GID3r539okSIdqqaLJxOttjbC8xaAbyrGJfSo/jyFLVASN4ZYuwFwWU94Vdn1NsOPHc2kiDa/qQj5mv0gbBfUw==} peerDependencies: '@zkochan/js-yaml': 0.0.7 eslint: ^8.0.0 || ^9.0.0 @@ -2633,10 +1785,7 @@ packages: optional: true '@nx/express@20.2.2': - resolution: - { - integrity: sha512-rP9s10yYizeM7bx52NE2czSrRCPwekVoJXtRfDNoI5Mtjt9E/+Fay1PlnkdPWtuiTPf4DJvM/tTxRnXOES4EJw==, - } + resolution: {integrity: sha512-rP9s10yYizeM7bx52NE2czSrRCPwekVoJXtRfDNoI5Mtjt9E/+Fay1PlnkdPWtuiTPf4DJvM/tTxRnXOES4EJw==} peerDependencies: express: '>=4.20.0' peerDependenciesMeta: @@ -2644,16 +1793,10 @@ packages: optional: true '@nx/jest@20.2.2': - resolution: - { - integrity: sha512-czZprpiVAZQKixpib1Vphi3Aoh5qBr7KATgP7+P0ogDTrxd7sivCFDM8wZeilhdTfx85wsR0viOtLVm6D3RTLA==, - } + resolution: {integrity: sha512-czZprpiVAZQKixpib1Vphi3Aoh5qBr7KATgP7+P0ogDTrxd7sivCFDM8wZeilhdTfx85wsR0viOtLVm6D3RTLA==} '@nx/js@20.2.2': - resolution: - { - integrity: sha512-y/L+GMS8pIE1rQTQ28Lb1YeWpEnDj2v3T/7QpWvICc78NZXuMrO6N1ZRTPRSQNXKL6Bs9S9bRuivsvSIiNlULw==, - } + resolution: {integrity: sha512-y/L+GMS8pIE1rQTQ28Lb1YeWpEnDj2v3T/7QpWvICc78NZXuMrO6N1ZRTPRSQNXKL6Bs9S9bRuivsvSIiNlULw==} peerDependencies: verdaccio: ^5.0.4 peerDependenciesMeta: @@ -2661,106 +1804,70 @@ packages: optional: true '@nx/node@20.2.2': - resolution: - { - integrity: sha512-nZGtozEvKccFAjRPlHOe8LgPeBrGi/gHOqig0B16J91dcgZu/2GWp81BiX1TDEz/f2CL1BwvApXAgkztuXuiBA==, - } + resolution: {integrity: sha512-nZGtozEvKccFAjRPlHOe8LgPeBrGi/gHOqig0B16J91dcgZu/2GWp81BiX1TDEz/f2CL1BwvApXAgkztuXuiBA==} '@nx/nx-darwin-arm64@20.2.2': - resolution: - { - integrity: sha512-gnS5mtbaBAO5TJkl4T68rQaN/79MMWePavw2SOcFyFnIdAriGEZ+ZFDUE0B/xYJSs9CPWLaGHf+n7oqyxaGd9A==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-gnS5mtbaBAO5TJkl4T68rQaN/79MMWePavw2SOcFyFnIdAriGEZ+ZFDUE0B/xYJSs9CPWLaGHf+n7oqyxaGd9A==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] '@nx/nx-darwin-x64@20.2.2': - resolution: - { - integrity: sha512-IctvdQon+K8mlhl06zIq1xTPwf5L4OuS7crzCmK26p5F/lV6iz/UXSPCcgn+bYKOL/q3QCLNR7UasQMjzgCNkQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-IctvdQon+K8mlhl06zIq1xTPwf5L4OuS7crzCmK26p5F/lV6iz/UXSPCcgn+bYKOL/q3QCLNR7UasQMjzgCNkQ==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] '@nx/nx-freebsd-x64@20.2.2': - resolution: - { - integrity: sha512-4/Blg9Y6LVU8tS8yoa2BEXPHWsorpvCuZRH0gXPh96i6b71o4ORPafyLOHp08o3WjtUZb4jl5TfDryE+8y62ZA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-4/Blg9Y6LVU8tS8yoa2BEXPHWsorpvCuZRH0gXPh96i6b71o4ORPafyLOHp08o3WjtUZb4jl5TfDryE+8y62ZA==} + engines: {node: '>= 10'} cpu: [x64] os: [freebsd] '@nx/nx-linux-arm-gnueabihf@20.2.2': - resolution: - { - integrity: sha512-AVAxbUXi6q+inmp8re3OV7HzH6fbkKnnMKvjDLnkzK8dA2Mv4JFl/gz++rgkYfEsBk20lcB1i3unqNrtOvzS7Q==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-AVAxbUXi6q+inmp8re3OV7HzH6fbkKnnMKvjDLnkzK8dA2Mv4JFl/gz++rgkYfEsBk20lcB1i3unqNrtOvzS7Q==} + engines: {node: '>= 10'} cpu: [arm] os: [linux] '@nx/nx-linux-arm64-gnu@20.2.2': - resolution: - { - integrity: sha512-h04SLH464Oh/k/1mpAfsMhTVlnc1NJItx4N5DLZb2VuOOY+Tquhrp7HBJLyAhU0Q74JG0LevGFO6wdxliHupmA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-h04SLH464Oh/k/1mpAfsMhTVlnc1NJItx4N5DLZb2VuOOY+Tquhrp7HBJLyAhU0Q74JG0LevGFO6wdxliHupmA==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@nx/nx-linux-arm64-musl@20.2.2': - resolution: - { - integrity: sha512-rnRXDLvHHj66rCslD4ShDq6KBOVsQ+X63GWTGKM0pnTIIDje9+ltZCoAByieCUm4BvFfCWMUf9y0mGfZvLVKSw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-rnRXDLvHHj66rCslD4ShDq6KBOVsQ+X63GWTGKM0pnTIIDje9+ltZCoAByieCUm4BvFfCWMUf9y0mGfZvLVKSw==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@nx/nx-linux-x64-gnu@20.2.2': - resolution: - { - integrity: sha512-K1Z2DVTnyCGl4nolhZ8fvHEixoe1pZOY256LD6D0lGca4Fsi3mHQ7lDU237Pzyc91+cfLva/OAvrivRPeU+DMA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-K1Z2DVTnyCGl4nolhZ8fvHEixoe1pZOY256LD6D0lGca4Fsi3mHQ7lDU237Pzyc91+cfLva/OAvrivRPeU+DMA==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@nx/nx-linux-x64-musl@20.2.2': - resolution: - { - integrity: sha512-pyWe+d2Y2pJVgPZf27KkDBufhFPq+Xhs3/zAQdJbicMvym7uhw0qMTV+lmoMXgfx52WZzhqTfG8JQcDqHjExJw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-pyWe+d2Y2pJVgPZf27KkDBufhFPq+Xhs3/zAQdJbicMvym7uhw0qMTV+lmoMXgfx52WZzhqTfG8JQcDqHjExJw==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@nx/nx-win32-arm64-msvc@20.2.2': - resolution: - { - integrity: sha512-zqSoVrV34tx6qhQo/PwD9IMGhzoNSaFQxjTjNCY61sE7iwi5Qt4dDs3Rlh1ZFCBFnrjziymRPY2RryArgeK8Bw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-zqSoVrV34tx6qhQo/PwD9IMGhzoNSaFQxjTjNCY61sE7iwi5Qt4dDs3Rlh1ZFCBFnrjziymRPY2RryArgeK8Bw==} + engines: {node: '>= 10'} cpu: [arm64] os: [win32] '@nx/nx-win32-x64-msvc@20.2.2': - resolution: - { - integrity: sha512-IfQf2axmCuSArhFGaocIDt8ajWDHXoVut5NOQH4eV2q9whP1j/LVB8EehEaolF5UenM7rhL4V25PXPuuBaUq4A==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-IfQf2axmCuSArhFGaocIDt8ajWDHXoVut5NOQH4eV2q9whP1j/LVB8EehEaolF5UenM7rhL4V25PXPuuBaUq4A==} + engines: {node: '>= 10'} cpu: [x64] os: [win32] '@nx/playwright@20.2.2': - resolution: - { - integrity: sha512-vCIKU0XVo74C7OqCxZBNlZXshYbyTDxDuOIEbxdO8JMyFnHeyg91Z5ezxwHvIpxzwyFX1pdNz6W++RETTXYUTw==, - } + resolution: {integrity: sha512-vCIKU0XVo74C7OqCxZBNlZXshYbyTDxDuOIEbxdO8JMyFnHeyg91Z5ezxwHvIpxzwyFX1pdNz6W++RETTXYUTw==} peerDependencies: '@playwright/test': ^1.36.0 peerDependenciesMeta: @@ -2768,314 +1875,185 @@ packages: optional: true '@nx/vite@20.2.2': - resolution: - { - integrity: sha512-PckVgTNPkOr2E752L4EEZv7C/Twtx/vuGBpfVw58f7rVuz6hpVFnMTm4eqatImsBmNoHCpHrJ3rJTT1ov45gUQ==, - } + resolution: {integrity: sha512-PckVgTNPkOr2E752L4EEZv7C/Twtx/vuGBpfVw58f7rVuz6hpVFnMTm4eqatImsBmNoHCpHrJ3rJTT1ov45gUQ==} peerDependencies: vite: ^5.0.0 vitest: ^1.3.1 || ^2.0.0 '@nx/web@20.2.2': - resolution: - { - integrity: sha512-Z1MEKv3rEvs4W0h1Ltvh66VtJ29YZ+RWuLWzPebf8K1z9818RbXR3FpMiM1edkHyaykeQeJcK6D5aIHPwti/Bg==, - } + resolution: {integrity: sha512-Z1MEKv3rEvs4W0h1Ltvh66VtJ29YZ+RWuLWzPebf8K1z9818RbXR3FpMiM1edkHyaykeQeJcK6D5aIHPwti/Bg==} '@nx/webpack@20.2.2': - resolution: - { - integrity: sha512-hlt9L24rvk7xrgD2BnLxMqOWeoV5DsF0ZJc05EbIMuM8yg03agsC79Rq1gaRoM3uIhCb+CxW0mlQpcVKnPXMUw==, - } + resolution: {integrity: sha512-hlt9L24rvk7xrgD2BnLxMqOWeoV5DsF0ZJc05EbIMuM8yg03agsC79Rq1gaRoM3uIhCb+CxW0mlQpcVKnPXMUw==} '@nx/workspace@20.2.2': - resolution: - { - integrity: sha512-VC22d5EG9f8sLD+gvq9Nbau0u8cV0gy5aYyRcleecqs9bBvOiVxAvv7HaDCRcHezHQhKwxcIOZvmuCjYF/oKxg==, - } + resolution: {integrity: sha512-VC22d5EG9f8sLD+gvq9Nbau0u8cV0gy5aYyRcleecqs9bBvOiVxAvv7HaDCRcHezHQhKwxcIOZvmuCjYF/oKxg==} '@open-draft/deferred-promise@2.2.0': - resolution: - { - integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==, - } + resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} '@open-draft/logger@0.3.0': - resolution: - { - integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==, - } + resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} '@open-draft/until@1.0.3': - resolution: - { - integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==, - } + resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==} '@open-draft/until@2.1.0': - resolution: - { - integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==, - } + resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} '@parcel/watcher-android-arm64@2.4.1': - resolution: - { - integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} + engines: {node: '>= 10.0.0'} cpu: [arm64] os: [android] '@parcel/watcher-darwin-arm64@2.4.1': - resolution: - { - integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} + engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] '@parcel/watcher-darwin-x64@2.4.1': - resolution: - { - integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} + engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] '@parcel/watcher-freebsd-x64@2.4.1': - resolution: - { - integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} + engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] '@parcel/watcher-linux-arm-glibc@2.4.1': - resolution: - { - integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} + engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] '@parcel/watcher-linux-arm64-glibc@2.4.1': - resolution: - { - integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} + engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] '@parcel/watcher-linux-arm64-musl@2.4.1': - resolution: - { - integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} + engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] '@parcel/watcher-linux-x64-glibc@2.4.1': - resolution: - { - integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} + engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] '@parcel/watcher-linux-x64-musl@2.4.1': - resolution: - { - integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} + engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] '@parcel/watcher-win32-arm64@2.4.1': - resolution: - { - integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} + engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] '@parcel/watcher-win32-ia32@2.4.1': - resolution: - { - integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} + engines: {node: '>= 10.0.0'} cpu: [ia32] os: [win32] '@parcel/watcher-win32-x64@2.4.1': - resolution: - { - integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} + engines: {node: '>= 10.0.0'} cpu: [x64] os: [win32] '@parcel/watcher@2.4.1': - resolution: - { - integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} + engines: {node: '>= 10.0.0'} '@percy/appium-app@2.0.8': - resolution: - { - integrity: sha512-meG7ijg5tXsyf92UeVyUb76gOICHiWFjjYmhnXbb3xlwfYAmZ4XWMvv7vhXFQ0vQKCasUEwrYo1bcZ40qzCrqg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-meG7ijg5tXsyf92UeVyUb76gOICHiWFjjYmhnXbb3xlwfYAmZ4XWMvv7vhXFQ0vQKCasUEwrYo1bcZ40qzCrqg==} + engines: {node: '>=14'} '@percy/sdk-utils@1.30.0': - resolution: - { - integrity: sha512-GPEexJ0gxiFXqjFpL8EtILZo/arrwdz96oyZMsCeRu9bVSQ8ZvptFlwO8hYKtXvZcY7CJfGnUyOcza8CYPxM3g==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-GPEexJ0gxiFXqjFpL8EtILZo/arrwdz96oyZMsCeRu9bVSQ8ZvptFlwO8hYKtXvZcY7CJfGnUyOcza8CYPxM3g==} + engines: {node: '>=14'} '@percy/selenium-webdriver@2.1.0': - resolution: - { - integrity: sha512-CkPe22AJV2ATVDIWLY8PSPDSKx081dS+COgydfdRHXnc5mRw/8YGRcMJw4uvRR4r4u8b9ET2KtPVg0Q56vuSEg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-CkPe22AJV2ATVDIWLY8PSPDSKx081dS+COgydfdRHXnc5mRw/8YGRcMJw4uvRR4r4u8b9ET2KtPVg0Q56vuSEg==} + engines: {node: '>=14'} '@phenomnomnominal/tsquery@5.0.1': - resolution: - { - integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==, - } + resolution: {integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==} peerDependencies: typescript: ^3 || ^4 || ^5 '@pkgjs/parseargs@0.11.0': - resolution: - { - integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} '@pkgr/core@0.1.1': - resolution: - { - integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==, - } - engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} '@playwright/test@1.47.2': - resolution: - { - integrity: sha512-jTXRsoSPONAs8Za9QEQdyjFn+0ZQFjCiIztAIF6bi1HqhBzG9Ma7g1WotyiGqFSBRZjIEqMdT8RUlbk1QVhzCQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-jTXRsoSPONAs8Za9QEQdyjFn+0ZQFjCiIztAIF6bi1HqhBzG9Ma7g1WotyiGqFSBRZjIEqMdT8RUlbk1QVhzCQ==} + engines: {node: '>=18'} hasBin: true '@pnpm/config.env-replace@1.1.0': - resolution: - { - integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==, - } - engines: { node: '>=12.22.0' } + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} '@pnpm/network.ca-file@1.0.2': - resolution: - { - integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==, - } - engines: { node: '>=12.22.0' } + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} '@pnpm/npm-conf@2.3.1': - resolution: - { - integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + engines: {node: '>=12'} '@polka/url@1.0.0-next.25': - resolution: - { - integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==, - } + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} '@protobufjs/aspromise@1.1.2': - resolution: - { - integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, - } + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} '@protobufjs/base64@1.1.2': - resolution: - { - integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==, - } + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} '@protobufjs/codegen@2.0.4': - resolution: - { - integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==, - } + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} '@protobufjs/eventemitter@1.1.0': - resolution: - { - integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==, - } + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} '@protobufjs/fetch@1.1.0': - resolution: - { - integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==, - } + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} '@protobufjs/float@1.0.2': - resolution: - { - integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==, - } + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} '@protobufjs/inquire@1.1.0': - resolution: - { - integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==, - } + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} '@protobufjs/path@1.1.2': - resolution: - { - integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==, - } + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} '@protobufjs/pool@1.1.0': - resolution: - { - integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==, - } + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} '@protobufjs/utf8@1.1.0': - resolution: - { - integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==, - } + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} '@reduxjs/toolkit@2.3.0': - resolution: - { - integrity: sha512-WC7Yd6cNGfHx8zf+iu+Q1UPTfEcXhQ+ATi7CV1hlrSAaQBdlPzg7Ww/wJHNQem7qG9rxmWoFCDCPubSvFObGzA==, - } + resolution: {integrity: sha512-WC7Yd6cNGfHx8zf+iu+Q1UPTfEcXhQ+ATi7CV1hlrSAaQBdlPzg7Ww/wJHNQem7qG9rxmWoFCDCPubSvFObGzA==} peerDependencies: react: ^16.9.0 || ^17.0.0 || ^18 react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 @@ -3086,18 +2064,12 @@ packages: optional: true '@rollup/pluginutils@4.2.1': - resolution: - { - integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, - } - engines: { node: '>= 8.0.0' } + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} '@rollup/pluginutils@5.1.0': - resolution: - { - integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} peerDependencies: rollup: '>=2.79.2' peerDependenciesMeta: @@ -3105,138 +2077,87 @@ packages: optional: true '@rollup/rollup-android-arm-eabi@4.22.5': - resolution: - { - integrity: sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==, - } + resolution: {integrity: sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==} cpu: [arm] os: [android] '@rollup/rollup-android-arm64@4.22.5': - resolution: - { - integrity: sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==, - } + resolution: {integrity: sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==} cpu: [arm64] os: [android] '@rollup/rollup-darwin-arm64@4.22.5': - resolution: - { - integrity: sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==, - } + resolution: {integrity: sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==} cpu: [arm64] os: [darwin] '@rollup/rollup-darwin-x64@4.22.5': - resolution: - { - integrity: sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==, - } + resolution: {integrity: sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==} cpu: [x64] os: [darwin] '@rollup/rollup-linux-arm-gnueabihf@4.22.5': - resolution: - { - integrity: sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==, - } + resolution: {integrity: sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==} cpu: [arm] os: [linux] '@rollup/rollup-linux-arm-musleabihf@4.22.5': - resolution: - { - integrity: sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==, - } + resolution: {integrity: sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==} cpu: [arm] os: [linux] '@rollup/rollup-linux-arm64-gnu@4.22.5': - resolution: - { - integrity: sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==, - } + resolution: {integrity: sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==} cpu: [arm64] os: [linux] '@rollup/rollup-linux-arm64-musl@4.22.5': - resolution: - { - integrity: sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==, - } + resolution: {integrity: sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==} cpu: [arm64] os: [linux] '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': - resolution: - { - integrity: sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==, - } + resolution: {integrity: sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==} cpu: [ppc64] os: [linux] '@rollup/rollup-linux-riscv64-gnu@4.22.5': - resolution: - { - integrity: sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==, - } + resolution: {integrity: sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==} cpu: [riscv64] os: [linux] '@rollup/rollup-linux-s390x-gnu@4.22.5': - resolution: - { - integrity: sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==, - } + resolution: {integrity: sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==} cpu: [s390x] os: [linux] '@rollup/rollup-linux-x64-gnu@4.22.5': - resolution: - { - integrity: sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==, - } + resolution: {integrity: sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==} cpu: [x64] os: [linux] '@rollup/rollup-linux-x64-musl@4.22.5': - resolution: - { - integrity: sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==, - } + resolution: {integrity: sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==} cpu: [x64] os: [linux] '@rollup/rollup-win32-arm64-msvc@4.22.5': - resolution: - { - integrity: sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==, - } + resolution: {integrity: sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==} cpu: [arm64] os: [win32] '@rollup/rollup-win32-ia32-msvc@4.22.5': - resolution: - { - integrity: sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==, - } + resolution: {integrity: sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==} cpu: [ia32] os: [win32] '@rollup/rollup-win32-x64-msvc@4.22.5': - resolution: - { - integrity: sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==, - } + resolution: {integrity: sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==} cpu: [x64] os: [win32] '@rushstack/node-core-library@5.7.0': - resolution: - { - integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==, - } + resolution: {integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -3244,16 +2165,10 @@ packages: optional: true '@rushstack/rig-package@0.5.3': - resolution: - { - integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==, - } + resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} '@rushstack/terminal@0.14.0': - resolution: - { - integrity: sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw==, - } + resolution: {integrity: sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -3261,217 +2176,133 @@ packages: optional: true '@rushstack/ts-command-line@4.22.6': - resolution: - { - integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==, - } + resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==} '@sentry-internal/tracing@7.110.1': - resolution: - { - integrity: sha512-4kTd6EM0OP1SVWl2yLn3KIwlCpld1lyhNDeR8G1aKLm1PN+kVsR6YB/jy9KPPp4Q3lN3W9EkTSES3qhP4jVffQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-4kTd6EM0OP1SVWl2yLn3KIwlCpld1lyhNDeR8G1aKLm1PN+kVsR6YB/jy9KPPp4Q3lN3W9EkTSES3qhP4jVffQ==} + engines: {node: '>=8'} '@sentry/core@7.110.1': - resolution: - { - integrity: sha512-yC1yeUFQlmHj9u/KxKmwOMVanBmgfX+4MZnZU31QPqN95adyZTwpaYFZl4fH5kDVnz7wXJI0qRP8SxuMePtqhw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-yC1yeUFQlmHj9u/KxKmwOMVanBmgfX+4MZnZU31QPqN95adyZTwpaYFZl4fH5kDVnz7wXJI0qRP8SxuMePtqhw==} + engines: {node: '>=8'} '@sentry/node@7.110.1': - resolution: - { - integrity: sha512-n6sNzZJ/ChfyCI1FxuGWgloeevC8j2vax3vXM4IZrSIm5hS1d9L2oCJ4HEPuxGUxCkQ1f4kXPcdmNaQsWH0JBw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-n6sNzZJ/ChfyCI1FxuGWgloeevC8j2vax3vXM4IZrSIm5hS1d9L2oCJ4HEPuxGUxCkQ1f4kXPcdmNaQsWH0JBw==} + engines: {node: '>=8'} '@sentry/types@7.110.1': - resolution: - { - integrity: sha512-sZxOpM5gfyxvJeWVvNpHnxERTnlqcozjqNcIv29SZ6wonlkekmxDyJ3uCuPv85VO54WLyA4uzskPKnNFHacI8A==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-sZxOpM5gfyxvJeWVvNpHnxERTnlqcozjqNcIv29SZ6wonlkekmxDyJ3uCuPv85VO54WLyA4uzskPKnNFHacI8A==} + engines: {node: '>=8'} '@sentry/utils@7.110.1': - resolution: - { - integrity: sha512-eibLo2m1a7sHkOHxYYmRujr3D7ek2l9sv26F1SLoQBVDF7Afw5AKyzPmtA1D+4M9P/ux1okj7cGj3SaBrVpxXA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-eibLo2m1a7sHkOHxYYmRujr3D7ek2l9sv26F1SLoQBVDF7Afw5AKyzPmtA1D+4M9P/ux1okj7cGj3SaBrVpxXA==} + engines: {node: '>=8'} '@shikijs/engine-oniguruma@1.24.2': - resolution: - { - integrity: sha512-ZN6k//aDNWRJs1uKB12pturKHh7GejKugowOFGAuG7TxDRLod1Bd5JhpOikOiFqPmKjKEPtEA6mRCf7q3ulDyQ==, - } + resolution: {integrity: sha512-ZN6k//aDNWRJs1uKB12pturKHh7GejKugowOFGAuG7TxDRLod1Bd5JhpOikOiFqPmKjKEPtEA6mRCf7q3ulDyQ==} '@shikijs/types@1.24.2': - resolution: - { - integrity: sha512-bdeWZiDtajGLG9BudI0AHet0b6e7FbR0EsE4jpGaI0YwHm/XJunI9+3uZnzFtX65gsyJ6ngCIWUfA4NWRPnBkQ==, - } + resolution: {integrity: sha512-bdeWZiDtajGLG9BudI0AHet0b6e7FbR0EsE4jpGaI0YwHm/XJunI9+3uZnzFtX65gsyJ6ngCIWUfA4NWRPnBkQ==} '@shikijs/vscode-textmate@9.3.1': - resolution: - { - integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==, - } + resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} '@sinclair/typebox@0.27.8': - resolution: - { - integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, - } + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} '@sindresorhus/is@4.6.0': - resolution: - { - integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} '@sindresorhus/is@5.6.0': - resolution: - { - integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} '@sinonjs/commons@3.0.1': - resolution: - { - integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==, - } + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} '@sinonjs/fake-timers@10.3.0': - resolution: - { - integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==, - } + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} '@swc-node/core@1.13.3': - resolution: - { - integrity: sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==} + engines: {node: '>= 10'} peerDependencies: '@swc/core': '>= 1.4.13' '@swc/types': '>= 0.1' '@swc-node/register@1.9.2': - resolution: - { - integrity: sha512-BBjg0QNuEEmJSoU/++JOXhrjWdu3PTyYeJWsvchsI0Aqtj8ICkz/DqlwtXbmZVZ5vuDPpTfFlwDBZe81zgShMA==, - } + resolution: {integrity: sha512-BBjg0QNuEEmJSoU/++JOXhrjWdu3PTyYeJWsvchsI0Aqtj8ICkz/DqlwtXbmZVZ5vuDPpTfFlwDBZe81zgShMA==} peerDependencies: '@swc/core': '>= 1.4.13' typescript: '>= 4.3' '@swc-node/sourcemap-support@0.5.1': - resolution: - { - integrity: sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==, - } + resolution: {integrity: sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==} '@swc/core-darwin-arm64@1.5.7': - resolution: - { - integrity: sha512-bZLVHPTpH3h6yhwVl395k0Mtx8v6CGhq5r4KQdAoPbADU974Mauz1b6ViHAJ74O0IVE5vyy7tD3OpkQxL/vMDQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-bZLVHPTpH3h6yhwVl395k0Mtx8v6CGhq5r4KQdAoPbADU974Mauz1b6ViHAJ74O0IVE5vyy7tD3OpkQxL/vMDQ==} + engines: {node: '>=10'} cpu: [arm64] os: [darwin] '@swc/core-darwin-x64@1.5.7': - resolution: - { - integrity: sha512-RpUyu2GsviwTc2qVajPL0l8nf2vKj5wzO3WkLSHAHEJbiUZk83NJrZd1RVbEknIMO7+Uyjh54hEh8R26jSByaw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-RpUyu2GsviwTc2qVajPL0l8nf2vKj5wzO3WkLSHAHEJbiUZk83NJrZd1RVbEknIMO7+Uyjh54hEh8R26jSByaw==} + engines: {node: '>=10'} cpu: [x64] os: [darwin] '@swc/core-linux-arm-gnueabihf@1.5.7': - resolution: - { - integrity: sha512-cTZWTnCXLABOuvWiv6nQQM0hP6ZWEkzdgDvztgHI/+u/MvtzJBN5lBQ2lue/9sSFYLMqzqff5EHKlFtrJCA9dQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-cTZWTnCXLABOuvWiv6nQQM0hP6ZWEkzdgDvztgHI/+u/MvtzJBN5lBQ2lue/9sSFYLMqzqff5EHKlFtrJCA9dQ==} + engines: {node: '>=10'} cpu: [arm] os: [linux] '@swc/core-linux-arm64-gnu@1.5.7': - resolution: - { - integrity: sha512-hoeTJFBiE/IJP30Be7djWF8Q5KVgkbDtjySmvYLg9P94bHg9TJPSQoC72tXx/oXOgXvElDe/GMybru0UxhKx4g==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-hoeTJFBiE/IJP30Be7djWF8Q5KVgkbDtjySmvYLg9P94bHg9TJPSQoC72tXx/oXOgXvElDe/GMybru0UxhKx4g==} + engines: {node: '>=10'} cpu: [arm64] os: [linux] '@swc/core-linux-arm64-musl@1.5.7': - resolution: - { - integrity: sha512-+NDhK+IFTiVK1/o7EXdCeF2hEzCiaRSrb9zD7X2Z7inwWlxAntcSuzZW7Y6BRqGQH89KA91qYgwbnjgTQ22PiQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-+NDhK+IFTiVK1/o7EXdCeF2hEzCiaRSrb9zD7X2Z7inwWlxAntcSuzZW7Y6BRqGQH89KA91qYgwbnjgTQ22PiQ==} + engines: {node: '>=10'} cpu: [arm64] os: [linux] '@swc/core-linux-x64-gnu@1.5.7': - resolution: - { - integrity: sha512-25GXpJmeFxKB+7pbY7YQLhWWjkYlR+kHz5I3j9WRl3Lp4v4UD67OGXwPe+DIcHqcouA1fhLhsgHJWtsaNOMBNg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-25GXpJmeFxKB+7pbY7YQLhWWjkYlR+kHz5I3j9WRl3Lp4v4UD67OGXwPe+DIcHqcouA1fhLhsgHJWtsaNOMBNg==} + engines: {node: '>=10'} cpu: [x64] os: [linux] '@swc/core-linux-x64-musl@1.5.7': - resolution: - { - integrity: sha512-0VN9Y5EAPBESmSPPsCJzplZHV26akC0sIgd3Hc/7S/1GkSMoeuVL+V9vt+F/cCuzr4VidzSkqftdP3qEIsXSpg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-0VN9Y5EAPBESmSPPsCJzplZHV26akC0sIgd3Hc/7S/1GkSMoeuVL+V9vt+F/cCuzr4VidzSkqftdP3qEIsXSpg==} + engines: {node: '>=10'} cpu: [x64] os: [linux] '@swc/core-win32-arm64-msvc@1.5.7': - resolution: - { - integrity: sha512-RtoNnstBwy5VloNCvmvYNApkTmuCe4sNcoYWpmY7C1+bPR+6SOo8im1G6/FpNem8AR5fcZCmXHWQ+EUmRWJyuA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-RtoNnstBwy5VloNCvmvYNApkTmuCe4sNcoYWpmY7C1+bPR+6SOo8im1G6/FpNem8AR5fcZCmXHWQ+EUmRWJyuA==} + engines: {node: '>=10'} cpu: [arm64] os: [win32] '@swc/core-win32-ia32-msvc@1.5.7': - resolution: - { - integrity: sha512-Xm0TfvcmmspvQg1s4+USL3x8D+YPAfX2JHygvxAnCJ0EHun8cm2zvfNBcsTlnwYb0ybFWXXY129aq1wgFC9TpQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Xm0TfvcmmspvQg1s4+USL3x8D+YPAfX2JHygvxAnCJ0EHun8cm2zvfNBcsTlnwYb0ybFWXXY129aq1wgFC9TpQ==} + engines: {node: '>=10'} cpu: [ia32] os: [win32] '@swc/core-win32-x64-msvc@1.5.7': - resolution: - { - integrity: sha512-tp43WfJLCsKLQKBmjmY/0vv1slVywR5Q4qKjF5OIY8QijaEW7/8VwPyUyVoJZEnDgv9jKtUTG5PzqtIYPZGnyg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-tp43WfJLCsKLQKBmjmY/0vv1slVywR5Q4qKjF5OIY8QijaEW7/8VwPyUyVoJZEnDgv9jKtUTG5PzqtIYPZGnyg==} + engines: {node: '>=10'} cpu: [x64] os: [win32] '@swc/core@1.5.7': - resolution: - { - integrity: sha512-U4qJRBefIJNJDRCCiVtkfa/hpiZ7w0R6kASea+/KLp+vkus3zcLSB8Ub8SvKgTIxjWpwsKcZlPf5nrv4ls46SQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-U4qJRBefIJNJDRCCiVtkfa/hpiZ7w0R6kASea+/KLp+vkus3zcLSB8Ub8SvKgTIxjWpwsKcZlPf5nrv4ls46SQ==} + engines: {node: '>=10'} peerDependencies: '@swc/helpers': ^0.5.0 peerDependenciesMeta: @@ -3479,453 +2310,231 @@ packages: optional: true '@swc/counter@0.1.3': - resolution: - { - integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==, - } + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} '@swc/helpers@0.5.12': - resolution: - { - integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==, - } + resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} '@swc/types@0.1.7': - resolution: - { - integrity: sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==, - } + resolution: {integrity: sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==} '@szmarczak/http-timer@4.0.6': - resolution: - { - integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} '@szmarczak/http-timer@5.0.1': - resolution: - { - integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} '@tootallnate/once@2.0.0': - resolution: - { - integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} '@tootallnate/quickjs-emscripten@0.23.0': - resolution: - { - integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==, - } + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} '@trysound/sax@0.2.0': - resolution: - { - integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} '@tsconfig/node10@1.0.11': - resolution: - { - integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==, - } + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} '@tsconfig/node12@1.0.11': - resolution: - { - integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, - } + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} '@tsconfig/node14@1.0.3': - resolution: - { - integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, - } + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} '@tsconfig/node16@1.0.4': - resolution: - { - integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, - } + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} '@tybys/wasm-util@0.9.0': - resolution: - { - integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==, - } + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} '@types/argparse@1.0.38': - resolution: - { - integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==, - } + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} '@types/babel__core@7.20.5': - resolution: - { - integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, - } + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} '@types/babel__generator@7.6.8': - resolution: - { - integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==, - } + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} '@types/babel__template@7.4.4': - resolution: - { - integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, - } + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} '@types/babel__traverse@7.20.6': - resolution: - { - integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==, - } + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} '@types/body-parser@1.19.5': - resolution: - { - integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==, - } + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} '@types/bonjour@3.5.13': - resolution: - { - integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==, - } + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} '@types/cacheable-request@6.0.3': - resolution: - { - integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==, - } + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} '@types/caseless@0.12.5': - resolution: - { - integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==, - } + resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} '@types/connect-history-api-fallback@1.5.4': - resolution: - { - integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==, - } + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} '@types/connect@3.4.38': - resolution: - { - integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, - } + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} '@types/conventional-commits-parser@5.0.0': - resolution: - { - integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==, - } + resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} '@types/cookie@0.6.0': - resolution: - { - integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==, - } + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} '@types/eslint@8.56.9': - resolution: - { - integrity: sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==, - } + resolution: {integrity: sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==} '@types/estree@1.0.5': - resolution: - { - integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, - } + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} '@types/estree@1.0.6': - resolution: - { - integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==, - } + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} '@types/express-serve-static-core@4.19.0': - resolution: - { - integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==, - } + resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} '@types/express@4.17.17': - resolution: - { - integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==, - } + resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} '@types/express@4.17.21': - resolution: - { - integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==, - } + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} '@types/graceful-fs@4.1.9': - resolution: - { - integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==, - } + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} '@types/hast@3.0.4': - resolution: - { - integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==, - } + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} '@types/http-cache-semantics@4.0.4': - resolution: - { - integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==, - } + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} '@types/http-errors@2.0.4': - resolution: - { - integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==, - } + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} '@types/http-proxy@1.17.15': - resolution: - { - integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==, - } + resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} '@types/istanbul-lib-coverage@2.0.6': - resolution: - { - integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==, - } + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} '@types/istanbul-lib-report@3.0.3': - resolution: - { - integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==, - } + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} '@types/istanbul-reports@3.0.4': - resolution: - { - integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==, - } + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} '@types/js-yaml@4.0.9': - resolution: - { - integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==, - } + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} '@types/json-schema@7.0.15': - resolution: - { - integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, - } + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} '@types/json5@0.0.29': - resolution: - { - integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, - } + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} '@types/keyv@3.1.4': - resolution: - { - integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, - } + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} '@types/lodash@4.17.0': - resolution: - { - integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==, - } + resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} '@types/long@4.0.2': - resolution: - { - integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==, - } + resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} '@types/mime@1.3.5': - resolution: - { - integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==, - } + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} '@types/node-fetch@2.6.11': - resolution: - { - integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==, - } + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} '@types/node-forge@1.3.11': - resolution: - { - integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==, - } + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} '@types/node@12.20.55': - resolution: - { - integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, - } + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} '@types/node@20.16.11': - resolution: - { - integrity: sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==, - } + resolution: {integrity: sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==} '@types/node@22.10.2': - resolution: - { - integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==, - } + resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} '@types/parse-json@4.0.2': - resolution: - { - integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, - } + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} '@types/qs@6.9.14': - resolution: - { - integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==, - } + resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} '@types/range-parser@1.2.7': - resolution: - { - integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==, - } + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} '@types/request@2.48.12': - resolution: - { - integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==, - } + resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==} '@types/responselike@1.0.3': - resolution: - { - integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, - } + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} '@types/retry@0.12.2': - resolution: - { - integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==, - } + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} '@types/send@0.17.4': - resolution: - { - integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==, - } + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} '@types/serve-index@1.9.4': - resolution: - { - integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==, - } + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} '@types/serve-static@1.15.7': - resolution: - { - integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==, - } + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} '@types/sockjs@0.3.36': - resolution: - { - integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==, - } + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} '@types/stack-utils@2.0.3': - resolution: - { - integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==, - } + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} '@types/statuses@2.0.5': - resolution: - { - integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==, - } + resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} '@types/stream-buffers@3.0.7': - resolution: - { - integrity: sha512-azOCy05sXVXrO+qklf0c/B07H/oHaIuDDAiHPVwlk3A9Ek+ksHyTeMajLZl3r76FxpPpxem//4Te61G1iW3Giw==, - } + resolution: {integrity: sha512-azOCy05sXVXrO+qklf0c/B07H/oHaIuDDAiHPVwlk3A9Ek+ksHyTeMajLZl3r76FxpPpxem//4Te61G1iW3Giw==} '@types/tar@6.1.13': - resolution: - { - integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==, - } + resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} '@types/tough-cookie@4.0.5': - resolution: - { - integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==, - } + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} '@types/triple-beam@1.3.5': - resolution: - { - integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==, - } + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} '@types/underscore@1.11.15': - resolution: - { - integrity: sha512-HP38xE+GuWGlbSRq9WrZkousaQ7dragtZCruBVMi0oX1migFZavZ3OROKHSkNp/9ouq82zrWtZpg18jFnVN96g==, - } + resolution: {integrity: sha512-HP38xE+GuWGlbSRq9WrZkousaQ7dragtZCruBVMi0oX1migFZavZ3OROKHSkNp/9ouq82zrWtZpg18jFnVN96g==} '@types/unist@3.0.2': - resolution: - { - integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==, - } + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} '@types/ws@8.5.12': - resolution: - { - integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==, - } + resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} '@types/yargs-parser@21.0.3': - resolution: - { - integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, - } + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} '@types/yargs@17.0.33': - resolution: - { - integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==, - } + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} '@typescript-eslint/eslint-plugin@7.16.1': - resolution: - { - integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==, - } - engines: { node: ^18.18.0 || >=20.0.0 } + resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 eslint: ^8.56.0 @@ -3935,11 +2544,8 @@ packages: optional: true '@typescript-eslint/parser@7.16.1': - resolution: - { - integrity: sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==, - } - engines: { node: ^18.18.0 || >=20.0.0 } + resolution: {integrity: sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -3948,32 +2554,20 @@ packages: optional: true '@typescript-eslint/scope-manager@7.16.1': - resolution: - { - integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==, - } - engines: { node: ^18.18.0 || >=20.0.0 } + resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} + engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/scope-manager@8.18.0': - resolution: - { - integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/scope-manager@8.7.0': - resolution: - { - integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/type-utils@7.16.1': - resolution: - { - integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==, - } - engines: { node: ^18.18.0 || >=20.0.0 } + resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -3982,11 +2576,8 @@ packages: optional: true '@typescript-eslint/type-utils@8.7.0': - resolution: - { - integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -3994,39 +2585,24 @@ packages: optional: true '@typescript-eslint/types@5.59.5': - resolution: - { - integrity: sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@typescript-eslint/types@7.16.1': - resolution: - { - integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==, - } - engines: { node: ^18.18.0 || >=20.0.0 } + resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} + engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/types@8.18.0': - resolution: - { - integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/types@8.7.0': - resolution: - { - integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@5.59.5': - resolution: - { - integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -4034,11 +2610,8 @@ packages: optional: true '@typescript-eslint/typescript-estree@7.16.1': - resolution: - { - integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==, - } - engines: { node: ^18.18.0 || >=20.0.0 } + resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -4046,20 +2619,14 @@ packages: optional: true '@typescript-eslint/typescript-estree@8.18.0': - resolution: - { - integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/typescript-estree@8.7.0': - resolution: - { - integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -4067,281 +2634,161 @@ packages: optional: true '@typescript-eslint/utils@7.16.1': - resolution: - { - integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==, - } - engines: { node: ^18.18.0 || >=20.0.0 } + resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 '@typescript-eslint/utils@8.18.0': - resolution: - { - integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/utils@8.7.0': - resolution: - { - integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 '@typescript-eslint/visitor-keys@5.59.5': - resolution: - { - integrity: sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@typescript-eslint/visitor-keys@7.16.1': - resolution: - { - integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==, - } - engines: { node: ^18.18.0 || >=20.0.0 } + resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} + engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/visitor-keys@8.18.0': - resolution: - { - integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/visitor-keys@8.7.0': - resolution: - { - integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': - resolution: - { - integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, - } + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} '@verdaccio/commons-api@10.2.0': - resolution: - { - integrity: sha512-F/YZANu4DmpcEV0jronzI7v2fGVWkQ5Mwi+bVmV+ACJ+EzR0c9Jbhtbe5QyLUuzR97t8R5E/Xe53O0cc2LukdQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-F/YZANu4DmpcEV0jronzI7v2fGVWkQ5Mwi+bVmV+ACJ+EzR0c9Jbhtbe5QyLUuzR97t8R5E/Xe53O0cc2LukdQ==} + engines: {node: '>=8'} '@verdaccio/config@7.0.0-next-7.13': - resolution: - { - integrity: sha512-QM0uvbLoK8IJMXCr9yYTlR9ZfoO26/sPt0ZGtzEp6yLZ4CZnI4C+eC6KlV/jPTSYf3s8GFAE9ZPvhnQyhX2DoA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-QM0uvbLoK8IJMXCr9yYTlR9ZfoO26/sPt0ZGtzEp6yLZ4CZnI4C+eC6KlV/jPTSYf3s8GFAE9ZPvhnQyhX2DoA==} + engines: {node: '>=12'} '@verdaccio/core@7.0.0-next-7.13': - resolution: - { - integrity: sha512-95cSbuXc3GMaDjlSAEOkDIbN8YaYVq0E4yj/M6oIu4N4XK7DdbuB6k7YAr/TeUJU+2KFPHk3caDEj2a129jNCA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-95cSbuXc3GMaDjlSAEOkDIbN8YaYVq0E4yj/M6oIu4N4XK7DdbuB6k7YAr/TeUJU+2KFPHk3caDEj2a129jNCA==} + engines: {node: '>=12'} '@verdaccio/file-locking@10.3.1': - resolution: - { - integrity: sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g==} + engines: {node: '>=12'} '@verdaccio/file-locking@12.0.0-next.1': - resolution: - { - integrity: sha512-Zb5G2HEhVRB0jCq4z7QA4dqTdRv/2kIsw2Nkm3j2HqC1OeJRxas3MJAF/OxzbAb1IN32lbg1zycMSk6NcbQkgQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-Zb5G2HEhVRB0jCq4z7QA4dqTdRv/2kIsw2Nkm3j2HqC1OeJRxas3MJAF/OxzbAb1IN32lbg1zycMSk6NcbQkgQ==} + engines: {node: '>=12'} '@verdaccio/local-storage-legacy@11.0.2': - resolution: - { - integrity: sha512-7AXG7qlcVFmF+Nue2oKaraprGRtaBvrQIOvc/E89+7hAe399V01KnZI6E/ET56u7U9fq0MSlp92HBcdotlpUXg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-7AXG7qlcVFmF+Nue2oKaraprGRtaBvrQIOvc/E89+7hAe399V01KnZI6E/ET56u7U9fq0MSlp92HBcdotlpUXg==} + engines: {node: '>=12'} '@verdaccio/logger-7@7.0.0-next-7.13': - resolution: - { - integrity: sha512-uiKIC6rSarSdYVdGKSw1JnDC04xCv6kKvqCjVV4GN9QeIaMzMBpPUZRwEEmq7Emc6tm+VPURVtbUy1aLRxWsmQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-uiKIC6rSarSdYVdGKSw1JnDC04xCv6kKvqCjVV4GN9QeIaMzMBpPUZRwEEmq7Emc6tm+VPURVtbUy1aLRxWsmQ==} + engines: {node: '>=12'} '@verdaccio/logger-commons@7.0.0-next-7.13': - resolution: - { - integrity: sha512-C45E+e/yMc54hXzRkiUZjl/fXObfcAGE1EMXxZjIqjPUx4gnAWEuTpT1NVRxZbMU6HdpOOKrgijwYkBpo5pgCg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-C45E+e/yMc54hXzRkiUZjl/fXObfcAGE1EMXxZjIqjPUx4gnAWEuTpT1NVRxZbMU6HdpOOKrgijwYkBpo5pgCg==} + engines: {node: '>=12'} '@verdaccio/logger-prettify@7.0.0-next-7.2': - resolution: - { - integrity: sha512-vGIcXW8DkVBsk0g/iufMZWKBMgC774Vz0zT0g+3NErBUmAhvCby+rrrNDy64jJ8XfJEn+eMiXq7wM/tRWbwYKQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-vGIcXW8DkVBsk0g/iufMZWKBMgC774Vz0zT0g+3NErBUmAhvCby+rrrNDy64jJ8XfJEn+eMiXq7wM/tRWbwYKQ==} + engines: {node: '>=12'} '@verdaccio/middleware@7.0.0-next-7.13': - resolution: - { - integrity: sha512-SwStOZeOJ9GFgJEeOhXP3AZpx35HNl66Ru8zKUb0VrOw8mna/4d+/wL+5bAaYfG/k5uO1eOJoTBMQLJkFfQyZA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-SwStOZeOJ9GFgJEeOhXP3AZpx35HNl66Ru8zKUb0VrOw8mna/4d+/wL+5bAaYfG/k5uO1eOJoTBMQLJkFfQyZA==} + engines: {node: '>=12'} '@verdaccio/search-indexer@7.0.0-next-7.2': - resolution: - { - integrity: sha512-ZkhqHHWP530dFr8EuicAa5sXFDlAYqiSgpNDPIyMaz1FkfqngeffhWdydXQgVb60d1OeJkpaf3utPE2kQwIXxQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ZkhqHHWP530dFr8EuicAa5sXFDlAYqiSgpNDPIyMaz1FkfqngeffhWdydXQgVb60d1OeJkpaf3utPE2kQwIXxQ==} + engines: {node: '>=12'} '@verdaccio/signature@7.0.0-next.3': - resolution: - { - integrity: sha512-egs1VmEe+COUUZ83I6gzDy79Jo3b/AExPvp9EDuJHkmwxJj+9gb231Rv4wk+UoNPrQRNLljUepQwVrDmbqP5DQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-egs1VmEe+COUUZ83I6gzDy79Jo3b/AExPvp9EDuJHkmwxJj+9gb231Rv4wk+UoNPrQRNLljUepQwVrDmbqP5DQ==} + engines: {node: '>=12'} '@verdaccio/streams@10.2.1': - resolution: - { - integrity: sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ==, - } - engines: { node: '>=12', npm: '>=5' } + resolution: {integrity: sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ==} + engines: {node: '>=12', npm: '>=5'} '@verdaccio/tarball@12.0.0-next-7.13': - resolution: - { - integrity: sha512-O74anmOdpeUL52LtYRso8UQMKKRqDsnEaTLRACOEQevhyBp/ySs2XwVLPoHymDaXiUQfKUP06HekujdedTpO+A==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-O74anmOdpeUL52LtYRso8UQMKKRqDsnEaTLRACOEQevhyBp/ySs2XwVLPoHymDaXiUQfKUP06HekujdedTpO+A==} + engines: {node: '>=12'} '@verdaccio/ui-theme@7.0.0-next-7.13': - resolution: - { - integrity: sha512-qRIGVahav3y70fIX35iqUxvyzhJ6fQmGZP+b0ODu0zCOn3zFCwS5bkTXuRITIACo26pZIMauw9LTqqsb1GPmLA==, - } + resolution: {integrity: sha512-qRIGVahav3y70fIX35iqUxvyzhJ6fQmGZP+b0ODu0zCOn3zFCwS5bkTXuRITIACo26pZIMauw9LTqqsb1GPmLA==} '@verdaccio/url@12.0.0-next-7.13': - resolution: - { - integrity: sha512-Ag2sF4Q6DewKJtFIayo21KCgp9azdfsgvgjM8nlQkuWduHYgack5w/paTX5z2hfyFtbXyO648DvBBvmkjcBjbA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-Ag2sF4Q6DewKJtFIayo21KCgp9azdfsgvgjM8nlQkuWduHYgack5w/paTX5z2hfyFtbXyO648DvBBvmkjcBjbA==} + engines: {node: '>=12'} '@verdaccio/utils@7.0.0-next-7.13': - resolution: - { - integrity: sha512-ZtQZjUyxHZHQSjbajncdPLuJt5D0k3r6RQ8Wg0jM5LAoAJM5L+ISC0lcDZI3VRY6mq/LhU6hKfUygBK8o7VQmQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ZtQZjUyxHZHQSjbajncdPLuJt5D0k3r6RQ8Wg0jM5LAoAJM5L+ISC0lcDZI3VRY6mq/LhU6hKfUygBK8o7VQmQ==} + engines: {node: '>=12'} '@vitejs/plugin-basic-ssl@1.1.0': - resolution: - { - integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==, - } - engines: { node: '>=14.6.0' } + resolution: {integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==} + engines: {node: '>=14.6.0'} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 '@vitest/coverage-v8@1.5.0': - resolution: - { - integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==, - } + resolution: {integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==} peerDependencies: vitest: 1.5.0 '@vitest/expect@1.5.0': - resolution: - { - integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==, - } + resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} '@vitest/runner@1.5.0': - resolution: - { - integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==, - } + resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} '@vitest/snapshot@1.5.0': - resolution: - { - integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==, - } + resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} '@vitest/spy@1.5.0': - resolution: - { - integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==, - } + resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} '@vitest/ui@1.5.0': - resolution: - { - integrity: sha512-ETcToK2TzICf/Oartvt19IH7yR4oCs8GrQk5hRhZ5oZFaSdDHTh6o3EdzyxOaY24NZ20cXYYNGjj1se/5vHfFg==, - } + resolution: {integrity: sha512-ETcToK2TzICf/Oartvt19IH7yR4oCs8GrQk5hRhZ5oZFaSdDHTh6o3EdzyxOaY24NZ20cXYYNGjj1se/5vHfFg==} peerDependencies: vitest: 1.5.0 '@vitest/utils@1.5.0': - resolution: - { - integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==, - } + resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} '@volar/language-core@2.4.5': - resolution: - { - integrity: sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==, - } + resolution: {integrity: sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==} '@volar/source-map@2.4.5': - resolution: - { - integrity: sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==, - } + resolution: {integrity: sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==} '@volar/typescript@2.4.5': - resolution: - { - integrity: sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==, - } + resolution: {integrity: sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==} '@vue/compiler-core@3.4.24': - resolution: - { - integrity: sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==, - } + resolution: {integrity: sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==} '@vue/compiler-dom@3.4.24': - resolution: - { - integrity: sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==, - } + resolution: {integrity: sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==} '@vue/compiler-vue2@2.7.16': - resolution: - { - integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==, - } + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} '@vue/language-core@2.1.6': - resolution: - { - integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==, - } + resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -4349,218 +2796,119 @@ packages: optional: true '@vue/shared@3.4.24': - resolution: - { - integrity: sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw==, - } + resolution: {integrity: sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw==} '@webassemblyjs/ast@1.12.1': - resolution: - { - integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==, - } + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: - { - integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==, - } + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} '@webassemblyjs/helper-api-error@1.11.6': - resolution: - { - integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==, - } + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} '@webassemblyjs/helper-buffer@1.12.1': - resolution: - { - integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==, - } + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} '@webassemblyjs/helper-numbers@1.11.6': - resolution: - { - integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==, - } + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: - { - integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==, - } + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: - { - integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==, - } + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} '@webassemblyjs/ieee754@1.11.6': - resolution: - { - integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==, - } + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} '@webassemblyjs/leb128@1.11.6': - resolution: - { - integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==, - } + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} '@webassemblyjs/utf8@1.11.6': - resolution: - { - integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==, - } + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} '@webassemblyjs/wasm-edit@1.12.1': - resolution: - { - integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==, - } + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} '@webassemblyjs/wasm-gen@1.12.1': - resolution: - { - integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==, - } + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} '@webassemblyjs/wasm-opt@1.12.1': - resolution: - { - integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==, - } + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} '@webassemblyjs/wasm-parser@1.12.1': - resolution: - { - integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==, - } + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} '@webassemblyjs/wast-printer@1.12.1': - resolution: - { - integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==, - } + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} '@xtuc/ieee754@1.2.0': - resolution: - { - integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, - } + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} '@xtuc/long@4.2.2': - resolution: - { - integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, - } + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} '@yarnpkg/lockfile@1.1.0': - resolution: - { - integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==, - } + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} '@yarnpkg/parsers@3.0.2': - resolution: - { - integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==, - } - engines: { node: '>=18.12.0' } + resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} + engines: {node: '>=18.12.0'} '@zkochan/js-yaml@0.0.7': - resolution: - { - integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==, - } + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} hasBin: true JSONStream@1.3.5: - resolution: - { - integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, - } + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true abab@2.0.6: - resolution: - { - integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==, - } + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} deprecated: Use your platform's native atob() and btoa() methods instead abort-controller@3.0.0: - resolution: - { - integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, - } - engines: { node: '>=6.5' } + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} accepts@1.3.8: - resolution: - { - integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} acorn-import-attributes@1.9.5: - resolution: - { - integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==, - } + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 acorn-jsx@5.3.2: - resolution: - { - integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, - } + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn-walk@8.3.2: - resolution: - { - integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==, - } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} acorn@8.11.3: - resolution: - { - integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==, - } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} hasBin: true address@1.2.2: - resolution: - { - integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} agent-base@6.0.2: - resolution: - { - integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, - } - engines: { node: '>= 6.0.0' } + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} agent-base@7.1.1: - resolution: - { - integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} ajv-draft-04@1.0.0: - resolution: - { - integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==, - } + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} peerDependencies: ajv: ^8.5.0 peerDependenciesMeta: @@ -4568,10 +2916,7 @@ packages: optional: true ajv-formats@2.1.1: - resolution: - { - integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, - } + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -4579,10 +2924,7 @@ packages: optional: true ajv-formats@3.0.1: - resolution: - { - integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==, - } + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -4590,444 +2932,252 @@ packages: optional: true ajv-keywords@3.5.2: - resolution: - { - integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, - } + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: ajv: ^6.9.1 ajv-keywords@5.1.0: - resolution: - { - integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==, - } + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} peerDependencies: ajv: ^8.8.2 ajv@6.12.6: - resolution: - { - integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, - } + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} ajv@8.12.0: - resolution: - { - integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, - } + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} ajv@8.13.0: - resolution: - { - integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==, - } + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} ansi-align@3.0.1: - resolution: - { - integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==, - } + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} ansi-colors@4.1.3: - resolution: - { - integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} ansi-escapes@4.3.2: - resolution: - { - integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} ansi-escapes@5.0.0: - resolution: - { - integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} ansi-html-community@0.0.8: - resolution: - { - integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==, - } - engines: { '0': node >= 0.8.0 } + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} hasBin: true ansi-regex@2.1.1: - resolution: - { - integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} ansi-regex@5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} ansi-regex@6.0.1: - resolution: - { - integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} ansi-styles@3.2.1: - resolution: - { - integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} ansi-styles@4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} ansi-styles@5.2.0: - resolution: - { - integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} ansi-styles@6.2.1: - resolution: - { - integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} anymatch@3.1.3: - resolution: - { - integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} apache-md5@1.1.8: - resolution: - { - integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==} + engines: {node: '>=8'} aproba@1.2.0: - resolution: - { - integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==, - } + resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} archiver-utils@4.0.1: - resolution: - { - integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==} + engines: {node: '>= 12.0.0'} archiver@6.0.2: - resolution: - { - integrity: sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==} + engines: {node: '>= 12.0.0'} are-we-there-yet@1.1.7: - resolution: - { - integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==, - } + resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} deprecated: This package is no longer supported. arg@4.1.3: - resolution: - { - integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, - } + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} argparse@1.0.10: - resolution: - { - integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, - } + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} argparse@2.0.1: - resolution: - { - integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, - } + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} array-buffer-byte-length@1.0.1: - resolution: - { - integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} array-flatten@1.1.1: - resolution: - { - integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, - } + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} array-ify@1.0.0: - resolution: - { - integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==, - } + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} array-includes@3.1.8: - resolution: - { - integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} array-union@2.1.0: - resolution: - { - integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} array-union@3.0.1: - resolution: - { - integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} + engines: {node: '>=12'} array.prototype.flat@1.3.2: - resolution: - { - integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} array.prototype.flatmap@1.3.2: - resolution: - { - integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} arraybuffer.prototype.slice@1.0.3: - resolution: - { - integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} asap@2.0.6: - resolution: - { - integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, - } + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} asn1@0.2.6: - resolution: - { - integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==, - } + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} assert-plus@1.0.0: - resolution: - { - integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==, - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} assertion-error@1.1.0: - resolution: - { - integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, - } + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} ast-types@0.13.4: - resolution: - { - integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} astral-regex@2.0.0: - resolution: - { - integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} async@2.6.4: - resolution: - { - integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==, - } + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} async@3.2.4: - resolution: - { - integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==, - } + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} async@3.2.5: - resolution: - { - integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==, - } + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} asynckit@0.4.0: - resolution: - { - integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, - } + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} at-least-node@1.0.0: - resolution: - { - integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, - } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} atomic-sleep@1.0.0: - resolution: - { - integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} autoprefixer@10.4.20: - resolution: - { - integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==, - } - engines: { node: ^10 || ^12 || >=14 } + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 available-typed-arrays@1.0.7: - resolution: - { - integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} aws-sdk@2.1691.0: - resolution: - { - integrity: sha512-/F2YC+DlsY3UBM2Bdnh5RLHOPNibS/+IcjUuhP8XuctyrN+MlL+fWDAiela32LTDk7hMy4rx8MTgvbJ+0blO5g==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-/F2YC+DlsY3UBM2Bdnh5RLHOPNibS/+IcjUuhP8XuctyrN+MlL+fWDAiela32LTDk7hMy4rx8MTgvbJ+0blO5g==} + engines: {node: '>= 10.0.0'} aws-sign2@0.7.0: - resolution: - { - integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==, - } + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} aws4@1.12.0: - resolution: - { - integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==, - } + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} axios@1.7.7: - resolution: - { - integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==, - } + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} b4a@1.6.7: - resolution: - { - integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==, - } + resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} babel-jest@29.7.0: - resolution: - { - integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 babel-loader@9.2.1: - resolution: - { - integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==, - } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} + engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 webpack: '>=5' babel-plugin-const-enum@1.2.0: - resolution: - { - integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==, - } + resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} peerDependencies: '@babel/core': ^7.0.0-0 babel-plugin-istanbul@6.1.1: - resolution: - { - integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} babel-plugin-jest-hoist@29.6.3: - resolution: - { - integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} babel-plugin-macros@2.8.0: - resolution: - { - integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==, - } + resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} babel-plugin-polyfill-corejs2@0.4.10: - resolution: - { - integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==, - } + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-polyfill-corejs3@0.10.4: - resolution: - { - integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==, - } + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-polyfill-regenerator@0.6.1: - resolution: - { - integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==, - } + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-transform-typescript-metadata@0.3.2: - resolution: - { - integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==, - } + resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} peerDependencies: '@babel/core': ^7 '@babel/traverse': ^7 @@ -5036,930 +3186,513 @@ packages: optional: true babel-preset-current-node-syntax@1.1.0: - resolution: - { - integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==, - } + resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} peerDependencies: '@babel/core': ^7.0.0 babel-preset-jest@29.6.3: - resolution: - { - integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 balanced-match@1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, - } + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} bare-events@2.5.0: - resolution: - { - integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==, - } + resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} base64-js@1.5.1: - resolution: - { - integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, - } + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} basic-auth@2.0.1: - resolution: - { - integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} basic-ftp@5.0.5: - resolution: - { - integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==, - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + engines: {node: '>=10.0.0'} batch@0.6.1: - resolution: - { - integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==, - } + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} bcrypt-pbkdf@1.0.2: - resolution: - { - integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==, - } + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} bcryptjs@2.4.3: - resolution: - { - integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==, - } + resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} better-path-resolve@1.0.0: - resolution: - { - integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} big.js@5.2.2: - resolution: - { - integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==, - } + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} bignumber.js@9.1.2: - resolution: - { - integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==, - } + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} binary-extensions@2.3.0: - resolution: - { - integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} bl@4.1.0: - resolution: - { - integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, - } + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} bluebird@3.7.2: - resolution: - { - integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, - } + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} body-parser@1.20.3: - resolution: - { - integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==, - } - engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} bonjour-service@1.2.1: - resolution: - { - integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==, - } + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} boolbase@1.0.0: - resolution: - { - integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, - } + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} boolean@3.2.0: - resolution: - { - integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==, - } + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. boxen@7.1.1: - resolution: - { - integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} brace-expansion@1.1.11: - resolution: - { - integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, - } + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} brace-expansion@2.0.1: - resolution: - { - integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, - } + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} braces@3.0.3: - resolution: - { - integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} browserslist@4.24.0: - resolution: - { - integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==, - } - engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true browserstack-local@1.5.5: - resolution: - { - integrity: sha512-jKne7yosrMcptj3hqxp36TP9k0ZW2sCqhyurX24rUL4G3eT7OLgv+CSQN8iq5dtkv5IK+g+v8fWvsiC/S9KxMg==, - } + resolution: {integrity: sha512-jKne7yosrMcptj3hqxp36TP9k0ZW2sCqhyurX24rUL4G3eT7OLgv+CSQN8iq5dtkv5IK+g+v8fWvsiC/S9KxMg==} browserstack-node-sdk@1.34.17: - resolution: - { - integrity: sha512-Ghs3tj5Y6BUIsyJ803+hkRRUzMXVWpIbh2eiGiF9AvyC4DKBnL7gRAUrpne1kt2V5yCdBftwEodInsFbSz9xpQ==, - } + resolution: {integrity: sha512-Ghs3tj5Y6BUIsyJ803+hkRRUzMXVWpIbh2eiGiF9AvyC4DKBnL7gRAUrpne1kt2V5yCdBftwEodInsFbSz9xpQ==} hasBin: true bser@2.1.1: - resolution: - { - integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, - } + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} buffer-crc32@0.2.13: - resolution: - { - integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, - } + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} buffer-equal-constant-time@1.0.1: - resolution: - { - integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==, - } + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} buffer-from@1.1.2: - resolution: - { - integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, - } + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} buffer@4.9.2: - resolution: - { - integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==, - } + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} buffer@5.7.1: - resolution: - { - integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, - } + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} buffer@6.0.3: - resolution: - { - integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, - } + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} builtins@1.0.3: - resolution: - { - integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==, - } + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} builtins@5.1.0: - resolution: - { - integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==, - } + resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} bundle-name@4.1.0: - resolution: - { - integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} byline@5.0.0: - resolution: - { - integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==} + engines: {node: '>=0.10.0'} bytes@3.0.0: - resolution: - { - integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} bytes@3.1.2: - resolution: - { - integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} cac@6.7.14: - resolution: - { - integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} cacheable-lookup@5.0.4: - resolution: - { - integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==, - } - engines: { node: '>=10.6.0' } + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} cacheable-lookup@7.0.0: - resolution: - { - integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} cacheable-request@10.2.14: - resolution: - { - integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} cacheable-request@7.0.4: - resolution: - { - integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} cachedir@2.3.0: - resolution: - { - integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} call-bind@1.0.7: - resolution: - { - integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} callsites@3.1.0: - resolution: - { - integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} camelcase@5.3.1: - resolution: - { - integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} camelcase@6.3.0: - resolution: - { - integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} camelcase@7.0.1: - resolution: - { - integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} camelcase@8.0.0: - resolution: - { - integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} caniuse-api@3.0.0: - resolution: - { - integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==, - } + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} caniuse-lite@1.0.30001663: - resolution: - { - integrity: sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==, - } + resolution: {integrity: sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==} caseless@0.12.0: - resolution: - { - integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==, - } + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} chai@4.4.1: - resolution: - { - integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} chalk@2.4.2: - resolution: - { - integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} chalk@4.1.2: - resolution: - { - integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} chalk@5.3.0: - resolution: - { - integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, - } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} char-regex@1.0.2: - resolution: - { - integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} chardet@0.7.0: - resolution: - { - integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, - } + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} check-error@1.0.3: - resolution: - { - integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==, - } + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} cheerio-select@2.1.0: - resolution: - { - integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==, - } + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} cheerio@1.0.0-rc.11: - resolution: - { - integrity: sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==} + engines: {node: '>= 6'} chokidar@3.6.0: - resolution: - { - integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, - } - engines: { node: '>= 8.10.0' } + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} chownr@2.0.0: - resolution: - { - integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} chrome-trace-event@1.0.4: - resolution: - { - integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==, - } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} ci-info@3.9.0: - resolution: - { - integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} cjs-module-lexer@1.4.1: - resolution: - { - integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==, - } + resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} cli-boxes@3.0.0: - resolution: - { - integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} cli-cursor@3.1.0: - resolution: - { - integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} cli-cursor@4.0.0: - resolution: - { - integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} cli-spinners@2.6.1: - resolution: - { - integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} + engines: {node: '>=6'} cli-truncate@3.1.0: - resolution: - { - integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} cli-width@3.0.0: - resolution: - { - integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} cli-width@4.1.0: - resolution: - { - integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==, - } - engines: { node: '>= 12' } + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} clipanion@3.2.1: - resolution: - { - integrity: sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==, - } + resolution: {integrity: sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==} peerDependencies: typanion: '*' cliui@8.0.1: - resolution: - { - integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} clone-response@1.0.3: - resolution: - { - integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==, - } + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} clone@1.0.4: - resolution: - { - integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} co@4.6.0: - resolution: - { - integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==, - } - engines: { iojs: '>= 1.0.0', node: '>= 0.12.0' } + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} code-point-at@1.1.0: - resolution: - { - integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} collect-v8-coverage@1.0.2: - resolution: - { - integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==, - } + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} color-convert@1.9.3: - resolution: - { - integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, - } + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} color-convert@2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, - } - engines: { node: '>=7.0.0' } + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} color-name@1.1.3: - resolution: - { - integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, - } + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} color-name@1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, - } + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} color-string@1.9.1: - resolution: - { - integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, - } + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} color@3.2.1: - resolution: - { - integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, - } + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} colord@2.9.3: - resolution: - { - integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==, - } + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} colorette@2.0.20: - resolution: - { - integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, - } + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} colorspace@1.1.4: - resolution: - { - integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==, - } + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} columnify@1.6.0: - resolution: - { - integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} + engines: {node: '>=8.0.0'} combined-stream@1.0.8: - resolution: - { - integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} commander@11.0.0: - resolution: - { - integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} commander@2.20.3: - resolution: - { - integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, - } + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} commander@7.2.0: - resolution: - { - integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} commitizen@4.3.0: - resolution: - { - integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==, - } - engines: { node: '>= 12' } + resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} + engines: {node: '>= 12'} hasBin: true common-path-prefix@3.0.0: - resolution: - { - integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==, - } + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} compare-func@2.0.0: - resolution: - { - integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==, - } + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} compare-versions@6.1.1: - resolution: - { - integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==, - } + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} component-emitter@1.3.1: - resolution: - { - integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==, - } + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} compress-commons@5.0.3: - resolution: - { - integrity: sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==} + engines: {node: '>= 12.0.0'} compressible@2.0.18: - resolution: - { - integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} compression@1.7.4: - resolution: - { - integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} computeds@0.0.1: - resolution: - { - integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==, - } + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} concat-map@0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, - } + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} concat-stream@1.6.2: - resolution: - { - integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==, - } - engines: { '0': node >= 0.8 } + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} config-chain@1.1.13: - resolution: - { - integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==, - } + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} configstore@6.0.0: - resolution: - { - integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} + engines: {node: '>=12'} confusing-browser-globals@1.0.11: - resolution: - { - integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==, - } + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} connect-history-api-fallback@2.0.0: - resolution: - { - integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==, - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} console-control-strings@1.1.0: - resolution: - { - integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==, - } + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} content-disposition@0.5.4: - resolution: - { - integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} content-type@1.0.5: - resolution: - { - integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} conventional-changelog-angular@7.0.0: - resolution: - { - integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} conventional-changelog-conventionalcommits@7.0.2: - resolution: - { - integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} conventional-commit-types@3.0.0: - resolution: - { - integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==, - } + resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} conventional-commits-parser@5.0.0: - resolution: - { - integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} hasBin: true convert-source-map@2.0.0: - resolution: - { - integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, - } + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} cookie-parser@1.4.6: - resolution: - { - integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==} + engines: {node: '>= 0.8.0'} cookie-signature@1.0.6: - resolution: - { - integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, - } + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} cookie@0.4.1: - resolution: - { - integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==} + engines: {node: '>= 0.6'} cookie@0.5.0: - resolution: - { - integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} cookie@0.6.0: - resolution: - { - integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} cookiejar@2.1.4: - resolution: - { - integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==, - } + resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} cookies@0.9.1: - resolution: - { - integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} + engines: {node: '>= 0.8'} copy-anything@2.0.6: - resolution: - { - integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==, - } + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} copy-webpack-plugin@10.2.4: - resolution: - { - integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==, - } - engines: { node: '>= 12.20.0' } + resolution: {integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==} + engines: {node: '>= 12.20.0'} peerDependencies: webpack: ^5.1.0 core-js-compat@3.36.1: - resolution: - { - integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==, - } + resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} core-js@3.35.0: - resolution: - { - integrity: sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==, - } + resolution: {integrity: sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==} core-util-is@1.0.2: - resolution: - { - integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==, - } + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} core-util-is@1.0.3: - resolution: - { - integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, - } + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} cors@2.8.5: - resolution: - { - integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, - } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} corser@2.0.1: - resolution: - { - integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==, - } - engines: { node: '>= 0.4.0' } + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} cosmiconfig-typescript-loader@5.0.0: - resolution: - { - integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==, - } - engines: { node: '>=v16' } + resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} + engines: {node: '>=v16'} peerDependencies: '@types/node': '*' cosmiconfig: '>=8.2' typescript: '>=4' cosmiconfig@6.0.0: - resolution: - { - integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} cosmiconfig@7.1.0: - resolution: - { - integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} cosmiconfig@9.0.0: - resolution: - { - integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' peerDependenciesMeta: @@ -5967,55 +3700,34 @@ packages: optional: true crc-32@1.2.2: - resolution: - { - integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} hasBin: true crc32-stream@5.0.1: - resolution: - { - integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==} + engines: {node: '>= 12.0.0'} create-require@1.1.1: - resolution: - { - integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, - } + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} cross-spawn@7.0.6: - resolution: - { - integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} crypto-random-string@4.0.0: - resolution: - { - integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} css-declaration-sorter@7.2.0: - resolution: - { - integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==, - } - engines: { node: ^14 || ^16 || >=18 } + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.0.9 css-loader@6.11.0: - resolution: - { - integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==, - } - engines: { node: '>= 12.13.0' } + resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} + engines: {node: '>= 12.13.0'} peerDependencies: '@rspack/core': 0.x || 1.x webpack: ^5.0.0 @@ -6026,11 +3738,8 @@ packages: optional: true css-minimizer-webpack-plugin@5.0.1: - resolution: - { - integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==, - } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} + engines: {node: '>= 14.15.0'} peerDependencies: '@parcel/css': '*' '@swc/css': '*' @@ -6054,173 +3763,101 @@ packages: optional: true css-select@5.1.0: - resolution: - { - integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, - } + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} css-tree@2.2.1: - resolution: - { - integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==, - } - engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0' } + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} css-tree@2.3.1: - resolution: - { - integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==, - } - engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 } + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} css-what@6.1.0: - resolution: - { - integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} cssesc@3.0.0: - resolution: - { - integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} hasBin: true cssfontparser@1.2.1: - resolution: - { - integrity: sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==, - } + resolution: {integrity: sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==} cssnano-preset-default@6.1.2: - resolution: - { - integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 cssnano-utils@4.0.2: - resolution: - { - integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 cssnano@6.1.2: - resolution: - { - integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 csso@5.0.5: - resolution: - { - integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==, - } - engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0' } + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} cssstyle@3.0.0: - resolution: - { - integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} + engines: {node: '>=14'} cz-conventional-changelog@3.3.0: - resolution: - { - integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} + engines: {node: '>= 10'} cz-git@1.9.1: - resolution: - { - integrity: sha512-GK3EI5R7GApS8u+g9QPvy/50z0NiG7ijc1NASxZaDnQn0ARzr73MjZb3Lt4cZQvKJBd8GrfvOWqHgwMQQ/OlaA==, - } - engines: { node: '>=v12.20.0' } + resolution: {integrity: sha512-GK3EI5R7GApS8u+g9QPvy/50z0NiG7ijc1NASxZaDnQn0ARzr73MjZb3Lt4cZQvKJBd8GrfvOWqHgwMQQ/OlaA==} + engines: {node: '>=v12.20.0'} dargs@8.1.0: - resolution: - { - integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} dashdash@1.14.1: - resolution: - { - integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==, - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} data-uri-to-buffer@6.0.2: - resolution: - { - integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + engines: {node: '>= 14'} data-urls@4.0.0: - resolution: - { - integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} + engines: {node: '>=14'} data-view-buffer@1.0.1: - resolution: - { - integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} data-view-byte-length@1.0.1: - resolution: - { - integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} data-view-byte-offset@1.0.0: - resolution: - { - integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} dataloader@1.4.0: - resolution: - { - integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==, - } + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} dayjs@1.11.10: - resolution: - { - integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==, - } + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} de-indent@1.0.2: - resolution: - { - integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==, - } + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} debug@2.6.9: - resolution: - { - integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, - } + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -6228,10 +3865,7 @@ packages: optional: true debug@3.2.7: - resolution: - { - integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, - } + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -6239,11 +3873,8 @@ packages: optional: true debug@4.3.4: - resolution: - { - integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, - } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -6251,11 +3882,8 @@ packages: optional: true debug@4.3.7: - resolution: - { - integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==, - } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -6263,29 +3891,17 @@ packages: optional: true decimal.js@10.4.3: - resolution: - { - integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==, - } + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} decompress-response@6.0.0: - resolution: - { - integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} dedent@0.7.0: - resolution: - { - integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==, - } + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dedent@1.5.3: - resolution: - { - integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==, - } + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -6293,344 +3909,194 @@ packages: optional: true deep-eql@4.1.3: - resolution: - { - integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} deep-extend@0.6.0: - resolution: - { - integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, - } - engines: { node: '>=4.0.0' } + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} deep-is@0.1.4: - resolution: - { - integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, - } + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} deepmerge@4.3.1: - resolution: - { - integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} default-browser-id@5.0.0: - resolution: - { - integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} default-browser@5.2.1: - resolution: - { - integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} defaults@1.0.4: - resolution: - { - integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, - } + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} defer-to-connect@2.0.1: - resolution: - { - integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} define-data-property@1.1.4: - resolution: - { - integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} define-lazy-prop@2.0.0: - resolution: - { - integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} define-lazy-prop@3.0.0: - resolution: - { - integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} define-properties@1.2.1: - resolution: - { - integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} degenerator@5.0.1: - resolution: - { - integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} delayed-stream@1.0.0: - resolution: - { - integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, - } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} delegates@1.0.0: - resolution: - { - integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==, - } + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} depd@1.1.2: - resolution: - { - integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} depd@2.0.0: - resolution: - { - integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} destroy@1.2.0: - resolution: - { - integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, - } - engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} detect-file@1.0.0: - resolution: - { - integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} detect-indent@6.1.0: - resolution: - { - integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} detect-libc@1.0.3: - resolution: - { - integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} hasBin: true detect-newline@3.1.0: - resolution: - { - integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} detect-node@2.1.0: - resolution: - { - integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==, - } + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} detect-port@1.5.1: - resolution: - { - integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==, - } + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} hasBin: true dezalgo@1.0.4: - resolution: - { - integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==, - } + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} diff-sequences@29.6.3: - resolution: - { - integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} diff@4.0.2: - resolution: - { - integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, - } - engines: { node: '>=0.3.1' } + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} dir-glob@3.0.1: - resolution: - { - integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dns-packet@5.6.1: - resolution: - { - integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} doctrine@2.1.0: - resolution: - { - integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} doctrine@3.0.0: - resolution: - { - integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dom-serializer@2.0.0: - resolution: - { - integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, - } + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} domelementtype@2.3.0: - resolution: - { - integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, - } + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} domexception@4.0.0: - resolution: - { - integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} deprecated: Use your platform's native DOMException instead domhandler@5.0.3: - resolution: - { - integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} domutils@3.1.0: - resolution: - { - integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, - } + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dot-prop@5.3.0: - resolution: - { - integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} dot-prop@6.0.1: - resolution: - { - integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} + engines: {node: '>=10'} dotenv-expand@11.0.6: - resolution: - { - integrity: sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==} + engines: {node: '>=12'} dotenv@10.0.0: - resolution: - { - integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} + engines: {node: '>=10'} dotenv@16.4.5: - resolution: - { - integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} dotenv@8.6.0: - resolution: - { - integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} + engines: {node: '>=10'} duplexer@0.1.2: - resolution: - { - integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, - } + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} duplexify@4.1.3: - resolution: - { - integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==, - } + resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} eastasianwidth@0.2.0: - resolution: - { - integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, - } + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} ecc-jsbn@0.1.2: - resolution: - { - integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==, - } + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} ecdsa-sig-formatter@1.0.11: - resolution: - { - integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==, - } + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} ee-first@1.1.1: - resolution: - { - integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, - } + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} effect-http-error@0.4.0: - resolution: - { - integrity: sha512-ABrUA6pHsQPE349oKVWZjem308tMboZBErIFyyWdh6o3LIX6KW6BfrYg7x8xghyNJA8gChdGMOeIFwkdKoKxFg==, - } + resolution: {integrity: sha512-ABrUA6pHsQPE349oKVWZjem308tMboZBErIFyyWdh6o3LIX6KW6BfrYg7x8xghyNJA8gChdGMOeIFwkdKoKxFg==} peerDependencies: '@effect/platform': ^0.58.0 '@effect/schema': ^0.68.0 effect: ^3.5.0 effect-http-node@0.16.1: - resolution: - { - integrity: sha512-GhsVvFs6B0KliCRdQUpPLtedRupgNgzCqtv/patLT253suWUX8WxBtGi/Im5KKk64VmfZwz6DKHdgD00wJSYhQ==, - } + resolution: {integrity: sha512-GhsVvFs6B0KliCRdQUpPLtedRupgNgzCqtv/patLT253suWUX8WxBtGi/Im5KKk64VmfZwz6DKHdgD00wJSYhQ==} peerDependencies: '@effect/platform': ^0.58.0 '@effect/platform-node': ^0.53.0 @@ -6639,10 +4105,7 @@ packages: effect-http: ^0.73.0 effect-http-security@0.4.0: - resolution: - { - integrity: sha512-jeuMKWr5kSuOMbHL454ks/Y59WlqvlopfimaCNaG7w39/XfMOQ9C/Emy8GwyHGozBwi42kFiZBCQ4megzng91Q==, - } + resolution: {integrity: sha512-jeuMKWr5kSuOMbHL454ks/Y59WlqvlopfimaCNaG7w39/XfMOQ9C/Emy8GwyHGozBwi42kFiZBCQ4megzng91Q==} peerDependencies: '@effect/platform': ^0.58.0 '@effect/schema': ^0.68.0 @@ -6650,289 +4113,166 @@ packages: effect-http-error: ^0.4.0 effect-http@0.73.0: - resolution: - { - integrity: sha512-VEBhvyP/rD4JU5OtbSE1zZE9B+s+KaPXaSL7DXtP46QjTItjRUuYAqM7xzDgonmYN9kSY3JpxNuQctB0wvCQEA==, - } + resolution: {integrity: sha512-VEBhvyP/rD4JU5OtbSE1zZE9B+s+KaPXaSL7DXtP46QjTItjRUuYAqM7xzDgonmYN9kSY3JpxNuQctB0wvCQEA==} peerDependencies: '@effect/platform': ^0.58.0 '@effect/schema': ^0.68.0 effect: ^3.5.0 effect@3.5.3: - resolution: - { - integrity: sha512-emKAbdsB4jTeppa6fdfdWGhbEjKdvr1xfltpGIwiR46mD97JvWlpbrTIdqDCCizuMbxVys6YrSjKL7aHHa93Gg==, - } + resolution: {integrity: sha512-emKAbdsB4jTeppa6fdfdWGhbEjKdvr1xfltpGIwiR46mD97JvWlpbrTIdqDCCizuMbxVys6YrSjKL7aHHa93Gg==} ejs@3.1.10: - resolution: - { - integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} hasBin: true electron-to-chromium@1.5.28: - resolution: - { - integrity: sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==, - } + resolution: {integrity: sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==} emittery@0.11.0: - resolution: - { - integrity: sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==} + engines: {node: '>=12'} emittery@0.13.1: - resolution: - { - integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} emoji-regex@8.0.0: - resolution: - { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, - } + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} emoji-regex@9.2.2: - resolution: - { - integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, - } + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} emojis-list@3.0.0: - resolution: - { - integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==, - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} enabled@2.0.0: - resolution: - { - integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==, - } + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} encodeurl@1.0.2: - resolution: - { - integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} encodeurl@2.0.0: - resolution: - { - integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} end-of-stream@1.4.4: - resolution: - { - integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, - } + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} enhanced-resolve@5.17.1: - resolution: - { - integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} enquirer@2.3.6: - resolution: - { - integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==, - } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} entities@4.5.0: - resolution: - { - integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, - } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} env-paths@2.2.1: - resolution: - { - integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} envinfo@7.11.1: - resolution: - { - integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + engines: {node: '>=4'} hasBin: true errno@0.1.8: - resolution: - { - integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, - } + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true error-ex@1.3.2: - resolution: - { - integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, - } + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} es-abstract@1.23.3: - resolution: - { - integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} es-define-property@1.0.0: - resolution: - { - integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} es-errors@1.3.0: - resolution: - { - integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} es-module-lexer@1.5.4: - resolution: - { - integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==, - } + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} es-object-atoms@1.0.0: - resolution: - { - integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} es-set-tostringtag@2.0.3: - resolution: - { - integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} es-shim-unscopables@1.0.2: - resolution: - { - integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, - } + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} es-to-primitive@1.2.1: - resolution: - { - integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} es6-error@4.1.1: - resolution: - { - integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==, - } + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} esbuild@0.19.12: - resolution: - { - integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} hasBin: true esbuild@0.21.5: - resolution: - { - integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} hasBin: true escalade@3.1.2: - resolution: - { - integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} escape-goat@4.0.0: - resolution: - { - integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} escape-html@1.0.3: - resolution: - { - integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, - } + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} escape-string-regexp@1.0.5: - resolution: - { - integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, - } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} escape-string-regexp@2.0.0: - resolution: - { - integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} escape-string-regexp@4.0.0: - resolution: - { - integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} escodegen@2.1.0: - resolution: - { - integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==, - } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} hasBin: true eslint-config-prettier@9.1.0: - resolution: - { - integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==, - } + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' eslint-import-resolver-node@0.3.9: - resolution: - { - integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, - } + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} eslint-module-utils@2.8.1: - resolution: - { - integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' eslint: '*' @@ -6952,11 +4292,8 @@ packages: optional: true eslint-plugin-import@2.27.5: - resolution: - { - integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 @@ -6965,11 +4302,8 @@ packages: optional: true eslint-plugin-playwright@1.6.0: - resolution: - { - integrity: sha512-tI1E/EDbHT4Fx5KvukUG3RTIT0gk44gvTP8bNwxLCFsUXVM98ZJG5zWU6Om5JOzH9FrmN4AhMu/UKyEsu0ZoDA==, - } - engines: { node: '>=16.6.0' } + resolution: {integrity: sha512-tI1E/EDbHT4Fx5KvukUG3RTIT0gk44gvTP8bNwxLCFsUXVM98ZJG5zWU6Om5JOzH9FrmN4AhMu/UKyEsu0ZoDA==} + engines: {node: '>=16.6.0'} peerDependencies: eslint: '>=8.40.0' eslint-plugin-jest: '>=25' @@ -6978,11 +4312,8 @@ packages: optional: true eslint-plugin-prettier@5.1.3: - resolution: - { - integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==, - } - engines: { node: ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' eslint: '>=8.0.0' @@ -6995,337 +4326,187 @@ packages: optional: true eslint-scope@5.1.1: - resolution: - { - integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} eslint-scope@7.2.2: - resolution: - { - integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} eslint-visitor-keys@3.4.3: - resolution: - { - integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} eslint-visitor-keys@4.2.0: - resolution: - { - integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==, - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@8.57.0: - resolution: - { - integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true espree@9.6.1: - resolution: - { - integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} esprima@4.0.1: - resolution: - { - integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} hasBin: true esquery@1.5.0: - resolution: - { - integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} esrecurse@4.3.0: - resolution: - { - integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} estraverse@4.3.0: - resolution: - { - integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} estraverse@5.3.0: - resolution: - { - integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} estree-walker@2.0.2: - resolution: - { - integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, - } + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} estree-walker@3.0.3: - resolution: - { - integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, - } + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} esutils@2.0.3: - resolution: - { - integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} etag@1.8.1: - resolution: - { - integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} event-stream@3.3.4: - resolution: - { - integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==, - } + resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} event-target-shim@5.0.1: - resolution: - { - integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} eventemitter3@4.0.7: - resolution: - { - integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, - } + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} eventemitter3@5.0.1: - resolution: - { - integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, - } + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} events@1.1.1: - resolution: - { - integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==, - } - engines: { node: '>=0.4.x' } + resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} + engines: {node: '>=0.4.x'} events@3.3.0: - resolution: - { - integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, - } - engines: { node: '>=0.8.x' } + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} execa@5.1.1: - resolution: - { - integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} execa@7.2.0: - resolution: - { - integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==, - } - engines: { node: ^14.18.0 || ^16.14.0 || >=18.0.0 } + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} execa@8.0.1: - resolution: - { - integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, - } - engines: { node: '>=16.17' } + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} exit@0.1.2: - resolution: - { - integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} expand-tilde@2.0.2: - resolution: - { - integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} expect@29.7.0: - resolution: - { - integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} express-rate-limit@5.5.1: - resolution: - { - integrity: sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==, - } + resolution: {integrity: sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==} express@4.21.0: - resolution: - { - integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==, - } - engines: { node: '>= 0.10.0' } + resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==} + engines: {node: '>= 0.10.0'} extend@3.0.2: - resolution: - { - integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, - } + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} extendable-error@0.1.7: - resolution: - { - integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==, - } + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} external-editor@3.1.0: - resolution: - { - integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} extsprintf@1.3.0: - resolution: - { - integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==, - } - engines: { '0': node >=0.6.0 } + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} fast-check@3.19.0: - resolution: - { - integrity: sha512-CO2JX/8/PT9bDGO1iXa5h5ey1skaKI1dvecERyhH4pp3PGjwd3KIjMAXEg79Ps9nclsdt4oPbfqiAnLU0EwrAQ==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-CO2JX/8/PT9bDGO1iXa5h5ey1skaKI1dvecERyhH4pp3PGjwd3KIjMAXEg79Ps9nclsdt4oPbfqiAnLU0EwrAQ==} + engines: {node: '>=8.0.0'} fast-decode-uri-component@1.0.1: - resolution: - { - integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==, - } + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} fast-deep-equal@3.1.3: - resolution: - { - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, - } + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} fast-diff@1.3.0: - resolution: - { - integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==, - } + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} fast-fifo@1.3.2: - resolution: - { - integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==, - } + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} fast-glob@3.2.7: - resolution: - { - integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} + engines: {node: '>=8'} fast-glob@3.3.2: - resolution: - { - integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, - } - engines: { node: '>=8.6.0' } + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: - resolution: - { - integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, - } + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} fast-levenshtein@2.0.6: - resolution: - { - integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, - } + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} fast-querystring@1.1.2: - resolution: - { - integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==, - } + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} fast-redact@3.5.0: - resolution: - { - integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} fast-safe-stringify@2.1.1: - resolution: - { - integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, - } + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} fastq@1.17.1: - resolution: - { - integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, - } + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} faye-websocket@0.11.4: - resolution: - { - integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==, - } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} fb-watchman@2.0.2: - resolution: - { - integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, - } + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} fd-slicer@1.1.0: - resolution: - { - integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==, - } + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} fdir@6.4.2: - resolution: - { - integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==, - } + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -7333,143 +4514,80 @@ packages: optional: true fecha@4.2.3: - resolution: - { - integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==, - } + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} fflate@0.8.2: - resolution: - { - integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==, - } + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} figures@3.2.0: - resolution: - { - integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} file-entry-cache@6.0.1: - resolution: - { - integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, - } - engines: { node: ^10.12.0 || >=12.0.0 } + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} filelist@1.0.4: - resolution: - { - integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==, - } + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} fill-range@7.1.1: - resolution: - { - integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} finalhandler@1.3.1: - resolution: - { - integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} find-cache-dir@4.0.0: - resolution: - { - integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} find-my-way-ts@0.1.4: - resolution: - { - integrity: sha512-naNl2YZ8m9LlYtPZathQBjXQQ8069uYBFq8We6w9AEGddJErVh0JZw8jd/C/2W9Ib3BjTnu+YN0/rR+ytWxNdw==, - } + resolution: {integrity: sha512-naNl2YZ8m9LlYtPZathQBjXQQ8069uYBFq8We6w9AEGddJErVh0JZw8jd/C/2W9Ib3BjTnu+YN0/rR+ytWxNdw==} find-node-modules@2.1.3: - resolution: - { - integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==, - } + resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} find-root@1.1.0: - resolution: - { - integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==, - } + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} find-up@4.1.0: - resolution: - { - integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} find-up@5.0.0: - resolution: - { - integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} find-up@6.3.0: - resolution: - { - integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} find-up@7.0.0: - resolution: - { - integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} findup-sync@4.0.0: - resolution: - { - integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} + engines: {node: '>= 8'} flat-cache@3.2.0: - resolution: - { - integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, - } - engines: { node: ^10.12.0 || >=12.0.0 } + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} flat@5.0.2: - resolution: - { - integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==, - } + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true flatted@3.3.1: - resolution: - { - integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==, - } + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} fn.name@1.1.0: - resolution: - { - integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==, - } + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} follow-redirects@1.15.6: - resolution: - { - integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==, - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} peerDependencies: debug: '*' peerDependenciesMeta: @@ -7477,30 +4595,18 @@ packages: optional: true for-each@0.3.3: - resolution: - { - integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, - } + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} foreground-child@3.3.0: - resolution: - { - integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} forever-agent@0.6.1: - resolution: - { - integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==, - } + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} fork-ts-checker-webpack-plugin@7.2.13: - resolution: - { - integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==, - } - engines: { node: '>=12.13.0', yarn: '>=1.0.0' } + resolution: {integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==} + engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: typescript: '>3.6.0' vue-template-compiler: '*' @@ -7510,745 +4616,415 @@ packages: optional: true form-data-encoder@2.1.4: - resolution: - { - integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==, - } - engines: { node: '>= 14.17' } + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} form-data@2.3.3: - resolution: - { - integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==, - } - engines: { node: '>= 0.12' } + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} form-data@2.5.1: - resolution: - { - integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==, - } - engines: { node: '>= 0.12' } + resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} + engines: {node: '>= 0.12'} form-data@4.0.0: - resolution: - { - integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} formidable@2.1.2: - resolution: - { - integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==, - } + resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==} forwarded@0.2.0: - resolution: - { - integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} fraction.js@4.3.7: - resolution: - { - integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, - } + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} fresh@0.5.2: - resolution: - { - integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} from@0.1.7: - resolution: - { - integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==, - } + resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} front-matter@4.0.2: - resolution: - { - integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==, - } + resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} fs-constants@1.0.0: - resolution: - { - integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, - } + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} fs-extra@10.1.0: - resolution: - { - integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} fs-extra@11.2.0: - resolution: - { - integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==, - } - engines: { node: '>=14.14' } + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} fs-extra@7.0.1: - resolution: - { - integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==, - } - engines: { node: '>=6 <7 || >=8' } + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} fs-extra@8.1.0: - resolution: - { - integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, - } - engines: { node: '>=6 <7 || >=8' } + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} fs-extra@9.1.0: - resolution: - { - integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} fs-minipass@2.1.0: - resolution: - { - integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} fs-monkey@1.0.6: - resolution: - { - integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==, - } + resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} fs.realpath@1.0.0: - resolution: - { - integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, - } + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} fsevents@2.3.2: - resolution: - { - integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] fsevents@2.3.3: - resolution: - { - integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] function-bind@1.1.2: - resolution: - { - integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, - } + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} function.prototype.name@1.1.6: - resolution: - { - integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} functions-have-names@1.2.3: - resolution: - { - integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, - } + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} gauge@2.7.4: - resolution: - { - integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==, - } + resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} deprecated: This package is no longer supported. gaxios@6.7.1: - resolution: - { - integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} + engines: {node: '>=14'} gcp-metadata@6.1.0: - resolution: - { - integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} + engines: {node: '>=14'} gensync@1.0.0-beta.2: - resolution: - { - integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} get-caller-file@2.0.5: - resolution: - { - integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, - } - engines: { node: 6.* || 8.* || >= 10.* } + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} get-func-name@2.0.2: - resolution: - { - integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==, - } + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} get-intrinsic@1.2.4: - resolution: - { - integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} get-package-type@0.1.0: - resolution: - { - integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} get-stream@5.2.0: - resolution: - { - integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} get-stream@6.0.1: - resolution: - { - integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} get-stream@8.0.1: - resolution: - { - integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} get-symbol-description@1.0.2: - resolution: - { - integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} get-uri@6.0.3: - resolution: - { - integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} + engines: {node: '>= 14'} getos@3.2.1: - resolution: - { - integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==, - } + resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} getpass@0.1.7: - resolution: - { - integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==, - } + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} git-last-commit@1.0.1: - resolution: - { - integrity: sha512-FDSgeMqa7GnJDxt/q0AbrxbfeTyxp4ImxEw1e4nw6NUHA5FMhFUq33dTXI4Xdgcj1VQ1q5QLWF6WxFrJ8KCBOg==, - } + resolution: {integrity: sha512-FDSgeMqa7GnJDxt/q0AbrxbfeTyxp4ImxEw1e4nw6NUHA5FMhFUq33dTXI4Xdgcj1VQ1q5QLWF6WxFrJ8KCBOg==} git-raw-commits@4.0.0: - resolution: - { - integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} hasBin: true git-repo-info@2.1.1: - resolution: - { - integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==, - } - engines: { node: '>= 4.0' } + resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==} + engines: {node: '>= 4.0'} gitconfiglocal@2.1.0: - resolution: - { - integrity: sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==, - } + resolution: {integrity: sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==} glob-parent@5.1.2: - resolution: - { - integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} glob-parent@6.0.2: - resolution: - { - integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} glob-to-regexp@0.4.1: - resolution: - { - integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, - } + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} glob@10.4.5: - resolution: - { - integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, - } + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true glob@6.0.4: - resolution: - { - integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==, - } + resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} deprecated: Glob versions prior to v9 are no longer supported glob@7.2.3: - resolution: - { - integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, - } + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported glob@8.1.0: - resolution: - { - integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} deprecated: Glob versions prior to v9 are no longer supported global-agent@3.0.0: - resolution: - { - integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==, - } - engines: { node: '>=10.0' } + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} global-directory@4.0.1: - resolution: - { - integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} global-dirs@3.0.1: - resolution: - { - integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} global-modules@1.0.0: - resolution: - { - integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} global-prefix@1.0.2: - resolution: - { - integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} globals@11.12.0: - resolution: - { - integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} globals@13.24.0: - resolution: - { - integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} globals@15.9.0: - resolution: - { - integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} + engines: {node: '>=18'} globalthis@1.0.3: - resolution: - { - integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} globby@11.1.0: - resolution: - { - integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} globby@12.2.0: - resolution: - { - integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} globrex@0.1.2: - resolution: - { - integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, - } + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} google-auth-library@9.14.1: - resolution: - { - integrity: sha512-Rj+PMjoNFGFTmtItH7gHfbHpGVSb3vmnGK3nwNBqxQF9NoBpttSZI/rc0WiM63ma2uGDQtYEkMHkK9U6937NiA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Rj+PMjoNFGFTmtItH7gHfbHpGVSb3vmnGK3nwNBqxQF9NoBpttSZI/rc0WiM63ma2uGDQtYEkMHkK9U6937NiA==} + engines: {node: '>=14'} google-gax@4.4.1: - resolution: - { - integrity: sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==} + engines: {node: '>=14'} googleapis-common@7.2.0: - resolution: - { - integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==} + engines: {node: '>=14.0.0'} googleapis@126.0.1: - resolution: - { - integrity: sha512-4N8LLi+hj6ytK3PhE52KcM8iSGhJjtXnCDYB4fp6l+GdLbYz4FoDmx074WqMbl7iYMDN87vqD/8drJkhxW92mQ==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-4N8LLi+hj6ytK3PhE52KcM8iSGhJjtXnCDYB4fp6l+GdLbYz4FoDmx074WqMbl7iYMDN87vqD/8drJkhxW92mQ==} + engines: {node: '>=14.0.0'} gopd@1.0.1: - resolution: - { - integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, - } + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} got@11.8.6: - resolution: - { - integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==, - } - engines: { node: '>=10.19.0' } + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} got@12.6.1: - resolution: - { - integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} graceful-fs@4.2.10: - resolution: - { - integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, - } + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} graceful-fs@4.2.11: - resolution: - { - integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, - } + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} graphemer@1.4.0: - resolution: - { - integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, - } + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} graphql@16.9.0: - resolution: - { - integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==, - } - engines: { node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0 } + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} gtoken@7.1.0: - resolution: - { - integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} + engines: {node: '>=14.0.0'} handle-thing@2.0.1: - resolution: - { - integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==, - } + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} handlebars@4.7.8: - resolution: - { - integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==, - } - engines: { node: '>=0.4.7' } + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} hasBin: true har-schema@2.0.0: - resolution: - { - integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} har-validator@5.1.5: - resolution: - { - integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} deprecated: this library is no longer supported harmony-reflect@1.6.2: - resolution: - { - integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==, - } + resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} has-bigints@1.0.2: - resolution: - { - integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, - } + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} has-flag@3.0.0: - resolution: - { - integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} has-flag@4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} has-property-descriptors@1.0.2: - resolution: - { - integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, - } + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} has-proto@1.0.3: - resolution: - { - integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} has-symbols@1.0.3: - resolution: - { - integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} has-tostringtag@1.0.2: - resolution: - { - integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} has-unicode@2.0.1: - resolution: - { - integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==, - } + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} has-yarn@3.0.0: - resolution: - { - integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} has@1.0.4: - resolution: - { - integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==, - } - engines: { node: '>= 0.4.0' } + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} hasown@2.0.2: - resolution: - { - integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} he@1.2.0: - resolution: - { - integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, - } + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true headers-polyfill@4.0.3: - resolution: - { - integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==, - } + resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} headers-utils@1.2.5: - resolution: - { - integrity: sha512-DAzV5P/pk3wTU/8TLZN+zFTDv4Xa1QDTU8pRvovPetcOMbmqq8CwsAvZBLPZHH6usxyy31zMp7I4aCYb6XIf6w==, - } + resolution: {integrity: sha512-DAzV5P/pk3wTU/8TLZN+zFTDv4Xa1QDTU8pRvovPetcOMbmqq8CwsAvZBLPZHH6usxyy31zMp7I4aCYb6XIf6w==} hexoid@1.0.0: - resolution: - { - integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} + engines: {node: '>=8'} homedir-polyfill@1.0.3: - resolution: - { - integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} hosted-git-info@2.8.9: - resolution: - { - integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, - } + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} hosted-git-info@7.0.1: - resolution: - { - integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==, - } - engines: { node: ^16.14.0 || >=18.0.0 } + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} hpack.js@2.1.6: - resolution: - { - integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==, - } + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} html-encoding-sniffer@3.0.0: - resolution: - { - integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} html-entities@2.5.2: - resolution: - { - integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==, - } + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} html-escaper@2.0.2: - resolution: - { - integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, - } + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} htmlparser2@8.0.2: - resolution: - { - integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==, - } + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} http-cache-semantics@4.1.1: - resolution: - { - integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==, - } + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} http-deceiver@1.2.7: - resolution: - { - integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==, - } + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} http-errors@1.6.3: - resolution: - { - integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} http-errors@2.0.0: - resolution: - { - integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} http-parser-js@0.5.8: - resolution: - { - integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==, - } + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} http-proxy-agent@5.0.0: - resolution: - { - integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} http-proxy-agent@7.0.2: - resolution: - { - integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} http-proxy-middleware@2.0.6: - resolution: - { - integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} peerDependencies: '@types/express': ^4.17.13 peerDependenciesMeta: @@ -8256,790 +5032,445 @@ packages: optional: true http-proxy@1.18.1: - resolution: - { - integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} http-server@14.1.1: - resolution: - { - integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} hasBin: true http-signature@1.2.0: - resolution: - { - integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==, - } - engines: { node: '>=0.8', npm: '>=1.3.7' } + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} http-signature@1.3.6: - resolution: - { - integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==, - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} + engines: {node: '>=0.10'} http-status-codes@2.2.0: - resolution: - { - integrity: sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==, - } + resolution: {integrity: sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==} http-status-codes@2.3.0: - resolution: - { - integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==, - } + resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} http2-wrapper@1.0.3: - resolution: - { - integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==, - } - engines: { node: '>=10.19.0' } + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} http2-wrapper@2.2.1: - resolution: - { - integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==, - } - engines: { node: '>=10.19.0' } + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} https-proxy-agent@5.0.1: - resolution: - { - integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} https-proxy-agent@7.0.5: - resolution: - { - integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} human-id@1.0.2: - resolution: - { - integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==, - } + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} human-signals@2.1.0: - resolution: - { - integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, - } - engines: { node: '>=10.17.0' } + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} human-signals@4.3.1: - resolution: - { - integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, - } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} human-signals@5.0.0: - resolution: - { - integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, - } - engines: { node: '>=16.17.0' } + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} husky@8.0.3: - resolution: - { - integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} hasBin: true hyperdyperid@1.2.0: - resolution: - { - integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==, - } - engines: { node: '>=10.18' } + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} iconv-lite@0.4.24: - resolution: - { - integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} iconv-lite@0.6.3: - resolution: - { - integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} icss-utils@5.1.0: - resolution: - { - integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==, - } - engines: { node: ^10 || ^12 || >= 14 } + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 identity-obj-proxy@3.0.0: - resolution: - { - integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} + engines: {node: '>=4'} ieee754@1.1.13: - resolution: - { - integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==, - } + resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} ieee754@1.2.1: - resolution: - { - integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, - } + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} ignore@5.3.1: - resolution: - { - integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==, - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} image-size@0.5.5: - resolution: - { - integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} hasBin: true immer@10.1.1: - resolution: - { - integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==, - } + resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} immutable@4.3.5: - resolution: - { - integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==, - } + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} import-fresh@3.3.0: - resolution: - { - integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} import-lazy@4.0.0: - resolution: - { - integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} import-meta-resolve@4.0.0: - resolution: - { - integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==, - } + resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} imurmurhash@0.1.4: - resolution: - { - integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, - } - engines: { node: '>=0.8.19' } + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} inflight@1.0.6: - resolution: - { - integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, - } + resolution: {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. inherits@2.0.3: - resolution: - { - integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==, - } + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} inherits@2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, - } + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} ini@1.3.8: - resolution: - { - integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, - } + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} ini@2.0.0: - resolution: - { - integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} ini@4.1.1: - resolution: - { - integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==, - } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} ini@4.1.3: - resolution: - { - integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==, - } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} inquirer@8.2.5: - resolution: - { - integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + engines: {node: '>=12.0.0'} inquirer@9.2.18: - resolution: - { - integrity: sha512-Qzm+UP7L9beFyycZ9Nxzqj7WBgeJIaT4Ue0+2bmQp9yZXiUW2azrmBnp3vlInMw1wXkUmaM0hiMcht7CjJzASw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-Qzm+UP7L9beFyycZ9Nxzqj7WBgeJIaT4Ue0+2bmQp9yZXiUW2azrmBnp3vlInMw1wXkUmaM0hiMcht7CjJzASw==} + engines: {node: '>=18'} internal-slot@1.0.7: - resolution: - { - integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} interpret@1.4.0: - resolution: - { - integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, - } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} ip-address@9.0.5: - resolution: - { - integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==, - } - engines: { node: '>= 12' } + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} ipaddr.js@1.9.1: - resolution: - { - integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, - } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} ipaddr.js@2.2.0: - resolution: - { - integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} is-arguments@1.1.1: - resolution: - { - integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} is-array-buffer@3.0.4: - resolution: - { - integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} is-arrayish@0.2.1: - resolution: - { - integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, - } + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} is-arrayish@0.3.2: - resolution: - { - integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, - } + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} is-bigint@1.0.4: - resolution: - { - integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, - } + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} is-binary-path@2.1.0: - resolution: - { - integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} is-boolean-object@1.1.2: - resolution: - { - integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} is-callable@1.2.7: - resolution: - { - integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} is-ci@3.0.1: - resolution: - { - integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==, - } + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true is-core-module@2.13.1: - resolution: - { - integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, - } + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} is-data-view@1.0.1: - resolution: - { - integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} is-date-object@1.0.5: - resolution: - { - integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} is-docker@2.2.1: - resolution: - { - integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} hasBin: true is-docker@3.0.0: - resolution: - { - integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true is-extglob@2.1.1: - resolution: - { - integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} is-fullwidth-code-point@1.0.0: - resolution: - { - integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} is-fullwidth-code-point@3.0.0: - resolution: - { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} is-fullwidth-code-point@4.0.0: - resolution: - { - integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} is-generator-fn@2.1.0: - resolution: - { - integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} is-generator-function@1.0.10: - resolution: - { - integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} is-glob@4.0.3: - resolution: - { - integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} is-inside-container@1.0.0: - resolution: - { - integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} hasBin: true is-installed-globally@0.4.0: - resolution: - { - integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} is-interactive@1.0.0: - resolution: - { - integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} is-negative-zero@2.0.3: - resolution: - { - integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} is-network-error@1.1.0: - resolution: - { - integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} is-node-process@1.2.0: - resolution: - { - integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==, - } + resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} is-npm@6.0.0: - resolution: - { - integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} is-number-object@1.0.7: - resolution: - { - integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} is-number@7.0.0: - resolution: - { - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, - } - engines: { node: '>=0.12.0' } + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} is-obj@2.0.0: - resolution: - { - integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} is-path-inside@3.0.3: - resolution: - { - integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} is-plain-obj@3.0.0: - resolution: - { - integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} is-potential-custom-element-name@1.0.1: - resolution: - { - integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, - } + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} is-promise@2.2.2: - resolution: - { - integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==, - } + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} is-regex@1.1.4: - resolution: - { - integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} is-running@2.1.0: - resolution: - { - integrity: sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==, - } + resolution: {integrity: sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==} is-shared-array-buffer@1.0.3: - resolution: - { - integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} is-stream@2.0.1: - resolution: - { - integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} is-stream@3.0.0: - resolution: - { - integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} is-string@1.0.7: - resolution: - { - integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} is-subdir@1.2.0: - resolution: - { - integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} is-symbol@1.0.4: - resolution: - { - integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} is-text-path@2.0.0: - resolution: - { - integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} is-typed-array@1.1.13: - resolution: - { - integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} is-typedarray@1.0.0: - resolution: - { - integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, - } + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} is-unicode-supported@0.1.0: - resolution: - { - integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} is-utf8@0.2.1: - resolution: - { - integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==, - } + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} is-weakref@1.0.2: - resolution: - { - integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, - } + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} is-what@3.14.1: - resolution: - { - integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, - } + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} is-windows@1.0.2: - resolution: - { - integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} is-wsl@2.2.0: - resolution: - { - integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} is-wsl@3.1.0: - resolution: - { - integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} is-yarn-global@0.4.1: - resolution: - { - integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} + engines: {node: '>=12'} isarray@1.0.0: - resolution: - { - integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, - } + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} isarray@2.0.5: - resolution: - { - integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, - } + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} isexe@2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, - } + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} isomorphic-ws@5.0.0: - resolution: - { - integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==, - } + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} peerDependencies: ws: '*' isstream@0.1.2: - resolution: - { - integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==, - } + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} istanbul-lib-coverage@3.2.2: - resolution: - { - integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} istanbul-lib-instrument@5.2.1: - resolution: - { - integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} istanbul-lib-instrument@6.0.3: - resolution: - { - integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} istanbul-lib-report@3.0.1: - resolution: - { - integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} istanbul-lib-source-maps@4.0.1: - resolution: - { - integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} istanbul-lib-source-maps@5.0.4: - resolution: - { - integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} + engines: {node: '>=10'} istanbul-reports@3.1.7: - resolution: - { - integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} jackspeak@3.4.3: - resolution: - { - integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, - } + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} jake@10.8.7: - resolution: - { - integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} hasBin: true jest-canvas-mock@2.5.2: - resolution: - { - integrity: sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==, - } + resolution: {integrity: sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==} jest-circus@29.7.0: - resolution: - { - integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-config@29.7.0: - resolution: - { - integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' ts-node: '>=9.0.0' @@ -9050,81 +5481,48 @@ packages: optional: true jest-diff@29.7.0: - resolution: - { - integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-docblock@29.7.0: - resolution: - { - integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-each@29.7.0: - resolution: - { - integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-environment-node@29.7.0: - resolution: - { - integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-get-type@29.6.3: - resolution: - { - integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-haste-map@29.7.0: - resolution: - { - integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-leak-detector@29.7.0: - resolution: - { - integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-matcher-utils@29.7.0: - resolution: - { - integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-message-util@29.7.0: - resolution: - { - integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-mock@29.7.0: - resolution: - { - integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-pnp-resolver@1.2.3: - resolution: - { - integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} peerDependencies: jest-resolve: '*' peerDependenciesMeta: @@ -9132,166 +5530,94 @@ packages: optional: true jest-regex-util@29.6.3: - resolution: - { - integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-resolve@29.7.0: - resolution: - { - integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-runner@29.7.0: - resolution: - { - integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-runtime@29.7.0: - resolution: - { - integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-snapshot@29.7.0: - resolution: - { - integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-util@29.7.0: - resolution: - { - integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-validate@29.7.0: - resolution: - { - integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-watcher@29.7.0: - resolution: - { - integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-worker@27.5.1: - resolution: - { - integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, - } - engines: { node: '>= 10.13.0' } + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} jest-worker@28.1.3: - resolution: - { - integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==, - } - engines: { node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0 } + resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} jest-worker@29.7.0: - resolution: - { - integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jiti@1.21.0: - resolution: - { - integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==, - } + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true jju@1.4.0: - resolution: - { - integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==, - } + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} jmespath@0.16.0: - resolution: - { - integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==, - } - engines: { node: '>= 0.6.0' } + resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} + engines: {node: '>= 0.6.0'} jose@4.15.9: - resolution: - { - integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==, - } + resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} js-tokens@4.0.0: - resolution: - { - integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, - } + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} js-tokens@9.0.0: - resolution: - { - integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==, - } + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} js-yaml-cloudformation-schema@1.0.0: - resolution: - { - integrity: sha512-eokVVPLsjLFuuCRQWIIaE5fX7qPUNRAAmJFXSvtzUnJcdNS0ZtAPdaFcwCrTHM+owGcBR82rlpd0b6bu8pFwQA==, - } + resolution: {integrity: sha512-eokVVPLsjLFuuCRQWIIaE5fX7qPUNRAAmJFXSvtzUnJcdNS0ZtAPdaFcwCrTHM+owGcBR82rlpd0b6bu8pFwQA==} js-yaml-js-types@1.0.1: - resolution: - { - integrity: sha512-5tpfyORs8OQ43alNERbWfYRCtWgykvzYgY46fUhrQi2+kS7N0NuuFYLZ/IrfmVm5muLTndeMublgraXiFRjEPw==, - } + resolution: {integrity: sha512-5tpfyORs8OQ43alNERbWfYRCtWgykvzYgY46fUhrQi2+kS7N0NuuFYLZ/IrfmVm5muLTndeMublgraXiFRjEPw==} peerDependencies: js-yaml: 4.x js-yaml@3.14.1: - resolution: - { - integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, - } + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true js-yaml@4.1.0: - resolution: - { - integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, - } + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true jsbn@0.1.1: - resolution: - { - integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==, - } + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} jsbn@1.1.0: - resolution: - { - integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==, - } + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} jsdom@22.1.0: - resolution: - { - integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} + engines: {node: '>=16'} peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: @@ -9299,271 +5625,151 @@ packages: optional: true jsep@1.4.0: - resolution: - { - integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==, - } - engines: { node: '>= 10.16.0' } + resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} + engines: {node: '>= 10.16.0'} jsesc@0.5.0: - resolution: - { - integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==, - } + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true jsesc@2.5.2: - resolution: - { - integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} hasBin: true json-bigint@1.0.0: - resolution: - { - integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==, - } + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} json-buffer@3.0.1: - resolution: - { - integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, - } + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} json-parse-even-better-errors@2.3.1: - resolution: - { - integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, - } + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} json-schema-traverse@0.4.1: - resolution: - { - integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, - } + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} json-schema-traverse@1.0.0: - resolution: - { - integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, - } + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} json-schema@0.4.0: - resolution: - { - integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==, - } + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} json-stable-stringify-without-jsonify@1.0.1: - resolution: - { - integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, - } + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} json-stringify-safe@5.0.1: - resolution: - { - integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, - } + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} json5@1.0.2: - resolution: - { - integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, - } + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true json5@2.2.3: - resolution: - { - integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} hasBin: true jsonc-eslint-parser@2.4.0: - resolution: - { - integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} jsonc-parser@3.2.0: - resolution: - { - integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==, - } + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} jsonfile@4.0.0: - resolution: - { - integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, - } + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} jsonfile@6.1.0: - resolution: - { - integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, - } + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} jsonparse@1.3.1: - resolution: - { - integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==, - } - engines: { '0': node >= 0.2.0 } + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} jsonpath-plus@10.2.0: - resolution: - { - integrity: sha512-T9V+8iNYKFL2n2rF+w02LBOT2JjDnTjioaNFrxRy0Bv1y/hNsqR/EBK7Ojy2ythRHwmz2cRIls+9JitQGZC/sw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-T9V+8iNYKFL2n2rF+w02LBOT2JjDnTjioaNFrxRy0Bv1y/hNsqR/EBK7Ojy2ythRHwmz2cRIls+9JitQGZC/sw==} + engines: {node: '>=18.0.0'} hasBin: true jsonwebtoken@9.0.2: - resolution: - { - integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==, - } - engines: { node: '>=12', npm: '>=6' } + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} jsprim@1.4.2: - resolution: - { - integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==, - } - engines: { node: '>=0.6.0' } + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} jsprim@2.0.2: - resolution: - { - integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==, - } - engines: { '0': node >=0.6.0 } + resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} + engines: {'0': node >=0.6.0} jwa@1.4.1: - resolution: - { - integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==, - } + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} jwa@2.0.0: - resolution: - { - integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==, - } + resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} jws@3.2.2: - resolution: - { - integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==, - } + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} jws@4.0.0: - resolution: - { - integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==, - } + resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} keygrip@1.1.0: - resolution: - { - integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + engines: {node: '>= 0.6'} keyv@4.5.4: - resolution: - { - integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, - } + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} kleur@4.1.5: - resolution: - { - integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} klona@2.0.6: - resolution: - { - integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} kolorist@1.8.0: - resolution: - { - integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==, - } + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} kuler@2.0.0: - resolution: - { - integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==, - } + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} latest-version@7.0.0: - resolution: - { - integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} launch-editor@2.9.1: - resolution: - { - integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==, - } + resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} lazystream@1.0.1: - resolution: - { - integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==, - } - engines: { node: '>= 0.6.3' } + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} less-loader@11.1.0: - resolution: - { - integrity: sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==, - } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==} + engines: {node: '>= 14.15.0'} peerDependencies: less: ^3.5.0 || ^4.0.0 webpack: ^5.0.0 less@4.1.3: - resolution: - { - integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} + engines: {node: '>=6'} hasBin: true leven@3.1.0: - resolution: - { - integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} levn@0.4.1: - resolution: - { - integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} license-webpack-plugin@4.0.2: - resolution: - { - integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==, - } + resolution: {integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==} peerDependencies: webpack: '*' peerDependenciesMeta: @@ -9571,52 +5777,31 @@ packages: optional: true lilconfig@2.1.0: - resolution: - { - integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} lilconfig@3.1.2: - resolution: - { - integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} lines-and-columns@1.2.4: - resolution: - { - integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, - } + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} lines-and-columns@2.0.3: - resolution: - { - integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} linkify-it@5.0.0: - resolution: - { - integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==, - } + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} lint-staged@13.3.0: - resolution: - { - integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==, - } - engines: { node: ^16.14.0 || >=18.0.0 } + resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==} + engines: {node: ^16.14.0 || >=18.0.0} hasBin: true listr2@6.6.1: - resolution: - { - integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==, - } - engines: { node: '>=16.0.0' } + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} peerDependencies: enquirer: '>= 2.3.0 < 3' peerDependenciesMeta: @@ -9624,676 +5809,370 @@ packages: optional: true loader-runner@4.3.0: - resolution: - { - integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, - } - engines: { node: '>=6.11.5' } + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} loader-utils@2.0.4: - resolution: - { - integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==, - } - engines: { node: '>=8.9.0' } + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} local-pkg@0.5.0: - resolution: - { - integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} locate-path@5.0.0: - resolution: - { - integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} locate-path@6.0.0: - resolution: - { - integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} locate-path@7.2.0: - resolution: - { - integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} lockfile@1.0.4: - resolution: - { - integrity: sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==, - } + resolution: {integrity: sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==} lodash-es@4.17.21: - resolution: - { - integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, - } + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} lodash.camelcase@4.3.0: - resolution: - { - integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, - } + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} lodash.debounce@4.0.8: - resolution: - { - integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, - } + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} lodash.includes@4.3.0: - resolution: - { - integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==, - } + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} lodash.isboolean@3.0.3: - resolution: - { - integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==, - } + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} lodash.isinteger@4.0.4: - resolution: - { - integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==, - } + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} lodash.isnumber@3.0.3: - resolution: - { - integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==, - } + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} lodash.isplainobject@4.0.6: - resolution: - { - integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, - } + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} lodash.isstring@4.0.1: - resolution: - { - integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==, - } + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} lodash.kebabcase@4.1.1: - resolution: - { - integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==, - } + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} lodash.map@4.6.0: - resolution: - { - integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==, - } + resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} lodash.memoize@4.1.2: - resolution: - { - integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==, - } + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} lodash.merge@4.6.2: - resolution: - { - integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, - } + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} lodash.mergewith@4.6.2: - resolution: - { - integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==, - } + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} lodash.once@4.1.1: - resolution: - { - integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==, - } + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} lodash.snakecase@4.1.1: - resolution: - { - integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==, - } + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} lodash.startcase@4.4.0: - resolution: - { - integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==, - } + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} lodash.truncate@4.4.2: - resolution: - { - integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, - } + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} lodash.uniq@4.5.0: - resolution: - { - integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==, - } + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} lodash.upperfirst@4.3.1: - resolution: - { - integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==, - } + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} lodash@4.17.21: - resolution: - { - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, - } + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} log-symbols@4.1.0: - resolution: - { - integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} log-update@5.0.1: - resolution: - { - integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} logform@2.6.1: - resolution: - { - integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==} + engines: {node: '>= 12.0.0'} long@5.2.3: - resolution: - { - integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==, - } + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} longest@2.0.1: - resolution: - { - integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} + engines: {node: '>=0.10.0'} loose-envify@1.4.0: - resolution: - { - integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, - } + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true loupe@2.3.7: - resolution: - { - integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==, - } + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} lowdb@1.0.0: - resolution: - { - integrity: sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==} + engines: {node: '>=4'} lowercase-keys@2.0.0: - resolution: - { - integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} lowercase-keys@3.0.0: - resolution: - { - integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} lru-cache@10.4.3: - resolution: - { - integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, - } + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@5.1.1: - resolution: - { - integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, - } + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} lru-cache@6.0.0: - resolution: - { - integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} lru-cache@7.18.3: - resolution: - { - integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} lunr@2.3.9: - resolution: - { - integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==, - } + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} magic-string@0.30.11: - resolution: - { - integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==, - } + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} magicast@0.3.4: - resolution: - { - integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==, - } + resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} make-dir@2.1.0: - resolution: - { - integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} make-dir@4.0.0: - resolution: - { - integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} make-error@1.3.6: - resolution: - { - integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, - } + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} makeerror@1.0.12: - resolution: - { - integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, - } + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} map-stream@0.1.0: - resolution: - { - integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==, - } + resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} markdown-it@14.1.0: - resolution: - { - integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==, - } + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true matcher@3.0.0: - resolution: - { - integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} mdn-data@2.0.28: - resolution: - { - integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==, - } + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} mdn-data@2.0.30: - resolution: - { - integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, - } + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} mdurl@2.0.0: - resolution: - { - integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==, - } + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} media-typer@0.3.0: - resolution: - { - integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} memfs@3.5.3: - resolution: - { - integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==, - } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} memfs@4.12.0: - resolution: - { - integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==, - } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==} + engines: {node: '>= 4.0.0'} meow@12.1.1: - resolution: - { - integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==, - } - engines: { node: '>=16.10' } + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} merge-descriptors@1.0.3: - resolution: - { - integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==, - } + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} merge-stream@2.0.0: - resolution: - { - integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, - } + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} merge2@1.4.1: - resolution: - { - integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} merge@2.1.1: - resolution: - { - integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==, - } + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} methods@1.1.2: - resolution: - { - integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} micromatch@4.0.8: - resolution: - { - integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==, - } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} mime-db@1.52.0: - resolution: - { - integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} mime-types@2.1.35: - resolution: - { - integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} mime@1.6.0: - resolution: - { - integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} hasBin: true mime@2.6.0: - resolution: - { - integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==, - } - engines: { node: '>=4.0.0' } + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} hasBin: true mime@3.0.0: - resolution: - { - integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==, - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} hasBin: true mimic-fn@2.1.0: - resolution: - { - integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} mimic-fn@4.0.0: - resolution: - { - integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} mimic-response@1.0.1: - resolution: - { - integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} mimic-response@3.1.0: - resolution: - { - integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} mimic-response@4.0.0: - resolution: - { - integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} mini-css-extract-plugin@2.4.7: - resolution: - { - integrity: sha512-euWmddf0sk9Nv1O0gfeeUAvAkoSlWncNLF77C0TP2+WoPvy8mAHKOzMajcCz2dzvyt3CNgxb1obIEVFIRxaipg==, - } - engines: { node: '>= 12.13.0' } + resolution: {integrity: sha512-euWmddf0sk9Nv1O0gfeeUAvAkoSlWncNLF77C0TP2+WoPvy8mAHKOzMajcCz2dzvyt3CNgxb1obIEVFIRxaipg==} + engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 minimalistic-assert@1.0.1: - resolution: - { - integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, - } + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} minimatch@3.0.8: - resolution: - { - integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==, - } + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} minimatch@3.1.2: - resolution: - { - integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, - } + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} minimatch@5.1.6: - resolution: - { - integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} minimatch@7.4.6: - resolution: - { - integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} minimatch@9.0.3: - resolution: - { - integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, - } - engines: { node: '>=16 || 14 >=14.17' } + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} minimatch@9.0.5: - resolution: - { - integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, - } - engines: { node: '>=16 || 14 >=14.17' } + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.7: - resolution: - { - integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==, - } + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} minimist@1.2.8: - resolution: - { - integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, - } + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} minipass@3.3.6: - resolution: - { - integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} minipass@4.2.8: - resolution: - { - integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} minipass@5.0.0: - resolution: - { - integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} minipass@7.1.2: - resolution: - { - integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, - } - engines: { node: '>=16 || 14 >=14.17' } + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} minizlib@2.1.2: - resolution: - { - integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} mkcert@3.2.0: - resolution: - { - integrity: sha512-026Eivq9RoOjOuLJGzbhGwXUAjBxRX11Z7Jbm4/7lqT/Av+XNy9SPrJte6+UpEt7i+W3e/HZYxQqlQcqXZWSzg==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-026Eivq9RoOjOuLJGzbhGwXUAjBxRX11Z7Jbm4/7lqT/Av+XNy9SPrJte6+UpEt7i+W3e/HZYxQqlQcqXZWSzg==} + engines: {node: '>=16'} hasBin: true mkdirp@0.5.6: - resolution: - { - integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, - } + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true mkdirp@1.0.4: - resolution: - { - integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} hasBin: true mlly@1.6.1: - resolution: - { - integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==, - } + resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} monkeypatch@1.0.0: - resolution: - { - integrity: sha512-6tG0IrCUUIBuAspnbdmOAd+D/AptB/ya9JLujp88NIAuFuTGdGvCKtDkc6pwNOcIJ6nKLm3FjJlaCdx8vr3r2w==, - } + resolution: {integrity: sha512-6tG0IrCUUIBuAspnbdmOAd+D/AptB/ya9JLujp88NIAuFuTGdGvCKtDkc6pwNOcIJ6nKLm3FjJlaCdx8vr3r2w==} moo-color@1.0.3: - resolution: - { - integrity: sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==, - } + resolution: {integrity: sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==} mri@1.2.0: - resolution: - { - integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} mrmime@2.0.0: - resolution: - { - integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} ms@2.0.0: - resolution: - { - integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, - } + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} ms@2.1.2: - resolution: - { - integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, - } + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} ms@2.1.3: - resolution: - { - integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, - } + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} msw@2.5.1: - resolution: - { - integrity: sha512-V0BmHvFkbWGXqbyrc+XiuQ8DU3qzcb6lb8gB9Vzltp3cgHLHLCDF/KmmFo0xw58StNaRMTebw3/xpWVvU9xq9g==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-V0BmHvFkbWGXqbyrc+XiuQ8DU3qzcb6lb8gB9Vzltp3cgHLHLCDF/KmmFo0xw58StNaRMTebw3/xpWVvU9xq9g==} + engines: {node: '>=18'} hasBin: true peerDependencies: typescript: '>= 4.8.x' @@ -10302,124 +6181,70 @@ packages: optional: true muggle-string@0.4.1: - resolution: - { - integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==, - } + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} multicast-dns@7.2.5: - resolution: - { - integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==, - } + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} hasBin: true multipasta@0.2.2: - resolution: - { - integrity: sha512-KKGdmXIJUmt9BV45LsbUdMnju8eCNSyF9KpbyqK2E3wQXjpPQOg52/Hc+nsmBacmEkNxLVT5h1y3ZgEXB4prXg==, - } + resolution: {integrity: sha512-KKGdmXIJUmt9BV45LsbUdMnju8eCNSyF9KpbyqK2E3wQXjpPQOg52/Hc+nsmBacmEkNxLVT5h1y3ZgEXB4prXg==} mute-stream@0.0.8: - resolution: - { - integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, - } + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} mute-stream@1.0.0: - resolution: - { - integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==, - } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} mute-stream@2.0.0: - resolution: - { - integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==, - } - engines: { node: ^18.17.0 || >=20.5.0 } + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} mv@2.1.1: - resolution: - { - integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==, - } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==} + engines: {node: '>=0.8.0'} nanoclone@0.2.1: - resolution: - { - integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==, - } + resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} nanoid@5.0.9: - resolution: - { - integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==, - } - engines: { node: ^18 || >=20 } + resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} + engines: {node: ^18 || >=20} hasBin: true natural-compare@1.4.0: - resolution: - { - integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, - } + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} ncp@2.0.0: - resolution: - { - integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==, - } + resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} hasBin: true needle@3.3.1: - resolution: - { - integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==, - } - engines: { node: '>= 4.4.x' } + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} hasBin: true negotiator@0.6.3: - resolution: - { - integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} neo-async@2.6.2: - resolution: - { - integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, - } + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} netmask@2.0.2: - resolution: - { - integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==, - } - engines: { node: '>= 0.4.0' } + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} node-abort-controller@3.1.1: - resolution: - { - integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==, - } + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} node-addon-api@7.1.1: - resolution: - { - integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==, - } + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} node-fetch@2.6.7: - resolution: - { - integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, - } - engines: { node: 4.x || >=6.0.0 } + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -10427,11 +6252,8 @@ packages: optional: true node-fetch@2.7.0: - resolution: - { - integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, - } - engines: { node: 4.x || >=6.0.0 } + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -10439,149 +6261,83 @@ packages: optional: true node-forge@1.3.1: - resolution: - { - integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==, - } - engines: { node: '>= 6.13.0' } + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} node-int64@0.4.0: - resolution: - { - integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, - } + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} node-machine-id@1.1.12: - resolution: - { - integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==, - } + resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} node-releases@2.0.18: - resolution: - { - integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==, - } + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} node-request-interceptor@0.6.3: - resolution: - { - integrity: sha512-8I2V7H2Ch0NvW7qWcjmS0/9Lhr0T6x7RD6PDirhvWEkUQvy83x8BA4haYMr09r/rig7hcgYSjYh6cd4U7G1vLA==, - } + resolution: {integrity: sha512-8I2V7H2Ch0NvW7qWcjmS0/9Lhr0T6x7RD6PDirhvWEkUQvy83x8BA4haYMr09r/rig7hcgYSjYh6cd4U7G1vLA==} normalize-package-data@2.5.0: - resolution: - { - integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, - } + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} normalize-path@3.0.0: - resolution: - { - integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} normalize-range@0.1.2: - resolution: - { - integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} normalize-url@6.1.0: - resolution: - { - integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} normalize-url@8.0.1: - resolution: - { - integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} npm-cli-login@1.0.0: - resolution: - { - integrity: sha512-x9Rj2oSnQ8YUGcQ8IHH6pCqEAY+KqkbE2YyW6HlrN+lbNVhCoqDcDXKPWbGcKSNHQsxt5Zoe7Y5khGAJI9HdlQ==, - } + resolution: {integrity: sha512-x9Rj2oSnQ8YUGcQ8IHH6pCqEAY+KqkbE2YyW6HlrN+lbNVhCoqDcDXKPWbGcKSNHQsxt5Zoe7Y5khGAJI9HdlQ==} hasBin: true npm-package-arg@11.0.1: - resolution: - { - integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==, - } - engines: { node: ^16.14.0 || >=18.0.0 } + resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} + engines: {node: ^16.14.0 || >=18.0.0} npm-package-arg@6.1.1: - resolution: - { - integrity: sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==, - } + resolution: {integrity: sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==} npm-registry-client@8.6.0: - resolution: - { - integrity: sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==, - } + resolution: {integrity: sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==} deprecated: This package is no longer supported. npm-run-path@4.0.1: - resolution: - { - integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} npm-run-path@5.3.0: - resolution: - { - integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} npmlog@4.1.2: - resolution: - { - integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==, - } + resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} deprecated: This package is no longer supported. nth-check@2.1.1: - resolution: - { - integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, - } + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} number-is-nan@1.0.1: - resolution: - { - integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} nwsapi@2.2.7: - resolution: - { - integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==, - } + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} nx-cloud@19.1.0: - resolution: - { - integrity: sha512-f24vd5/57/MFSXNMfkerdDiK0EvScGOKO71iOWgJNgI1xVweDRmOA/EfjnPMRd5m+pnoPs/4A7DzuwSW0jZVyw==, - } + resolution: {integrity: sha512-f24vd5/57/MFSXNMfkerdDiK0EvScGOKO71iOWgJNgI1xVweDRmOA/EfjnPMRd5m+pnoPs/4A7DzuwSW0jZVyw==} hasBin: true nx@20.2.2: - resolution: - { - integrity: sha512-wHgC/NQ82Q3LOeUZXPI2j/JhpZwb7JjRc0uDn3kQU+lN/ulySCJHTHCf4CIglW4NjZeN1WZZ7YMeddtFWETGGA==, - } + resolution: {integrity: sha512-wHgC/NQ82Q3LOeUZXPI2j/JhpZwb7JjRc0uDn3kQU+lN/ulySCJHTHCf4CIglW4NjZeN1WZZ7YMeddtFWETGGA==} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -10593,1624 +6349,937 @@ packages: optional: true oauth-sign@0.9.0: - resolution: - { - integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==, - } + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} object-assign@4.1.1: - resolution: - { - integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} object-hash@2.2.0: - resolution: - { - integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} + engines: {node: '>= 6'} object-hash@3.0.0: - resolution: - { - integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} object-inspect@1.13.1: - resolution: - { - integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, - } + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} object-keys@1.1.1: - resolution: - { - integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} object.assign@4.1.5: - resolution: - { - integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} object.values@1.2.0: - resolution: - { - integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} obuf@1.1.2: - resolution: - { - integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==, - } + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} oidc-token-hash@5.0.3: - resolution: - { - integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==, - } - engines: { node: ^10.13.0 || >=12.0.0 } + resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==} + engines: {node: ^10.13.0 || >=12.0.0} on-exit-leak-free@0.2.0: - resolution: - { - integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==, - } + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} on-finished@2.4.1: - resolution: - { - integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} on-headers@1.0.2: - resolution: - { - integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} once@1.4.0: - resolution: - { - integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, - } + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} one-time@1.0.0: - resolution: - { - integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==, - } + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} onetime@5.1.2: - resolution: - { - integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} onetime@6.0.0: - resolution: - { - integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} open@10.1.0: - resolution: - { - integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} open@8.4.2: - resolution: - { - integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} opener@1.5.2: - resolution: - { - integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==, - } + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true openid-client@5.7.0: - resolution: - { - integrity: sha512-4GCCGZt1i2kTHpwvaC/sCpTpQqDnBzDzuJcJMbH+y1Q5qI8U8RBvoSh28svarXszZHR5BAMXbJPX1PGPRE3VOA==, - } + resolution: {integrity: sha512-4GCCGZt1i2kTHpwvaC/sCpTpQqDnBzDzuJcJMbH+y1Q5qI8U8RBvoSh28svarXszZHR5BAMXbJPX1PGPRE3VOA==} optionator@0.9.3: - resolution: - { - integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} ora@5.3.0: - resolution: - { - integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} + engines: {node: '>=10'} ora@5.4.1: - resolution: - { - integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} os-homedir@1.0.2: - resolution: - { - integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + engines: {node: '>=0.10.0'} os-tmpdir@1.0.2: - resolution: - { - integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} osenv@0.1.5: - resolution: - { - integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==, - } + resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} deprecated: This package is no longer supported. outdent@0.5.0: - resolution: - { - integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==, - } + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} outvariant@1.4.3: - resolution: - { - integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==, - } + resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} p-cancelable@2.1.1: - resolution: - { - integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} p-cancelable@3.0.0: - resolution: - { - integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==, - } - engines: { node: '>=12.20' } + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} p-filter@2.1.0: - resolution: - { - integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} p-limit@2.3.0: - resolution: - { - integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} p-limit@3.1.0: - resolution: - { - integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} p-limit@4.0.0: - resolution: - { - integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} p-limit@5.0.0: - resolution: - { - integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} p-locate@4.1.0: - resolution: - { - integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} p-locate@5.0.0: - resolution: - { - integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} p-locate@6.0.0: - resolution: - { - integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} p-map@2.1.0: - resolution: - { - integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} p-retry@6.2.0: - resolution: - { - integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==, - } - engines: { node: '>=16.17' } + resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + engines: {node: '>=16.17'} p-try@2.2.0: - resolution: - { - integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} pac-proxy-agent@7.0.2: - resolution: - { - integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} + engines: {node: '>= 14'} pac-resolver@7.0.1: - resolution: - { - integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} + engines: {node: '>= 14'} package-json-from-dist@1.0.1: - resolution: - { - integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==, - } + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} package-json@8.1.1: - resolution: - { - integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} package-manager-detector@0.2.2: - resolution: - { - integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==, - } + resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} parent-module@1.0.1: - resolution: - { - integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} parse-json@5.2.0: - resolution: - { - integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} parse-node-version@1.0.1: - resolution: - { - integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==, - } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} parse-passwd@1.0.0: - resolution: - { - integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} parse5-htmlparser2-tree-adapter@7.0.0: - resolution: - { - integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==, - } + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} parse5@4.0.0: - resolution: - { - integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==, - } + resolution: {integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==} parse5@7.1.2: - resolution: - { - integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, - } + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} parseurl@1.3.3: - resolution: - { - integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} path-browserify@1.0.1: - resolution: - { - integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==, - } + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} path-exists@4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} path-exists@5.0.0: - resolution: - { - integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} path-is-absolute@1.0.1: - resolution: - { - integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} path-key@3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} path-key@4.0.0: - resolution: - { - integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} path-parse@1.0.7: - resolution: - { - integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, - } + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} path-scurry@1.11.1: - resolution: - { - integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, - } - engines: { node: '>=16 || 14 >=14.18' } + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} path-to-regexp@0.1.10: - resolution: - { - integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==, - } + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} path-to-regexp@6.3.0: - resolution: - { - integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==, - } + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} path-type@4.0.0: - resolution: - { - integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} pathe@1.1.2: - resolution: - { - integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, - } + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} pathval@1.1.1: - resolution: - { - integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==, - } + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} pause-stream@0.0.11: - resolution: - { - integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==, - } + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} pend@1.2.0: - resolution: - { - integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==, - } + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} performance-now@2.1.0: - resolution: - { - integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, - } + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} picocolors@1.1.0: - resolution: - { - integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==, - } + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, - } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} picomatch@3.0.1: - resolution: - { - integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + engines: {node: '>=10'} picomatch@4.0.2: - resolution: - { - integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} pidtree@0.6.0: - resolution: - { - integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} hasBin: true pify@2.3.0: - resolution: - { - integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} pify@3.0.0: - resolution: - { - integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} pify@4.0.1: - resolution: - { - integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} pino-abstract-transport@0.5.0: - resolution: - { - integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==, - } + resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} pino-abstract-transport@1.1.0: - resolution: - { - integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==, - } + resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} pino-std-serializers@4.0.0: - resolution: - { - integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==, - } + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} pino@7.11.0: - resolution: - { - integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==, - } + resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} hasBin: true pirates@4.0.6: - resolution: - { - integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} pkg-dir@7.0.0: - resolution: - { - integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} pkg-types@1.0.3: - resolution: - { - integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==, - } + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} pkginfo@0.4.1: - resolution: - { - integrity: sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ==, - } - engines: { node: '>= 0.4.0' } + resolution: {integrity: sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ==} + engines: {node: '>= 0.4.0'} playwright-core@1.47.2: - resolution: - { - integrity: sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ==} + engines: {node: '>=18'} hasBin: true playwright@1.47.2: - resolution: - { - integrity: sha512-nx1cLMmQWqmA3UsnjaaokyoUpdVaaDhJhMoxX2qj3McpjnsqFHs516QAKYhqHAgOP+oCFTEOCOAaD1RgD/RQfA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-nx1cLMmQWqmA3UsnjaaokyoUpdVaaDhJhMoxX2qj3McpjnsqFHs516QAKYhqHAgOP+oCFTEOCOAaD1RgD/RQfA==} + engines: {node: '>=18'} hasBin: true portfinder@1.0.32: - resolution: - { - integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==, - } - engines: { node: '>= 0.12.0' } + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} possible-typed-array-names@1.0.0: - resolution: - { - integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} postcss-calc@9.0.1: - resolution: - { - integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.2 postcss-colormin@6.1.0: - resolution: - { - integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-convert-values@6.1.0: - resolution: - { - integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-discard-comments@6.0.2: - resolution: - { - integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-discard-duplicates@6.0.3: - resolution: - { - integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-discard-empty@6.0.3: - resolution: - { - integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-discard-overridden@6.0.2: - resolution: - { - integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-import@14.1.0: - resolution: - { - integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==, - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} + engines: {node: '>=10.0.0'} peerDependencies: postcss: ^8.0.0 postcss-loader@6.2.1: - resolution: - { - integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==, - } - engines: { node: '>= 12.13.0' } + resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} + engines: {node: '>= 12.13.0'} peerDependencies: postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 postcss-merge-longhand@6.0.5: - resolution: - { - integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-merge-rules@6.1.1: - resolution: - { - integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-minify-font-values@6.1.0: - resolution: - { - integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-minify-gradients@6.0.3: - resolution: - { - integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-minify-params@6.1.0: - resolution: - { - integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-minify-selectors@6.0.4: - resolution: - { - integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-modules-extract-imports@3.1.0: - resolution: - { - integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==, - } - engines: { node: ^10 || ^12 || >= 14 } + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 postcss-modules-local-by-default@4.0.5: - resolution: - { - integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==, - } - engines: { node: ^10 || ^12 || >= 14 } + resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} + engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 postcss-modules-scope@3.2.0: - resolution: - { - integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==, - } - engines: { node: ^10 || ^12 || >= 14 } + resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} + engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 postcss-modules-values@4.0.0: - resolution: - { - integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==, - } - engines: { node: ^10 || ^12 || >= 14 } + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 postcss-normalize-charset@6.0.2: - resolution: - { - integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-normalize-display-values@6.0.2: - resolution: - { - integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-normalize-positions@6.0.2: - resolution: - { - integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-normalize-repeat-style@6.0.2: - resolution: - { - integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-normalize-string@6.0.2: - resolution: - { - integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-normalize-timing-functions@6.0.2: - resolution: - { - integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-normalize-unicode@6.1.0: - resolution: - { - integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-normalize-url@6.0.2: - resolution: - { - integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-normalize-whitespace@6.0.2: - resolution: - { - integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-ordered-values@6.0.2: - resolution: - { - integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-reduce-initial@6.1.0: - resolution: - { - integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-reduce-transforms@6.0.2: - resolution: - { - integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-selector-parser@6.1.2: - resolution: - { - integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} postcss-svgo@6.0.3: - resolution: - { - integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==, - } - engines: { node: ^14 || ^16 || >= 18 } + resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} + engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.4.31 postcss-unique-selectors@6.0.4: - resolution: - { - integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 postcss-value-parser@4.2.0: - resolution: - { - integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, - } + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} postcss@8.4.47: - resolution: - { - integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==, - } - engines: { node: ^10 || ^12 || >=14 } + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: - resolution: - { - integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} prettier-linter-helpers@1.0.0: - resolution: - { - integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} prettier@2.8.8: - resolution: - { - integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} hasBin: true prettier@3.2.5: - resolution: - { - integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} hasBin: true pretty-format@29.7.0: - resolution: - { - integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} pretty-quick@4.0.0: - resolution: - { - integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==} + engines: {node: '>=14'} hasBin: true peerDependencies: prettier: ^3.0.0 proc-log@3.0.0: - resolution: - { - integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==, - } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} process-nextick-args@2.0.1: - resolution: - { - integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, - } + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} process-warning@1.0.0: - resolution: - { - integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==, - } + resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} process@0.11.10: - resolution: - { - integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, - } - engines: { node: '>= 0.6.0' } + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} property-expr@2.0.6: - resolution: - { - integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==, - } + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} proto-list@1.2.4: - resolution: - { - integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==, - } + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} proto3-json-serializer@2.0.2: - resolution: - { - integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} + engines: {node: '>=14.0.0'} protobufjs@7.4.0: - resolution: - { - integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} proxy-addr@2.0.7: - resolution: - { - integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, - } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} proxy-from-env@1.1.0: - resolution: - { - integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, - } + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} prr@1.0.1: - resolution: - { - integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==, - } + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} ps-tree@1.2.0: - resolution: - { - integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==, - } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} + engines: {node: '>= 0.10'} hasBin: true psl@1.9.0: - resolution: - { - integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, - } + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} pump@3.0.2: - resolution: - { - integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==, - } + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} punycode.js@2.3.1: - resolution: - { - integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} punycode@1.3.2: - resolution: - { - integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==, - } + resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} punycode@2.3.1: - resolution: - { - integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} pupa@3.1.0: - resolution: - { - integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==, - } - engines: { node: '>=12.20' } + resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} + engines: {node: '>=12.20'} pure-rand@6.1.0: - resolution: - { - integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==, - } + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} qs@6.10.4: - resolution: - { - integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==, - } - engines: { node: '>=0.6' } + resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} + engines: {node: '>=0.6'} qs@6.11.0: - resolution: - { - integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, - } - engines: { node: '>=0.6' } + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} qs@6.13.0: - resolution: - { - integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==, - } - engines: { node: '>=0.6' } + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} qs@6.5.3: - resolution: - { - integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==, - } - engines: { node: '>=0.6' } + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} querystring@0.2.0: - resolution: - { - integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==, - } - engines: { node: '>=0.4.x' } + resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} + engines: {node: '>=0.4.x'} deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. querystringify@2.2.0: - resolution: - { - integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, - } + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} queue-microtask@1.2.3: - resolution: - { - integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, - } + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} queue-tick@1.0.1: - resolution: - { - integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==, - } + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} quick-format-unescaped@4.0.4: - resolution: - { - integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==, - } + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} quick-lru@5.1.1: - resolution: - { - integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} randombytes@2.1.0: - resolution: - { - integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, - } + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} range-parser@1.2.1: - resolution: - { - integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} raw-body@2.5.2: - resolution: - { - integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} rc@1.2.8: - resolution: - { - integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, - } + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true react-is@18.2.0: - resolution: - { - integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, - } + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} react@18.3.1: - resolution: - { - integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} read-cache@1.0.0: - resolution: - { - integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, - } + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} read-yaml-file@1.1.0: - resolution: - { - integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} readable-stream@2.3.8: - resolution: - { - integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, - } + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} readable-stream@3.6.2: - resolution: - { - integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} readable-stream@4.5.2: - resolution: - { - integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} readdir-glob@1.1.3: - resolution: - { - integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==, - } + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} readdirp@3.6.0: - resolution: - { - integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, - } - engines: { node: '>=8.10.0' } + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} real-require@0.1.0: - resolution: - { - integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==, - } - engines: { node: '>= 12.13.0' } + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} + engines: {node: '>= 12.13.0'} rechoir@0.6.2: - resolution: - { - integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, - } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} reconnecting-websocket@4.4.0: - resolution: - { - integrity: sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng==, - } + resolution: {integrity: sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng==} redux-thunk@3.1.0: - resolution: - { - integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==, - } + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} peerDependencies: redux: ^5.0.0 redux@5.0.1: - resolution: - { - integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==, - } + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} regenerate-unicode-properties@10.1.1: - resolution: - { - integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} regenerate@1.4.2: - resolution: - { - integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, - } + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} regenerator-runtime@0.14.1: - resolution: - { - integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, - } + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} regenerator-transform@0.15.2: - resolution: - { - integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==, - } + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} regexp.prototype.flags@1.5.2: - resolution: - { - integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} regexpu-core@5.3.2: - resolution: - { - integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} registry-auth-token@5.0.2: - resolution: - { - integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} registry-url@6.0.1: - resolution: - { - integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} regjsparser@0.9.1: - resolution: - { - integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==, - } + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true request@2.88.2: - resolution: - { - integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 require-directory@2.1.1: - resolution: - { - integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} require-from-string@2.0.2: - resolution: - { - integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} requires-port@1.0.0: - resolution: - { - integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, - } + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} reselect@5.1.1: - resolution: - { - integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==, - } + resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} resolve-alpn@1.2.1: - resolution: - { - integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==, - } + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} resolve-dir@1.0.1: - resolution: - { - integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} resolve-from@4.0.0: - resolution: - { - integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} resolve-from@5.0.0: - resolution: - { - integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} resolve.exports@1.1.0: - resolution: - { - integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} + engines: {node: '>=10'} resolve.exports@2.0.2: - resolution: - { - integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} resolve@1.22.8: - resolution: - { - integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, - } + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true responselike@2.0.1: - resolution: - { - integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==, - } + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} responselike@3.0.0: - resolution: - { - integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} restore-cursor@3.1.0: - resolution: - { - integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} restore-cursor@4.0.0: - resolution: - { - integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} retry-request@7.0.2: - resolution: - { - integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==} + engines: {node: '>=14'} retry@0.10.1: - resolution: - { - integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==, - } + resolution: {integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==} retry@0.13.1: - resolution: - { - integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==, - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} reusify@1.0.4: - resolution: - { - integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, - } - engines: { iojs: '>=1.0.0', node: '>=0.10.0' } + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rfc4648@1.5.3: - resolution: - { - integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==, - } + resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} rfdc@1.3.1: - resolution: - { - integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==, - } + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} rimraf@2.4.5: - resolution: - { - integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==, - } + resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@2.5.4: - resolution: - { - integrity: sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==, - } + resolution: {integrity: sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@3.0.2: - resolution: - { - integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, - } + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true roarr@2.15.4: - resolution: - { - integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==, - } - engines: { node: '>=8.0' } + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} rollup@4.22.5: - resolution: - { - integrity: sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==, - } - engines: { node: '>=18.0.0', npm: '>=8.0.0' } + resolution: {integrity: sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true rrweb-cssom@0.6.0: - resolution: - { - integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==, - } + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} run-applescript@7.0.0: - resolution: - { - integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} run-async@2.4.1: - resolution: - { - integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, - } - engines: { node: '>=0.12.0' } + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} run-async@3.0.0: - resolution: - { - integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==, - } - engines: { node: '>=0.12.0' } + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} run-parallel@1.2.0: - resolution: - { - integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, - } + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} rxjs@7.8.1: - resolution: - { - integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==, - } + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} safe-array-concat@1.1.2: - resolution: - { - integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==, - } - engines: { node: '>=0.4' } + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} safe-buffer@5.1.2: - resolution: - { - integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, - } + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} safe-buffer@5.2.1: - resolution: - { - integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, - } + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} safe-regex-test@1.0.3: - resolution: - { - integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} safe-stable-stringify@2.4.3: - resolution: - { - integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} safer-buffer@2.1.2: - resolution: - { - integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, - } + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} sass-loader@12.6.0: - resolution: - { - integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==, - } - engines: { node: '>= 12.13.0' } + resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==} + engines: {node: '>= 12.13.0'} peerDependencies: fibers: '>= 3.1.0' node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -12228,875 +7297,491 @@ packages: optional: true sass@1.75.0: - resolution: - { - integrity: sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==} + engines: {node: '>=14.0.0'} hasBin: true sax@1.2.1: - resolution: - { - integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==, - } + resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} sax@1.4.1: - resolution: - { - integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==, - } + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} saxes@6.0.0: - resolution: - { - integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==, - } - engines: { node: '>=v12.22.7' } + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} schema-utils@3.3.0: - resolution: - { - integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==, - } - engines: { node: '>= 10.13.0' } + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} schema-utils@4.2.0: - resolution: - { - integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==, - } - engines: { node: '>= 12.13.0' } + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} secure-compare@3.0.1: - resolution: - { - integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==, - } + resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} select-hose@2.0.0: - resolution: - { - integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==, - } + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} selfsigned@2.4.1: - resolution: - { - integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} semver-compare@1.0.0: - resolution: - { - integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==, - } + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} semver-diff@4.0.0: - resolution: - { - integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} semver@5.7.2: - resolution: - { - integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, - } + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true semver@6.3.1: - resolution: - { - integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, - } + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true semver@7.5.4: - resolution: - { - integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} hasBin: true semver@7.6.0: - resolution: - { - integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} hasBin: true semver@7.6.3: - resolution: - { - integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} hasBin: true send@0.19.0: - resolution: - { - integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} serialize-error@7.0.1: - resolution: - { - integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} serialize-javascript@6.0.2: - resolution: - { - integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, - } + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} serve-index@1.9.1: - resolution: - { - integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} serve-static@1.16.2: - resolution: - { - integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} set-blocking@2.0.0: - resolution: - { - integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, - } + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} set-function-length@1.2.2: - resolution: - { - integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} set-function-name@2.0.2: - resolution: - { - integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} setprototypeof@1.1.0: - resolution: - { - integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==, - } + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} setprototypeof@1.2.0: - resolution: - { - integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, - } + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} shebang-command@2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} shebang-regex@3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} shell-quote@1.8.1: - resolution: - { - integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==, - } + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} shelljs@0.8.5: - resolution: - { - integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} hasBin: true shx@0.3.4: - resolution: - { - integrity: sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==} + engines: {node: '>=6'} hasBin: true side-channel@1.0.6: - resolution: - { - integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} siginfo@2.0.0: - resolution: - { - integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, - } + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} signal-exit@3.0.7: - resolution: - { - integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, - } + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} signal-exit@4.1.0: - resolution: - { - integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} simple-swizzle@0.2.2: - resolution: - { - integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, - } + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} sirv@2.0.4: - resolution: - { - integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} slash@3.0.0: - resolution: - { - integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} slash@4.0.0: - resolution: - { - integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} slice-ansi@4.0.0: - resolution: - { - integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} slice-ansi@5.0.0: - resolution: - { - integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} slide@1.1.6: - resolution: - { - integrity: sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==, - } + resolution: {integrity: sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==} smart-buffer@4.2.0: - resolution: - { - integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==, - } - engines: { node: '>= 6.0.0', npm: '>= 3.0.0' } + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} snyk@1.1288.1: - resolution: - { - integrity: sha512-XFJPvRrYb7Min/GrUd9t926nNXSN8YpT5nl/lzctsSpF+xFxoneTcYcEZXwPoSBZ/RIcHFoo0teo1aY8kloaqQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-XFJPvRrYb7Min/GrUd9t926nNXSN8YpT5nl/lzctsSpF+xFxoneTcYcEZXwPoSBZ/RIcHFoo0teo1aY8kloaqQ==} + engines: {node: '>=12'} hasBin: true sockjs@0.3.24: - resolution: - { - integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==, - } + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} socks-proxy-agent@8.0.4: - resolution: - { - integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} + engines: {node: '>= 14'} socks@2.8.3: - resolution: - { - integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==, - } - engines: { node: '>= 10.0.0', npm: '>= 3.0.0' } + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} sonic-boom@2.8.0: - resolution: - { - integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==, - } + resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} sonic-boom@3.8.0: - resolution: - { - integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==, - } + resolution: {integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==} source-map-js@1.2.0: - resolution: - { - integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} source-map-js@1.2.1: - resolution: - { - integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} source-map-loader@5.0.0: - resolution: - { - integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==, - } - engines: { node: '>= 18.12.0' } + resolution: {integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==} + engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.72.1 source-map-support@0.5.13: - resolution: - { - integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==, - } + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} source-map-support@0.5.19: - resolution: - { - integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==, - } + resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} source-map-support@0.5.21: - resolution: - { - integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, - } + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} source-map@0.6.1: - resolution: - { - integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} source-map@0.7.4: - resolution: - { - integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} spawndamnit@2.0.0: - resolution: - { - integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==, - } + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} spdx-correct@3.2.0: - resolution: - { - integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, - } + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} spdx-exceptions@2.5.0: - resolution: - { - integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==, - } + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} spdx-expression-parse@3.0.1: - resolution: - { - integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, - } + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} spdx-license-ids@3.0.17: - resolution: - { - integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==, - } + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} spdy-transport@3.0.0: - resolution: - { - integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==, - } + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} spdy@4.0.2: - resolution: - { - integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} split2@4.2.0: - resolution: - { - integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, - } - engines: { node: '>= 10.x' } + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} split@0.3.3: - resolution: - { - integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==, - } + resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} sprintf-js@1.0.3: - resolution: - { - integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, - } + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} sprintf-js@1.1.3: - resolution: - { - integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==, - } + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} sshpk@1.18.0: - resolution: - { - integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} hasBin: true ssri@12.0.0: - resolution: - { - integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==, - } - engines: { node: ^18.17.0 || >=20.5.0 } + resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} + engines: {node: ^18.17.0 || >=20.5.0} stack-trace@0.0.10: - resolution: - { - integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==, - } + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} stack-utils@2.0.6: - resolution: - { - integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} stackback@0.0.2: - resolution: - { - integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, - } + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} statuses@1.5.0: - resolution: - { - integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} statuses@2.0.1: - resolution: - { - integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} std-env@3.7.0: - resolution: - { - integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==, - } + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} steno@0.4.4: - resolution: - { - integrity: sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==, - } + resolution: {integrity: sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==} stream-buffers@3.0.3: - resolution: - { - integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==, - } - engines: { node: '>= 0.10.0' } + resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} + engines: {node: '>= 0.10.0'} stream-combiner@0.0.4: - resolution: - { - integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==, - } + resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} stream-events@1.0.5: - resolution: - { - integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==, - } + resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==} stream-shift@1.0.3: - resolution: - { - integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==, - } + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} streamx@2.20.1: - resolution: - { - integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==, - } + resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} strict-event-emitter@0.1.0: - resolution: - { - integrity: sha512-8hSYfU+WKLdNcHVXJ0VxRXiPESalzRe7w1l8dg9+/22Ry+iZQUoQuoJ27R30GMD1TiyYINWsIEGY05WrskhSKw==, - } + resolution: {integrity: sha512-8hSYfU+WKLdNcHVXJ0VxRXiPESalzRe7w1l8dg9+/22Ry+iZQUoQuoJ27R30GMD1TiyYINWsIEGY05WrskhSKw==} strict-event-emitter@0.5.1: - resolution: - { - integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==, - } + resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} string-argv@0.3.2: - resolution: - { - integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, - } - engines: { node: '>=0.6.19' } + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} string-length@4.0.2: - resolution: - { - integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} string-width@1.0.2: - resolution: - { - integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} string-width@4.2.3: - resolution: - { - integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} string-width@5.1.2: - resolution: - { - integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} string.prototype.trim@1.2.9: - resolution: - { - integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} string.prototype.trimend@1.0.8: - resolution: - { - integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==, - } + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} string.prototype.trimstart@1.0.8: - resolution: - { - integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} string_decoder@1.1.1: - resolution: - { - integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, - } + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} string_decoder@1.3.0: - resolution: - { - integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, - } + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} strip-ansi@3.0.1: - resolution: - { - integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} strip-ansi@6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} strip-ansi@7.1.0: - resolution: - { - integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} strip-bom@3.0.0: - resolution: - { - integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} strip-bom@4.0.0: - resolution: - { - integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} strip-final-newline@2.0.0: - resolution: - { - integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} strip-final-newline@3.0.0: - resolution: - { - integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} strip-json-comments@2.0.1: - resolution: - { - integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} strip-json-comments@3.1.1: - resolution: - { - integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} strip-literal@2.1.0: - resolution: - { - integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==, - } + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} stubs@3.0.0: - resolution: - { - integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==, - } + resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} style-loader@3.3.4: - resolution: - { - integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==, - } - engines: { node: '>= 12.13.0' } + resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} + engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 stylehacks@6.1.1: - resolution: - { - integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==, - } - engines: { node: ^14 || ^16 || >=18.0 } + resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 stylus-loader@7.1.3: - resolution: - { - integrity: sha512-TY0SKwiY7D2kMd3UxaWKSf3xHF0FFN/FAfsSqfrhxRT/koXTwffq2cgEWDkLQz7VojMu7qEEHt5TlMjkPx9UDw==, - } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-TY0SKwiY7D2kMd3UxaWKSf3xHF0FFN/FAfsSqfrhxRT/koXTwffq2cgEWDkLQz7VojMu7qEEHt5TlMjkPx9UDw==} + engines: {node: '>= 14.15.0'} peerDependencies: stylus: '>=0.52.4' webpack: ^5.0.0 stylus@0.64.0: - resolution: - { - integrity: sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==} + engines: {node: '>=16'} hasBin: true superagent@8.1.2: - resolution: - { - integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==, - } - engines: { node: '>=6.4.0 <13 || >=14' } + resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==} + engines: {node: '>=6.4.0 <13 || >=14'} deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net supports-color@5.5.0: - resolution: - { - integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} supports-color@7.2.0: - resolution: - { - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} supports-color@8.1.1: - resolution: - { - integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} supports-preserve-symlinks-flag@1.0.0: - resolution: - { - integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} svgo@3.3.2: - resolution: - { - integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} hasBin: true swagger-ui-dist@5.17.14: - resolution: - { - integrity: sha512-CVbSfaLpstV65OnSjbXfVd6Sta3q3F7Cj/yYuvHMp1P90LztOLs6PfUnKEVAeiIVQt9u2SaPwv0LiH/OyMjHRw==, - } + resolution: {integrity: sha512-CVbSfaLpstV65OnSjbXfVd6Sta3q3F7Cj/yYuvHMp1P90LztOLs6PfUnKEVAeiIVQt9u2SaPwv0LiH/OyMjHRw==} swc-loader@0.1.15: - resolution: - { - integrity: sha512-cn1WPIeQJvXM4bbo3OwdEIapsQ4uUGOfyFj0h2+2+brT0k76DCGnZXDE2KmcqTd2JSQ+b61z2NPMib7eEwMYYw==, - } + resolution: {integrity: sha512-cn1WPIeQJvXM4bbo3OwdEIapsQ4uUGOfyFj0h2+2+brT0k76DCGnZXDE2KmcqTd2JSQ+b61z2NPMib7eEwMYYw==} peerDependencies: '@swc/core': ^1.2.52 webpack: '>=2' symbol-tree@3.2.4: - resolution: - { - integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, - } + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} synckit@0.8.8: - resolution: - { - integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==, - } - engines: { node: ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} table@6.8.2: - resolution: - { - integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==, - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} + engines: {node: '>=10.0.0'} tapable@2.2.1: - resolution: - { - integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} tar-stream@2.2.0: - resolution: - { - integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} tar-stream@3.1.7: - resolution: - { - integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==, - } + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} tar@6.2.1: - resolution: - { - integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} teeny-request@9.0.0: - resolution: - { - integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} + engines: {node: '>=14'} temp-fs@0.9.9: - resolution: - { - integrity: sha512-WfecDCR1xC9b0nsrzSaxPf3ZuWeWLUWblW4vlDQAa1biQaKHiImHnJfeQocQe/hXKMcolRzgkcVX/7kK4zoWbw==, - } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-WfecDCR1xC9b0nsrzSaxPf3ZuWeWLUWblW4vlDQAa1biQaKHiImHnJfeQocQe/hXKMcolRzgkcVX/7kK4zoWbw==} + engines: {node: '>=0.8.0'} term-size@2.2.1: - resolution: - { - integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} terser-webpack-plugin@5.3.10: - resolution: - { - integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==, - } - engines: { node: '>= 10.13.0' } + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' esbuild: '*' @@ -13111,226 +7796,130 @@ packages: optional: true terser@5.33.0: - resolution: - { - integrity: sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==} + engines: {node: '>=10'} hasBin: true test-exclude@6.0.0: - resolution: - { - integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} text-decoder@1.2.0: - resolution: - { - integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==, - } + resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} text-extensions@2.4.0: - resolution: - { - integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} text-hex@1.0.0: - resolution: - { - integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==, - } + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} text-table@0.2.0: - resolution: - { - integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, - } + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} thingies@1.21.0: - resolution: - { - integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==, - } - engines: { node: '>=10.18' } + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} peerDependencies: tslib: ^2 thread-stream@0.15.2: - resolution: - { - integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==, - } + resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} through@2.3.8: - resolution: - { - integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, - } + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} thunky@1.1.0: - resolution: - { - integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==, - } + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} tinybench@2.7.0: - resolution: - { - integrity: sha512-Qgayeb106x2o4hNzNjsZEfFziw8IbKqtbXBjVh7VIZfBxfD5M4gWtpyx5+YTae2gJ6Y6Dz/KLepiv16RFeQWNA==, - } + resolution: {integrity: sha512-Qgayeb106x2o4hNzNjsZEfFziw8IbKqtbXBjVh7VIZfBxfD5M4gWtpyx5+YTae2gJ6Y6Dz/KLepiv16RFeQWNA==} tinyglobby@0.2.10: - resolution: - { - integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} tinypool@0.8.4: - resolution: - { - integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + engines: {node: '>=14.0.0'} tinyspy@2.2.1: - resolution: - { - integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} tmp-promise@3.0.3: - resolution: - { - integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==, - } + resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} tmp@0.0.33: - resolution: - { - integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, - } - engines: { node: '>=0.6.0' } + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} tmp@0.2.3: - resolution: - { - integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==, - } - engines: { node: '>=14.14' } + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} tmpl@1.0.5: - resolution: - { - integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, - } + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} to-fast-properties@2.0.0: - resolution: - { - integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} to-regex-range@5.0.1: - resolution: - { - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, - } - engines: { node: '>=8.0' } + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} toidentifier@1.0.1: - resolution: - { - integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, - } - engines: { node: '>=0.6' } + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} toposort@2.0.2: - resolution: - { - integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==, - } + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} totalist@3.0.1: - resolution: - { - integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} tough-cookie@4.1.3: - resolution: - { - integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} tough-cookie@4.1.4: - resolution: - { - integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} tr46@0.0.3: - resolution: - { - integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, - } + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} tr46@4.1.1: - resolution: - { - integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} + engines: {node: '>=14'} tree-dump@1.0.2: - resolution: - { - integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==, - } - engines: { node: '>=10.0' } + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} peerDependencies: tslib: '2' triple-beam@1.4.1: - resolution: - { - integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==, - } - engines: { node: '>= 14.0.0' } + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} ts-api-utils@1.3.0: - resolution: - { - integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' ts-loader@9.5.1: - resolution: - { - integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} peerDependencies: typescript: '*' webpack: ^5.0.0 ts-node@10.9.1: - resolution: - { - integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, - } + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -13344,11 +7933,8 @@ packages: optional: true tsconfck@3.0.3: - resolution: - { - integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==, - } - engines: { node: ^18 || >=20 } + resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} + engines: {node: ^18 || >=20} hasBin: true peerDependencies: typescript: ^5.0.0 @@ -13357,540 +7943,306 @@ packages: optional: true tsconfig-paths-webpack-plugin@4.0.0: - resolution: - { - integrity: sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==} + engines: {node: '>=10.13.0'} tsconfig-paths@3.15.0: - resolution: - { - integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==, - } + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} tsconfig-paths@4.2.0: - resolution: - { - integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} tslib@1.14.1: - resolution: - { - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, - } + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} tslib@2.6.3: - resolution: - { - integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==, - } + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} tsscmp@1.0.6: - resolution: - { - integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==, - } - engines: { node: '>=0.6.x' } + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} tsutils@3.21.0: - resolution: - { - integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' tunnel-agent@0.6.0: - resolution: - { - integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, - } + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} tweetnacl@0.14.5: - resolution: - { - integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==, - } + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} typanion@3.14.0: - resolution: - { - integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==, - } + resolution: {integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==} type-check@0.4.0: - resolution: - { - integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} type-detect@4.0.8: - resolution: - { - integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} type-fest@0.13.1: - resolution: - { - integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} type-fest@0.20.2: - resolution: - { - integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} type-fest@0.21.3: - resolution: - { - integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} type-fest@1.4.0: - resolution: - { - integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} type-fest@2.19.0: - resolution: - { - integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==, - } - engines: { node: '>=12.20' } + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} type-fest@4.26.1: - resolution: - { - integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} + engines: {node: '>=16'} type-is@1.6.18: - resolution: - { - integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} typed-array-buffer@1.0.2: - resolution: - { - integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} typed-array-byte-length@1.0.1: - resolution: - { - integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} typed-array-byte-offset@1.0.2: - resolution: - { - integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} typed-array-length@1.0.6: - resolution: - { - integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} typed-assert@1.0.9: - resolution: - { - integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==, - } + resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} typedarray-to-buffer@3.1.5: - resolution: - { - integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==, - } + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} typedarray@0.0.6: - resolution: - { - integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, - } + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} typedoc-github-theme@0.2.0: - resolution: - { - integrity: sha512-ycTjNm7PZharoYg67oAFDC4JUvIqvFCLp4AiCKQBhlCsbiWiMYGEAPnuoRmV6+/CQsmH2l3dfOUiwM11ZtSGqA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-ycTjNm7PZharoYg67oAFDC4JUvIqvFCLp4AiCKQBhlCsbiWiMYGEAPnuoRmV6+/CQsmH2l3dfOUiwM11ZtSGqA==} + engines: {node: '>=18.0.0'} peerDependencies: typedoc: ^0.27.1 typedoc-plugin-rename-defaults@0.7.2: - resolution: - { - integrity: sha512-9oa1CsMN4p/xuVR2JW2YDD6xE7JcrIth3KAfjR8YBi6NnrDk2Q72o4lbArybLDjxKAkOzk7N1uUdGwJlooLEOg==, - } + resolution: {integrity: sha512-9oa1CsMN4p/xuVR2JW2YDD6xE7JcrIth3KAfjR8YBi6NnrDk2Q72o4lbArybLDjxKAkOzk7N1uUdGwJlooLEOg==} peerDependencies: typedoc: '>=0.22.x <0.28.x' typedoc@0.27.4: - resolution: - { - integrity: sha512-wXPQs1AYC2Crk+1XFpNuutLIkNWleokZf1UNf/X8w9KsMnirkvT+LzxTXDvfF6ug3TSLf3Xu5ZXRKGfoXPX7IA==, - } - engines: { node: '>= 18' } + resolution: {integrity: sha512-wXPQs1AYC2Crk+1XFpNuutLIkNWleokZf1UNf/X8w9KsMnirkvT+LzxTXDvfF6ug3TSLf3Xu5ZXRKGfoXPX7IA==} + engines: {node: '>= 18'} hasBin: true peerDependencies: typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x typescript@5.4.2: - resolution: - { - integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==, - } - engines: { node: '>=14.17' } + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} + engines: {node: '>=14.17'} hasBin: true typescript@5.6.3: - resolution: - { - integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==, - } - engines: { node: '>=14.17' } + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} hasBin: true uc.micro@2.1.0: - resolution: - { - integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==, - } + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} ufo@1.5.3: - resolution: - { - integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==, - } + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} uglify-js@3.17.4: - resolution: - { - integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==, - } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} hasBin: true unbox-primitive@1.0.2: - resolution: - { - integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, - } + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} underscore@1.13.7: - resolution: - { - integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==, - } + resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} undici-types@6.19.8: - resolution: - { - integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==, - } + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} undici-types@6.20.0: - resolution: - { - integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==, - } + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} undici@6.19.2: - resolution: - { - integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==, - } - engines: { node: '>=18.17' } + resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} + engines: {node: '>=18.17'} unicode-canonical-property-names-ecmascript@2.0.0: - resolution: - { - integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} unicode-match-property-ecmascript@2.0.0: - resolution: - { - integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} unicode-match-property-value-ecmascript@2.1.0: - resolution: - { - integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} unicode-property-aliases-ecmascript@2.1.0: - resolution: - { - integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} unicorn-magic@0.1.0: - resolution: - { - integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} union@0.5.0: - resolution: - { - integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} unique-string@3.0.0: - resolution: - { - integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} universalify@0.1.2: - resolution: - { - integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, - } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} universalify@0.2.0: - resolution: - { - integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==, - } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} universalify@2.0.1: - resolution: - { - integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} unix-crypt-td-js@1.1.4: - resolution: - { - integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==, - } + resolution: {integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==} unpipe@1.0.0: - resolution: - { - integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} update-browserslist-db@1.1.0: - resolution: - { - integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==, - } + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' update-notifier@6.0.2: - resolution: - { - integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} + engines: {node: '>=14.16'} uri-js@4.4.1: - resolution: - { - integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, - } + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} url-join@4.0.1: - resolution: - { - integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==, - } + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} url-parse@1.5.10: - resolution: - { - integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, - } + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} url-template@2.0.8: - resolution: - { - integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==, - } + resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} url@0.10.3: - resolution: - { - integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==, - } + resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} util-deprecate@1.0.2: - resolution: - { - integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, - } + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} util@0.12.5: - resolution: - { - integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==, - } + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} utils-merge@1.0.1: - resolution: - { - integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, - } - engines: { node: '>= 0.4.0' } + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} uuid@3.4.0: - resolution: - { - integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==, - } + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true uuid@8.0.0: - resolution: - { - integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==, - } + resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==} hasBin: true uuid@8.3.2: - resolution: - { - integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, - } + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true uuid@9.0.1: - resolution: - { - integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==, - } + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true v8-compile-cache-lib@3.0.1: - resolution: - { - integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, - } + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} v8-to-istanbul@9.3.0: - resolution: - { - integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==, - } - engines: { node: '>=10.12.0' } + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} validate-npm-package-license@3.0.4: - resolution: - { - integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, - } + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} validate-npm-package-name@3.0.0: - resolution: - { - integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==, - } + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} validate-npm-package-name@5.0.0: - resolution: - { - integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==, - } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} validator@13.11.0: - resolution: - { - integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==, - } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} + engines: {node: '>= 0.10'} vary@1.1.2: - resolution: - { - integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} verdaccio-audit@12.0.0-next-7.13: - resolution: - { - integrity: sha512-vmq0DQjgieEV0oXmNKeQQKLxNSOlWmDP3o4tDSH39o54aDLZLfQ9+xUpZjguJxWvDjZyWmBCpHnJdjAyp2VAiA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-vmq0DQjgieEV0oXmNKeQQKLxNSOlWmDP3o4tDSH39o54aDLZLfQ9+xUpZjguJxWvDjZyWmBCpHnJdjAyp2VAiA==} + engines: {node: '>=12'} verdaccio-htpasswd@12.0.0-next-7.13: - resolution: - { - integrity: sha512-1xhKuDYRTPHv1NPeTb83thkApmM1zrvKz9pZk4F6rjlWfkIO1pBslaRXO/Qo6VrvCRSIaw+Qqbci86GCyFaLKg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-1xhKuDYRTPHv1NPeTb83thkApmM1zrvKz9pZk4F6rjlWfkIO1pBslaRXO/Qo6VrvCRSIaw+Qqbci86GCyFaLKg==} + engines: {node: '>=12'} verdaccio@5.30.3: - resolution: - { - integrity: sha512-s/ZhSRBusW2o+ZkERyzEIbVL3zo8QLpTQPVoB/pn/Yv6+ngflP+anK4xCYiXXQJhqEdBz3cwApa8UgOEaNSS4Q==, - } - engines: { node: '>=12.18' } + resolution: {integrity: sha512-s/ZhSRBusW2o+ZkERyzEIbVL3zo8QLpTQPVoB/pn/Yv6+ngflP+anK4xCYiXXQJhqEdBz3cwApa8UgOEaNSS4Q==} + engines: {node: '>=12.18'} hasBin: true verror@1.10.0: - resolution: - { - integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==, - } - engines: { '0': node >=0.6.0 } + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} vite-node@1.5.0: - resolution: - { - integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==, - } - engines: { node: ^18.0.0 || >=20.0.0 } + resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true vite-plugin-dts@4.2.2: - resolution: - { - integrity: sha512-USwTMReZFf8yXV+cKkm4WOMqmFjbReAvkyxON5xzdnZzJEBnFgax6BBDZIGGr9WMJYvhHdpaIHLrOjXDcla4OA==, - } - engines: { node: ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-USwTMReZFf8yXV+cKkm4WOMqmFjbReAvkyxON5xzdnZzJEBnFgax6BBDZIGGr9WMJYvhHdpaIHLrOjXDcla4OA==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: typescript: '*' vite: '*' @@ -13899,27 +8251,18 @@ packages: optional: true vite-plugin-eslint@1.8.1: - resolution: - { - integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==, - } + resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} peerDependencies: eslint: '>=7' vite: '>=2' vite-plugin-externalize-deps@0.8.0: - resolution: - { - integrity: sha512-MdC8kRNQ1ZjhUicU2HcqGVhL0UUFqv83Zp1JZdHjE82PoPR8wsSWZ3axpot7B6img3sW6g8shYJikE0CKA0chA==, - } + resolution: {integrity: sha512-MdC8kRNQ1ZjhUicU2HcqGVhL0UUFqv83Zp1JZdHjE82PoPR8wsSWZ3axpot7B6img3sW6g8shYJikE0CKA0chA==} peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 vite-tsconfig-paths@4.3.2: - resolution: - { - integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==, - } + resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} peerDependencies: vite: '*' peerDependenciesMeta: @@ -13927,11 +8270,8 @@ packages: optional: true vite@5.4.8: - resolution: - { - integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==, - } - engines: { node: ^18.0.0 || >=20.0.0 } + resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@types/node': ^18.0.0 || >=20.0.0 @@ -13961,19 +8301,13 @@ packages: optional: true vitest-canvas-mock@0.3.3: - resolution: - { - integrity: sha512-3P968tYBpqYyzzOaVtqnmYjqbe13576/fkjbDEJSfQAkHtC5/UjuRHOhFEN/ZV5HVZIkaROBUWgazDKJ+Ibw+Q==, - } + resolution: {integrity: sha512-3P968tYBpqYyzzOaVtqnmYjqbe13576/fkjbDEJSfQAkHtC5/UjuRHOhFEN/ZV5HVZIkaROBUWgazDKJ+Ibw+Q==} peerDependencies: vitest: '*' vitest@1.5.0: - resolution: - { - integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==, - } - engines: { node: ^18.0.0 || >=20.0.0 } + resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' @@ -13997,62 +8331,35 @@ packages: optional: true vscode-uri@3.0.8: - resolution: - { - integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==, - } + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} w3c-xmlserializer@4.0.0: - resolution: - { - integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} walker@1.0.8: - resolution: - { - integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, - } + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} watchpack@2.4.2: - resolution: - { - integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} wbuf@1.7.3: - resolution: - { - integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==, - } + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} wcwidth@1.0.1: - resolution: - { - integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, - } + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} webidl-conversions@3.0.1: - resolution: - { - integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, - } + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} webidl-conversions@7.0.0: - resolution: - { - integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} webpack-dev-middleware@7.4.2: - resolution: - { - integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==, - } - engines: { node: '>= 18.12.0' } + resolution: {integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==} + engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.0.0 peerDependenciesMeta: @@ -14060,11 +8367,8 @@ packages: optional: true webpack-dev-server@5.1.0: - resolution: - { - integrity: sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==, - } - engines: { node: '>= 18.12.0' } + resolution: {integrity: sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==} + engines: {node: '>= 18.12.0'} hasBin: true peerDependencies: webpack: ^5.0.0 @@ -14076,25 +8380,16 @@ packages: optional: true webpack-node-externals@3.0.0: - resolution: - { - integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} + engines: {node: '>=6'} webpack-sources@3.2.3: - resolution: - { - integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} webpack-subresource-integrity@5.1.0: - resolution: - { - integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==, - } - engines: { node: '>= 12' } + resolution: {integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==} + engines: {node: '>= 12'} peerDependencies: html-webpack-plugin: '>= 5.0.0-beta.1 < 6' webpack: ^5.12.0 @@ -14103,11 +8398,8 @@ packages: optional: true webpack@5.95.0: - resolution: - { - integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} + engines: {node: '>=10.13.0'} hasBin: true peerDependencies: webpack-cli: '*' @@ -14116,175 +8408,100 @@ packages: optional: true websocket-driver@0.7.4: - resolution: - { - integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==, - } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} websocket-extensions@0.1.4: - resolution: - { - integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==, - } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} whatwg-encoding@2.0.0: - resolution: - { - integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} whatwg-mimetype@3.0.0: - resolution: - { - integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} whatwg-url@12.0.1: - resolution: - { - integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} + engines: {node: '>=14'} whatwg-url@5.0.0: - resolution: - { - integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, - } + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} which-boxed-primitive@1.0.2: - resolution: - { - integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, - } + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} which-typed-array@1.1.15: - resolution: - { - integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} which@1.3.1: - resolution: - { - integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, - } + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true which@2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} hasBin: true why-is-node-running@2.2.2: - resolution: - { - integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} hasBin: true wide-align@1.1.5: - resolution: - { - integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==, - } + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} widest-line@4.0.1: - resolution: - { - integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} windows-release@5.1.1: - resolution: - { - integrity: sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} winston-transport@4.8.0: - resolution: - { - integrity: sha512-qxSTKswC6llEMZKgCQdaWgDuMJQnhuvF5f2Nk3SNXc4byfQ+voo2mX1Px9dkNOuR8p0KAjfPG29PuYUSIb+vSA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-qxSTKswC6llEMZKgCQdaWgDuMJQnhuvF5f2Nk3SNXc4byfQ+voo2mX1Px9dkNOuR8p0KAjfPG29PuYUSIb+vSA==} + engines: {node: '>= 12.0.0'} winston@3.15.0: - resolution: - { - integrity: sha512-RhruH2Cj0bV0WgNL+lOfoUBI4DVfdUNjVnJGVovWZmrcKtrFTTRzgXYK2O9cymSGjrERCtaAeHwMNnUWXlwZow==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-RhruH2Cj0bV0WgNL+lOfoUBI4DVfdUNjVnJGVovWZmrcKtrFTTRzgXYK2O9cymSGjrERCtaAeHwMNnUWXlwZow==} + engines: {node: '>= 12.0.0'} word-wrap@1.2.5: - resolution: - { - integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} wordwrap@1.0.0: - resolution: - { - integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, - } + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} wrap-ansi@6.2.0: - resolution: - { - integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} wrap-ansi@7.0.0: - resolution: - { - integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} wrap-ansi@8.1.0: - resolution: - { - integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} wrappy@1.0.2: - resolution: - { - integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, - } + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} write-file-atomic@3.0.3: - resolution: - { - integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==, - } + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} write-file-atomic@4.0.2: - resolution: - { - integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, - } - engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} ws@8.18.0: - resolution: - { - integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==, - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: '>=5.0.2' @@ -14295,143 +8512,84 @@ packages: optional: true xdg-basedir@5.1.0: - resolution: - { - integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} xml-name-validator@4.0.0: - resolution: - { - integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} xml2js@0.6.2: - resolution: - { - integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==, - } - engines: { node: '>=4.0.0' } + resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} + engines: {node: '>=4.0.0'} xmlbuilder@11.0.1: - resolution: - { - integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==, - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} xmlchars@2.2.0: - resolution: - { - integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, - } + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} y18n@5.0.8: - resolution: - { - integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} yallist@3.1.1: - resolution: - { - integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, - } + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} yallist@4.0.0: - resolution: - { - integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, - } + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} yaml@1.10.2: - resolution: - { - integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} yaml@2.3.1: - resolution: - { - integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + engines: {node: '>= 14'} yaml@2.6.1: - resolution: - { - integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + engines: {node: '>= 14'} hasBin: true yargs-parser@21.1.1: - resolution: - { - integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} yargs@17.7.2: - resolution: - { - integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} yauzl@2.10.0: - resolution: - { - integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==, - } + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} yn@3.1.1: - resolution: - { - integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} yocto-queue@0.1.0: - resolution: - { - integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} yocto-queue@1.0.0: - resolution: - { - integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==, - } - engines: { node: '>=12.20' } + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} yoctocolors-cjs@2.1.2: - resolution: - { - integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} yup@0.32.11: - resolution: - { - integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==} + engines: {node: '>=10'} zip-stream@5.0.2: - resolution: - { - integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==} + engines: {node: '>= 12.0.0'} snapshots: + '@aashutoshrathi/word-wrap@1.2.6': {} '@adobe/css-tools@4.3.3': {} From fe54f59ce7284c78493fee9f924fd1e6c4094bc5 Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Sun, 24 Nov 2024 10:43:20 -0700 Subject: [PATCH 03/14] chore: fix-changesets-ignore --- .changeset/config.json | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.changeset/config.json b/.changeset/config.json index 14c1d2c02..fcc6d5afb 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -14,14 +14,13 @@ "updateInternalDependencies": "patch", "ignore": [ "@forgerock/device-client", - "autoscript-apps", - "autoscript-suites", - "davinci-app", - "mock-api", - "token-vault-app", + "@forgerock/autoscript-apps", + "@forgerock/autoscript-suites", + "@forgerock/davinci-app", + "@forgerock/mock-api", + "@forgerock/token-vault-app", "@forgerock/token-vault-interceptor", - "token-vault-proxy", - "token-vault-suites", - "davinci-suites" + "@forgerock/token-vault-proxy", + "@forgerock/token-vault-suites" ] } From 24e74f70236e4d378eaef88830fcabeac4c9effe Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Sun, 24 Nov 2024 10:48:43 -0700 Subject: [PATCH 04/14] chore: add-lint-global-cache --- nx.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nx.json b/nx.json index 146a6c3f0..0a1ef83c1 100644 --- a/nx.json +++ b/nx.json @@ -32,6 +32,10 @@ "outputs": ["{projectRoot}/.playwright"], "cache": true }, + "lint": { + "inputs": ["noMarkdown", "^noMarkdown"], + "cache": true + }, "build": { "dependsOn": ["^build"], "inputs": ["noMarkdown", "^noMarkdown"], From f1311d02798100cab0dc165219cd131f4ed3dd7e Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Sun, 24 Nov 2024 10:52:33 -0700 Subject: [PATCH 05/14] chore: add -test-cache --- nx.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nx.json b/nx.json index 0a1ef83c1..b0c8c6d8e 100644 --- a/nx.json +++ b/nx.json @@ -36,6 +36,10 @@ "inputs": ["noMarkdown", "^noMarkdown"], "cache": true }, + "test": { + "inputs": ["noMarkdown", "^noMarkdown"], + "cache": true + }, "build": { "dependsOn": ["^build"], "inputs": ["noMarkdown", "^noMarkdown"], From 5931144f94ce13d435d6191161506340343d1040 Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Sun, 24 Nov 2024 10:58:51 -0700 Subject: [PATCH 06/14] chore: nx-json-fixes --- .github/labeler.yml | 13 ++++++--- nx.json | 65 +++------------------------------------------ 2 files changed, 13 insertions(+), 65 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index a9c9f5c37..826b81b5f 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -13,13 +13,20 @@ NX: root: - '*' -samples: - - samples/**/* +davinci-client: + - packages/davinci-client/* -sdk: +device-client: + - packages/device-client/* + +token-vault: + - packages/token-vault/* + +javascript-sdk: - packages/javascript-sdk/* - packages/javascript-sdk/**/* +ping-protect: -packages/ping-protect/* test: - e2e/**/* - jest* diff --git a/nx.json b/nx.json index b0c8c6d8e..106a79ded 100644 --- a/nx.json +++ b/nx.json @@ -12,11 +12,6 @@ "noMarkdown": ["!{projectRoot}/**/*.md"] }, "targetDefaults": { - "nx-release-publish": { - "options": { - "packageRoot": "packages/{projectName}" - } - }, "docs": { "dependsOn": ["build", "^build", "^docs"], "cache": true, @@ -24,7 +19,7 @@ }, "serve": { "cache": false, - "dependsOn": ["^build"] + "dependsOn": ["build"] }, "e2e": { "dependsOn": ["^build"], @@ -33,10 +28,12 @@ "cache": true }, "lint": { + "dependsOn": ["^lint"], "inputs": ["noMarkdown", "^noMarkdown"], "cache": true }, "test": { + "dependsOn": ["^build", "^test"], "inputs": ["noMarkdown", "^noMarkdown"], "cache": true }, @@ -46,46 +43,11 @@ "cache": true, "outputs": ["{projectRoot}/dist"] }, - "@nx/vite:test": { - "dependsOn": ["^test"], - "inputs": ["noMarkdown", "^noMarkdown"], - "outputs": ["{projectRoot}/coverage"], - "cache": true - }, - "@nx/eslint:lint": { - "dependsOn": ["^build", "^lint"], - "inputs": ["noMarkdown", "^noMarkdown"], - "cache": true - }, - "@nx/vite:build": { - "dependsOn": ["^build"], - "cache": true, - "inputs": ["noMarkdown", "^noMarkdown"], - "outputs": ["{projectRoot}/dist"] - }, - "@nx/playwright:run": { - "dependsOn": ["^build"], - "inputs": ["noMarkdown", "^noMarkdown"], - "outputs": ["{projectRoot}/.playwright"], - "cache": true - }, - "@nx/esbuild:esbuild": { - "dependsOn": ["^build"], - "cache": true, - "inputs": ["noMarkdown", "^noMarkdown"], - "outputs": ["{projectRoot}/dist"] - }, "e2e-ci--**/*": { "dependsOn": ["^build"], "inputs": ["noMarkdown", "^noMarkdown"], "outputs": ["{projectRoot}/.playwright"], "cache": true - }, - "@nx/js:tsc": { - "cache": true, - "dependsOn": ["^build"], - "inputs": ["production", "^production"], - "outputs": ["{projectRoot}/dist"] } }, "parallel": 1, @@ -93,27 +55,6 @@ "appsDir": "", "libsDir": "" }, - "release": { - "projects": ["packages/*"], - "releaseTagPattern": "v{version}", - "version": { - "preVersionCommand": "npx nx run-many -t build", - "generatorOptions": { - "currentVersionResolver": "git-tag", - "specifierSource": "conventional-commits" - } - }, - "changelog": { - "git": { - "commit": true, - "tag": true - }, - "workspaceChangelog": { - "createRelease": "github" - }, - "projectChangelogs": true - } - }, "plugins": [ { "plugin": "@nx/playwright/plugin", From deb57f1399a6d9bde3a49126967011f1e11fce5e Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Mon, 16 Dec 2024 14:54:00 -0700 Subject: [PATCH 07/14] chore: working setup here --- e2e/autoscript-apps/project.json | 35 - e2e/davinci-app/vite.config.ts | 6 +- e2e/davinci-suites/package.json | 2 +- e2e/davinci-suites/playwright.config.ts | 2 +- e2e/davinci-suites/project.json | 25 - e2e/mock-api-v2/build.js | 35 + e2e/mock-api-v2/package.json | 21 +- e2e/mock-api-v2/src/index.css | 0 e2e/mock-api-v2/tsconfig.app.json | 8 +- pnpm-lock.yaml | 12404 ++++++++++++++++------ 10 files changed, 9334 insertions(+), 3204 deletions(-) delete mode 100644 e2e/autoscript-apps/project.json delete mode 100644 e2e/davinci-suites/project.json create mode 100644 e2e/mock-api-v2/build.js create mode 100644 e2e/mock-api-v2/src/index.css diff --git a/e2e/autoscript-apps/project.json b/e2e/autoscript-apps/project.json deleted file mode 100644 index 1df806310..000000000 --- a/e2e/autoscript-apps/project.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "autoscript-apps", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "projectType": "application", - "sourceRoot": "e2e/autoscript-apps/src", - "tags": ["scope:app"], - "targets": { - "build": { - "inputs": ["default", "^default"], - "outputs": ["{projectRoot}/dist"], - "options": { - "outDir": "./dist" - }, - "configurations": { - "development": { - "mode": "development" - } - } - }, - "serve": { - "defaultConfiguration": "development", - "configurations": { - "development": {}, - "production": {} - } - }, - "preview": { - "defaultConfiguration": "production", - "configurations": { - "development": {}, - "production": {} - } - } - } -} diff --git a/e2e/davinci-app/vite.config.ts b/e2e/davinci-app/vite.config.ts index 8ae81651b..867c9f009 100644 --- a/e2e/davinci-app/vite.config.ts +++ b/e2e/davinci-app/vite.config.ts @@ -4,7 +4,7 @@ import { defineConfig } from 'vite'; export default defineConfig({ root: __dirname, build: { - outDir: '../../dist/e2e/davinci-app', + outDir: './dist', reportCompressedSize: true, target: 'esnext', minify: false, @@ -18,10 +18,10 @@ export default defineConfig({ }, }, preview: { - port: 5823, + port: 5829, }, server: { - port: 5823, + port: 5829, headers: { 'Service-Worker-Allowed': '/', 'Service-Worker': 'script', diff --git a/e2e/davinci-suites/package.json b/e2e/davinci-suites/package.json index 770d253d1..abc9f2592 100644 --- a/e2e/davinci-suites/package.json +++ b/e2e/davinci-suites/package.json @@ -1,5 +1,5 @@ { - "name": "davinci-suites", + "name": "@forgerock/davinci-suites", "description": "DaVinci Client E2E Suites", "private": true, "type": "module", diff --git a/e2e/davinci-suites/playwright.config.ts b/e2e/davinci-suites/playwright.config.ts index d6355155b..e5a88272d 100644 --- a/e2e/davinci-suites/playwright.config.ts +++ b/e2e/davinci-suites/playwright.config.ts @@ -33,7 +33,7 @@ const config: PlaywrightTestConfig = { // cwd: workspaceRoot, // }, { - command: 'pnpm nx serve davinci-app', + command: 'pnpm nx serve @forgerock/davinci-app', port: 5829, ignoreHTTPSErrors: true, reuseExistingServer: !process.env.CI, diff --git a/e2e/davinci-suites/project.json b/e2e/davinci-suites/project.json deleted file mode 100644 index 7231d0725..000000000 --- a/e2e/davinci-suites/project.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "davinci-suites", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "/e2e/davinci-suites/src", - "projectType": "application", - "tags": ["scope:e2e"], - "implicitDependencies": ["davinci-app"], - "targets": { - "e2e": { - "options": {}, - "configurations": { - "ui": { - "ui": true - } - } - }, - "lint": { - "options": { - "fix": true, - "ignore-path": ".eslintignore", - "args": ["**/*.ts"] - } - } - } -} diff --git a/e2e/mock-api-v2/build.js b/e2e/mock-api-v2/build.js new file mode 100644 index 000000000..2f9204e9d --- /dev/null +++ b/e2e/mock-api-v2/build.js @@ -0,0 +1,35 @@ +// build.js +const esbuild = require('esbuild'); +const process = require('process'); +const fs = require('fs'); +const path = require('path'); + +const { env } = process; + +const production = Boolean(env?.PROD) ?? false; +const watch = Boolean(env?.WATCH) ?? false; + +esbuild + .build({ + entryPoints: ['src/main.ts'], + bundle: true, + platform: 'node', + target: 'node20', // or your preferred Node.js version + assetNames: 'assets', + format: 'esm', + outfile: 'dist/main.js', + sourcemap: true, + watch, + minify: production, // Set to true for production + }) + .then(() => { + // Copy CSS file to dist directory + fs.copyFileSync( + path.join(__dirname, 'src', 'index.css'), + path.join(__dirname, 'dist', 'index.css'), + ); + console.log('CSS file copied to dist directory'); + + console.log('Build completed successfully!'); + }) + .catch(() => process.exit(1)); diff --git a/e2e/mock-api-v2/package.json b/e2e/mock-api-v2/package.json index 091526677..8b1ee76d7 100644 --- a/e2e/mock-api-v2/package.json +++ b/e2e/mock-api-v2/package.json @@ -2,17 +2,22 @@ "name": "@forgerock/mock-api-v2", "version": "1.0.0", "description": "", - "main": "index.js", + "main": "./dist/index.js", + "type": "commonjs", "scripts": { - "build": "esbuild \"src/**/*.ts\" --platform=node --outdir=dist --format=cjs --sourcemap --bundle=false", - "build:watch": "esbuild \"src/**/*.ts\" --platform=node --outdir=dist --format=cjs --sourcemap --bundle=false --watch", - "build:prod": "esbuild \"src/**/*.ts\" --platform=node --outdir=dist --format=cjs --bundle=false", - "build:example": "esbuild \"src/**/*.ts\" --platform=node --outdir=dist --format=cjs --sourcemap --bundle=false", - "serve": "node dist/main.js", - "serve:dev": "nodemon dist/main.js", - "serve:example": "node dist/example-server.js", + "build": "tsc --project tsconfig.app.json", + "build:watch": "tsc --project tsconfig.app.json --watch", + "serve": "node dist/e2e/mock-api-v2/src/main.js", + "serve:dev": "nodemon dist/e2e/mock-api-v2/src/main.js", "test": "vitest run --coverage --coverage.reportsDirectory=../../coverage/mock-api-v2", "test:watch": "vitest watch --coverage --coverage.reportsDirectory=../../coverage/mock-api-v2", "lint": "eslint --fix --ignore-path .eslintignore \"**/*.ts\"" + }, + "dependencies": { + "@effect/platform": "^0.58.27", + "@effect/platform-node": "^0.53.26", + "effect-http": "^0.73.0", + "effect-http-node": "^0.16.1", + "esbuild": "^0.14.10" } } diff --git a/e2e/mock-api-v2/src/index.css b/e2e/mock-api-v2/src/index.css new file mode 100644 index 000000000..e69de29bb diff --git a/e2e/mock-api-v2/tsconfig.app.json b/e2e/mock-api-v2/tsconfig.app.json index 3debf0255..3a0569246 100644 --- a/e2e/mock-api-v2/tsconfig.app.json +++ b/e2e/mock-api-v2/tsconfig.app.json @@ -1,11 +1,11 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "outDir": "../../dist/out-tsc", + "outDir": "./dist", "module": "Node16", - "target": "ES2020", - "declaration": true, - "declarationMap": true, + "moduleResolution": "Node16", + "declaration": false, + "declarationMap": false, "types": ["node"], "exactOptionalPropertyTypes": true, "strictNullChecks": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b6d00b00..7e72d8208 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,7 +20,6 @@ overrides: rollup@<2.79.2: '>=2.79.2' importers: - .: dependencies: '@changesets/changelog-github': @@ -301,7 +300,23 @@ importers: e2e/mock-api: {} - e2e/mock-api-v2: {} + e2e/mock-api-v2: + dependencies: + '@effect/platform': + specifier: ^0.58.27 + version: 0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3) + '@effect/platform-node': + specifier: ^0.53.26 + version: 0.53.26(@effect/platform@0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(effect@3.5.3) + effect-http: + specifier: ^0.73.0 + version: 0.73.0(@effect/platform@0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3) + effect-http-node: + specifier: ^0.16.1 + version: 0.16.1(@effect/platform-node@0.53.26(@effect/platform@0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(effect@3.5.3))(@effect/platform@0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(@effect/schema@0.68.23(effect@3.5.3))(effect-http@0.73.0(@effect/platform@0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(effect@3.5.3) + esbuild: + specifier: ^0.14.10 + version: 0.14.54 e2e/token-vault-app: dependencies: @@ -386,1235 +401,1987 @@ importers: version: link:../javascript-sdk packages: - '@aashutoshrathi/word-wrap@1.2.6': - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, + } + engines: { node: '>=0.10.0' } '@adobe/css-tools@4.3.3': - resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} + resolution: + { + integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==, + } '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, + } + engines: { node: '>=6.0.0' } '@babel/code-frame@7.24.2': - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==, + } + engines: { node: '>=6.9.0' } '@babel/compat-data@7.24.4': - resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==, + } + engines: { node: '>=6.9.0' } '@babel/core@7.24.4': - resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==, + } + engines: { node: '>=6.9.0' } '@babel/generator@7.24.4': - resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==, + } + engines: { node: '>=6.9.0' } '@babel/helper-annotate-as-pure@7.22.5': - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==, + } + engines: { node: '>=6.9.0' } '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==, + } + engines: { node: '>=6.9.0' } '@babel/helper-compilation-targets@7.23.6': - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==, + } + engines: { node: '>=6.9.0' } '@babel/helper-create-class-features-plugin@7.24.4': - resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-create-regexp-features-plugin@7.22.15': - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-define-polyfill-provider@0.6.1': - resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} + resolution: + { + integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==, + } peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 '@babel/helper-environment-visitor@7.22.20': - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==, + } + engines: { node: '>=6.9.0' } '@babel/helper-function-name@7.23.0': - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==, + } + engines: { node: '>=6.9.0' } '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, + } + engines: { node: '>=6.9.0' } '@babel/helper-member-expression-to-functions@7.23.0': - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==, + } + engines: { node: '>=6.9.0' } '@babel/helper-module-imports@7.24.3': - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==, + } + engines: { node: '>=6.9.0' } '@babel/helper-module-transforms@7.23.3': - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-optimise-call-expression@7.22.5': - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==, + } + engines: { node: '>=6.9.0' } '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==, + } + engines: { node: '>=6.9.0' } '@babel/helper-remap-async-to-generator@7.22.20': - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-replace-supers@7.24.1': - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==, + } + engines: { node: '>=6.9.0' } '@babel/helper-skip-transparent-expression-wrappers@7.22.5': - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==, + } + engines: { node: '>=6.9.0' } '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==, + } + engines: { node: '>=6.9.0' } '@babel/helper-string-parser@7.24.1': - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==, + } + engines: { node: '>=6.9.0' } '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, + } + engines: { node: '>=6.9.0' } '@babel/helper-validator-option@7.23.5': - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==, + } + engines: { node: '>=6.9.0' } '@babel/helper-wrap-function@7.22.20': - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==, + } + engines: { node: '>=6.9.0' } '@babel/helpers@7.24.4': - resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==, + } + engines: { node: '>=6.9.0' } '@babel/highlight@7.24.2': - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==, + } + engines: { node: '>=6.9.0' } '@babel/parser@7.24.4': - resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==, + } + engines: { node: '>=6.0.0' } hasBin: true '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4': - resolution: {integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1': - resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1': - resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.13.0 '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1': - resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-proposal-decorators@7.24.1': - resolution: {integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + resolution: + { + integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + resolution: + { + integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + resolution: + { + integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-decorators@7.24.1': - resolution: {integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + resolution: + { + integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + resolution: + { + integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-assertions@7.24.1': - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-attributes@7.25.6': - resolution: {integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + resolution: + { + integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + resolution: + { + integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-jsx@7.24.1': - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + resolution: + { + integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + resolution: + { + integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + resolution: + { + integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + resolution: + { + integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + resolution: + { + integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + resolution: + { + integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-typescript@7.24.1': - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-arrow-functions@7.24.1': - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-async-generator-functions@7.24.3': - resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-async-to-generator@7.24.1': - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-block-scoped-functions@7.24.1': - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-block-scoping@7.24.4': - resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-class-properties@7.24.1': - resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-class-static-block@7.24.4': - resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.12.0 '@babel/plugin-transform-classes@7.24.1': - resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-computed-properties@7.24.1': - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-destructuring@7.24.1': - resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-dotall-regex@7.24.1': - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-duplicate-keys@7.24.1': - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-dynamic-import@7.24.1': - resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-exponentiation-operator@7.24.1': - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-export-namespace-from@7.24.1': - resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-for-of@7.24.1': - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-function-name@7.24.1': - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-json-strings@7.24.1': - resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-literals@7.24.1': - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-logical-assignment-operators@7.24.1': - resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-member-expression-literals@7.24.1': - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-amd@7.24.1': - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-commonjs@7.24.1': - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-systemjs@7.24.1': - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-umd@7.24.1': - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-new-target@7.24.1': - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-nullish-coalescing-operator@7.24.1': - resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-numeric-separator@7.24.1': - resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-object-rest-spread@7.24.1': - resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-object-super@7.24.1': - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-optional-catch-binding@7.24.1': - resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-optional-chaining@7.24.1': - resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-parameters@7.24.1': - resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-private-methods@7.24.1': - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-private-property-in-object@7.24.1': - resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-property-literals@7.24.1': - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-regenerator@7.24.1': - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-reserved-words@7.24.1': - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-runtime@7.24.3': - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-shorthand-properties@7.24.1': - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-spread@7.24.1': - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-sticky-regex@7.24.1': - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-template-literals@7.24.1': - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-typeof-symbol@7.24.1': - resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-typescript@7.24.4': - resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-escapes@7.24.1': - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-property-regex@7.24.1': - resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-regex@7.24.1': - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-sets-regex@7.24.1': - resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/preset-env@7.24.4': - resolution: {integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + resolution: + { + integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==, + } peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 '@babel/preset-typescript@7.24.1': - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/regjsgen@0.8.0': - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + resolution: + { + integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==, + } '@babel/runtime@7.24.4': - resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==, + } + engines: { node: '>=6.9.0' } '@babel/template@7.24.0': - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==, + } + engines: { node: '>=6.9.0' } '@babel/traverse@7.24.1': - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==, + } + engines: { node: '>=6.9.0' } '@babel/types@7.24.0': - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==, + } + engines: { node: '>=6.9.0' } '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + resolution: + { + integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==, + } '@bundled-es-modules/cookie@2.0.0': - resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==} + resolution: + { + integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==, + } '@bundled-es-modules/statuses@1.0.1': - resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + resolution: + { + integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==, + } '@bundled-es-modules/tough-cookie@0.1.6': - resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} + resolution: + { + integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==, + } '@changesets/apply-release-plan@7.0.5': - resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} + resolution: + { + integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==, + } '@changesets/assemble-release-plan@6.0.4': - resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} + resolution: + { + integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==, + } '@changesets/changelog-git@0.2.0': - resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} + resolution: + { + integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==, + } '@changesets/changelog-github@0.5.0': - resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} + resolution: + { + integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==, + } '@changesets/cli@2.27.9': - resolution: {integrity: sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg==} + resolution: + { + integrity: sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg==, + } hasBin: true '@changesets/config@3.0.3': - resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} + resolution: + { + integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==, + } '@changesets/errors@0.2.0': - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + resolution: + { + integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==, + } '@changesets/get-dependents-graph@2.1.2': - resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} + resolution: + { + integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==, + } '@changesets/get-github-info@0.6.0': - resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} + resolution: + { + integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==, + } '@changesets/get-release-plan@4.0.4': - resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} + resolution: + { + integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==, + } '@changesets/get-version-range-type@0.4.0': - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + resolution: + { + integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==, + } '@changesets/git@3.0.1': - resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} + resolution: + { + integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==, + } '@changesets/logger@0.1.1': - resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + resolution: + { + integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==, + } '@changesets/parse@0.4.0': - resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} + resolution: + { + integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==, + } '@changesets/pre@2.0.1': - resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} + resolution: + { + integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==, + } '@changesets/read@0.6.1': - resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} + resolution: + { + integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==, + } '@changesets/should-skip-package@0.1.1': - resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} + resolution: + { + integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==, + } '@changesets/types@4.1.0': - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + resolution: + { + integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==, + } '@changesets/types@6.0.0': - resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} + resolution: + { + integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==, + } '@changesets/write@0.3.2': - resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} + resolution: + { + integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==, + } '@colors/colors@1.6.0': - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} + resolution: + { + integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==, + } + engines: { node: '>=0.1.90' } '@commitlint/cli@19.2.2': - resolution: {integrity: sha512-P8cbOHfg2PQRzfICLSrzUVOCVMqjEZ8Hlth6mtJ4yOEjT47Q5PbIGymgX3rLVylNw+3IAT2Djn9IJ2wHbXFzBg==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-P8cbOHfg2PQRzfICLSrzUVOCVMqjEZ8Hlth6mtJ4yOEjT47Q5PbIGymgX3rLVylNw+3IAT2Djn9IJ2wHbXFzBg==, + } + engines: { node: '>=v18' } hasBin: true '@commitlint/config-conventional@19.2.2': - resolution: {integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==, + } + engines: { node: '>=v18' } '@commitlint/config-validator@19.0.3': - resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==, + } + engines: { node: '>=v18' } '@commitlint/ensure@19.0.3': - resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==, + } + engines: { node: '>=v18' } '@commitlint/execute-rule@19.0.0': - resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==, + } + engines: { node: '>=v18' } '@commitlint/format@19.0.3': - resolution: {integrity: sha512-QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==, + } + engines: { node: '>=v18' } '@commitlint/is-ignored@19.2.2': - resolution: {integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==, + } + engines: { node: '>=v18' } '@commitlint/lint@19.2.2': - resolution: {integrity: sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==, + } + engines: { node: '>=v18' } '@commitlint/load@19.2.0': - resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==, + } + engines: { node: '>=v18' } '@commitlint/message@19.0.0': - resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==, + } + engines: { node: '>=v18' } '@commitlint/parse@19.0.3': - resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==, + } + engines: { node: '>=v18' } '@commitlint/prompt@19.2.2': - resolution: {integrity: sha512-ib+5XYws/g4VkP+4IkfH+kTJRbiInPMaq9vjPzfgQvBR3o7KWEQBk4P6ZsZK7VdGANcNXTKo667FNsfyQLPZgg==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-ib+5XYws/g4VkP+4IkfH+kTJRbiInPMaq9vjPzfgQvBR3o7KWEQBk4P6ZsZK7VdGANcNXTKo667FNsfyQLPZgg==, + } + engines: { node: '>=v18' } '@commitlint/read@19.2.1': - resolution: {integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==, + } + engines: { node: '>=v18' } '@commitlint/resolve-extends@19.1.0': - resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==, + } + engines: { node: '>=v18' } '@commitlint/rules@19.0.3': - resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==, + } + engines: { node: '>=v18' } '@commitlint/to-lines@19.0.0': - resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==, + } + engines: { node: '>=v18' } '@commitlint/top-level@19.0.0': - resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==, + } + engines: { node: '>=v18' } '@commitlint/types@19.0.3': - resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} - engines: {node: '>=v18'} + resolution: + { + integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==, + } + engines: { node: '>=v18' } '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, + } + engines: { node: '>=12' } '@cypress/request@3.0.1': - resolution: {integrity: sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==, + } + engines: { node: '>= 6' } '@dabh/diagnostics@2.0.3': - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + resolution: + { + integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==, + } '@effect/language-service@0.1.0': - resolution: {integrity: sha512-BnlM8LlaqCAYgdRfxlbR7gXGh/FD1scL1fPgNVJEPoOM08od1jtJz+iKhwfaud8TPnnhZR+TED2h5ynjanLeCQ==} + resolution: + { + integrity: sha512-BnlM8LlaqCAYgdRfxlbR7gXGh/FD1scL1fPgNVJEPoOM08od1jtJz+iKhwfaud8TPnnhZR+TED2h5ynjanLeCQ==, + } '@effect/platform-node-shared@0.8.26': - resolution: {integrity: sha512-c7yYFvQwse5ar8JZitBM1fTGAQGfBQUqMRKVxKYux4GDMKw6oaZ8g7eQf9PRpMCxIdBMZlPilIablSJ0DtoPVQ==} + resolution: + { + integrity: sha512-c7yYFvQwse5ar8JZitBM1fTGAQGfBQUqMRKVxKYux4GDMKw6oaZ8g7eQf9PRpMCxIdBMZlPilIablSJ0DtoPVQ==, + } peerDependencies: '@effect/platform': ^0.58.27 effect: ^3.5.3 '@effect/platform-node@0.53.26': - resolution: {integrity: sha512-TPjRJqgp7a3DC30/f1U4vPEH0EgW336rbr+9+0DCYhVkArwVsrZBADNLZLWGHOMfVCTV0/DdCrTzvjdQ0pfG9w==} + resolution: + { + integrity: sha512-TPjRJqgp7a3DC30/f1U4vPEH0EgW336rbr+9+0DCYhVkArwVsrZBADNLZLWGHOMfVCTV0/DdCrTzvjdQ0pfG9w==, + } peerDependencies: '@effect/platform': ^0.58.27 effect: ^3.5.3 '@effect/platform@0.58.27': - resolution: {integrity: sha512-J/5ykWaFNo7rYC0b5/f/v8IC8i6QaOHM+eyUm7YnI01TeamHNvsVd9MB6YFjLBlgkogrKpOvcYDI+2jwyr0Mrw==} + resolution: + { + integrity: sha512-J/5ykWaFNo7rYC0b5/f/v8IC8i6QaOHM+eyUm7YnI01TeamHNvsVd9MB6YFjLBlgkogrKpOvcYDI+2jwyr0Mrw==, + } peerDependencies: '@effect/schema': ^0.68.23 effect: ^3.5.3 '@effect/schema@0.68.23': - resolution: {integrity: sha512-yG8PShEII70yunOO4fKUJPTSzmwLDOrkGI3zc9O5LEgA93TPQKu/Y9jASxgeSMa7Wx7UI8fd9no8oheapfK9Yw==} + resolution: + { + integrity: sha512-yG8PShEII70yunOO4fKUJPTSzmwLDOrkGI3zc9O5LEgA93TPQKu/Y9jASxgeSMa7Wx7UI8fd9no8oheapfK9Yw==, + } peerDependencies: effect: ^3.5.3 '@effect/vitest@0.6.7': - resolution: {integrity: sha512-zBvZBHjn0W7FFn7fOzK79WPk41Mt4PjZUtjbJKVevvYZQBk2so2nWrgWeV2J098YZBjTyG6nWZiW7RfFfwV7cw==} + resolution: + { + integrity: sha512-zBvZBHjn0W7FFn7fOzK79WPk41Mt4PjZUtjbJKVevvYZQBk2so2nWrgWeV2J098YZBjTyG6nWZiW7RfFfwV7cw==, + } peerDependencies: effect: ^3.5.3 vitest: ^1.4.0 '@emnapi/core@1.2.0': - resolution: {integrity: sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==} + resolution: + { + integrity: sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==, + } '@emnapi/runtime@1.2.0': - resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + resolution: + { + integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==, + } '@emnapi/wasi-threads@1.0.1': - resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + resolution: + { + integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==, + } '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==, + } + engines: { node: '>=12' } cpu: [ppc64] os: [aix] '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==, + } + engines: { node: '>=12' } cpu: [ppc64] os: [aix] '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==, + } + engines: { node: '>=12' } cpu: [arm64] os: [android] '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==, + } + engines: { node: '>=12' } cpu: [arm64] os: [android] '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==, + } + engines: { node: '>=12' } cpu: [arm] os: [android] '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==, + } + engines: { node: '>=12' } cpu: [arm] os: [android] '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==, + } + engines: { node: '>=12' } cpu: [x64] os: [android] '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==, + } + engines: { node: '>=12' } cpu: [x64] os: [android] '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==, + } + engines: { node: '>=12' } cpu: [arm64] os: [darwin] '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==, + } + engines: { node: '>=12' } cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==, + } + engines: { node: '>=12' } cpu: [x64] os: [darwin] '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==, + } + engines: { node: '>=12' } cpu: [x64] os: [darwin] '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==, + } + engines: { node: '>=12' } cpu: [arm64] os: [freebsd] '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==, + } + engines: { node: '>=12' } cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==, + } + engines: { node: '>=12' } cpu: [x64] os: [freebsd] '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==, + } + engines: { node: '>=12' } cpu: [x64] os: [freebsd] '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==, + } + engines: { node: '>=12' } cpu: [arm64] os: [linux] '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==, + } + engines: { node: '>=12' } cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==, + } + engines: { node: '>=12' } cpu: [arm] os: [linux] '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==, + } + engines: { node: '>=12' } cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==, + } + engines: { node: '>=12' } cpu: [ia32] os: [linux] '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==, + } + engines: { node: '>=12' } cpu: [ia32] os: [linux] + '@esbuild/linux-loong64@0.14.54': + resolution: + { + integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, + } + engines: { node: '>=12' } + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==, + } + engines: { node: '>=12' } cpu: [loong64] os: [linux] '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==, + } + engines: { node: '>=12' } cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==, + } + engines: { node: '>=12' } cpu: [mips64el] os: [linux] '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==, + } + engines: { node: '>=12' } cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==, + } + engines: { node: '>=12' } cpu: [ppc64] os: [linux] '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==, + } + engines: { node: '>=12' } cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==, + } + engines: { node: '>=12' } cpu: [riscv64] os: [linux] '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==, + } + engines: { node: '>=12' } cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==, + } + engines: { node: '>=12' } cpu: [s390x] os: [linux] '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==, + } + engines: { node: '>=12' } cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==, + } + engines: { node: '>=12' } cpu: [x64] os: [linux] '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==, + } + engines: { node: '>=12' } cpu: [x64] os: [linux] '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==, + } + engines: { node: '>=12' } cpu: [x64] os: [netbsd] '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==, + } + engines: { node: '>=12' } cpu: [x64] os: [netbsd] '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==, + } + engines: { node: '>=12' } cpu: [x64] os: [openbsd] '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==, + } + engines: { node: '>=12' } cpu: [x64] os: [openbsd] '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==, + } + engines: { node: '>=12' } cpu: [x64] os: [sunos] '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==, + } + engines: { node: '>=12' } cpu: [x64] os: [sunos] '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==, + } + engines: { node: '>=12' } cpu: [arm64] os: [win32] '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==, + } + engines: { node: '>=12' } cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==, + } + engines: { node: '>=12' } cpu: [ia32] os: [win32] '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==, + } + engines: { node: '>=12' } cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==, + } + engines: { node: '>=12' } cpu: [x64] os: [win32] '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==, + } + engines: { node: '>=12' } cpu: [x64] os: [win32] '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + resolution: + { + integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, + } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } '@gerrit0/mini-shiki@1.24.4': - resolution: {integrity: sha512-YEHW1QeAg6UmxEmswiQbOVEg1CW22b1XUD/lNTliOsu0LD0wqoyleFMnmbTp697QE0pcadQiR5cVtbbAPncvpw==} + resolution: + { + integrity: sha512-YEHW1QeAg6UmxEmswiQbOVEg1CW22b1XUD/lNTliOsu0LD0wqoyleFMnmbTp697QE0pcadQiR5cVtbbAPncvpw==, + } '@google-cloud/compute@4.7.0': - resolution: {integrity: sha512-1UExR08o2XXKdOV8FIK6kcrNb65KVAnv045huJQV6OBiJ+uxubBWm4XxbPaWcT3TvvKGyYSMHG1Qx9/IiwpI1w==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-1UExR08o2XXKdOV8FIK6kcrNb65KVAnv045huJQV6OBiJ+uxubBWm4XxbPaWcT3TvvKGyYSMHG1Qx9/IiwpI1w==, + } + engines: { node: '>=14.0.0' } '@google-cloud/container@5.17.0': - resolution: {integrity: sha512-YluZ+MotPKeil6QKgYXbw9P5OQoF24e4xZYeiHoVwIQxRNAEY9nOEhpbmm8RCd+6pWGnV3N0x+LdC6Uib08I9Q==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-YluZ+MotPKeil6QKgYXbw9P5OQoF24e4xZYeiHoVwIQxRNAEY9nOEhpbmm8RCd+6pWGnV3N0x+LdC6Uib08I9Q==, + } + engines: { node: '>=14.0.0' } '@google-cloud/resource-manager@5.3.0': - resolution: {integrity: sha512-uWJJf6S2PJL7oZ4ezv16aZl9+IJqPo5GzUv1pZ3/qRiMj13p0ylEgX1+LxBpX71eEPKTwMHoJV2IBBe3EAq7Xw==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-uWJJf6S2PJL7oZ4ezv16aZl9+IJqPo5GzUv1pZ3/qRiMj13p0ylEgX1+LxBpX71eEPKTwMHoJV2IBBe3EAq7Xw==, + } + engines: { node: '>=14.0.0' } '@grpc/grpc-js@1.12.0': - resolution: {integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==} - engines: {node: '>=12.10.0'} + resolution: + { + integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==, + } + engines: { node: '>=12.10.0' } '@grpc/proto-loader@0.7.13': - resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==, + } + engines: { node: '>=6' } hasBin: true '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} + resolution: + { + integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==, + } + engines: { node: '>=10.10.0' } deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + resolution: + { + integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, + } + engines: { node: '>=12.22' } '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + resolution: + { + integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==, + } deprecated: Use @eslint/object-schema instead '@inquirer/confirm@5.0.0': - resolution: {integrity: sha512-6QEzj6bZg8atviRIL+pR0tODC854cYSjvZxkyCarr8DVaOJPEyuGys7GmEG3W0Rb8kKSQec7P6okt0sJvNneFw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-6QEzj6bZg8atviRIL+pR0tODC854cYSjvZxkyCarr8DVaOJPEyuGys7GmEG3W0Rb8kKSQec7P6okt0sJvNneFw==, + } + engines: { node: '>=18' } '@inquirer/core@10.0.0': - resolution: {integrity: sha512-7dwoKCGvgZGHWTZfOj2KLmbIAIdiXP9NTrwGaTO/XDfKMEmyBahZpnombiG6JDHmiOrmK3GLEJRXrWExXCDLmQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-7dwoKCGvgZGHWTZfOj2KLmbIAIdiXP9NTrwGaTO/XDfKMEmyBahZpnombiG6JDHmiOrmK3GLEJRXrWExXCDLmQ==, + } + engines: { node: '>=18' } '@inquirer/figures@1.0.0': - resolution: {integrity: sha512-3fw+7+77/duTnMJTeSS44wneszghI4tkr0m0xdIJabbYRe36ElzmsqyboMZ1nFRon6sT+ckVvYDVjwapKv+2sw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-3fw+7+77/duTnMJTeSS44wneszghI4tkr0m0xdIJabbYRe36ElzmsqyboMZ1nFRon6sT+ckVvYDVjwapKv+2sw==, + } + engines: { node: '>=18' } '@inquirer/figures@1.0.7': - resolution: {integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==, + } + engines: { node: '>=18' } '@inquirer/type@3.0.0': - resolution: {integrity: sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==, + } + engines: { node: '>=18' } peerDependencies: '@types/node': '>=18' '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: '>=12' } '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, + } + engines: { node: '>=8' } '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, + } + engines: { node: '>=8' } '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -1622,144 +2389,252 @@ packages: optional: true '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==, + } + engines: { node: '>=6.0.0' } '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, + } + engines: { node: '>=6.0.0' } '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, + } + engines: { node: '>=6.0.0' } '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + resolution: + { + integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==, + } '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + resolution: + { + integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, + } '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + resolution: + { + integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, + } '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + resolution: + { + integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, + } '@js-sdsl/ordered-map@4.4.2': - resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + resolution: + { + integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==, + } '@jsep-plugin/assignment@1.3.0': - resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} - engines: {node: '>= 10.16.0'} + resolution: + { + integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==, + } + engines: { node: '>= 10.16.0' } peerDependencies: jsep: ^0.4.0||^1.0.0 '@jsep-plugin/regex@1.0.4': - resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==} - engines: {node: '>= 10.16.0'} + resolution: + { + integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==, + } + engines: { node: '>= 10.16.0' } peerDependencies: jsep: ^0.4.0||^1.0.0 '@jsonjoy.com/base64@1.1.2': - resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} - engines: {node: '>=10.0'} + resolution: + { + integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==, + } + engines: { node: '>=10.0' } peerDependencies: tslib: '2' '@jsonjoy.com/json-pack@1.1.0': - resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} - engines: {node: '>=10.0'} + resolution: + { + integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==, + } + engines: { node: '>=10.0' } peerDependencies: tslib: '2' '@jsonjoy.com/util@1.3.0': - resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} - engines: {node: '>=10.0'} + resolution: + { + integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==, + } + engines: { node: '>=10.0' } peerDependencies: tslib: '2' '@kubernetes/client-node@1.0.0-rc3': - resolution: {integrity: sha512-bTYMBZXVrjfi98N5EZbrmPtcT9NY+TddunSEc25DcsRF1c5c93e5jT+zFwId19hG8e/ue5deKe7YDQiRYFpMlQ==} + resolution: + { + integrity: sha512-bTYMBZXVrjfi98N5EZbrmPtcT9NY+TddunSEc25DcsRF1c5c93e5jT+zFwId19hG8e/ue5deKe7YDQiRYFpMlQ==, + } '@leichtgewicht/ip-codec@2.0.5': - resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + resolution: + { + integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==, + } '@ljharb/through@2.3.13': - resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==, + } + engines: { node: '>= 0.4' } '@manypkg/find-root@1.1.0': - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + resolution: + { + integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==, + } '@manypkg/get-packages@1.1.3': - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + resolution: + { + integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==, + } '@microsoft/api-extractor-model@7.29.6': - resolution: {integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==} + resolution: + { + integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==, + } '@microsoft/api-extractor@7.47.7': - resolution: {integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==} + resolution: + { + integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==, + } hasBin: true '@microsoft/tsdoc-config@0.17.0': - resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==} + resolution: + { + integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==, + } '@microsoft/tsdoc@0.15.0': - resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==} + resolution: + { + integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==, + } '@mswjs/interceptors@0.36.5': - resolution: {integrity: sha512-aQ8WF5zQwOdcxLsxSEk9Jd01GgGb80xxqCaiDDlewhtwqpSm8MOvUHslwPydVirasdW09++NxDNNftm1vLY8yA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-aQ8WF5zQwOdcxLsxSEk9Jd01GgGb80xxqCaiDDlewhtwqpSm8MOvUHslwPydVirasdW09++NxDNNftm1vLY8yA==, + } + engines: { node: '>=18' } '@napi-rs/wasm-runtime@0.2.4': - resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + resolution: + { + integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==, + } '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: '>= 8' } '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: '>= 8' } '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: '>= 8' } '@nrwl/nx-cloud@19.1.0': - resolution: {integrity: sha512-krngXVPfX0Zf6+zJDtcI59/Pt3JfcMPMZ9C/+/x6rvz4WGgyv1s0MI4crEUM0Lx5ZpS4QI0WNDCFVQSfGEBXUg==} + resolution: + { + integrity: sha512-krngXVPfX0Zf6+zJDtcI59/Pt3JfcMPMZ9C/+/x6rvz4WGgyv1s0MI4crEUM0Lx5ZpS4QI0WNDCFVQSfGEBXUg==, + } '@nx/devkit@20.2.2': - resolution: {integrity: sha512-uqs0LVvuRRVAfFdn0ewvmr1vsNV9Ztugw36emcLJxskqhBZb10K+vzdTDAZpg5aVE2ISg1BmPidoOyk1tP+Omg==} + resolution: + { + integrity: sha512-uqs0LVvuRRVAfFdn0ewvmr1vsNV9Ztugw36emcLJxskqhBZb10K+vzdTDAZpg5aVE2ISg1BmPidoOyk1tP+Omg==, + } peerDependencies: nx: '>= 19 <= 21' '@nx/esbuild@20.2.2': - resolution: {integrity: sha512-R6mwMFBboJOUJ+ioRbQ0u4U5eyOZXAkuQcAoN4LlLtwMtWvg8YPtSb24N8SDLO2yXHlEEBNC3NtzzU24a8CR5A==} + resolution: + { + integrity: sha512-R6mwMFBboJOUJ+ioRbQ0u4U5eyOZXAkuQcAoN4LlLtwMtWvg8YPtSb24N8SDLO2yXHlEEBNC3NtzzU24a8CR5A==, + } peerDependencies: esbuild: ~0.19.2 peerDependenciesMeta: @@ -1767,7 +2642,10 @@ packages: optional: true '@nx/eslint-plugin@20.2.2': - resolution: {integrity: sha512-LfRPu6QWPRQgsJ51WtsMyoK7FhvUGO5G5l/m+PyN2FecnZJcrrRCcExt3Sj0btzc0CqCW2gtgSTa1eyC16U0rQ==} + resolution: + { + integrity: sha512-LfRPu6QWPRQgsJ51WtsMyoK7FhvUGO5G5l/m+PyN2FecnZJcrrRCcExt3Sj0btzc0CqCW2gtgSTa1eyC16U0rQ==, + } peerDependencies: '@typescript-eslint/parser': ^6.13.2 || ^7.0.0 || ^8.0.0 eslint-config-prettier: ^9.0.0 @@ -1776,7 +2654,10 @@ packages: optional: true '@nx/eslint@20.2.2': - resolution: {integrity: sha512-GID3r539okSIdqqaLJxOttjbC8xaAbyrGJfSo/jyFLVASN4ZYuwFwWU94Vdn1NsOPHc2kiDa/qQj5mv0gbBfUw==} + resolution: + { + integrity: sha512-GID3r539okSIdqqaLJxOttjbC8xaAbyrGJfSo/jyFLVASN4ZYuwFwWU94Vdn1NsOPHc2kiDa/qQj5mv0gbBfUw==, + } peerDependencies: '@zkochan/js-yaml': 0.0.7 eslint: ^8.0.0 || ^9.0.0 @@ -1785,7 +2666,10 @@ packages: optional: true '@nx/express@20.2.2': - resolution: {integrity: sha512-rP9s10yYizeM7bx52NE2czSrRCPwekVoJXtRfDNoI5Mtjt9E/+Fay1PlnkdPWtuiTPf4DJvM/tTxRnXOES4EJw==} + resolution: + { + integrity: sha512-rP9s10yYizeM7bx52NE2czSrRCPwekVoJXtRfDNoI5Mtjt9E/+Fay1PlnkdPWtuiTPf4DJvM/tTxRnXOES4EJw==, + } peerDependencies: express: '>=4.20.0' peerDependenciesMeta: @@ -1793,10 +2677,16 @@ packages: optional: true '@nx/jest@20.2.2': - resolution: {integrity: sha512-czZprpiVAZQKixpib1Vphi3Aoh5qBr7KATgP7+P0ogDTrxd7sivCFDM8wZeilhdTfx85wsR0viOtLVm6D3RTLA==} + resolution: + { + integrity: sha512-czZprpiVAZQKixpib1Vphi3Aoh5qBr7KATgP7+P0ogDTrxd7sivCFDM8wZeilhdTfx85wsR0viOtLVm6D3RTLA==, + } '@nx/js@20.2.2': - resolution: {integrity: sha512-y/L+GMS8pIE1rQTQ28Lb1YeWpEnDj2v3T/7QpWvICc78NZXuMrO6N1ZRTPRSQNXKL6Bs9S9bRuivsvSIiNlULw==} + resolution: + { + integrity: sha512-y/L+GMS8pIE1rQTQ28Lb1YeWpEnDj2v3T/7QpWvICc78NZXuMrO6N1ZRTPRSQNXKL6Bs9S9bRuivsvSIiNlULw==, + } peerDependencies: verdaccio: ^5.0.4 peerDependenciesMeta: @@ -1804,70 +2694,106 @@ packages: optional: true '@nx/node@20.2.2': - resolution: {integrity: sha512-nZGtozEvKccFAjRPlHOe8LgPeBrGi/gHOqig0B16J91dcgZu/2GWp81BiX1TDEz/f2CL1BwvApXAgkztuXuiBA==} + resolution: + { + integrity: sha512-nZGtozEvKccFAjRPlHOe8LgPeBrGi/gHOqig0B16J91dcgZu/2GWp81BiX1TDEz/f2CL1BwvApXAgkztuXuiBA==, + } '@nx/nx-darwin-arm64@20.2.2': - resolution: {integrity: sha512-gnS5mtbaBAO5TJkl4T68rQaN/79MMWePavw2SOcFyFnIdAriGEZ+ZFDUE0B/xYJSs9CPWLaGHf+n7oqyxaGd9A==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-gnS5mtbaBAO5TJkl4T68rQaN/79MMWePavw2SOcFyFnIdAriGEZ+ZFDUE0B/xYJSs9CPWLaGHf+n7oqyxaGd9A==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [darwin] '@nx/nx-darwin-x64@20.2.2': - resolution: {integrity: sha512-IctvdQon+K8mlhl06zIq1xTPwf5L4OuS7crzCmK26p5F/lV6iz/UXSPCcgn+bYKOL/q3QCLNR7UasQMjzgCNkQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-IctvdQon+K8mlhl06zIq1xTPwf5L4OuS7crzCmK26p5F/lV6iz/UXSPCcgn+bYKOL/q3QCLNR7UasQMjzgCNkQ==, + } + engines: { node: '>= 10' } cpu: [x64] os: [darwin] '@nx/nx-freebsd-x64@20.2.2': - resolution: {integrity: sha512-4/Blg9Y6LVU8tS8yoa2BEXPHWsorpvCuZRH0gXPh96i6b71o4ORPafyLOHp08o3WjtUZb4jl5TfDryE+8y62ZA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-4/Blg9Y6LVU8tS8yoa2BEXPHWsorpvCuZRH0gXPh96i6b71o4ORPafyLOHp08o3WjtUZb4jl5TfDryE+8y62ZA==, + } + engines: { node: '>= 10' } cpu: [x64] os: [freebsd] '@nx/nx-linux-arm-gnueabihf@20.2.2': - resolution: {integrity: sha512-AVAxbUXi6q+inmp8re3OV7HzH6fbkKnnMKvjDLnkzK8dA2Mv4JFl/gz++rgkYfEsBk20lcB1i3unqNrtOvzS7Q==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-AVAxbUXi6q+inmp8re3OV7HzH6fbkKnnMKvjDLnkzK8dA2Mv4JFl/gz++rgkYfEsBk20lcB1i3unqNrtOvzS7Q==, + } + engines: { node: '>= 10' } cpu: [arm] os: [linux] '@nx/nx-linux-arm64-gnu@20.2.2': - resolution: {integrity: sha512-h04SLH464Oh/k/1mpAfsMhTVlnc1NJItx4N5DLZb2VuOOY+Tquhrp7HBJLyAhU0Q74JG0LevGFO6wdxliHupmA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-h04SLH464Oh/k/1mpAfsMhTVlnc1NJItx4N5DLZb2VuOOY+Tquhrp7HBJLyAhU0Q74JG0LevGFO6wdxliHupmA==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@nx/nx-linux-arm64-musl@20.2.2': - resolution: {integrity: sha512-rnRXDLvHHj66rCslD4ShDq6KBOVsQ+X63GWTGKM0pnTIIDje9+ltZCoAByieCUm4BvFfCWMUf9y0mGfZvLVKSw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-rnRXDLvHHj66rCslD4ShDq6KBOVsQ+X63GWTGKM0pnTIIDje9+ltZCoAByieCUm4BvFfCWMUf9y0mGfZvLVKSw==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@nx/nx-linux-x64-gnu@20.2.2': - resolution: {integrity: sha512-K1Z2DVTnyCGl4nolhZ8fvHEixoe1pZOY256LD6D0lGca4Fsi3mHQ7lDU237Pzyc91+cfLva/OAvrivRPeU+DMA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-K1Z2DVTnyCGl4nolhZ8fvHEixoe1pZOY256LD6D0lGca4Fsi3mHQ7lDU237Pzyc91+cfLva/OAvrivRPeU+DMA==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@nx/nx-linux-x64-musl@20.2.2': - resolution: {integrity: sha512-pyWe+d2Y2pJVgPZf27KkDBufhFPq+Xhs3/zAQdJbicMvym7uhw0qMTV+lmoMXgfx52WZzhqTfG8JQcDqHjExJw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-pyWe+d2Y2pJVgPZf27KkDBufhFPq+Xhs3/zAQdJbicMvym7uhw0qMTV+lmoMXgfx52WZzhqTfG8JQcDqHjExJw==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@nx/nx-win32-arm64-msvc@20.2.2': - resolution: {integrity: sha512-zqSoVrV34tx6qhQo/PwD9IMGhzoNSaFQxjTjNCY61sE7iwi5Qt4dDs3Rlh1ZFCBFnrjziymRPY2RryArgeK8Bw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-zqSoVrV34tx6qhQo/PwD9IMGhzoNSaFQxjTjNCY61sE7iwi5Qt4dDs3Rlh1ZFCBFnrjziymRPY2RryArgeK8Bw==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [win32] '@nx/nx-win32-x64-msvc@20.2.2': - resolution: {integrity: sha512-IfQf2axmCuSArhFGaocIDt8ajWDHXoVut5NOQH4eV2q9whP1j/LVB8EehEaolF5UenM7rhL4V25PXPuuBaUq4A==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-IfQf2axmCuSArhFGaocIDt8ajWDHXoVut5NOQH4eV2q9whP1j/LVB8EehEaolF5UenM7rhL4V25PXPuuBaUq4A==, + } + engines: { node: '>= 10' } cpu: [x64] os: [win32] '@nx/playwright@20.2.2': - resolution: {integrity: sha512-vCIKU0XVo74C7OqCxZBNlZXshYbyTDxDuOIEbxdO8JMyFnHeyg91Z5ezxwHvIpxzwyFX1pdNz6W++RETTXYUTw==} + resolution: + { + integrity: sha512-vCIKU0XVo74C7OqCxZBNlZXshYbyTDxDuOIEbxdO8JMyFnHeyg91Z5ezxwHvIpxzwyFX1pdNz6W++RETTXYUTw==, + } peerDependencies: '@playwright/test': ^1.36.0 peerDependenciesMeta: @@ -1875,185 +2801,314 @@ packages: optional: true '@nx/vite@20.2.2': - resolution: {integrity: sha512-PckVgTNPkOr2E752L4EEZv7C/Twtx/vuGBpfVw58f7rVuz6hpVFnMTm4eqatImsBmNoHCpHrJ3rJTT1ov45gUQ==} + resolution: + { + integrity: sha512-PckVgTNPkOr2E752L4EEZv7C/Twtx/vuGBpfVw58f7rVuz6hpVFnMTm4eqatImsBmNoHCpHrJ3rJTT1ov45gUQ==, + } peerDependencies: vite: ^5.0.0 vitest: ^1.3.1 || ^2.0.0 '@nx/web@20.2.2': - resolution: {integrity: sha512-Z1MEKv3rEvs4W0h1Ltvh66VtJ29YZ+RWuLWzPebf8K1z9818RbXR3FpMiM1edkHyaykeQeJcK6D5aIHPwti/Bg==} + resolution: + { + integrity: sha512-Z1MEKv3rEvs4W0h1Ltvh66VtJ29YZ+RWuLWzPebf8K1z9818RbXR3FpMiM1edkHyaykeQeJcK6D5aIHPwti/Bg==, + } '@nx/webpack@20.2.2': - resolution: {integrity: sha512-hlt9L24rvk7xrgD2BnLxMqOWeoV5DsF0ZJc05EbIMuM8yg03agsC79Rq1gaRoM3uIhCb+CxW0mlQpcVKnPXMUw==} + resolution: + { + integrity: sha512-hlt9L24rvk7xrgD2BnLxMqOWeoV5DsF0ZJc05EbIMuM8yg03agsC79Rq1gaRoM3uIhCb+CxW0mlQpcVKnPXMUw==, + } '@nx/workspace@20.2.2': - resolution: {integrity: sha512-VC22d5EG9f8sLD+gvq9Nbau0u8cV0gy5aYyRcleecqs9bBvOiVxAvv7HaDCRcHezHQhKwxcIOZvmuCjYF/oKxg==} + resolution: + { + integrity: sha512-VC22d5EG9f8sLD+gvq9Nbau0u8cV0gy5aYyRcleecqs9bBvOiVxAvv7HaDCRcHezHQhKwxcIOZvmuCjYF/oKxg==, + } '@open-draft/deferred-promise@2.2.0': - resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + resolution: + { + integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==, + } '@open-draft/logger@0.3.0': - resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + resolution: + { + integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==, + } '@open-draft/until@1.0.3': - resolution: {integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==} + resolution: + { + integrity: sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==, + } '@open-draft/until@2.1.0': - resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + resolution: + { + integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==, + } '@parcel/watcher-android-arm64@2.4.1': - resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==, + } + engines: { node: '>= 10.0.0' } cpu: [arm64] os: [android] '@parcel/watcher-darwin-arm64@2.4.1': - resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==, + } + engines: { node: '>= 10.0.0' } cpu: [arm64] os: [darwin] '@parcel/watcher-darwin-x64@2.4.1': - resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==, + } + engines: { node: '>= 10.0.0' } cpu: [x64] os: [darwin] '@parcel/watcher-freebsd-x64@2.4.1': - resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==, + } + engines: { node: '>= 10.0.0' } cpu: [x64] os: [freebsd] '@parcel/watcher-linux-arm-glibc@2.4.1': - resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==, + } + engines: { node: '>= 10.0.0' } cpu: [arm] os: [linux] '@parcel/watcher-linux-arm64-glibc@2.4.1': - resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==, + } + engines: { node: '>= 10.0.0' } cpu: [arm64] os: [linux] '@parcel/watcher-linux-arm64-musl@2.4.1': - resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==, + } + engines: { node: '>= 10.0.0' } cpu: [arm64] os: [linux] '@parcel/watcher-linux-x64-glibc@2.4.1': - resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==, + } + engines: { node: '>= 10.0.0' } cpu: [x64] os: [linux] '@parcel/watcher-linux-x64-musl@2.4.1': - resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==, + } + engines: { node: '>= 10.0.0' } cpu: [x64] os: [linux] '@parcel/watcher-win32-arm64@2.4.1': - resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==, + } + engines: { node: '>= 10.0.0' } cpu: [arm64] os: [win32] '@parcel/watcher-win32-ia32@2.4.1': - resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==, + } + engines: { node: '>= 10.0.0' } cpu: [ia32] os: [win32] '@parcel/watcher-win32-x64@2.4.1': - resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==, + } + engines: { node: '>= 10.0.0' } cpu: [x64] os: [win32] '@parcel/watcher@2.4.1': - resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==, + } + engines: { node: '>= 10.0.0' } '@percy/appium-app@2.0.8': - resolution: {integrity: sha512-meG7ijg5tXsyf92UeVyUb76gOICHiWFjjYmhnXbb3xlwfYAmZ4XWMvv7vhXFQ0vQKCasUEwrYo1bcZ40qzCrqg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-meG7ijg5tXsyf92UeVyUb76gOICHiWFjjYmhnXbb3xlwfYAmZ4XWMvv7vhXFQ0vQKCasUEwrYo1bcZ40qzCrqg==, + } + engines: { node: '>=14' } '@percy/sdk-utils@1.30.0': - resolution: {integrity: sha512-GPEexJ0gxiFXqjFpL8EtILZo/arrwdz96oyZMsCeRu9bVSQ8ZvptFlwO8hYKtXvZcY7CJfGnUyOcza8CYPxM3g==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-GPEexJ0gxiFXqjFpL8EtILZo/arrwdz96oyZMsCeRu9bVSQ8ZvptFlwO8hYKtXvZcY7CJfGnUyOcza8CYPxM3g==, + } + engines: { node: '>=14' } '@percy/selenium-webdriver@2.1.0': - resolution: {integrity: sha512-CkPe22AJV2ATVDIWLY8PSPDSKx081dS+COgydfdRHXnc5mRw/8YGRcMJw4uvRR4r4u8b9ET2KtPVg0Q56vuSEg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-CkPe22AJV2ATVDIWLY8PSPDSKx081dS+COgydfdRHXnc5mRw/8YGRcMJw4uvRR4r4u8b9ET2KtPVg0Q56vuSEg==, + } + engines: { node: '>=14' } '@phenomnomnominal/tsquery@5.0.1': - resolution: {integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==} + resolution: + { + integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==, + } peerDependencies: typescript: ^3 || ^4 || ^5 '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: '>=14' } '@pkgr/core@0.1.1': - resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==, + } + engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } '@playwright/test@1.47.2': - resolution: {integrity: sha512-jTXRsoSPONAs8Za9QEQdyjFn+0ZQFjCiIztAIF6bi1HqhBzG9Ma7g1WotyiGqFSBRZjIEqMdT8RUlbk1QVhzCQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-jTXRsoSPONAs8Za9QEQdyjFn+0ZQFjCiIztAIF6bi1HqhBzG9Ma7g1WotyiGqFSBRZjIEqMdT8RUlbk1QVhzCQ==, + } + engines: { node: '>=18' } hasBin: true '@pnpm/config.env-replace@1.1.0': - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} + resolution: + { + integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==, + } + engines: { node: '>=12.22.0' } '@pnpm/network.ca-file@1.0.2': - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} + resolution: + { + integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==, + } + engines: { node: '>=12.22.0' } '@pnpm/npm-conf@2.3.1': - resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==, + } + engines: { node: '>=12' } '@polka/url@1.0.0-next.25': - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + resolution: + { + integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==, + } '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + resolution: + { + integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, + } '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + resolution: + { + integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==, + } '@protobufjs/codegen@2.0.4': - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + resolution: + { + integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==, + } '@protobufjs/eventemitter@1.1.0': - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + resolution: + { + integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==, + } '@protobufjs/fetch@1.1.0': - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + resolution: + { + integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==, + } '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + resolution: + { + integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==, + } '@protobufjs/inquire@1.1.0': - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + resolution: + { + integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==, + } '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + resolution: + { + integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==, + } '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + resolution: + { + integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==, + } '@protobufjs/utf8@1.1.0': - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + resolution: + { + integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==, + } '@reduxjs/toolkit@2.3.0': - resolution: {integrity: sha512-WC7Yd6cNGfHx8zf+iu+Q1UPTfEcXhQ+ATi7CV1hlrSAaQBdlPzg7Ww/wJHNQem7qG9rxmWoFCDCPubSvFObGzA==} + resolution: + { + integrity: sha512-WC7Yd6cNGfHx8zf+iu+Q1UPTfEcXhQ+ATi7CV1hlrSAaQBdlPzg7Ww/wJHNQem7qG9rxmWoFCDCPubSvFObGzA==, + } peerDependencies: react: ^16.9.0 || ^17.0.0 || ^18 react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 @@ -2064,12 +3119,18 @@ packages: optional: true '@rollup/pluginutils@4.2.1': - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} + resolution: + { + integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, + } + engines: { node: '>= 8.0.0' } '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==, + } + engines: { node: '>=14.0.0' } peerDependencies: rollup: '>=2.79.2' peerDependenciesMeta: @@ -2077,87 +3138,138 @@ packages: optional: true '@rollup/rollup-android-arm-eabi@4.22.5': - resolution: {integrity: sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==} + resolution: + { + integrity: sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==, + } cpu: [arm] os: [android] '@rollup/rollup-android-arm64@4.22.5': - resolution: {integrity: sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==} + resolution: + { + integrity: sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==, + } cpu: [arm64] os: [android] '@rollup/rollup-darwin-arm64@4.22.5': - resolution: {integrity: sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==} + resolution: + { + integrity: sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==, + } cpu: [arm64] os: [darwin] '@rollup/rollup-darwin-x64@4.22.5': - resolution: {integrity: sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==} + resolution: + { + integrity: sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==, + } cpu: [x64] os: [darwin] '@rollup/rollup-linux-arm-gnueabihf@4.22.5': - resolution: {integrity: sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==} + resolution: + { + integrity: sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==, + } cpu: [arm] os: [linux] '@rollup/rollup-linux-arm-musleabihf@4.22.5': - resolution: {integrity: sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==} + resolution: + { + integrity: sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==, + } cpu: [arm] os: [linux] '@rollup/rollup-linux-arm64-gnu@4.22.5': - resolution: {integrity: sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==} + resolution: + { + integrity: sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==, + } cpu: [arm64] os: [linux] '@rollup/rollup-linux-arm64-musl@4.22.5': - resolution: {integrity: sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==} + resolution: + { + integrity: sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==, + } cpu: [arm64] os: [linux] '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': - resolution: {integrity: sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==} + resolution: + { + integrity: sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==, + } cpu: [ppc64] os: [linux] '@rollup/rollup-linux-riscv64-gnu@4.22.5': - resolution: {integrity: sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==} + resolution: + { + integrity: sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==, + } cpu: [riscv64] os: [linux] '@rollup/rollup-linux-s390x-gnu@4.22.5': - resolution: {integrity: sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==} + resolution: + { + integrity: sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==, + } cpu: [s390x] os: [linux] '@rollup/rollup-linux-x64-gnu@4.22.5': - resolution: {integrity: sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==} + resolution: + { + integrity: sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==, + } cpu: [x64] os: [linux] '@rollup/rollup-linux-x64-musl@4.22.5': - resolution: {integrity: sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==} + resolution: + { + integrity: sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==, + } cpu: [x64] os: [linux] '@rollup/rollup-win32-arm64-msvc@4.22.5': - resolution: {integrity: sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==} + resolution: + { + integrity: sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==, + } cpu: [arm64] os: [win32] '@rollup/rollup-win32-ia32-msvc@4.22.5': - resolution: {integrity: sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==} + resolution: + { + integrity: sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==, + } cpu: [ia32] os: [win32] '@rollup/rollup-win32-x64-msvc@4.22.5': - resolution: {integrity: sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==} + resolution: + { + integrity: sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==, + } cpu: [x64] os: [win32] '@rushstack/node-core-library@5.7.0': - resolution: {integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==} + resolution: + { + integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==, + } peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -2165,10 +3277,16 @@ packages: optional: true '@rushstack/rig-package@0.5.3': - resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} + resolution: + { + integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==, + } '@rushstack/terminal@0.14.0': - resolution: {integrity: sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw==} + resolution: + { + integrity: sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw==, + } peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -2176,133 +3294,217 @@ packages: optional: true '@rushstack/ts-command-line@4.22.6': - resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==} + resolution: + { + integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==, + } '@sentry-internal/tracing@7.110.1': - resolution: {integrity: sha512-4kTd6EM0OP1SVWl2yLn3KIwlCpld1lyhNDeR8G1aKLm1PN+kVsR6YB/jy9KPPp4Q3lN3W9EkTSES3qhP4jVffQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-4kTd6EM0OP1SVWl2yLn3KIwlCpld1lyhNDeR8G1aKLm1PN+kVsR6YB/jy9KPPp4Q3lN3W9EkTSES3qhP4jVffQ==, + } + engines: { node: '>=8' } '@sentry/core@7.110.1': - resolution: {integrity: sha512-yC1yeUFQlmHj9u/KxKmwOMVanBmgfX+4MZnZU31QPqN95adyZTwpaYFZl4fH5kDVnz7wXJI0qRP8SxuMePtqhw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-yC1yeUFQlmHj9u/KxKmwOMVanBmgfX+4MZnZU31QPqN95adyZTwpaYFZl4fH5kDVnz7wXJI0qRP8SxuMePtqhw==, + } + engines: { node: '>=8' } '@sentry/node@7.110.1': - resolution: {integrity: sha512-n6sNzZJ/ChfyCI1FxuGWgloeevC8j2vax3vXM4IZrSIm5hS1d9L2oCJ4HEPuxGUxCkQ1f4kXPcdmNaQsWH0JBw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-n6sNzZJ/ChfyCI1FxuGWgloeevC8j2vax3vXM4IZrSIm5hS1d9L2oCJ4HEPuxGUxCkQ1f4kXPcdmNaQsWH0JBw==, + } + engines: { node: '>=8' } '@sentry/types@7.110.1': - resolution: {integrity: sha512-sZxOpM5gfyxvJeWVvNpHnxERTnlqcozjqNcIv29SZ6wonlkekmxDyJ3uCuPv85VO54WLyA4uzskPKnNFHacI8A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-sZxOpM5gfyxvJeWVvNpHnxERTnlqcozjqNcIv29SZ6wonlkekmxDyJ3uCuPv85VO54WLyA4uzskPKnNFHacI8A==, + } + engines: { node: '>=8' } '@sentry/utils@7.110.1': - resolution: {integrity: sha512-eibLo2m1a7sHkOHxYYmRujr3D7ek2l9sv26F1SLoQBVDF7Afw5AKyzPmtA1D+4M9P/ux1okj7cGj3SaBrVpxXA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-eibLo2m1a7sHkOHxYYmRujr3D7ek2l9sv26F1SLoQBVDF7Afw5AKyzPmtA1D+4M9P/ux1okj7cGj3SaBrVpxXA==, + } + engines: { node: '>=8' } '@shikijs/engine-oniguruma@1.24.2': - resolution: {integrity: sha512-ZN6k//aDNWRJs1uKB12pturKHh7GejKugowOFGAuG7TxDRLod1Bd5JhpOikOiFqPmKjKEPtEA6mRCf7q3ulDyQ==} + resolution: + { + integrity: sha512-ZN6k//aDNWRJs1uKB12pturKHh7GejKugowOFGAuG7TxDRLod1Bd5JhpOikOiFqPmKjKEPtEA6mRCf7q3ulDyQ==, + } '@shikijs/types@1.24.2': - resolution: {integrity: sha512-bdeWZiDtajGLG9BudI0AHet0b6e7FbR0EsE4jpGaI0YwHm/XJunI9+3uZnzFtX65gsyJ6ngCIWUfA4NWRPnBkQ==} + resolution: + { + integrity: sha512-bdeWZiDtajGLG9BudI0AHet0b6e7FbR0EsE4jpGaI0YwHm/XJunI9+3uZnzFtX65gsyJ6ngCIWUfA4NWRPnBkQ==, + } '@shikijs/vscode-textmate@9.3.1': - resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} + resolution: + { + integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==, + } '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + resolution: + { + integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, + } '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==, + } + engines: { node: '>=10' } '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==, + } + engines: { node: '>=14.16' } '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + resolution: + { + integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==, + } '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + resolution: + { + integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==, + } '@swc-node/core@1.13.3': - resolution: {integrity: sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==, + } + engines: { node: '>= 10' } peerDependencies: '@swc/core': '>= 1.4.13' '@swc/types': '>= 0.1' '@swc-node/register@1.9.2': - resolution: {integrity: sha512-BBjg0QNuEEmJSoU/++JOXhrjWdu3PTyYeJWsvchsI0Aqtj8ICkz/DqlwtXbmZVZ5vuDPpTfFlwDBZe81zgShMA==} + resolution: + { + integrity: sha512-BBjg0QNuEEmJSoU/++JOXhrjWdu3PTyYeJWsvchsI0Aqtj8ICkz/DqlwtXbmZVZ5vuDPpTfFlwDBZe81zgShMA==, + } peerDependencies: '@swc/core': '>= 1.4.13' typescript: '>= 4.3' '@swc-node/sourcemap-support@0.5.1': - resolution: {integrity: sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==} + resolution: + { + integrity: sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==, + } '@swc/core-darwin-arm64@1.5.7': - resolution: {integrity: sha512-bZLVHPTpH3h6yhwVl395k0Mtx8v6CGhq5r4KQdAoPbADU974Mauz1b6ViHAJ74O0IVE5vyy7tD3OpkQxL/vMDQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-bZLVHPTpH3h6yhwVl395k0Mtx8v6CGhq5r4KQdAoPbADU974Mauz1b6ViHAJ74O0IVE5vyy7tD3OpkQxL/vMDQ==, + } + engines: { node: '>=10' } cpu: [arm64] os: [darwin] '@swc/core-darwin-x64@1.5.7': - resolution: {integrity: sha512-RpUyu2GsviwTc2qVajPL0l8nf2vKj5wzO3WkLSHAHEJbiUZk83NJrZd1RVbEknIMO7+Uyjh54hEh8R26jSByaw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-RpUyu2GsviwTc2qVajPL0l8nf2vKj5wzO3WkLSHAHEJbiUZk83NJrZd1RVbEknIMO7+Uyjh54hEh8R26jSByaw==, + } + engines: { node: '>=10' } cpu: [x64] os: [darwin] '@swc/core-linux-arm-gnueabihf@1.5.7': - resolution: {integrity: sha512-cTZWTnCXLABOuvWiv6nQQM0hP6ZWEkzdgDvztgHI/+u/MvtzJBN5lBQ2lue/9sSFYLMqzqff5EHKlFtrJCA9dQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-cTZWTnCXLABOuvWiv6nQQM0hP6ZWEkzdgDvztgHI/+u/MvtzJBN5lBQ2lue/9sSFYLMqzqff5EHKlFtrJCA9dQ==, + } + engines: { node: '>=10' } cpu: [arm] os: [linux] '@swc/core-linux-arm64-gnu@1.5.7': - resolution: {integrity: sha512-hoeTJFBiE/IJP30Be7djWF8Q5KVgkbDtjySmvYLg9P94bHg9TJPSQoC72tXx/oXOgXvElDe/GMybru0UxhKx4g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-hoeTJFBiE/IJP30Be7djWF8Q5KVgkbDtjySmvYLg9P94bHg9TJPSQoC72tXx/oXOgXvElDe/GMybru0UxhKx4g==, + } + engines: { node: '>=10' } cpu: [arm64] os: [linux] '@swc/core-linux-arm64-musl@1.5.7': - resolution: {integrity: sha512-+NDhK+IFTiVK1/o7EXdCeF2hEzCiaRSrb9zD7X2Z7inwWlxAntcSuzZW7Y6BRqGQH89KA91qYgwbnjgTQ22PiQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-+NDhK+IFTiVK1/o7EXdCeF2hEzCiaRSrb9zD7X2Z7inwWlxAntcSuzZW7Y6BRqGQH89KA91qYgwbnjgTQ22PiQ==, + } + engines: { node: '>=10' } cpu: [arm64] os: [linux] '@swc/core-linux-x64-gnu@1.5.7': - resolution: {integrity: sha512-25GXpJmeFxKB+7pbY7YQLhWWjkYlR+kHz5I3j9WRl3Lp4v4UD67OGXwPe+DIcHqcouA1fhLhsgHJWtsaNOMBNg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-25GXpJmeFxKB+7pbY7YQLhWWjkYlR+kHz5I3j9WRl3Lp4v4UD67OGXwPe+DIcHqcouA1fhLhsgHJWtsaNOMBNg==, + } + engines: { node: '>=10' } cpu: [x64] os: [linux] '@swc/core-linux-x64-musl@1.5.7': - resolution: {integrity: sha512-0VN9Y5EAPBESmSPPsCJzplZHV26akC0sIgd3Hc/7S/1GkSMoeuVL+V9vt+F/cCuzr4VidzSkqftdP3qEIsXSpg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-0VN9Y5EAPBESmSPPsCJzplZHV26akC0sIgd3Hc/7S/1GkSMoeuVL+V9vt+F/cCuzr4VidzSkqftdP3qEIsXSpg==, + } + engines: { node: '>=10' } cpu: [x64] os: [linux] '@swc/core-win32-arm64-msvc@1.5.7': - resolution: {integrity: sha512-RtoNnstBwy5VloNCvmvYNApkTmuCe4sNcoYWpmY7C1+bPR+6SOo8im1G6/FpNem8AR5fcZCmXHWQ+EUmRWJyuA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-RtoNnstBwy5VloNCvmvYNApkTmuCe4sNcoYWpmY7C1+bPR+6SOo8im1G6/FpNem8AR5fcZCmXHWQ+EUmRWJyuA==, + } + engines: { node: '>=10' } cpu: [arm64] os: [win32] '@swc/core-win32-ia32-msvc@1.5.7': - resolution: {integrity: sha512-Xm0TfvcmmspvQg1s4+USL3x8D+YPAfX2JHygvxAnCJ0EHun8cm2zvfNBcsTlnwYb0ybFWXXY129aq1wgFC9TpQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Xm0TfvcmmspvQg1s4+USL3x8D+YPAfX2JHygvxAnCJ0EHun8cm2zvfNBcsTlnwYb0ybFWXXY129aq1wgFC9TpQ==, + } + engines: { node: '>=10' } cpu: [ia32] os: [win32] '@swc/core-win32-x64-msvc@1.5.7': - resolution: {integrity: sha512-tp43WfJLCsKLQKBmjmY/0vv1slVywR5Q4qKjF5OIY8QijaEW7/8VwPyUyVoJZEnDgv9jKtUTG5PzqtIYPZGnyg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-tp43WfJLCsKLQKBmjmY/0vv1slVywR5Q4qKjF5OIY8QijaEW7/8VwPyUyVoJZEnDgv9jKtUTG5PzqtIYPZGnyg==, + } + engines: { node: '>=10' } cpu: [x64] os: [win32] '@swc/core@1.5.7': - resolution: {integrity: sha512-U4qJRBefIJNJDRCCiVtkfa/hpiZ7w0R6kASea+/KLp+vkus3zcLSB8Ub8SvKgTIxjWpwsKcZlPf5nrv4ls46SQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-U4qJRBefIJNJDRCCiVtkfa/hpiZ7w0R6kASea+/KLp+vkus3zcLSB8Ub8SvKgTIxjWpwsKcZlPf5nrv4ls46SQ==, + } + engines: { node: '>=10' } peerDependencies: '@swc/helpers': ^0.5.0 peerDependenciesMeta: @@ -2310,231 +3512,453 @@ packages: optional: true '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + resolution: + { + integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==, + } '@swc/helpers@0.5.12': - resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} + resolution: + { + integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==, + } '@swc/types@0.1.7': - resolution: {integrity: sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==} + resolution: + { + integrity: sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==, + } '@szmarczak/http-timer@4.0.6': - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==, + } + engines: { node: '>=10' } '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==, + } + engines: { node: '>=14.16' } '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==, + } + engines: { node: '>= 10' } '@tootallnate/quickjs-emscripten@0.23.0': - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + resolution: + { + integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==, + } '@trysound/sax@0.2.0': - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, + } + engines: { node: '>=10.13.0' } '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + resolution: + { + integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==, + } '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + resolution: + { + integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, + } '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + resolution: + { + integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, + } '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + resolution: + { + integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, + } '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + resolution: + { + integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==, + } '@types/argparse@1.0.38': - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + resolution: + { + integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==, + } '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + resolution: + { + integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, + } '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + resolution: + { + integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==, + } '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + resolution: + { + integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, + } '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + resolution: + { + integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==, + } '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + resolution: + { + integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==, + } '@types/bonjour@3.5.13': - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + resolution: + { + integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==, + } '@types/cacheable-request@6.0.3': - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + resolution: + { + integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==, + } '@types/caseless@0.12.5': - resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} + resolution: + { + integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==, + } '@types/connect-history-api-fallback@1.5.4': - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + resolution: + { + integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==, + } '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + resolution: + { + integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, + } '@types/conventional-commits-parser@5.0.0': - resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + resolution: + { + integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==, + } '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + resolution: + { + integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==, + } '@types/eslint@8.56.9': - resolution: {integrity: sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==} + resolution: + { + integrity: sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==, + } '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + resolution: + { + integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, + } '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + resolution: + { + integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==, + } '@types/express-serve-static-core@4.19.0': - resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} + resolution: + { + integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==, + } '@types/express@4.17.17': - resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} + resolution: + { + integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==, + } '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + resolution: + { + integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==, + } '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + resolution: + { + integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==, + } '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + resolution: + { + integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==, + } '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + resolution: + { + integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==, + } '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + resolution: + { + integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==, + } '@types/http-proxy@1.17.15': - resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} + resolution: + { + integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==, + } '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + resolution: + { + integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==, + } '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + resolution: + { + integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==, + } '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + resolution: + { + integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==, + } '@types/js-yaml@4.0.9': - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + resolution: + { + integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==, + } '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + resolution: + { + integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, + } '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + resolution: + { + integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, + } '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + resolution: + { + integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, + } '@types/lodash@4.17.0': - resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + resolution: + { + integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==, + } '@types/long@4.0.2': - resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} + resolution: + { + integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==, + } '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + resolution: + { + integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==, + } '@types/node-fetch@2.6.11': - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + resolution: + { + integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==, + } '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + resolution: + { + integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==, + } '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + resolution: + { + integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, + } '@types/node@20.16.11': - resolution: {integrity: sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==} + resolution: + { + integrity: sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==, + } '@types/node@22.10.2': - resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + resolution: + { + integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==, + } '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + resolution: + { + integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, + } '@types/qs@6.9.14': - resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + resolution: + { + integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==, + } '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + resolution: + { + integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==, + } '@types/request@2.48.12': - resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==} + resolution: + { + integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==, + } '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + resolution: + { + integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, + } '@types/retry@0.12.2': - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + resolution: + { + integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==, + } '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + resolution: + { + integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==, + } '@types/serve-index@1.9.4': - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + resolution: + { + integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==, + } '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + resolution: + { + integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==, + } '@types/sockjs@0.3.36': - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + resolution: + { + integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==, + } '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + resolution: + { + integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==, + } '@types/statuses@2.0.5': - resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} + resolution: + { + integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==, + } '@types/stream-buffers@3.0.7': - resolution: {integrity: sha512-azOCy05sXVXrO+qklf0c/B07H/oHaIuDDAiHPVwlk3A9Ek+ksHyTeMajLZl3r76FxpPpxem//4Te61G1iW3Giw==} + resolution: + { + integrity: sha512-azOCy05sXVXrO+qklf0c/B07H/oHaIuDDAiHPVwlk3A9Ek+ksHyTeMajLZl3r76FxpPpxem//4Te61G1iW3Giw==, + } '@types/tar@6.1.13': - resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} + resolution: + { + integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==, + } '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + resolution: + { + integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==, + } '@types/triple-beam@1.3.5': - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + resolution: + { + integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==, + } '@types/underscore@1.11.15': - resolution: {integrity: sha512-HP38xE+GuWGlbSRq9WrZkousaQ7dragtZCruBVMi0oX1migFZavZ3OROKHSkNp/9ouq82zrWtZpg18jFnVN96g==} + resolution: + { + integrity: sha512-HP38xE+GuWGlbSRq9WrZkousaQ7dragtZCruBVMi0oX1migFZavZ3OROKHSkNp/9ouq82zrWtZpg18jFnVN96g==, + } '@types/unist@3.0.2': - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + resolution: + { + integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==, + } '@types/ws@8.5.12': - resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} + resolution: + { + integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==, + } '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + resolution: + { + integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, + } '@types/yargs@17.0.33': - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + resolution: + { + integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==, + } '@typescript-eslint/eslint-plugin@7.16.1': - resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} - engines: {node: ^18.18.0 || >=20.0.0} + resolution: + { + integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==, + } + engines: { node: ^18.18.0 || >=20.0.0 } peerDependencies: '@typescript-eslint/parser': ^7.0.0 eslint: ^8.56.0 @@ -2544,8 +3968,11 @@ packages: optional: true '@typescript-eslint/parser@7.16.1': - resolution: {integrity: sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==} - engines: {node: ^18.18.0 || >=20.0.0} + resolution: + { + integrity: sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==, + } + engines: { node: ^18.18.0 || >=20.0.0 } peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -2554,20 +3981,32 @@ packages: optional: true '@typescript-eslint/scope-manager@7.16.1': - resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} - engines: {node: ^18.18.0 || >=20.0.0} + resolution: + { + integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==, + } + engines: { node: ^18.18.0 || >=20.0.0 } '@typescript-eslint/scope-manager@8.18.0': - resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@typescript-eslint/scope-manager@8.7.0': - resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@typescript-eslint/type-utils@7.16.1': - resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} - engines: {node: ^18.18.0 || >=20.0.0} + resolution: + { + integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==, + } + engines: { node: ^18.18.0 || >=20.0.0 } peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -2576,8 +4015,11 @@ packages: optional: true '@typescript-eslint/type-utils@8.7.0': - resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: typescript: '*' peerDependenciesMeta: @@ -2585,24 +4027,39 @@ packages: optional: true '@typescript-eslint/types@5.59.5': - resolution: {integrity: sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } '@typescript-eslint/types@7.16.1': - resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} - engines: {node: ^18.18.0 || >=20.0.0} + resolution: + { + integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==, + } + engines: { node: ^18.18.0 || >=20.0.0 } '@typescript-eslint/types@8.18.0': - resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@typescript-eslint/types@8.7.0': - resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@typescript-eslint/typescript-estree@5.59.5': - resolution: {integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: typescript: '*' peerDependenciesMeta: @@ -2610,8 +4067,11 @@ packages: optional: true '@typescript-eslint/typescript-estree@7.16.1': - resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} - engines: {node: ^18.18.0 || >=20.0.0} + resolution: + { + integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==, + } + engines: { node: ^18.18.0 || >=20.0.0 } peerDependencies: typescript: '*' peerDependenciesMeta: @@ -2619,14 +4079,20 @@ packages: optional: true '@typescript-eslint/typescript-estree@8.18.0': - resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/typescript-estree@8.7.0': - resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: typescript: '*' peerDependenciesMeta: @@ -2634,161 +4100,281 @@ packages: optional: true '@typescript-eslint/utils@7.16.1': - resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} - engines: {node: ^18.18.0 || >=20.0.0} + resolution: + { + integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==, + } + engines: { node: ^18.18.0 || >=20.0.0 } peerDependencies: eslint: ^8.56.0 '@typescript-eslint/utils@8.18.0': - resolution: {integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/utils@8.7.0': - resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 '@typescript-eslint/visitor-keys@5.59.5': - resolution: {integrity: sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } '@typescript-eslint/visitor-keys@7.16.1': - resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} - engines: {node: ^18.18.0 || >=20.0.0} + resolution: + { + integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==, + } + engines: { node: ^18.18.0 || >=20.0.0 } '@typescript-eslint/visitor-keys@8.18.0': - resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@typescript-eslint/visitor-keys@8.7.0': - resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + resolution: + { + integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, + } '@verdaccio/commons-api@10.2.0': - resolution: {integrity: sha512-F/YZANu4DmpcEV0jronzI7v2fGVWkQ5Mwi+bVmV+ACJ+EzR0c9Jbhtbe5QyLUuzR97t8R5E/Xe53O0cc2LukdQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-F/YZANu4DmpcEV0jronzI7v2fGVWkQ5Mwi+bVmV+ACJ+EzR0c9Jbhtbe5QyLUuzR97t8R5E/Xe53O0cc2LukdQ==, + } + engines: { node: '>=8' } '@verdaccio/config@7.0.0-next-7.13': - resolution: {integrity: sha512-QM0uvbLoK8IJMXCr9yYTlR9ZfoO26/sPt0ZGtzEp6yLZ4CZnI4C+eC6KlV/jPTSYf3s8GFAE9ZPvhnQyhX2DoA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-QM0uvbLoK8IJMXCr9yYTlR9ZfoO26/sPt0ZGtzEp6yLZ4CZnI4C+eC6KlV/jPTSYf3s8GFAE9ZPvhnQyhX2DoA==, + } + engines: { node: '>=12' } '@verdaccio/core@7.0.0-next-7.13': - resolution: {integrity: sha512-95cSbuXc3GMaDjlSAEOkDIbN8YaYVq0E4yj/M6oIu4N4XK7DdbuB6k7YAr/TeUJU+2KFPHk3caDEj2a129jNCA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-95cSbuXc3GMaDjlSAEOkDIbN8YaYVq0E4yj/M6oIu4N4XK7DdbuB6k7YAr/TeUJU+2KFPHk3caDEj2a129jNCA==, + } + engines: { node: '>=12' } '@verdaccio/file-locking@10.3.1': - resolution: {integrity: sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g==, + } + engines: { node: '>=12' } '@verdaccio/file-locking@12.0.0-next.1': - resolution: {integrity: sha512-Zb5G2HEhVRB0jCq4z7QA4dqTdRv/2kIsw2Nkm3j2HqC1OeJRxas3MJAF/OxzbAb1IN32lbg1zycMSk6NcbQkgQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Zb5G2HEhVRB0jCq4z7QA4dqTdRv/2kIsw2Nkm3j2HqC1OeJRxas3MJAF/OxzbAb1IN32lbg1zycMSk6NcbQkgQ==, + } + engines: { node: '>=12' } '@verdaccio/local-storage-legacy@11.0.2': - resolution: {integrity: sha512-7AXG7qlcVFmF+Nue2oKaraprGRtaBvrQIOvc/E89+7hAe399V01KnZI6E/ET56u7U9fq0MSlp92HBcdotlpUXg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7AXG7qlcVFmF+Nue2oKaraprGRtaBvrQIOvc/E89+7hAe399V01KnZI6E/ET56u7U9fq0MSlp92HBcdotlpUXg==, + } + engines: { node: '>=12' } '@verdaccio/logger-7@7.0.0-next-7.13': - resolution: {integrity: sha512-uiKIC6rSarSdYVdGKSw1JnDC04xCv6kKvqCjVV4GN9QeIaMzMBpPUZRwEEmq7Emc6tm+VPURVtbUy1aLRxWsmQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-uiKIC6rSarSdYVdGKSw1JnDC04xCv6kKvqCjVV4GN9QeIaMzMBpPUZRwEEmq7Emc6tm+VPURVtbUy1aLRxWsmQ==, + } + engines: { node: '>=12' } '@verdaccio/logger-commons@7.0.0-next-7.13': - resolution: {integrity: sha512-C45E+e/yMc54hXzRkiUZjl/fXObfcAGE1EMXxZjIqjPUx4gnAWEuTpT1NVRxZbMU6HdpOOKrgijwYkBpo5pgCg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-C45E+e/yMc54hXzRkiUZjl/fXObfcAGE1EMXxZjIqjPUx4gnAWEuTpT1NVRxZbMU6HdpOOKrgijwYkBpo5pgCg==, + } + engines: { node: '>=12' } '@verdaccio/logger-prettify@7.0.0-next-7.2': - resolution: {integrity: sha512-vGIcXW8DkVBsk0g/iufMZWKBMgC774Vz0zT0g+3NErBUmAhvCby+rrrNDy64jJ8XfJEn+eMiXq7wM/tRWbwYKQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-vGIcXW8DkVBsk0g/iufMZWKBMgC774Vz0zT0g+3NErBUmAhvCby+rrrNDy64jJ8XfJEn+eMiXq7wM/tRWbwYKQ==, + } + engines: { node: '>=12' } '@verdaccio/middleware@7.0.0-next-7.13': - resolution: {integrity: sha512-SwStOZeOJ9GFgJEeOhXP3AZpx35HNl66Ru8zKUb0VrOw8mna/4d+/wL+5bAaYfG/k5uO1eOJoTBMQLJkFfQyZA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-SwStOZeOJ9GFgJEeOhXP3AZpx35HNl66Ru8zKUb0VrOw8mna/4d+/wL+5bAaYfG/k5uO1eOJoTBMQLJkFfQyZA==, + } + engines: { node: '>=12' } '@verdaccio/search-indexer@7.0.0-next-7.2': - resolution: {integrity: sha512-ZkhqHHWP530dFr8EuicAa5sXFDlAYqiSgpNDPIyMaz1FkfqngeffhWdydXQgVb60d1OeJkpaf3utPE2kQwIXxQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ZkhqHHWP530dFr8EuicAa5sXFDlAYqiSgpNDPIyMaz1FkfqngeffhWdydXQgVb60d1OeJkpaf3utPE2kQwIXxQ==, + } + engines: { node: '>=12' } '@verdaccio/signature@7.0.0-next.3': - resolution: {integrity: sha512-egs1VmEe+COUUZ83I6gzDy79Jo3b/AExPvp9EDuJHkmwxJj+9gb231Rv4wk+UoNPrQRNLljUepQwVrDmbqP5DQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-egs1VmEe+COUUZ83I6gzDy79Jo3b/AExPvp9EDuJHkmwxJj+9gb231Rv4wk+UoNPrQRNLljUepQwVrDmbqP5DQ==, + } + engines: { node: '>=12' } '@verdaccio/streams@10.2.1': - resolution: {integrity: sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ==} - engines: {node: '>=12', npm: '>=5'} + resolution: + { + integrity: sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ==, + } + engines: { node: '>=12', npm: '>=5' } '@verdaccio/tarball@12.0.0-next-7.13': - resolution: {integrity: sha512-O74anmOdpeUL52LtYRso8UQMKKRqDsnEaTLRACOEQevhyBp/ySs2XwVLPoHymDaXiUQfKUP06HekujdedTpO+A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-O74anmOdpeUL52LtYRso8UQMKKRqDsnEaTLRACOEQevhyBp/ySs2XwVLPoHymDaXiUQfKUP06HekujdedTpO+A==, + } + engines: { node: '>=12' } '@verdaccio/ui-theme@7.0.0-next-7.13': - resolution: {integrity: sha512-qRIGVahav3y70fIX35iqUxvyzhJ6fQmGZP+b0ODu0zCOn3zFCwS5bkTXuRITIACo26pZIMauw9LTqqsb1GPmLA==} + resolution: + { + integrity: sha512-qRIGVahav3y70fIX35iqUxvyzhJ6fQmGZP+b0ODu0zCOn3zFCwS5bkTXuRITIACo26pZIMauw9LTqqsb1GPmLA==, + } '@verdaccio/url@12.0.0-next-7.13': - resolution: {integrity: sha512-Ag2sF4Q6DewKJtFIayo21KCgp9azdfsgvgjM8nlQkuWduHYgack5w/paTX5z2hfyFtbXyO648DvBBvmkjcBjbA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Ag2sF4Q6DewKJtFIayo21KCgp9azdfsgvgjM8nlQkuWduHYgack5w/paTX5z2hfyFtbXyO648DvBBvmkjcBjbA==, + } + engines: { node: '>=12' } '@verdaccio/utils@7.0.0-next-7.13': - resolution: {integrity: sha512-ZtQZjUyxHZHQSjbajncdPLuJt5D0k3r6RQ8Wg0jM5LAoAJM5L+ISC0lcDZI3VRY6mq/LhU6hKfUygBK8o7VQmQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ZtQZjUyxHZHQSjbajncdPLuJt5D0k3r6RQ8Wg0jM5LAoAJM5L+ISC0lcDZI3VRY6mq/LhU6hKfUygBK8o7VQmQ==, + } + engines: { node: '>=12' } '@vitejs/plugin-basic-ssl@1.1.0': - resolution: {integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==} - engines: {node: '>=14.6.0'} + resolution: + { + integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==, + } + engines: { node: '>=14.6.0' } peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 '@vitest/coverage-v8@1.5.0': - resolution: {integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==} + resolution: + { + integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==, + } peerDependencies: vitest: 1.5.0 '@vitest/expect@1.5.0': - resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} + resolution: + { + integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==, + } '@vitest/runner@1.5.0': - resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} + resolution: + { + integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==, + } '@vitest/snapshot@1.5.0': - resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} + resolution: + { + integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==, + } '@vitest/spy@1.5.0': - resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} + resolution: + { + integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==, + } '@vitest/ui@1.5.0': - resolution: {integrity: sha512-ETcToK2TzICf/Oartvt19IH7yR4oCs8GrQk5hRhZ5oZFaSdDHTh6o3EdzyxOaY24NZ20cXYYNGjj1se/5vHfFg==} + resolution: + { + integrity: sha512-ETcToK2TzICf/Oartvt19IH7yR4oCs8GrQk5hRhZ5oZFaSdDHTh6o3EdzyxOaY24NZ20cXYYNGjj1se/5vHfFg==, + } peerDependencies: vitest: 1.5.0 '@vitest/utils@1.5.0': - resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} + resolution: + { + integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==, + } '@volar/language-core@2.4.5': - resolution: {integrity: sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==} + resolution: + { + integrity: sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==, + } '@volar/source-map@2.4.5': - resolution: {integrity: sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==} + resolution: + { + integrity: sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==, + } '@volar/typescript@2.4.5': - resolution: {integrity: sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==} + resolution: + { + integrity: sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==, + } '@vue/compiler-core@3.4.24': - resolution: {integrity: sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==} + resolution: + { + integrity: sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==, + } '@vue/compiler-dom@3.4.24': - resolution: {integrity: sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==} + resolution: + { + integrity: sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==, + } '@vue/compiler-vue2@2.7.16': - resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + resolution: + { + integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==, + } '@vue/language-core@2.1.6': - resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} + resolution: + { + integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==, + } peerDependencies: typescript: '*' peerDependenciesMeta: @@ -2796,119 +4382,218 @@ packages: optional: true '@vue/shared@3.4.24': - resolution: {integrity: sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw==} + resolution: + { + integrity: sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw==, + } '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + resolution: + { + integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==, + } '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + resolution: + { + integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==, + } '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + resolution: + { + integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==, + } '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + resolution: + { + integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==, + } '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + resolution: + { + integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==, + } '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + resolution: + { + integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==, + } '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + resolution: + { + integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==, + } '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + resolution: + { + integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==, + } '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + resolution: + { + integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==, + } '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + resolution: + { + integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==, + } '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + resolution: + { + integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==, + } '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + resolution: + { + integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==, + } '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + resolution: + { + integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==, + } '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + resolution: + { + integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==, + } '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + resolution: + { + integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==, + } '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + resolution: + { + integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, + } '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + resolution: + { + integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, + } '@yarnpkg/lockfile@1.1.0': - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + resolution: + { + integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==, + } '@yarnpkg/parsers@3.0.2': - resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} - engines: {node: '>=18.12.0'} + resolution: + { + integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==, + } + engines: { node: '>=18.12.0' } '@zkochan/js-yaml@0.0.7': - resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} + resolution: + { + integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==, + } hasBin: true JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + resolution: + { + integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, + } hasBin: true abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + resolution: + { + integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==, + } deprecated: Use your platform's native atob() and btoa() methods instead abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} + resolution: + { + integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, + } + engines: { node: '>=6.5' } accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, + } + engines: { node: '>= 0.6' } acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + resolution: + { + integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==, + } peerDependencies: acorn: ^8 acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==, + } + engines: { node: '>=0.4.0' } acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==, + } + engines: { node: '>=0.4.0' } hasBin: true address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==, + } + engines: { node: '>= 10.0.0' } agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} + resolution: + { + integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, + } + engines: { node: '>= 6.0.0' } agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==, + } + engines: { node: '>= 14' } ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + resolution: + { + integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==, + } peerDependencies: ajv: ^8.5.0 peerDependenciesMeta: @@ -2916,7 +4601,10 @@ packages: optional: true ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + resolution: + { + integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, + } peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -2924,7 +4612,10 @@ packages: optional: true ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + resolution: + { + integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==, + } peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -2932,252 +4623,444 @@ packages: optional: true ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + resolution: + { + integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, + } peerDependencies: ajv: ^6.9.1 ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + resolution: + { + integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==, + } peerDependencies: ajv: ^8.8.2 ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + resolution: + { + integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, + } ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + resolution: + { + integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, + } ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + resolution: + { + integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==, + } ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + resolution: + { + integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==, + } ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, + } + engines: { node: '>=6' } ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, + } + engines: { node: '>=8' } ansi-escapes@5.0.0: - resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==, + } + engines: { node: '>=12' } ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} + resolution: + { + integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==, + } + engines: { '0': node >= 0.8.0 } hasBin: true ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, + } + engines: { node: '>=0.10.0' } ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: '>=8' } ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, + } + engines: { node: '>=12' } ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: '>=4' } ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: '>=8' } ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, + } + engines: { node: '>=10' } ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: '>=12' } anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, + } + engines: { node: '>= 8' } apache-md5@1.1.8: - resolution: {integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==, + } + engines: { node: '>=8' } aproba@1.2.0: - resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} + resolution: + { + integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==, + } archiver-utils@4.0.1: - resolution: {integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==, + } + engines: { node: '>= 12.0.0' } archiver@6.0.2: - resolution: {integrity: sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==, + } + engines: { node: '>= 12.0.0' } are-we-there-yet@1.1.7: - resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} + resolution: + { + integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==, + } deprecated: This package is no longer supported. arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + resolution: + { + integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, + } argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + resolution: + { + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, + } argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==, + } + engines: { node: '>= 0.4' } array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + resolution: + { + integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, + } array-ify@1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + resolution: + { + integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==, + } array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==, + } + engines: { node: '>= 0.4' } array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: '>=8' } array-union@3.0.1: - resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==, + } + engines: { node: '>=12' } array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, + } + engines: { node: '>= 0.4' } array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, + } + engines: { node: '>= 0.4' } arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==, + } + engines: { node: '>= 0.4' } asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + resolution: + { + integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, + } asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + resolution: + { + integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==, + } assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==, + } + engines: { node: '>=0.8' } assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + resolution: + { + integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, + } ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==, + } + engines: { node: '>=4' } astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, + } + engines: { node: '>=8' } async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + resolution: + { + integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==, + } async@3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + resolution: + { + integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==, + } async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + resolution: + { + integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==, + } asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, + } + engines: { node: '>= 4.0.0' } atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==, + } + engines: { node: '>=8.0.0' } autoprefixer@10.4.20: - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==, + } + engines: { node: ^10 || ^12 || >=14 } hasBin: true peerDependencies: postcss: ^8.1.0 available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, + } + engines: { node: '>= 0.4' } aws-sdk@2.1691.0: - resolution: {integrity: sha512-/F2YC+DlsY3UBM2Bdnh5RLHOPNibS/+IcjUuhP8XuctyrN+MlL+fWDAiela32LTDk7hMy4rx8MTgvbJ+0blO5g==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-/F2YC+DlsY3UBM2Bdnh5RLHOPNibS/+IcjUuhP8XuctyrN+MlL+fWDAiela32LTDk7hMy4rx8MTgvbJ+0blO5g==, + } + engines: { node: '>= 10.0.0' } aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + resolution: + { + integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==, + } aws4@1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + resolution: + { + integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==, + } axios@1.7.7: - resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + resolution: + { + integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==, + } b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + resolution: + { + integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==, + } babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: '@babel/core': ^7.8.0 babel-loader@9.2.1: - resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} - engines: {node: '>= 14.15.0'} + resolution: + { + integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==, + } + engines: { node: '>= 14.15.0' } peerDependencies: '@babel/core': ^7.12.0 webpack: '>=5' babel-plugin-const-enum@1.2.0: - resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} + resolution: + { + integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==, + } peerDependencies: '@babel/core': ^7.0.0-0 babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, + } + engines: { node: '>=8' } babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } babel-plugin-macros@2.8.0: - resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} + resolution: + { + integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==, + } babel-plugin-polyfill-corejs2@0.4.10: - resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} + resolution: + { + integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==, + } peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-polyfill-corejs3@0.10.4: - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + resolution: + { + integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==, + } peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-polyfill-regenerator@0.6.1: - resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} + resolution: + { + integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==, + } peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-transform-typescript-metadata@0.3.2: - resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} + resolution: + { + integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==, + } peerDependencies: '@babel/core': ^7 '@babel/traverse': ^7 @@ -3186,513 +5069,930 @@ packages: optional: true babel-preset-current-node-syntax@1.1.0: - resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + resolution: + { + integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==, + } peerDependencies: '@babel/core': ^7.0.0 babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: '@babel/core': ^7.0.0 balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } bare-events@2.5.0: - resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} + resolution: + { + integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==, + } base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + } basic-auth@2.0.1: - resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==, + } + engines: { node: '>= 0.8' } basic-ftp@5.0.5: - resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==, + } + engines: { node: '>=10.0.0' } batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + resolution: + { + integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==, + } bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + resolution: + { + integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==, + } bcryptjs@2.4.3: - resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} + resolution: + { + integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==, + } better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==, + } + engines: { node: '>=4' } big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + resolution: + { + integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==, + } bignumber.js@9.1.2: - resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + resolution: + { + integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==, + } binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, + } + engines: { node: '>=8' } bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + resolution: + { + integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, + } bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + resolution: + { + integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, + } body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + resolution: + { + integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==, + } + engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + resolution: + { + integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==, + } boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + resolution: + { + integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, + } boolean@3.2.0: - resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + resolution: + { + integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==, + } deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==, + } + engines: { node: '>=14.16' } brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, + } braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, + } + engines: { node: '>=8' } browserslist@4.24.0: - resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + resolution: + { + integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true browserstack-local@1.5.5: - resolution: {integrity: sha512-jKne7yosrMcptj3hqxp36TP9k0ZW2sCqhyurX24rUL4G3eT7OLgv+CSQN8iq5dtkv5IK+g+v8fWvsiC/S9KxMg==} + resolution: + { + integrity: sha512-jKne7yosrMcptj3hqxp36TP9k0ZW2sCqhyurX24rUL4G3eT7OLgv+CSQN8iq5dtkv5IK+g+v8fWvsiC/S9KxMg==, + } browserstack-node-sdk@1.34.17: - resolution: {integrity: sha512-Ghs3tj5Y6BUIsyJ803+hkRRUzMXVWpIbh2eiGiF9AvyC4DKBnL7gRAUrpne1kt2V5yCdBftwEodInsFbSz9xpQ==} + resolution: + { + integrity: sha512-Ghs3tj5Y6BUIsyJ803+hkRRUzMXVWpIbh2eiGiF9AvyC4DKBnL7gRAUrpne1kt2V5yCdBftwEodInsFbSz9xpQ==, + } hasBin: true bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + resolution: + { + integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, + } buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + resolution: + { + integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, + } buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + resolution: + { + integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==, + } buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } buffer@4.9.2: - resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} + resolution: + { + integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==, + } buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + resolution: + { + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, + } buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + resolution: + { + integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, + } builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + resolution: + { + integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==, + } builtins@5.1.0: - resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + resolution: + { + integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==, + } bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==, + } + engines: { node: '>=18' } byline@5.0.0: - resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==, + } + engines: { node: '>=0.10.0' } bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==, + } + engines: { node: '>= 0.8' } bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, + } + engines: { node: '>= 0.8' } cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, + } + engines: { node: '>=8' } cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} + resolution: + { + integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==, + } + engines: { node: '>=10.6.0' } cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==, + } + engines: { node: '>=14.16' } cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==, + } + engines: { node: '>=14.16' } cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==, + } + engines: { node: '>=8' } cachedir@2.3.0: - resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==, + } + engines: { node: '>=6' } call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==, + } + engines: { node: '>= 0.4' } callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: '>=6' } camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, + } + engines: { node: '>=6' } camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, + } + engines: { node: '>=10' } camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==, + } + engines: { node: '>=14.16' } camelcase@8.0.0: - resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==, + } + engines: { node: '>=16' } caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + resolution: + { + integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==, + } caniuse-lite@1.0.30001663: - resolution: {integrity: sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==} + resolution: + { + integrity: sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==, + } caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + resolution: + { + integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==, + } chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==, + } + engines: { node: '>=4' } chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: '>=4' } chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: '>=10' } chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + resolution: + { + integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==, + } + engines: { node: '>=10' } chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + resolution: + { + integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, + } check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + resolution: + { + integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==, + } cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + resolution: + { + integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==, + } cheerio@1.0.0-rc.11: - resolution: {integrity: sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==, + } + engines: { node: '>= 6' } chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + resolution: + { + integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, + } + engines: { node: '>= 8.10.0' } chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, + } + engines: { node: '>=10' } chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==, + } + engines: { node: '>=6.0' } ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==, + } + engines: { node: '>=8' } cjs-module-lexer@1.4.1: - resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} + resolution: + { + integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==, + } cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==, + } + engines: { node: '>=10' } cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, + } + engines: { node: '>=8' } cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } cli-spinners@2.6.1: - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==, + } + engines: { node: '>=6' } cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, + } + engines: { node: '>= 10' } cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} + resolution: + { + integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==, + } + engines: { node: '>= 12' } clipanion@3.2.1: - resolution: {integrity: sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==} + resolution: + { + integrity: sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==, + } peerDependencies: typanion: '*' cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, + } + engines: { node: '>=12' } clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + resolution: + { + integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==, + } clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, + } + engines: { node: '>=0.8' } co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + resolution: + { + integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==, + } + engines: { iojs: '>= 1.0.0', node: '>= 0.12.0' } code-point-at@1.1.0: - resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==, + } + engines: { node: '>=0.10.0' } collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + resolution: + { + integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==, + } color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: '>=7.0.0' } color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + resolution: + { + integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, + } color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + resolution: + { + integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, + } colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + resolution: + { + integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==, + } colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + resolution: + { + integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, + } colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + resolution: + { + integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==, + } columnify@1.6.0: - resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==, + } + engines: { node: '>=8.0.0' } combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: '>= 0.8' } commander@11.0.0: - resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==, + } + engines: { node: '>=16' } commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + resolution: + { + integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, + } commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, + } + engines: { node: '>= 10' } commitizen@4.3.0: - resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} - engines: {node: '>= 12'} + resolution: + { + integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==, + } + engines: { node: '>= 12' } hasBin: true common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + resolution: + { + integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==, + } compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + resolution: + { + integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==, + } compare-versions@6.1.1: - resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + resolution: + { + integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==, + } component-emitter@1.3.1: - resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + resolution: + { + integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==, + } compress-commons@5.0.3: - resolution: {integrity: sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==, + } + engines: { node: '>= 12.0.0' } compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, + } + engines: { node: '>= 0.6' } compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, + } + engines: { node: '>= 0.8.0' } computeds@0.0.1: - resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + resolution: + { + integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==, + } concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} + resolution: + { + integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==, + } + engines: { '0': node >= 0.8 } config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + resolution: + { + integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==, + } configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==, + } + engines: { node: '>=12' } confusing-browser-globals@1.0.11: - resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + resolution: + { + integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==, + } connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==, + } + engines: { node: '>=0.8' } console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + resolution: + { + integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==, + } content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, + } + engines: { node: '>= 0.6' } content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, + } + engines: { node: '>= 0.6' } conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==, + } + engines: { node: '>=16' } conventional-changelog-conventionalcommits@7.0.2: - resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==, + } + engines: { node: '>=16' } conventional-commit-types@3.0.0: - resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} + resolution: + { + integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==, + } conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==, + } + engines: { node: '>=16' } hasBin: true convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + resolution: + { + integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, + } cookie-parser@1.4.6: - resolution: {integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==, + } + engines: { node: '>= 0.8.0' } cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + resolution: + { + integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, + } cookie@0.4.1: - resolution: {integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==, + } + engines: { node: '>= 0.6' } cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==, + } + engines: { node: '>= 0.6' } cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==, + } + engines: { node: '>= 0.6' } cookiejar@2.1.4: - resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} + resolution: + { + integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==, + } cookies@0.9.1: - resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==, + } + engines: { node: '>= 0.8' } copy-anything@2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + resolution: + { + integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==, + } copy-webpack-plugin@10.2.4: - resolution: {integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==} - engines: {node: '>= 12.20.0'} + resolution: + { + integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==, + } + engines: { node: '>= 12.20.0' } peerDependencies: webpack: ^5.1.0 core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} + resolution: + { + integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==, + } core-js@3.35.0: - resolution: {integrity: sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==} + resolution: + { + integrity: sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==, + } core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + resolution: + { + integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==, + } core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, + } cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, + } + engines: { node: '>= 0.10' } corser@2.0.1: - resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==, + } + engines: { node: '>= 0.4.0' } cosmiconfig-typescript-loader@5.0.0: - resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} - engines: {node: '>=v16'} + resolution: + { + integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==, + } + engines: { node: '>=v16' } peerDependencies: '@types/node': '*' cosmiconfig: '>=8.2' typescript: '>=4' cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==, + } + engines: { node: '>=8' } cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, + } + engines: { node: '>=10' } cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==, + } + engines: { node: '>=14' } peerDependencies: typescript: '>=4.9.5' peerDependenciesMeta: @@ -3700,34 +6000,55 @@ packages: optional: true crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, + } + engines: { node: '>=0.8' } hasBin: true crc32-stream@5.0.1: - resolution: {integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==, + } + engines: { node: '>= 12.0.0' } create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + resolution: + { + integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, + } cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==, + } + engines: { node: '>= 8' } crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==, + } + engines: { node: '>=12' } css-declaration-sorter@7.2.0: - resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} - engines: {node: ^14 || ^16 || >=18} + resolution: + { + integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==, + } + engines: { node: ^14 || ^16 || >=18 } peerDependencies: postcss: ^8.0.9 css-loader@6.11.0: - resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} - engines: {node: '>= 12.13.0'} + resolution: + { + integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==, + } + engines: { node: '>= 12.13.0' } peerDependencies: '@rspack/core': 0.x || 1.x webpack: ^5.0.0 @@ -3738,8 +6059,11 @@ packages: optional: true css-minimizer-webpack-plugin@5.0.1: - resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} - engines: {node: '>= 14.15.0'} + resolution: + { + integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==, + } + engines: { node: '>= 14.15.0' } peerDependencies: '@parcel/css': '*' '@swc/css': '*' @@ -3763,101 +6087,173 @@ packages: optional: true css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + resolution: + { + integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, + } css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + resolution: + { + integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==, + } + engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0' } css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + resolution: + { + integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==, + } + engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 } css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, + } + engines: { node: '>= 6' } cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, + } + engines: { node: '>=4' } hasBin: true cssfontparser@1.2.1: - resolution: {integrity: sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==} + resolution: + { + integrity: sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==, + } cssnano-preset-default@6.1.2: - resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 cssnano-utils@4.0.2: - resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 cssnano@6.1.2: - resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + resolution: + { + integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==, + } + engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0' } cssstyle@3.0.0: - resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==, + } + engines: { node: '>=14' } cz-conventional-changelog@3.3.0: - resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==, + } + engines: { node: '>= 10' } cz-git@1.9.1: - resolution: {integrity: sha512-GK3EI5R7GApS8u+g9QPvy/50z0NiG7ijc1NASxZaDnQn0ARzr73MjZb3Lt4cZQvKJBd8GrfvOWqHgwMQQ/OlaA==} - engines: {node: '>=v12.20.0'} + resolution: + { + integrity: sha512-GK3EI5R7GApS8u+g9QPvy/50z0NiG7ijc1NASxZaDnQn0ARzr73MjZb3Lt4cZQvKJBd8GrfvOWqHgwMQQ/OlaA==, + } + engines: { node: '>=v12.20.0' } dargs@8.1.0: - resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==, + } + engines: { node: '>=12' } dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==, + } + engines: { node: '>=0.10' } data-uri-to-buffer@6.0.2: - resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==, + } + engines: { node: '>= 14' } data-urls@4.0.0: - resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==, + } + engines: { node: '>=14' } data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==, + } + engines: { node: '>= 0.4' } data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==, + } + engines: { node: '>= 0.4' } data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==, + } + engines: { node: '>= 0.4' } dataloader@1.4.0: - resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + resolution: + { + integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==, + } dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + resolution: + { + integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==, + } de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + resolution: + { + integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==, + } debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + resolution: + { + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, + } peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -3865,7 +6261,10 @@ packages: optional: true debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + resolution: + { + integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, + } peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -3873,8 +6272,11 @@ packages: optional: true debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: '>=6.0' } peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -3882,8 +6284,11 @@ packages: optional: true debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==, + } + engines: { node: '>=6.0' } peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -3891,17 +6296,29 @@ packages: optional: true decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + resolution: + { + integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==, + } decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==, + } + engines: { node: '>=10' } dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + resolution: + { + integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==, + } dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + resolution: + { + integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==, + } peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -3909,194 +6326,344 @@ packages: optional: true deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==, + } + engines: { node: '>=6' } deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, + } + engines: { node: '>=4.0.0' } deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + } deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, + } + engines: { node: '>=0.10.0' } default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==, + } + engines: { node: '>=18' } default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==, + } + engines: { node: '>=18' } defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + resolution: + { + integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, + } defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==, + } + engines: { node: '>=10' } define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, + } + engines: { node: '>= 0.4' } define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, + } + engines: { node: '>=8' } define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, + } + engines: { node: '>=12' } define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, + } + engines: { node: '>= 0.4' } degenerator@5.0.1: - resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==, + } + engines: { node: '>= 14' } delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: '>=0.4.0' } delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + resolution: + { + integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==, + } depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==, + } + engines: { node: '>= 0.6' } depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, + } + engines: { node: '>= 0.8' } destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + resolution: + { + integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, + } + engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } detect-file@1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==, + } + engines: { node: '>=0.10.0' } detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, + } + engines: { node: '>=8' } detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, + } + engines: { node: '>=0.10' } hasBin: true detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, + } + engines: { node: '>=8' } detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + resolution: + { + integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==, + } detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + resolution: + { + integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==, + } hasBin: true dezalgo@1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + resolution: + { + integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==, + } diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} + resolution: + { + integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, + } + engines: { node: '>=0.3.1' } dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, + } + engines: { node: '>=8' } dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==, + } + engines: { node: '>=6' } doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, + } + engines: { node: '>=0.10.0' } doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, + } + engines: { node: '>=6.0.0' } dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + resolution: + { + integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, + } domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + resolution: + { + integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, + } domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==, + } + engines: { node: '>=12' } deprecated: Use your platform's native DOMException instead domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, + } + engines: { node: '>= 4' } domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + resolution: + { + integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, + } dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==, + } + engines: { node: '>=8' } dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==, + } + engines: { node: '>=10' } dotenv-expand@11.0.6: - resolution: {integrity: sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==, + } + engines: { node: '>=12' } dotenv@10.0.0: - resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==, + } + engines: { node: '>=10' } dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==, + } + engines: { node: '>=12' } dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==, + } + engines: { node: '>=10' } duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + resolution: + { + integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, + } duplexify@4.1.3: - resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} + resolution: + { + integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==, + } eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + resolution: + { + integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==, + } ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + resolution: + { + integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==, + } ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + resolution: + { + integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, + } effect-http-error@0.4.0: - resolution: {integrity: sha512-ABrUA6pHsQPE349oKVWZjem308tMboZBErIFyyWdh6o3LIX6KW6BfrYg7x8xghyNJA8gChdGMOeIFwkdKoKxFg==} + resolution: + { + integrity: sha512-ABrUA6pHsQPE349oKVWZjem308tMboZBErIFyyWdh6o3LIX6KW6BfrYg7x8xghyNJA8gChdGMOeIFwkdKoKxFg==, + } peerDependencies: '@effect/platform': ^0.58.0 '@effect/schema': ^0.68.0 effect: ^3.5.0 effect-http-node@0.16.1: - resolution: {integrity: sha512-GhsVvFs6B0KliCRdQUpPLtedRupgNgzCqtv/patLT253suWUX8WxBtGi/Im5KKk64VmfZwz6DKHdgD00wJSYhQ==} + resolution: + { + integrity: sha512-GhsVvFs6B0KliCRdQUpPLtedRupgNgzCqtv/patLT253suWUX8WxBtGi/Im5KKk64VmfZwz6DKHdgD00wJSYhQ==, + } peerDependencies: '@effect/platform': ^0.58.0 '@effect/platform-node': ^0.53.0 @@ -4105,7 +6672,10 @@ packages: effect-http: ^0.73.0 effect-http-security@0.4.0: - resolution: {integrity: sha512-jeuMKWr5kSuOMbHL454ks/Y59WlqvlopfimaCNaG7w39/XfMOQ9C/Emy8GwyHGozBwi42kFiZBCQ4megzng91Q==} + resolution: + { + integrity: sha512-jeuMKWr5kSuOMbHL454ks/Y59WlqvlopfimaCNaG7w39/XfMOQ9C/Emy8GwyHGozBwi42kFiZBCQ4megzng91Q==, + } peerDependencies: '@effect/platform': ^0.58.0 '@effect/schema': ^0.68.0 @@ -4113,166 +6683,477 @@ packages: effect-http-error: ^0.4.0 effect-http@0.73.0: - resolution: {integrity: sha512-VEBhvyP/rD4JU5OtbSE1zZE9B+s+KaPXaSL7DXtP46QjTItjRUuYAqM7xzDgonmYN9kSY3JpxNuQctB0wvCQEA==} + resolution: + { + integrity: sha512-VEBhvyP/rD4JU5OtbSE1zZE9B+s+KaPXaSL7DXtP46QjTItjRUuYAqM7xzDgonmYN9kSY3JpxNuQctB0wvCQEA==, + } peerDependencies: '@effect/platform': ^0.58.0 '@effect/schema': ^0.68.0 effect: ^3.5.0 effect@3.5.3: - resolution: {integrity: sha512-emKAbdsB4jTeppa6fdfdWGhbEjKdvr1xfltpGIwiR46mD97JvWlpbrTIdqDCCizuMbxVys6YrSjKL7aHHa93Gg==} + resolution: + { + integrity: sha512-emKAbdsB4jTeppa6fdfdWGhbEjKdvr1xfltpGIwiR46mD97JvWlpbrTIdqDCCizuMbxVys6YrSjKL7aHHa93Gg==, + } ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==, + } + engines: { node: '>=0.10.0' } hasBin: true electron-to-chromium@1.5.28: - resolution: {integrity: sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==} + resolution: + { + integrity: sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==, + } emittery@0.11.0: - resolution: {integrity: sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==, + } + engines: { node: '>=12' } emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==, + } + engines: { node: '>=12' } emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==, + } + engines: { node: '>= 4' } enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + resolution: + { + integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==, + } encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, + } + engines: { node: '>= 0.8' } encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==, + } + engines: { node: '>= 0.8' } end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + resolution: + { + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, + } enhanced-resolve@5.17.1: - resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==, + } + engines: { node: '>=10.13.0' } enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==, + } + engines: { node: '>=8.6' } entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + resolution: + { + integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, + } + engines: { node: '>=0.12' } env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, + } + engines: { node: '>=6' } envinfo@7.11.1: - resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==, + } + engines: { node: '>=4' } hasBin: true errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + resolution: + { + integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, + } hasBin: true error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + } es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==, + } + engines: { node: '>= 0.4' } es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==, + } + engines: { node: '>= 0.4' } es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, + } + engines: { node: '>= 0.4' } es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + resolution: + { + integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==, + } es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==, + } + engines: { node: '>= 0.4' } es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==, + } + engines: { node: '>= 0.4' } es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + resolution: + { + integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, + } es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, + } + engines: { node: '>= 0.4' } es6-error@4.1.1: - resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + resolution: + { + integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==, + } + + esbuild-android-64@0.14.54: + resolution: + { + integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + + esbuild-android-arm64@0.14.54: + resolution: + { + integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + + esbuild-darwin-64@0.14.54: + resolution: + { + integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + + esbuild-darwin-arm64@0.14.54: + resolution: + { + integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + + esbuild-freebsd-64@0.14.54: + resolution: + { + integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + + esbuild-freebsd-arm64@0.14.54: + resolution: + { + integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + + esbuild-linux-32@0.14.54: + resolution: + { + integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + + esbuild-linux-64@0.14.54: + resolution: + { + integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + + esbuild-linux-arm64@0.14.54: + resolution: + { + integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + + esbuild-linux-arm@0.14.54: + resolution: + { + integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + + esbuild-linux-mips64le@0.14.54: + resolution: + { + integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, + } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + + esbuild-linux-ppc64le@0.14.54: + resolution: + { + integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + + esbuild-linux-riscv64@0.14.54: + resolution: + { + integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, + } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + + esbuild-linux-s390x@0.14.54: + resolution: + { + integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, + } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + + esbuild-netbsd-64@0.14.54: + resolution: + { + integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + + esbuild-openbsd-64@0.14.54: + resolution: + { + integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + + esbuild-sunos-64@0.14.54: + resolution: + { + integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + + esbuild-windows-32@0.14.54: + resolution: + { + integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + + esbuild-windows-64@0.14.54: + resolution: + { + integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + + esbuild-windows-arm64@0.14.54: + resolution: + { + integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + + esbuild@0.14.54: + resolution: + { + integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==, + } + engines: { node: '>=12' } + hasBin: true esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==, + } + engines: { node: '>=12' } hasBin: true esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==, + } + engines: { node: '>=12' } hasBin: true escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==, + } + engines: { node: '>=6' } escape-goat@4.0.0: - resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==, + } + engines: { node: '>=12' } escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + resolution: + { + integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, + } escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: '>=0.8.0' } escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, + } + engines: { node: '>=8' } escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: '>=10' } escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==, + } + engines: { node: '>=6.0' } hasBin: true eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + resolution: + { + integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==, + } hasBin: true peerDependencies: eslint: '>=7.0.0' eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + resolution: + { + integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, + } eslint-module-utils@2.8.1: - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==, + } + engines: { node: '>=4' } peerDependencies: '@typescript-eslint/parser': '*' eslint: '*' @@ -4292,8 +7173,11 @@ packages: optional: true eslint-plugin-import@2.27.5: - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==, + } + engines: { node: '>=4' } peerDependencies: '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 @@ -4302,8 +7186,11 @@ packages: optional: true eslint-plugin-playwright@1.6.0: - resolution: {integrity: sha512-tI1E/EDbHT4Fx5KvukUG3RTIT0gk44gvTP8bNwxLCFsUXVM98ZJG5zWU6Om5JOzH9FrmN4AhMu/UKyEsu0ZoDA==} - engines: {node: '>=16.6.0'} + resolution: + { + integrity: sha512-tI1E/EDbHT4Fx5KvukUG3RTIT0gk44gvTP8bNwxLCFsUXVM98ZJG5zWU6Om5JOzH9FrmN4AhMu/UKyEsu0ZoDA==, + } + engines: { node: '>=16.6.0' } peerDependencies: eslint: '>=8.40.0' eslint-plugin-jest: '>=25' @@ -4312,8 +7199,11 @@ packages: optional: true eslint-plugin-prettier@5.1.3: - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==, + } + engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: '@types/eslint': '>=8.0.0' eslint: '>=8.0.0' @@ -4326,187 +7216,337 @@ packages: optional: true eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, + } + engines: { node: '>=8.0.0' } eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + resolution: + { + integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, + } + engines: { node: '>=4' } hasBin: true esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, + } + engines: { node: '>=0.10' } esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, + } + engines: { node: '>=4.0' } estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, + } + engines: { node: '>=4.0' } estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + } + engines: { node: '>=4.0' } estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + resolution: + { + integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, + } estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + resolution: + { + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + } esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, + } + engines: { node: '>=0.10.0' } etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, + } + engines: { node: '>= 0.6' } event-stream@3.3.4: - resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} + resolution: + { + integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==, + } event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, + } + engines: { node: '>=6' } eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + resolution: + { + integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, + } eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + resolution: + { + integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, + } events@1.1.1: - resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} - engines: {node: '>=0.4.x'} + resolution: + { + integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==, + } + engines: { node: '>=0.4.x' } events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + resolution: + { + integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, + } + engines: { node: '>=0.8.x' } execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, + } + engines: { node: '>=10' } execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + resolution: + { + integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==, + } + engines: { node: ^14.18.0 || ^16.14.0 || >=18.0.0 } execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + resolution: + { + integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, + } + engines: { node: '>=16.17' } exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==, + } + engines: { node: '>= 0.8.0' } expand-tilde@2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==, + } + engines: { node: '>=0.10.0' } expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } express-rate-limit@5.5.1: - resolution: {integrity: sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==} + resolution: + { + integrity: sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==, + } express@4.21.0: - resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==} - engines: {node: '>= 0.10.0'} + resolution: + { + integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==, + } + engines: { node: '>= 0.10.0' } extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + resolution: + { + integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, + } extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + resolution: + { + integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==, + } external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, + } + engines: { node: '>=4' } extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} + resolution: + { + integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==, + } + engines: { '0': node >=0.6.0 } fast-check@3.19.0: - resolution: {integrity: sha512-CO2JX/8/PT9bDGO1iXa5h5ey1skaKI1dvecERyhH4pp3PGjwd3KIjMAXEg79Ps9nclsdt4oPbfqiAnLU0EwrAQ==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-CO2JX/8/PT9bDGO1iXa5h5ey1skaKI1dvecERyhH4pp3PGjwd3KIjMAXEg79Ps9nclsdt4oPbfqiAnLU0EwrAQ==, + } + engines: { node: '>=8.0.0' } fast-decode-uri-component@1.0.1: - resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + resolution: + { + integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==, + } fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + resolution: + { + integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==, + } fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + resolution: + { + integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==, + } fast-glob@3.2.7: - resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==, + } + engines: { node: '>=8' } fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + resolution: + { + integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, + } + engines: { node: '>=8.6.0' } fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + } fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + resolution: + { + integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, + } fast-querystring@1.1.2: - resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + resolution: + { + integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==, + } fast-redact@3.5.0: - resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==, + } + engines: { node: '>=6' } fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + resolution: + { + integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, + } fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + resolution: + { + integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, + } faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==, + } + engines: { node: '>=0.8.0' } fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + resolution: + { + integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, + } fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + resolution: + { + integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==, + } fdir@6.4.2: - resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + resolution: + { + integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==, + } peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -4514,80 +7554,143 @@ packages: optional: true fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + resolution: + { + integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==, + } fflate@0.8.2: - resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + resolution: + { + integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==, + } figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, + } + engines: { node: '>=8' } file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + resolution: + { + integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + resolution: + { + integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==, + } fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, + } + engines: { node: '>=8' } finalhandler@1.3.1: - resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==, + } + engines: { node: '>= 0.8' } find-cache-dir@4.0.0: - resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==, + } + engines: { node: '>=14.16' } find-my-way-ts@0.1.4: - resolution: {integrity: sha512-naNl2YZ8m9LlYtPZathQBjXQQ8069uYBFq8We6w9AEGddJErVh0JZw8jd/C/2W9Ib3BjTnu+YN0/rR+ytWxNdw==} + resolution: + { + integrity: sha512-naNl2YZ8m9LlYtPZathQBjXQQ8069uYBFq8We6w9AEGddJErVh0JZw8jd/C/2W9Ib3BjTnu+YN0/rR+ytWxNdw==, + } find-node-modules@2.1.3: - resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} + resolution: + { + integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==, + } find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + resolution: + { + integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==, + } find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: '>=8' } find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, + } + engines: { node: '>=10' } find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } find-up@7.0.0: - resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==, + } + engines: { node: '>=18' } findup-sync@4.0.0: - resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==, + } + engines: { node: '>= 8' } flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + resolution: + { + integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, + } + engines: { node: ^10.12.0 || >=12.0.0 } flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + resolution: + { + integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==, + } hasBin: true flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + resolution: + { + integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==, + } fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + resolution: + { + integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==, + } follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==, + } + engines: { node: '>=4.0' } peerDependencies: debug: '*' peerDependenciesMeta: @@ -4595,18 +7698,30 @@ packages: optional: true for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, + } foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==, + } + engines: { node: '>=14' } forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + resolution: + { + integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==, + } fork-ts-checker-webpack-plugin@7.2.13: - resolution: {integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==} - engines: {node: '>=12.13.0', yarn: '>=1.0.0'} + resolution: + { + integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==, + } + engines: { node: '>=12.13.0', yarn: '>=1.0.0' } peerDependencies: typescript: '>3.6.0' vue-template-compiler: '*' @@ -4616,415 +7731,745 @@ packages: optional: true form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} + resolution: + { + integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==, + } + engines: { node: '>= 14.17' } form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} + resolution: + { + integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==, + } + engines: { node: '>= 0.12' } form-data@2.5.1: - resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} - engines: {node: '>= 0.12'} + resolution: + { + integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==, + } + engines: { node: '>= 0.12' } form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, + } + engines: { node: '>= 6' } formidable@2.1.2: - resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==} + resolution: + { + integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==, + } forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, + } + engines: { node: '>= 0.6' } fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + resolution: + { + integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, + } fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, + } + engines: { node: '>= 0.6' } from@0.1.7: - resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} + resolution: + { + integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==, + } front-matter@4.0.2: - resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} + resolution: + { + integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==, + } fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + resolution: + { + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, + } fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, + } + engines: { node: '>=12' } fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} + resolution: + { + integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==, + } + engines: { node: '>=14.14' } fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} + resolution: + { + integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==, + } + engines: { node: '>=6 <7 || >=8' } fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} + resolution: + { + integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, + } + engines: { node: '>=6 <7 || >=8' } fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, + } + engines: { node: '>=10' } fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, + } + engines: { node: '>= 8' } fs-monkey@1.0.6: - resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} + resolution: + { + integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==, + } fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { + integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, + } + engines: { node: '>= 0.4' } functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, + } gauge@2.7.4: - resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} + resolution: + { + integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==, + } deprecated: This package is no longer supported. gaxios@6.7.1: - resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==, + } + engines: { node: '>=14' } gcp-metadata@6.1.0: - resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==, + } + engines: { node: '>=14' } gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, + } + engines: { node: '>=6.9.0' } get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + resolution: + { + integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==, + } get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==, + } + engines: { node: '>= 0.4' } get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, + } + engines: { node: '>=8.0.0' } get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, + } + engines: { node: '>=8' } get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, + } + engines: { node: '>=10' } get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, + } + engines: { node: '>=16' } get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==, + } + engines: { node: '>= 0.4' } get-uri@6.0.3: - resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==, + } + engines: { node: '>= 14' } getos@3.2.1: - resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} + resolution: + { + integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==, + } getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + resolution: + { + integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==, + } git-last-commit@1.0.1: - resolution: {integrity: sha512-FDSgeMqa7GnJDxt/q0AbrxbfeTyxp4ImxEw1e4nw6NUHA5FMhFUq33dTXI4Xdgcj1VQ1q5QLWF6WxFrJ8KCBOg==} + resolution: + { + integrity: sha512-FDSgeMqa7GnJDxt/q0AbrxbfeTyxp4ImxEw1e4nw6NUHA5FMhFUq33dTXI4Xdgcj1VQ1q5QLWF6WxFrJ8KCBOg==, + } git-raw-commits@4.0.0: - resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==, + } + engines: { node: '>=16' } hasBin: true git-repo-info@2.1.1: - resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==} - engines: {node: '>= 4.0'} + resolution: + { + integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==, + } + engines: { node: '>= 4.0' } gitconfiglocal@2.1.0: - resolution: {integrity: sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==} + resolution: + { + integrity: sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==, + } glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: '>= 6' } glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, + } + engines: { node: '>=10.13.0' } glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + resolution: + { + integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, + } glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + resolution: + { + integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, + } hasBin: true glob@6.0.4: - resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} + resolution: + { + integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==, + } deprecated: Glob versions prior to v9 are no longer supported glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + resolution: + { + integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, + } deprecated: Glob versions prior to v9 are no longer supported glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==, + } + engines: { node: '>=12' } deprecated: Glob versions prior to v9 are no longer supported global-agent@3.0.0: - resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} - engines: {node: '>=10.0'} + resolution: + { + integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==, + } + engines: { node: '>=10.0' } global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==, + } + engines: { node: '>=18' } global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==, + } + engines: { node: '>=10' } global-modules@1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==, + } + engines: { node: '>=0.10.0' } global-prefix@1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==, + } + engines: { node: '>=0.10.0' } globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, + } + engines: { node: '>=4' } globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==, + } + engines: { node: '>=8' } globals@15.9.0: - resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==, + } + engines: { node: '>=18' } globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, + } + engines: { node: '>= 0.4' } globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, + } + engines: { node: '>=10' } globby@12.2.0: - resolution: {integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + resolution: + { + integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, + } google-auth-library@9.14.1: - resolution: {integrity: sha512-Rj+PMjoNFGFTmtItH7gHfbHpGVSb3vmnGK3nwNBqxQF9NoBpttSZI/rc0WiM63ma2uGDQtYEkMHkK9U6937NiA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Rj+PMjoNFGFTmtItH7gHfbHpGVSb3vmnGK3nwNBqxQF9NoBpttSZI/rc0WiM63ma2uGDQtYEkMHkK9U6937NiA==, + } + engines: { node: '>=14' } google-gax@4.4.1: - resolution: {integrity: sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==, + } + engines: { node: '>=14' } googleapis-common@7.2.0: - resolution: {integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==, + } + engines: { node: '>=14.0.0' } googleapis@126.0.1: - resolution: {integrity: sha512-4N8LLi+hj6ytK3PhE52KcM8iSGhJjtXnCDYB4fp6l+GdLbYz4FoDmx074WqMbl7iYMDN87vqD/8drJkhxW92mQ==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-4N8LLi+hj6ytK3PhE52KcM8iSGhJjtXnCDYB4fp6l+GdLbYz4FoDmx074WqMbl7iYMDN87vqD/8drJkhxW92mQ==, + } + engines: { node: '>=14.0.0' } gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + resolution: + { + integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, + } got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} + resolution: + { + integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==, + } + engines: { node: '>=10.19.0' } got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==, + } + engines: { node: '>=14.16' } graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + resolution: + { + integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, + } graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, + } graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + resolution: + { + integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, + } graphql@16.9.0: - resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + resolution: + { + integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==, + } + engines: { node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0 } gtoken@7.1.0: - resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==, + } + engines: { node: '>=14.0.0' } handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + resolution: + { + integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==, + } handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} + resolution: + { + integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==, + } + engines: { node: '>=0.4.7' } hasBin: true har-schema@2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==, + } + engines: { node: '>=4' } har-validator@5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==, + } + engines: { node: '>=6' } deprecated: this library is no longer supported harmony-reflect@1.6.2: - resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} + resolution: + { + integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==, + } has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + resolution: + { + integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, + } has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: '>=4' } has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: '>=8' } has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + resolution: + { + integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, + } has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==, + } + engines: { node: '>= 0.4' } has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, + } + engines: { node: '>= 0.4' } has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, + } + engines: { node: '>= 0.4' } has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + resolution: + { + integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==, + } has-yarn@3.0.0: - resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } has@1.0.4: - resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==, + } + engines: { node: '>= 0.4.0' } hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, + } + engines: { node: '>= 0.4' } he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + resolution: + { + integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, + } hasBin: true headers-polyfill@4.0.3: - resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + resolution: + { + integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==, + } headers-utils@1.2.5: - resolution: {integrity: sha512-DAzV5P/pk3wTU/8TLZN+zFTDv4Xa1QDTU8pRvovPetcOMbmqq8CwsAvZBLPZHH6usxyy31zMp7I4aCYb6XIf6w==} + resolution: + { + integrity: sha512-DAzV5P/pk3wTU/8TLZN+zFTDv4Xa1QDTU8pRvovPetcOMbmqq8CwsAvZBLPZHH6usxyy31zMp7I4aCYb6XIf6w==, + } hexoid@1.0.0: - resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==, + } + engines: { node: '>=8' } homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==, + } + engines: { node: '>=0.10.0' } hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + resolution: + { + integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, + } hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} + resolution: + { + integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==, + } + engines: { node: ^16.14.0 || >=18.0.0 } hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + resolution: + { + integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==, + } html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==, + } + engines: { node: '>=12' } html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + resolution: + { + integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==, + } html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + resolution: + { + integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, + } htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + resolution: + { + integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==, + } http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + resolution: + { + integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==, + } http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + resolution: + { + integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==, + } http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==, + } + engines: { node: '>= 0.6' } http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, + } + engines: { node: '>= 0.8' } http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + resolution: + { + integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==, + } http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==, + } + engines: { node: '>= 6' } http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==, + } + engines: { node: '>= 14' } http-proxy-middleware@2.0.6: - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==, + } + engines: { node: '>=12.0.0' } peerDependencies: '@types/express': ^4.17.13 peerDependenciesMeta: @@ -5032,445 +8477,790 @@ packages: optional: true http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==, + } + engines: { node: '>=8.0.0' } http-server@14.1.1: - resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==, + } + engines: { node: '>=12' } hasBin: true http-signature@1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} - engines: {node: '>=0.8', npm: '>=1.3.7'} + resolution: + { + integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==, + } + engines: { node: '>=0.8', npm: '>=1.3.7' } http-signature@1.3.6: - resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==, + } + engines: { node: '>=0.10' } http-status-codes@2.2.0: - resolution: {integrity: sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==} + resolution: + { + integrity: sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==, + } http-status-codes@2.3.0: - resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} + resolution: + { + integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==, + } http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} + resolution: + { + integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==, + } + engines: { node: '>=10.19.0' } http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} + resolution: + { + integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==, + } + engines: { node: '>=10.19.0' } https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, + } + engines: { node: '>= 6' } https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==, + } + engines: { node: '>= 14' } human-id@1.0.2: - resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + resolution: + { + integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==, + } human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + resolution: + { + integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, + } + engines: { node: '>=10.17.0' } human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} + resolution: + { + integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, + } + engines: { node: '>=14.18.0' } human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + resolution: + { + integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, + } + engines: { node: '>=16.17.0' } husky@8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==, + } + engines: { node: '>=14' } hasBin: true hyperdyperid@1.2.0: - resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} - engines: {node: '>=10.18'} + resolution: + { + integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==, + } + engines: { node: '>=10.18' } iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, + } + engines: { node: '>=0.10.0' } iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, + } + engines: { node: '>=0.10.0' } icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} + resolution: + { + integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==, + } + engines: { node: ^10 || ^12 || >= 14 } peerDependencies: postcss: ^8.1.0 identity-obj-proxy@3.0.0: - resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==, + } + engines: { node: '>=4' } ieee754@1.1.13: - resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} + resolution: + { + integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==, + } ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==, + } + engines: { node: '>= 4' } image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, + } + engines: { node: '>=0.10.0' } hasBin: true immer@10.1.1: - resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} + resolution: + { + integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==, + } immutable@4.3.5: - resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} + resolution: + { + integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==, + } import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, + } + engines: { node: '>=6' } import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==, + } + engines: { node: '>=8' } import-meta-resolve@4.0.0: - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + resolution: + { + integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==, + } imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + } + engines: { node: '>=0.8.19' } inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + resolution: + { + 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. inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + resolution: + { + integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==, + } inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + resolution: + { + integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, + } ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==, + } + engines: { node: '>=10' } ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { + integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } ini@4.1.3: - resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { + integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } inquirer@8.2.5: - resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==, + } + engines: { node: '>=12.0.0' } inquirer@9.2.18: - resolution: {integrity: sha512-Qzm+UP7L9beFyycZ9Nxzqj7WBgeJIaT4Ue0+2bmQp9yZXiUW2azrmBnp3vlInMw1wXkUmaM0hiMcht7CjJzASw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-Qzm+UP7L9beFyycZ9Nxzqj7WBgeJIaT4Ue0+2bmQp9yZXiUW2azrmBnp3vlInMw1wXkUmaM0hiMcht7CjJzASw==, + } + engines: { node: '>=18' } internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==, + } + engines: { node: '>= 0.4' } interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, + } + engines: { node: '>= 0.10' } ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} + resolution: + { + integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==, + } + engines: { node: '>= 12' } ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, + } + engines: { node: '>= 0.10' } ipaddr.js@2.2.0: - resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==, + } + engines: { node: '>= 10' } is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, + } + engines: { node: '>= 0.4' } is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==, + } + engines: { node: '>= 0.4' } is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + } is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + resolution: + { + integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, + } is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + resolution: + { + integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, + } is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: '>=8' } is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, + } + engines: { node: '>= 0.4' } is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: { node: '>= 0.4' } is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + resolution: + { + integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==, + } hasBin: true is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + resolution: + { + integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, + } is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==, + } + engines: { node: '>= 0.4' } is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, + } + engines: { node: '>= 0.4' } is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, + } + engines: { node: '>=8' } hasBin: true is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } hasBin: true is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: '>=0.10.0' } is-fullwidth-code-point@1.0.0: - resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==, + } + engines: { node: '>=0.10.0' } is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: '>=8' } is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, + } + engines: { node: '>=12' } is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==, + } + engines: { node: '>=6' } is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, + } + engines: { node: '>= 0.4' } is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: '>=0.10.0' } is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, + } + engines: { node: '>=14.16' } hasBin: true is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==, + } + engines: { node: '>=10' } is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, + } + engines: { node: '>=8' } is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==, + } + engines: { node: '>= 0.4' } is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==, + } + engines: { node: '>=16' } is-node-process@1.2.0: - resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + resolution: + { + integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==, + } is-npm@6.0.0: - resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, + } + engines: { node: '>= 0.4' } is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: '>=0.12.0' } is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, + } + engines: { node: '>=8' } is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, + } + engines: { node: '>=8' } is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==, + } + engines: { node: '>=10' } is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + resolution: + { + integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, + } is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + resolution: + { + integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==, + } is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, + } + engines: { node: '>= 0.4' } is-running@2.1.0: - resolution: {integrity: sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==} + resolution: + { + integrity: sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==, + } is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==, + } + engines: { node: '>= 0.4' } is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, + } + engines: { node: '>=8' } is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, + } + engines: { node: '>= 0.4' } is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==, + } + engines: { node: '>=4' } is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + } + engines: { node: '>= 0.4' } is-text-path@2.0.0: - resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==, + } + engines: { node: '>=8' } is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==, + } + engines: { node: '>= 0.4' } is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + resolution: + { + integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, + } is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, + } + engines: { node: '>=10' } is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + resolution: + { + integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==, + } is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } is-what@3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + resolution: + { + integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, + } is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, + } + engines: { node: '>=0.10.0' } is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, + } + engines: { node: '>=8' } is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==, + } + engines: { node: '>=16' } is-yarn-global@0.4.1: - resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==, + } + engines: { node: '>=12' } isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + } isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + } isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } isomorphic-ws@5.0.0: - resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + resolution: + { + integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==, + } peerDependencies: ws: '*' isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + resolution: + { + integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==, + } istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, + } + engines: { node: '>=8' } istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, + } + engines: { node: '>=8' } istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==, + } + engines: { node: '>=10' } istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==, + } + engines: { node: '>=10' } istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==, + } + engines: { node: '>=10' } istanbul-lib-source-maps@5.0.4: - resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==, + } + engines: { node: '>=10' } istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==, + } + engines: { node: '>=8' } jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + resolution: + { + integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, + } jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==, + } + engines: { node: '>=10' } hasBin: true jest-canvas-mock@2.5.2: - resolution: {integrity: sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==} + resolution: + { + integrity: sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==, + } jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: '@types/node': '*' ts-node: '>=9.0.0' @@ -5481,48 +9271,81 @@ packages: optional: true jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==, + } + engines: { node: '>=6' } peerDependencies: jest-resolve: '*' peerDependenciesMeta: @@ -5530,94 +9353,166 @@ packages: optional: true jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, + } + engines: { node: '>= 10.13.0' } jest-worker@28.1.3: - resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + resolution: + { + integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==, + } + engines: { node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0 } jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + resolution: + { + integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==, + } hasBin: true jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + resolution: + { + integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==, + } jmespath@0.16.0: - resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} - engines: {node: '>= 0.6.0'} + resolution: + { + integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==, + } + engines: { node: '>= 0.6.0' } jose@4.15.9: - resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} + resolution: + { + integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==, + } js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + resolution: + { + integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==, + } js-yaml-cloudformation-schema@1.0.0: - resolution: {integrity: sha512-eokVVPLsjLFuuCRQWIIaE5fX7qPUNRAAmJFXSvtzUnJcdNS0ZtAPdaFcwCrTHM+owGcBR82rlpd0b6bu8pFwQA==} + resolution: + { + integrity: sha512-eokVVPLsjLFuuCRQWIIaE5fX7qPUNRAAmJFXSvtzUnJcdNS0ZtAPdaFcwCrTHM+owGcBR82rlpd0b6bu8pFwQA==, + } js-yaml-js-types@1.0.1: - resolution: {integrity: sha512-5tpfyORs8OQ43alNERbWfYRCtWgykvzYgY46fUhrQi2+kS7N0NuuFYLZ/IrfmVm5muLTndeMublgraXiFRjEPw==} + resolution: + { + integrity: sha512-5tpfyORs8OQ43alNERbWfYRCtWgykvzYgY46fUhrQi2+kS7N0NuuFYLZ/IrfmVm5muLTndeMublgraXiFRjEPw==, + } peerDependencies: js-yaml: 4.x js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + resolution: + { + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, + } hasBin: true js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } hasBin: true jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + resolution: + { + integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==, + } jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + resolution: + { + integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==, + } jsdom@22.1.0: - resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==, + } + engines: { node: '>=16' } peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: @@ -5625,151 +9520,271 @@ packages: optional: true jsep@1.4.0: - resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} - engines: {node: '>= 10.16.0'} + resolution: + { + integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==, + } + engines: { node: '>= 10.16.0' } jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + resolution: + { + integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==, + } hasBin: true jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, + } + engines: { node: '>=4' } hasBin: true json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + resolution: + { + integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==, + } json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + resolution: + { + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, + } json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + } json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + } json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + } json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + resolution: + { + integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==, + } json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + resolution: + { + integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, + } json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + resolution: + { + integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, + } json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + resolution: + { + integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, + } hasBin: true json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + } + engines: { node: '>=6' } hasBin: true jsonc-eslint-parser@2.4.0: - resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + resolution: + { + integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==, + } jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + resolution: + { + integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, + } jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + resolution: + { + integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, + } jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} + resolution: + { + integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==, + } + engines: { '0': node >= 0.2.0 } jsonpath-plus@10.2.0: - resolution: {integrity: sha512-T9V+8iNYKFL2n2rF+w02LBOT2JjDnTjioaNFrxRy0Bv1y/hNsqR/EBK7Ojy2ythRHwmz2cRIls+9JitQGZC/sw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-T9V+8iNYKFL2n2rF+w02LBOT2JjDnTjioaNFrxRy0Bv1y/hNsqR/EBK7Ojy2ythRHwmz2cRIls+9JitQGZC/sw==, + } + engines: { node: '>=18.0.0' } hasBin: true jsonwebtoken@9.0.2: - resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} - engines: {node: '>=12', npm: '>=6'} + resolution: + { + integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==, + } + engines: { node: '>=12', npm: '>=6' } jsprim@1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} - engines: {node: '>=0.6.0'} + resolution: + { + integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==, + } + engines: { node: '>=0.6.0' } jsprim@2.0.2: - resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} - engines: {'0': node >=0.6.0} + resolution: + { + integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==, + } + engines: { '0': node >=0.6.0 } jwa@1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + resolution: + { + integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==, + } jwa@2.0.0: - resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} + resolution: + { + integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==, + } jws@3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + resolution: + { + integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==, + } jws@4.0.0: - resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} + resolution: + { + integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==, + } keygrip@1.1.0: - resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==, + } + engines: { node: '>= 0.6' } keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + resolution: + { + integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, + } kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, + } + engines: { node: '>=6' } klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==, + } + engines: { node: '>= 8' } kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + resolution: + { + integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==, + } kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + resolution: + { + integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==, + } latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==, + } + engines: { node: '>=14.16' } launch-editor@2.9.1: - resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} + resolution: + { + integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==, + } lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} + resolution: + { + integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==, + } + engines: { node: '>= 0.6.3' } less-loader@11.1.0: - resolution: {integrity: sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==} - engines: {node: '>= 14.15.0'} + resolution: + { + integrity: sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==, + } + engines: { node: '>= 14.15.0' } peerDependencies: less: ^3.5.0 || ^4.0.0 webpack: ^5.0.0 less@4.1.3: - resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==, + } + engines: { node: '>=6' } hasBin: true leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, + } + engines: { node: '>=6' } levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, + } + engines: { node: '>= 0.8.0' } license-webpack-plugin@4.0.2: - resolution: {integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==} + resolution: + { + integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==, + } peerDependencies: webpack: '*' peerDependenciesMeta: @@ -5777,31 +9792,52 @@ packages: optional: true lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + } + engines: { node: '>=10' } lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==, + } + engines: { node: '>=14' } lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } lines-and-columns@2.0.3: - resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + resolution: + { + integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==, + } lint-staged@13.3.0: - resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==} - engines: {node: ^16.14.0 || >=18.0.0} + resolution: + { + integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==, + } + engines: { node: ^16.14.0 || >=18.0.0 } hasBin: true listr2@6.6.1: - resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} - engines: {node: '>=16.0.0'} + resolution: + { + integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==, + } + engines: { node: '>=16.0.0' } peerDependencies: enquirer: '>= 2.3.0 < 3' peerDependenciesMeta: @@ -5809,370 +9845,676 @@ packages: optional: true loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} + resolution: + { + integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, + } + engines: { node: '>=6.11.5' } loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} + resolution: + { + integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==, + } + engines: { node: '>=8.9.0' } local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==, + } + engines: { node: '>=14' } locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: '>=8' } locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: '>=10' } locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } lockfile@1.0.4: - resolution: {integrity: sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==} + resolution: + { + integrity: sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==, + } lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + resolution: + { + integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, + } lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + resolution: + { + integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, + } lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + resolution: + { + integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, + } lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + resolution: + { + integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==, + } lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + resolution: + { + integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==, + } lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + resolution: + { + integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==, + } lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + resolution: + { + integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==, + } lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + resolution: + { + integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, + } lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + resolution: + { + integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==, + } lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + resolution: + { + integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==, + } lodash.map@4.6.0: - resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} + resolution: + { + integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==, + } lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + resolution: + { + integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==, + } lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + resolution: + { + integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, + } lodash.mergewith@4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + resolution: + { + integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==, + } lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + resolution: + { + integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==, + } lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + resolution: + { + integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==, + } lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + resolution: + { + integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==, + } lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + resolution: + { + integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, + } lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + resolution: + { + integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==, + } lodash.upperfirst@4.3.1: - resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + resolution: + { + integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==, + } lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, + } + engines: { node: '>=10' } log-update@5.0.1: - resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } logform@2.6.1: - resolution: {integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==, + } + engines: { node: '>= 12.0.0' } long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + resolution: + { + integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==, + } longest@2.0.1: - resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==, + } + engines: { node: '>=0.10.0' } loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } hasBin: true loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + resolution: + { + integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==, + } lowdb@1.0.0: - resolution: {integrity: sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==, + } + engines: { node: '>=4' } lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==, + } + engines: { node: '>=8' } lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + resolution: + { + integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, + } lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + resolution: + { + integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, + } lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, + } + engines: { node: '>=10' } lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, + } + engines: { node: '>=12' } lunr@2.3.9: - resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + resolution: + { + integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==, + } magic-string@0.30.11: - resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + resolution: + { + integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==, + } magicast@0.3.4: - resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} + resolution: + { + integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==, + } make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, + } + engines: { node: '>=6' } make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==, + } + engines: { node: '>=10' } make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + resolution: + { + integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, + } makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + resolution: + { + integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, + } map-stream@0.1.0: - resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} + resolution: + { + integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==, + } markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + resolution: + { + integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==, + } hasBin: true matcher@3.0.0: - resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==, + } + engines: { node: '>=10' } mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + resolution: + { + integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==, + } mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + resolution: + { + integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, + } mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + resolution: + { + integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==, + } media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, + } + engines: { node: '>= 0.6' } memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==, + } + engines: { node: '>= 4.0.0' } memfs@4.12.0: - resolution: {integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==, + } + engines: { node: '>= 4.0.0' } meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} + resolution: + { + integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==, + } + engines: { node: '>=16.10' } merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + resolution: + { + integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==, + } merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: '>= 8' } merge@2.1.1: - resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + resolution: + { + integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==, + } methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, + } + engines: { node: '>= 0.6' } micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==, + } + engines: { node: '>=8.6' } mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + } + engines: { node: '>= 0.6' } mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: '>= 0.6' } mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, + } + engines: { node: '>=4' } hasBin: true mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==, + } + engines: { node: '>=4.0.0' } hasBin: true mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==, + } + engines: { node: '>=10.0.0' } hasBin: true mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + } + engines: { node: '>=6' } mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, + } + engines: { node: '>=12' } mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==, + } + engines: { node: '>=4' } mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==, + } + engines: { node: '>=10' } mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } mini-css-extract-plugin@2.4.7: - resolution: {integrity: sha512-euWmddf0sk9Nv1O0gfeeUAvAkoSlWncNLF77C0TP2+WoPvy8mAHKOzMajcCz2dzvyt3CNgxb1obIEVFIRxaipg==} - engines: {node: '>= 12.13.0'} + resolution: + { + integrity: sha512-euWmddf0sk9Nv1O0gfeeUAvAkoSlWncNLF77C0TP2+WoPvy8mAHKOzMajcCz2dzvyt3CNgxb1obIEVFIRxaipg==, + } + engines: { node: '>= 12.13.0' } peerDependencies: webpack: ^5.0.0 minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + resolution: + { + integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, + } minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + resolution: + { + integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==, + } minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, + } + engines: { node: '>=10' } minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==, + } + engines: { node: '>=10' } minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, + } + engines: { node: '>=16 || 14 >=14.17' } minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, + } + engines: { node: '>=16 || 14 >=14.17' } minimist@1.2.7: - resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + resolution: + { + integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==, + } minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + resolution: + { + integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + } minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, + } + engines: { node: '>=8' } minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==, + } + engines: { node: '>=8' } minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==, + } + engines: { node: '>=8' } minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, + } + engines: { node: '>=16 || 14 >=14.17' } minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, + } + engines: { node: '>= 8' } mkcert@3.2.0: - resolution: {integrity: sha512-026Eivq9RoOjOuLJGzbhGwXUAjBxRX11Z7Jbm4/7lqT/Av+XNy9SPrJte6+UpEt7i+W3e/HZYxQqlQcqXZWSzg==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-026Eivq9RoOjOuLJGzbhGwXUAjBxRX11Z7Jbm4/7lqT/Av+XNy9SPrJte6+UpEt7i+W3e/HZYxQqlQcqXZWSzg==, + } + engines: { node: '>=16' } hasBin: true mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + resolution: + { + integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, + } hasBin: true mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, + } + engines: { node: '>=10' } hasBin: true mlly@1.6.1: - resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} + resolution: + { + integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==, + } monkeypatch@1.0.0: - resolution: {integrity: sha512-6tG0IrCUUIBuAspnbdmOAd+D/AptB/ya9JLujp88NIAuFuTGdGvCKtDkc6pwNOcIJ6nKLm3FjJlaCdx8vr3r2w==} + resolution: + { + integrity: sha512-6tG0IrCUUIBuAspnbdmOAd+D/AptB/ya9JLujp88NIAuFuTGdGvCKtDkc6pwNOcIJ6nKLm3FjJlaCdx8vr3r2w==, + } moo-color@1.0.3: - resolution: {integrity: sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==} + resolution: + { + integrity: sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==, + } mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, + } + engines: { node: '>=4' } mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==, + } + engines: { node: '>=10' } ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + resolution: + { + integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, + } ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } msw@2.5.1: - resolution: {integrity: sha512-V0BmHvFkbWGXqbyrc+XiuQ8DU3qzcb6lb8gB9Vzltp3cgHLHLCDF/KmmFo0xw58StNaRMTebw3/xpWVvU9xq9g==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-V0BmHvFkbWGXqbyrc+XiuQ8DU3qzcb6lb8gB9Vzltp3cgHLHLCDF/KmmFo0xw58StNaRMTebw3/xpWVvU9xq9g==, + } + engines: { node: '>=18' } hasBin: true peerDependencies: typescript: '>= 4.8.x' @@ -6181,70 +10523,124 @@ packages: optional: true muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + resolution: + { + integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==, + } multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + resolution: + { + integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==, + } hasBin: true multipasta@0.2.2: - resolution: {integrity: sha512-KKGdmXIJUmt9BV45LsbUdMnju8eCNSyF9KpbyqK2E3wQXjpPQOg52/Hc+nsmBacmEkNxLVT5h1y3ZgEXB4prXg==} + resolution: + { + integrity: sha512-KKGdmXIJUmt9BV45LsbUdMnju8eCNSyF9KpbyqK2E3wQXjpPQOg52/Hc+nsmBacmEkNxLVT5h1y3ZgEXB4prXg==, + } mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + resolution: + { + integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, + } mute-stream@1.0.0: - resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { + integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { + integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==, + } + engines: { node: ^18.17.0 || >=20.5.0 } mv@2.1.1: - resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==, + } + engines: { node: '>=0.8.0' } nanoclone@0.2.1: - resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} + resolution: + { + integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==, + } nanoid@5.0.9: - resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} - engines: {node: ^18 || >=20} + resolution: + { + integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==, + } + engines: { node: ^18 || >=20 } hasBin: true natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + resolution: + { + integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, + } ncp@2.0.0: - resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} + resolution: + { + integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==, + } hasBin: true needle@3.3.1: - resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} - engines: {node: '>= 4.4.x'} + resolution: + { + integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==, + } + engines: { node: '>= 4.4.x' } hasBin: true negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, + } + engines: { node: '>= 0.6' } neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + resolution: + { + integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, + } netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==, + } + engines: { node: '>= 0.4.0' } node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + resolution: + { + integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==, + } node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + resolution: + { + integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==, + } node-fetch@2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} - engines: {node: 4.x || >=6.0.0} + resolution: + { + integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, + } + engines: { node: 4.x || >=6.0.0 } peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -6252,8 +10648,11 @@ packages: optional: true node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} + resolution: + { + integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, + } + engines: { node: 4.x || >=6.0.0 } peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -6261,83 +10660,149 @@ packages: optional: true node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} + resolution: + { + integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==, + } + engines: { node: '>= 6.13.0' } node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + resolution: + { + integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, + } node-machine-id@1.1.12: - resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + resolution: + { + integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==, + } node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + resolution: + { + integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==, + } node-request-interceptor@0.6.3: - resolution: {integrity: sha512-8I2V7H2Ch0NvW7qWcjmS0/9Lhr0T6x7RD6PDirhvWEkUQvy83x8BA4haYMr09r/rig7hcgYSjYh6cd4U7G1vLA==} + resolution: + { + integrity: sha512-8I2V7H2Ch0NvW7qWcjmS0/9Lhr0T6x7RD6PDirhvWEkUQvy83x8BA4haYMr09r/rig7hcgYSjYh6cd4U7G1vLA==, + } normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + resolution: + { + integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, + } normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: '>=0.10.0' } normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, + } + engines: { node: '>=0.10.0' } normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==, + } + engines: { node: '>=10' } normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==, + } + engines: { node: '>=14.16' } npm-cli-login@1.0.0: - resolution: {integrity: sha512-x9Rj2oSnQ8YUGcQ8IHH6pCqEAY+KqkbE2YyW6HlrN+lbNVhCoqDcDXKPWbGcKSNHQsxt5Zoe7Y5khGAJI9HdlQ==} + resolution: + { + integrity: sha512-x9Rj2oSnQ8YUGcQ8IHH6pCqEAY+KqkbE2YyW6HlrN+lbNVhCoqDcDXKPWbGcKSNHQsxt5Zoe7Y5khGAJI9HdlQ==, + } hasBin: true npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} - engines: {node: ^16.14.0 || >=18.0.0} + resolution: + { + integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==, + } + engines: { node: ^16.14.0 || >=18.0.0 } npm-package-arg@6.1.1: - resolution: {integrity: sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==} + resolution: + { + integrity: sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==, + } npm-registry-client@8.6.0: - resolution: {integrity: sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==} + resolution: + { + integrity: sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==, + } deprecated: This package is no longer supported. npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, + } + engines: { node: '>=8' } npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } npmlog@4.1.2: - resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} + resolution: + { + integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==, + } deprecated: This package is no longer supported. nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + resolution: + { + integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, + } number-is-nan@1.0.1: - resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==, + } + engines: { node: '>=0.10.0' } nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + resolution: + { + integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==, + } nx-cloud@19.1.0: - resolution: {integrity: sha512-f24vd5/57/MFSXNMfkerdDiK0EvScGOKO71iOWgJNgI1xVweDRmOA/EfjnPMRd5m+pnoPs/4A7DzuwSW0jZVyw==} + resolution: + { + integrity: sha512-f24vd5/57/MFSXNMfkerdDiK0EvScGOKO71iOWgJNgI1xVweDRmOA/EfjnPMRd5m+pnoPs/4A7DzuwSW0jZVyw==, + } hasBin: true nx@20.2.2: - resolution: {integrity: sha512-wHgC/NQ82Q3LOeUZXPI2j/JhpZwb7JjRc0uDn3kQU+lN/ulySCJHTHCf4CIglW4NjZeN1WZZ7YMeddtFWETGGA==} + resolution: + { + integrity: sha512-wHgC/NQ82Q3LOeUZXPI2j/JhpZwb7JjRc0uDn3kQU+lN/ulySCJHTHCf4CIglW4NjZeN1WZZ7YMeddtFWETGGA==, + } hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -6349,937 +10814,1624 @@ packages: optional: true oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + resolution: + { + integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==, + } object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: '>=0.10.0' } object-hash@2.2.0: - resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==, + } + engines: { node: '>= 6' } object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, + } + engines: { node: '>= 6' } object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + resolution: + { + integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, + } object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, + } + engines: { node: '>= 0.4' } object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==, + } + engines: { node: '>= 0.4' } object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==, + } + engines: { node: '>= 0.4' } obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + resolution: + { + integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==, + } oidc-token-hash@5.0.3: - resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==} - engines: {node: ^10.13.0 || >=12.0.0} + resolution: + { + integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==, + } + engines: { node: ^10.13.0 || >=12.0.0 } on-exit-leak-free@0.2.0: - resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} + resolution: + { + integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==, + } on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, + } + engines: { node: '>= 0.8' } on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==, + } + engines: { node: '>= 0.8' } once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + resolution: + { + integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==, + } onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + } + engines: { node: '>=6' } onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, + } + engines: { node: '>=12' } open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==, + } + engines: { node: '>=18' } open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, + } + engines: { node: '>=12' } opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + resolution: + { + integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==, + } hasBin: true openid-client@5.7.0: - resolution: {integrity: sha512-4GCCGZt1i2kTHpwvaC/sCpTpQqDnBzDzuJcJMbH+y1Q5qI8U8RBvoSh28svarXszZHR5BAMXbJPX1PGPRE3VOA==} + resolution: + { + integrity: sha512-4GCCGZt1i2kTHpwvaC/sCpTpQqDnBzDzuJcJMbH+y1Q5qI8U8RBvoSh28svarXszZHR5BAMXbJPX1PGPRE3VOA==, + } optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==, + } + engines: { node: '>= 0.8.0' } ora@5.3.0: - resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==, + } + engines: { node: '>=10' } ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, + } + engines: { node: '>=10' } os-homedir@1.0.2: - resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==, + } + engines: { node: '>=0.10.0' } os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, + } + engines: { node: '>=0.10.0' } osenv@0.1.5: - resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} + resolution: + { + integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==, + } deprecated: This package is no longer supported. outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + resolution: + { + integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==, + } outvariant@1.4.3: - resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + resolution: + { + integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==, + } p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==, + } + engines: { node: '>=8' } p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} + resolution: + { + integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==, + } + engines: { node: '>=12.20' } p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==, + } + engines: { node: '>=8' } p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: '>=6' } p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, + } + engines: { node: '>=10' } p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==, + } + engines: { node: '>=18' } p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: '>=8' } p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, + } + engines: { node: '>=10' } p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==, + } + engines: { node: '>=6' } p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} - engines: {node: '>=16.17'} + resolution: + { + integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==, + } + engines: { node: '>=16.17' } p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: '>=6' } pac-proxy-agent@7.0.2: - resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==, + } + engines: { node: '>= 14' } pac-resolver@7.0.1: - resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==, + } + engines: { node: '>= 14' } package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + resolution: + { + integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==, + } package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==, + } + engines: { node: '>=14.16' } package-manager-detector@0.2.2: - resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} + resolution: + { + integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==, + } parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: '>=6' } parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + } + engines: { node: '>=8' } parse-node-version@1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==, + } + engines: { node: '>= 0.10' } parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==, + } + engines: { node: '>=0.10.0' } parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + resolution: + { + integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==, + } parse5@4.0.0: - resolution: {integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==} + resolution: + { + integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==, + } parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + resolution: + { + integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, + } parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, + } + engines: { node: '>= 0.8' } path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + resolution: + { + integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==, + } path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: '>=8' } path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: '>=0.10.0' } path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: '>=8' } path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, + } + engines: { node: '>=12' } path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} + resolution: + { + integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, + } + engines: { node: '>=16 || 14 >=14.18' } path-to-regexp@0.1.10: - resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} + resolution: + { + integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==, + } path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + resolution: + { + integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==, + } path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: '>=8' } pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + resolution: + { + integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, + } pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + resolution: + { + integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==, + } pause-stream@0.0.11: - resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + resolution: + { + integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==, + } pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + resolution: + { + integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==, + } performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + resolution: + { + integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, + } picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + resolution: + { + integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==, + } picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: '>=8.6' } picomatch@3.0.1: - resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==, + } + engines: { node: '>=10' } picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==, + } + engines: { node: '>=12' } pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, + } + engines: { node: '>=0.10' } hasBin: true pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, + } + engines: { node: '>=0.10.0' } pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, + } + engines: { node: '>=4' } pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, + } + engines: { node: '>=6' } pino-abstract-transport@0.5.0: - resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} + resolution: + { + integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==, + } pino-abstract-transport@1.1.0: - resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} + resolution: + { + integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==, + } pino-std-serializers@4.0.0: - resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} + resolution: + { + integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==, + } pino@7.11.0: - resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} + resolution: + { + integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==, + } hasBin: true pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + } + engines: { node: '>= 6' } pkg-dir@7.0.0: - resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==, + } + engines: { node: '>=14.16' } pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + resolution: + { + integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==, + } pkginfo@0.4.1: - resolution: {integrity: sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ==, + } + engines: { node: '>= 0.4.0' } playwright-core@1.47.2: - resolution: {integrity: sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ==, + } + engines: { node: '>=18' } hasBin: true playwright@1.47.2: - resolution: {integrity: sha512-nx1cLMmQWqmA3UsnjaaokyoUpdVaaDhJhMoxX2qj3McpjnsqFHs516QAKYhqHAgOP+oCFTEOCOAaD1RgD/RQfA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-nx1cLMmQWqmA3UsnjaaokyoUpdVaaDhJhMoxX2qj3McpjnsqFHs516QAKYhqHAgOP+oCFTEOCOAaD1RgD/RQfA==, + } + engines: { node: '>=18' } hasBin: true portfinder@1.0.32: - resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} - engines: {node: '>= 0.12.0'} + resolution: + { + integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==, + } + engines: { node: '>= 0.12.0' } possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==, + } + engines: { node: '>= 0.4' } postcss-calc@9.0.1: - resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.2.2 postcss-colormin@6.1.0: - resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-convert-values@6.1.0: - resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-discard-comments@6.0.2: - resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-discard-duplicates@6.0.3: - resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-discard-empty@6.0.3: - resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-discard-overridden@6.0.2: - resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-import@14.1.0: - resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==, + } + engines: { node: '>=10.0.0' } peerDependencies: postcss: ^8.0.0 postcss-loader@6.2.1: - resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} - engines: {node: '>= 12.13.0'} + resolution: + { + integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==, + } + engines: { node: '>= 12.13.0' } peerDependencies: postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 postcss-merge-longhand@6.0.5: - resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-merge-rules@6.1.1: - resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-minify-font-values@6.1.0: - resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-minify-gradients@6.0.3: - resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-minify-params@6.1.0: - resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-minify-selectors@6.0.4: - resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} + resolution: + { + integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==, + } + engines: { node: ^10 || ^12 || >= 14 } peerDependencies: postcss: ^8.1.0 postcss-modules-local-by-default@4.0.5: - resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} - engines: {node: ^10 || ^12 || >= 14} + resolution: + { + integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==, + } + engines: { node: ^10 || ^12 || >= 14 } peerDependencies: postcss: ^8.1.0 postcss-modules-scope@3.2.0: - resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} - engines: {node: ^10 || ^12 || >= 14} + resolution: + { + integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==, + } + engines: { node: ^10 || ^12 || >= 14 } peerDependencies: postcss: ^8.1.0 postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} + resolution: + { + integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==, + } + engines: { node: ^10 || ^12 || >= 14 } peerDependencies: postcss: ^8.1.0 postcss-normalize-charset@6.0.2: - resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-display-values@6.0.2: - resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-positions@6.0.2: - resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-repeat-style@6.0.2: - resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-string@6.0.2: - resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-timing-functions@6.0.2: - resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-unicode@6.1.0: - resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-url@6.0.2: - resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-normalize-whitespace@6.0.2: - resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-ordered-values@6.0.2: - resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-reduce-initial@6.1.0: - resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-reduce-transforms@6.0.2: - resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==, + } + engines: { node: '>=4' } postcss-svgo@6.0.3: - resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} - engines: {node: ^14 || ^16 || >= 18} + resolution: + { + integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==, + } + engines: { node: ^14 || ^16 || >= 18 } peerDependencies: postcss: ^8.4.31 postcss-unique-selectors@6.0.4: - resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, + } postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==, + } + engines: { node: ^10 || ^12 || >=14 } prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + } + engines: { node: '>= 0.8.0' } prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, + } + engines: { node: '>=6.0.0' } prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, + } + engines: { node: '>=10.13.0' } hasBin: true prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==, + } + engines: { node: '>=14' } hasBin: true pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } pretty-quick@4.0.0: - resolution: {integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==, + } + engines: { node: '>=14' } hasBin: true peerDependencies: prettier: ^3.0.0 proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { + integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + resolution: + { + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, + } process-warning@1.0.0: - resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} + resolution: + { + integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==, + } process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} + resolution: + { + integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, + } + engines: { node: '>= 0.6.0' } property-expr@2.0.6: - resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + resolution: + { + integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==, + } proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + resolution: + { + integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==, + } proto3-json-serializer@2.0.2: - resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==, + } + engines: { node: '>=14.0.0' } protobufjs@7.4.0: - resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==, + } + engines: { node: '>=12.0.0' } proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, + } + engines: { node: '>= 0.10' } proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + resolution: + { + integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, + } prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + resolution: + { + integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==, + } ps-tree@1.2.0: - resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==, + } + engines: { node: '>= 0.10' } hasBin: true psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + resolution: + { + integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, + } pump@3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + resolution: + { + integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==, + } punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==, + } + engines: { node: '>=6' } punycode@1.3.2: - resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} + resolution: + { + integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==, + } punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, + } + engines: { node: '>=6' } pupa@3.1.0: - resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} - engines: {node: '>=12.20'} + resolution: + { + integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==, + } + engines: { node: '>=12.20' } pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + resolution: + { + integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==, + } qs@6.10.4: - resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==, + } + engines: { node: '>=0.6' } qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, + } + engines: { node: '>=0.6' } qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==, + } + engines: { node: '>=0.6' } qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==, + } + engines: { node: '>=0.6' } querystring@0.2.0: - resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} - engines: {node: '>=0.4.x'} + resolution: + { + integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==, + } + engines: { node: '>=0.4.x' } deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + resolution: + { + integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, + } queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + resolution: + { + integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==, + } quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + resolution: + { + integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==, + } quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==, + } + engines: { node: '>=10' } randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + resolution: + { + integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, + } range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, + } + engines: { node: '>= 0.6' } raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, + } + engines: { node: '>= 0.8' } rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + resolution: + { + integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, + } hasBin: true react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + resolution: + { + integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, + } react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==, + } + engines: { node: '>=0.10.0' } read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + resolution: + { + integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, + } read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==, + } + engines: { node: '>=6' } readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + resolution: + { + integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, + } readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, + } + engines: { node: '>= 6' } readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + resolution: + { + integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==, + } readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: '>=8.10.0' } real-require@0.1.0: - resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} - engines: {node: '>= 12.13.0'} + resolution: + { + integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==, + } + engines: { node: '>= 12.13.0' } rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, + } + engines: { node: '>= 0.10' } reconnecting-websocket@4.4.0: - resolution: {integrity: sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng==} + resolution: + { + integrity: sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng==, + } redux-thunk@3.1.0: - resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + resolution: + { + integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==, + } peerDependencies: redux: ^5.0.0 redux@5.0.1: - resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + resolution: + { + integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==, + } regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==, + } + engines: { node: '>=4' } regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + resolution: + { + integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, + } regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + resolution: + { + integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, + } regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + resolution: + { + integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==, + } regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==, + } + engines: { node: '>= 0.4' } regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==, + } + engines: { node: '>=4' } registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==, + } + engines: { node: '>=14' } registry-url@6.0.1: - resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==, + } + engines: { node: '>=12' } regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + resolution: + { + integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==, + } hasBin: true request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==, + } + engines: { node: '>= 6' } deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: '>=0.10.0' } require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: '>=0.10.0' } requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolution: + { + integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, + } reselect@5.1.1: - resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + resolution: + { + integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==, + } resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolution: + { + integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==, + } resolve-dir@1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==, + } + engines: { node: '>=0.10.0' } resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: '>=4' } resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, + } + engines: { node: '>=8' } resolve.exports@1.1.0: - resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==, + } + engines: { node: '>=10' } resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==, + } + engines: { node: '>=10' } resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } hasBin: true responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + resolution: + { + integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==, + } responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==, + } + engines: { node: '>=14.16' } restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, + } + engines: { node: '>=8' } restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } retry-request@7.0.2: - resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==, + } + engines: { node: '>=14' } retry@0.10.1: - resolution: {integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==} + resolution: + { + integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==, + } retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==, + } + engines: { node: '>= 4' } reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: '>=1.0.0', node: '>=0.10.0' } rfc4648@1.5.3: - resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} + resolution: + { + integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==, + } rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + resolution: + { + integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==, + } rimraf@2.4.5: - resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} + resolution: + { + integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==, + } deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@2.5.4: - resolution: {integrity: sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==} + resolution: + { + integrity: sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==, + } deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + resolution: + { + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, + } deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true roarr@2.15.4: - resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} - engines: {node: '>=8.0'} + resolution: + { + integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==, + } + engines: { node: '>=8.0' } rollup@4.22.5: - resolution: {integrity: sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} + resolution: + { + integrity: sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==, + } + engines: { node: '>=18.0.0', npm: '>=8.0.0' } hasBin: true rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + resolution: + { + integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==, + } run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==, + } + engines: { node: '>=18' } run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} + resolution: + { + integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, + } + engines: { node: '>=0.12.0' } run-async@3.0.0: - resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} - engines: {node: '>=0.12.0'} + resolution: + { + integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==, + } + engines: { node: '>=0.12.0' } run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + resolution: + { + integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==, + } safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} + resolution: + { + integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==, + } + engines: { node: '>=0.4' } safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + } safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==, + } + engines: { node: '>= 0.4' } safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==, + } + engines: { node: '>=10' } safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } sass-loader@12.6.0: - resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==} - engines: {node: '>= 12.13.0'} + resolution: + { + integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==, + } + engines: { node: '>= 12.13.0' } peerDependencies: fibers: '>= 3.1.0' node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -7297,491 +12449,875 @@ packages: optional: true sass@1.75.0: - resolution: {integrity: sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==, + } + engines: { node: '>=14.0.0' } hasBin: true sax@1.2.1: - resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} + resolution: + { + integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==, + } sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + resolution: + { + integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==, + } saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} + resolution: + { + integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==, + } + engines: { node: '>=v12.22.7' } schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==, + } + engines: { node: '>= 10.13.0' } schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} + resolution: + { + integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==, + } + engines: { node: '>= 12.13.0' } secure-compare@3.0.1: - resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} + resolution: + { + integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==, + } select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + resolution: + { + integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==, + } selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==, + } + engines: { node: '>=10' } semver-compare@1.0.0: - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + resolution: + { + integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==, + } semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==, + } + engines: { node: '>=12' } semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + resolution: + { + integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, + } hasBin: true semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + } hasBin: true semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, + } + engines: { node: '>=10' } hasBin: true semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==, + } + engines: { node: '>=10' } hasBin: true semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==, + } + engines: { node: '>=10' } hasBin: true send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==, + } + engines: { node: '>= 0.8.0' } serialize-error@7.0.1: - resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==, + } + engines: { node: '>=10' } serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + resolution: + { + integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, + } serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==, + } + engines: { node: '>= 0.8.0' } serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==, + } + engines: { node: '>= 0.8.0' } set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + resolution: + { + integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, + } set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, + } + engines: { node: '>= 0.4' } set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==, + } + engines: { node: '>= 0.4' } setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + resolution: + { + integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==, + } setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + resolution: + { + integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, + } shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: '>=8' } shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: '>=8' } shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + resolution: + { + integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==, + } shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, + } + engines: { node: '>=4' } hasBin: true shx@0.3.4: - resolution: {integrity: sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==, + } + engines: { node: '>=6' } hasBin: true side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==, + } + engines: { node: '>= 0.4' } siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + resolution: + { + integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, + } signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: '>=14' } simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + resolution: + { + integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, + } sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==, + } + engines: { node: '>= 10' } slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + } + engines: { node: '>=8' } slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==, + } + engines: { node: '>=12' } slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, + } + engines: { node: '>=10' } slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, + } + engines: { node: '>=12' } slide@1.1.6: - resolution: {integrity: sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==} + resolution: + { + integrity: sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==, + } smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + resolution: + { + integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==, + } + engines: { node: '>= 6.0.0', npm: '>= 3.0.0' } snyk@1.1288.1: - resolution: {integrity: sha512-XFJPvRrYb7Min/GrUd9t926nNXSN8YpT5nl/lzctsSpF+xFxoneTcYcEZXwPoSBZ/RIcHFoo0teo1aY8kloaqQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-XFJPvRrYb7Min/GrUd9t926nNXSN8YpT5nl/lzctsSpF+xFxoneTcYcEZXwPoSBZ/RIcHFoo0teo1aY8kloaqQ==, + } + engines: { node: '>=12' } hasBin: true sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + resolution: + { + integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==, + } socks-proxy-agent@8.0.4: - resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==, + } + engines: { node: '>= 14' } socks@2.8.3: - resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + resolution: + { + integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==, + } + engines: { node: '>= 10.0.0', npm: '>= 3.0.0' } sonic-boom@2.8.0: - resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} + resolution: + { + integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==, + } sonic-boom@3.8.0: - resolution: {integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==} + resolution: + { + integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==, + } source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==, + } + engines: { node: '>=0.10.0' } source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, + } + engines: { node: '>=0.10.0' } source-map-loader@5.0.0: - resolution: {integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==} - engines: {node: '>= 18.12.0'} + resolution: + { + integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==, + } + engines: { node: '>= 18.12.0' } peerDependencies: webpack: ^5.72.1 source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + resolution: + { + integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==, + } source-map-support@0.5.19: - resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} + resolution: + { + integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==, + } source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: '>=0.10.0' } source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, + } + engines: { node: '>= 8' } spawndamnit@2.0.0: - resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + resolution: + { + integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==, + } spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + resolution: + { + integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, + } spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + resolution: + { + integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==, + } spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + resolution: + { + integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, + } spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + resolution: + { + integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==, + } spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + resolution: + { + integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==, + } spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==, + } + engines: { node: '>=6.0.0' } split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} + resolution: + { + integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, + } + engines: { node: '>= 10.x' } split@0.3.3: - resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} + resolution: + { + integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==, + } sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + resolution: + { + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, + } sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + resolution: + { + integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==, + } sshpk@1.18.0: - resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==, + } + engines: { node: '>=0.10.0' } hasBin: true ssri@12.0.0: - resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { + integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==, + } + engines: { node: ^18.17.0 || >=20.5.0 } stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + resolution: + { + integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==, + } stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==, + } + engines: { node: '>=10' } stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + resolution: + { + integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, + } statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, + } + engines: { node: '>= 0.6' } statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, + } + engines: { node: '>= 0.8' } std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + resolution: + { + integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==, + } steno@0.4.4: - resolution: {integrity: sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==} + resolution: + { + integrity: sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==, + } stream-buffers@3.0.3: - resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} - engines: {node: '>= 0.10.0'} + resolution: + { + integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==, + } + engines: { node: '>= 0.10.0' } stream-combiner@0.0.4: - resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} + resolution: + { + integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==, + } stream-events@1.0.5: - resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==} + resolution: + { + integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==, + } stream-shift@1.0.3: - resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + resolution: + { + integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==, + } streamx@2.20.1: - resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} + resolution: + { + integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==, + } strict-event-emitter@0.1.0: - resolution: {integrity: sha512-8hSYfU+WKLdNcHVXJ0VxRXiPESalzRe7w1l8dg9+/22Ry+iZQUoQuoJ27R30GMD1TiyYINWsIEGY05WrskhSKw==} + resolution: + { + integrity: sha512-8hSYfU+WKLdNcHVXJ0VxRXiPESalzRe7w1l8dg9+/22Ry+iZQUoQuoJ27R30GMD1TiyYINWsIEGY05WrskhSKw==, + } strict-event-emitter@0.5.1: - resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + resolution: + { + integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==, + } string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} + resolution: + { + integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, + } + engines: { node: '>=0.6.19' } string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==, + } + engines: { node: '>=10' } string-width@1.0.2: - resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==, + } + engines: { node: '>=0.10.0' } string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: '>=8' } string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: '>=12' } string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==, + } + engines: { node: '>= 0.4' } string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + resolution: + { + integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==, + } string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==, + } + engines: { node: '>= 0.4' } string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + resolution: + { + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, + } string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + } strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==, + } + engines: { node: '>=0.10.0' } strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: '>=8' } strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: '>=12' } strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: '>=4' } strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==, + } + engines: { node: '>=8' } strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, + } + engines: { node: '>=6' } strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, + } + engines: { node: '>=12' } strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, + } + engines: { node: '>=0.10.0' } strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, + } + engines: { node: '>=8' } strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + resolution: + { + integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==, + } stubs@3.0.0: - resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} + resolution: + { + integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==, + } style-loader@3.3.4: - resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} - engines: {node: '>= 12.13.0'} + resolution: + { + integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==, + } + engines: { node: '>= 12.13.0' } peerDependencies: webpack: ^5.0.0 stylehacks@6.1.1: - resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} - engines: {node: ^14 || ^16 || >=18.0} + resolution: + { + integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==, + } + engines: { node: ^14 || ^16 || >=18.0 } peerDependencies: postcss: ^8.4.31 stylus-loader@7.1.3: - resolution: {integrity: sha512-TY0SKwiY7D2kMd3UxaWKSf3xHF0FFN/FAfsSqfrhxRT/koXTwffq2cgEWDkLQz7VojMu7qEEHt5TlMjkPx9UDw==} - engines: {node: '>= 14.15.0'} + resolution: + { + integrity: sha512-TY0SKwiY7D2kMd3UxaWKSf3xHF0FFN/FAfsSqfrhxRT/koXTwffq2cgEWDkLQz7VojMu7qEEHt5TlMjkPx9UDw==, + } + engines: { node: '>= 14.15.0' } peerDependencies: stylus: '>=0.52.4' webpack: ^5.0.0 stylus@0.64.0: - resolution: {integrity: sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==, + } + engines: { node: '>=16' } hasBin: true superagent@8.1.2: - resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==} - engines: {node: '>=6.4.0 <13 || >=14'} + resolution: + { + integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==, + } + engines: { node: '>=6.4.0 <13 || >=14' } deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: '>=4' } supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: '>=8' } supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, + } + engines: { node: '>=10' } supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: '>= 0.4' } svgo@3.3.2: - resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==, + } + engines: { node: '>=14.0.0' } hasBin: true swagger-ui-dist@5.17.14: - resolution: {integrity: sha512-CVbSfaLpstV65OnSjbXfVd6Sta3q3F7Cj/yYuvHMp1P90LztOLs6PfUnKEVAeiIVQt9u2SaPwv0LiH/OyMjHRw==} + resolution: + { + integrity: sha512-CVbSfaLpstV65OnSjbXfVd6Sta3q3F7Cj/yYuvHMp1P90LztOLs6PfUnKEVAeiIVQt9u2SaPwv0LiH/OyMjHRw==, + } swc-loader@0.1.15: - resolution: {integrity: sha512-cn1WPIeQJvXM4bbo3OwdEIapsQ4uUGOfyFj0h2+2+brT0k76DCGnZXDE2KmcqTd2JSQ+b61z2NPMib7eEwMYYw==} + resolution: + { + integrity: sha512-cn1WPIeQJvXM4bbo3OwdEIapsQ4uUGOfyFj0h2+2+brT0k76DCGnZXDE2KmcqTd2JSQ+b61z2NPMib7eEwMYYw==, + } peerDependencies: '@swc/core': ^1.2.52 webpack: '>=2' symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + resolution: + { + integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, + } synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==, + } + engines: { node: ^14.18.0 || >=16.0.0 } table@6.8.2: - resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==, + } + engines: { node: '>=10.0.0' } tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, + } + engines: { node: '>=6' } tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, + } + engines: { node: '>=6' } tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + resolution: + { + integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==, + } tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==, + } + engines: { node: '>=10' } teeny-request@9.0.0: - resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==, + } + engines: { node: '>=14' } temp-fs@0.9.9: - resolution: {integrity: sha512-WfecDCR1xC9b0nsrzSaxPf3ZuWeWLUWblW4vlDQAa1biQaKHiImHnJfeQocQe/hXKMcolRzgkcVX/7kK4zoWbw==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-WfecDCR1xC9b0nsrzSaxPf3ZuWeWLUWblW4vlDQAa1biQaKHiImHnJfeQocQe/hXKMcolRzgkcVX/7kK4zoWbw==, + } + engines: { node: '>=0.8.0' } term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==, + } + engines: { node: '>=8' } terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==, + } + engines: { node: '>= 10.13.0' } peerDependencies: '@swc/core': '*' esbuild: '*' @@ -7796,130 +13332,226 @@ packages: optional: true terser@5.33.0: - resolution: {integrity: sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==, + } + engines: { node: '>=10' } hasBin: true test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, + } + engines: { node: '>=8' } text-decoder@1.2.0: - resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} + resolution: + { + integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==, + } text-extensions@2.4.0: - resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==, + } + engines: { node: '>=8' } text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + resolution: + { + integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==, + } text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + resolution: + { + integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, + } thingies@1.21.0: - resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} - engines: {node: '>=10.18'} + resolution: + { + integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==, + } + engines: { node: '>=10.18' } peerDependencies: tslib: ^2 thread-stream@0.15.2: - resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} + resolution: + { + integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==, + } through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + resolution: + { + integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, + } thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + resolution: + { + integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==, + } tinybench@2.7.0: - resolution: {integrity: sha512-Qgayeb106x2o4hNzNjsZEfFziw8IbKqtbXBjVh7VIZfBxfD5M4gWtpyx5+YTae2gJ6Y6Dz/KLepiv16RFeQWNA==} + resolution: + { + integrity: sha512-Qgayeb106x2o4hNzNjsZEfFziw8IbKqtbXBjVh7VIZfBxfD5M4gWtpyx5+YTae2gJ6Y6Dz/KLepiv16RFeQWNA==, + } tinyglobby@0.2.10: - resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==, + } + engines: { node: '>=12.0.0' } tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==, + } + engines: { node: '>=14.0.0' } tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==, + } + engines: { node: '>=14.0.0' } tmp-promise@3.0.3: - resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + resolution: + { + integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==, + } tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + resolution: + { + integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, + } + engines: { node: '>=0.6.0' } tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} + resolution: + { + integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==, + } + engines: { node: '>=14.14' } tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + resolution: + { + integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, + } to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, + } + engines: { node: '>=4' } to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: '>=8.0' } toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, + } + engines: { node: '>=0.6' } toposort@2.0.2: - resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + resolution: + { + integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==, + } totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==, + } + engines: { node: '>=6' } tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==, + } + engines: { node: '>=6' } tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==, + } + engines: { node: '>=6' } tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } tr46@4.1.1: - resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==, + } + engines: { node: '>=14' } tree-dump@1.0.2: - resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} - engines: {node: '>=10.0'} + resolution: + { + integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==, + } + engines: { node: '>=10.0' } peerDependencies: tslib: '2' triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} + resolution: + { + integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==, + } + engines: { node: '>= 14.0.0' } ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==, + } + engines: { node: '>=16' } peerDependencies: typescript: '>=4.2.0' ts-loader@9.5.1: - resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==, + } + engines: { node: '>=12.0.0' } peerDependencies: typescript: '*' webpack: ^5.0.0 ts-node@10.9.1: - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + resolution: + { + integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, + } hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -7933,8 +13565,11 @@ packages: optional: true tsconfck@3.0.3: - resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} - engines: {node: ^18 || >=20} + resolution: + { + integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==, + } + engines: { node: ^18 || >=20 } hasBin: true peerDependencies: typescript: ^5.0.0 @@ -7943,306 +13578,540 @@ packages: optional: true tsconfig-paths-webpack-plugin@4.0.0: - resolution: {integrity: sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==, + } + engines: { node: '>=10.13.0' } tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + resolution: + { + integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==, + } tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==, + } + engines: { node: '>=6' } tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + resolution: + { + integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, + } tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + resolution: + { + integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==, + } tsscmp@1.0.6: - resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} - engines: {node: '>=0.6.x'} + resolution: + { + integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==, + } + engines: { node: '>=0.6.x' } tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, + } + engines: { node: '>= 6' } peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + resolution: + { + integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, + } tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + resolution: + { + integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==, + } typanion@3.14.0: - resolution: {integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==} + resolution: + { + integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==, + } type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, + } + engines: { node: '>= 0.8.0' } type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, + } + engines: { node: '>=4' } type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==, + } + engines: { node: '>=10' } type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, + } + engines: { node: '>=10' } type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, + } + engines: { node: '>=10' } type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==, + } + engines: { node: '>=10' } type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + resolution: + { + integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==, + } + engines: { node: '>=12.20' } type-fest@4.26.1: - resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==, + } + engines: { node: '>=16' } type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, + } + engines: { node: '>= 0.6' } typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==, + } + engines: { node: '>= 0.4' } typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==, + } + engines: { node: '>= 0.4' } typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==, + } + engines: { node: '>= 0.4' } typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==, + } + engines: { node: '>= 0.4' } typed-assert@1.0.9: - resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} + resolution: + { + integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==, + } typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + resolution: + { + integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==, + } typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + resolution: + { + integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, + } typedoc-github-theme@0.2.0: - resolution: {integrity: sha512-ycTjNm7PZharoYg67oAFDC4JUvIqvFCLp4AiCKQBhlCsbiWiMYGEAPnuoRmV6+/CQsmH2l3dfOUiwM11ZtSGqA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-ycTjNm7PZharoYg67oAFDC4JUvIqvFCLp4AiCKQBhlCsbiWiMYGEAPnuoRmV6+/CQsmH2l3dfOUiwM11ZtSGqA==, + } + engines: { node: '>=18.0.0' } peerDependencies: typedoc: ^0.27.1 typedoc-plugin-rename-defaults@0.7.2: - resolution: {integrity: sha512-9oa1CsMN4p/xuVR2JW2YDD6xE7JcrIth3KAfjR8YBi6NnrDk2Q72o4lbArybLDjxKAkOzk7N1uUdGwJlooLEOg==} + resolution: + { + integrity: sha512-9oa1CsMN4p/xuVR2JW2YDD6xE7JcrIth3KAfjR8YBi6NnrDk2Q72o4lbArybLDjxKAkOzk7N1uUdGwJlooLEOg==, + } peerDependencies: typedoc: '>=0.22.x <0.28.x' typedoc@0.27.4: - resolution: {integrity: sha512-wXPQs1AYC2Crk+1XFpNuutLIkNWleokZf1UNf/X8w9KsMnirkvT+LzxTXDvfF6ug3TSLf3Xu5ZXRKGfoXPX7IA==} - engines: {node: '>= 18'} + resolution: + { + integrity: sha512-wXPQs1AYC2Crk+1XFpNuutLIkNWleokZf1UNf/X8w9KsMnirkvT+LzxTXDvfF6ug3TSLf3Xu5ZXRKGfoXPX7IA==, + } + engines: { node: '>= 18' } hasBin: true peerDependencies: typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x typescript@5.4.2: - resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} - engines: {node: '>=14.17'} + resolution: + { + integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==, + } + engines: { node: '>=14.17' } hasBin: true typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} - engines: {node: '>=14.17'} + resolution: + { + integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==, + } + engines: { node: '>=14.17' } hasBin: true uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + resolution: + { + integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==, + } ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + resolution: + { + integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==, + } uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==, + } + engines: { node: '>=0.8.0' } hasBin: true unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + resolution: + { + integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, + } underscore@1.13.7: - resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} + resolution: + { + integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==, + } undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + resolution: + { + integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==, + } undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + resolution: + { + integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==, + } undici@6.19.2: - resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} - engines: {node: '>=18.17'} + resolution: + { + integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==, + } + engines: { node: '>=18.17' } unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==, + } + engines: { node: '>=4' } unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, + } + engines: { node: '>=4' } unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==, + } + engines: { node: '>=4' } unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, + } + engines: { node: '>=4' } unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==, + } + engines: { node: '>=18' } union@0.5.0: - resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==, + } + engines: { node: '>= 0.8.0' } unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==, + } + engines: { node: '>=12' } universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, + } + engines: { node: '>= 4.0.0' } universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==, + } + engines: { node: '>= 4.0.0' } universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, + } + engines: { node: '>= 10.0.0' } unix-crypt-td-js@1.1.4: - resolution: {integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==} + resolution: + { + integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==, + } unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, + } + engines: { node: '>= 0.8' } update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + resolution: + { + integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==, + } hasBin: true peerDependencies: browserslist: '>= 4.21.0' update-notifier@6.0.2: - resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==, + } + engines: { node: '>=14.16' } uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + resolution: + { + integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==, + } url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + resolution: + { + integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, + } url-template@2.0.8: - resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} + resolution: + { + integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==, + } url@0.10.3: - resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} + resolution: + { + integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==, + } util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + resolution: + { + integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==, + } utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, + } + engines: { node: '>= 0.4.0' } uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + resolution: + { + integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==, + } deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true uuid@8.0.0: - resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==} + resolution: + { + integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==, + } hasBin: true uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + resolution: + { + integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, + } hasBin: true uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + resolution: + { + integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==, + } hasBin: true v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + resolution: + { + integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, + } v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} + resolution: + { + integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==, + } + engines: { node: '>=10.12.0' } validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + resolution: + { + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, + } validate-npm-package-name@3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + resolution: + { + integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==, + } validate-npm-package-name@5.0.0: - resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { + integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } validator@13.11.0: - resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==, + } + engines: { node: '>= 0.10' } vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, + } + engines: { node: '>= 0.8' } verdaccio-audit@12.0.0-next-7.13: - resolution: {integrity: sha512-vmq0DQjgieEV0oXmNKeQQKLxNSOlWmDP3o4tDSH39o54aDLZLfQ9+xUpZjguJxWvDjZyWmBCpHnJdjAyp2VAiA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-vmq0DQjgieEV0oXmNKeQQKLxNSOlWmDP3o4tDSH39o54aDLZLfQ9+xUpZjguJxWvDjZyWmBCpHnJdjAyp2VAiA==, + } + engines: { node: '>=12' } verdaccio-htpasswd@12.0.0-next-7.13: - resolution: {integrity: sha512-1xhKuDYRTPHv1NPeTb83thkApmM1zrvKz9pZk4F6rjlWfkIO1pBslaRXO/Qo6VrvCRSIaw+Qqbci86GCyFaLKg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1xhKuDYRTPHv1NPeTb83thkApmM1zrvKz9pZk4F6rjlWfkIO1pBslaRXO/Qo6VrvCRSIaw+Qqbci86GCyFaLKg==, + } + engines: { node: '>=12' } verdaccio@5.30.3: - resolution: {integrity: sha512-s/ZhSRBusW2o+ZkERyzEIbVL3zo8QLpTQPVoB/pn/Yv6+ngflP+anK4xCYiXXQJhqEdBz3cwApa8UgOEaNSS4Q==} - engines: {node: '>=12.18'} + resolution: + { + integrity: sha512-s/ZhSRBusW2o+ZkERyzEIbVL3zo8QLpTQPVoB/pn/Yv6+ngflP+anK4xCYiXXQJhqEdBz3cwApa8UgOEaNSS4Q==, + } + engines: { node: '>=12.18' } hasBin: true verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} + resolution: + { + integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==, + } + engines: { '0': node >=0.6.0 } vite-node@1.5.0: - resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { + integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==, + } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true vite-plugin-dts@4.2.2: - resolution: {integrity: sha512-USwTMReZFf8yXV+cKkm4WOMqmFjbReAvkyxON5xzdnZzJEBnFgax6BBDZIGGr9WMJYvhHdpaIHLrOjXDcla4OA==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-USwTMReZFf8yXV+cKkm4WOMqmFjbReAvkyxON5xzdnZzJEBnFgax6BBDZIGGr9WMJYvhHdpaIHLrOjXDcla4OA==, + } + engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: typescript: '*' vite: '*' @@ -8251,18 +14120,27 @@ packages: optional: true vite-plugin-eslint@1.8.1: - resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} + resolution: + { + integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==, + } peerDependencies: eslint: '>=7' vite: '>=2' vite-plugin-externalize-deps@0.8.0: - resolution: {integrity: sha512-MdC8kRNQ1ZjhUicU2HcqGVhL0UUFqv83Zp1JZdHjE82PoPR8wsSWZ3axpot7B6img3sW6g8shYJikE0CKA0chA==} + resolution: + { + integrity: sha512-MdC8kRNQ1ZjhUicU2HcqGVhL0UUFqv83Zp1JZdHjE82PoPR8wsSWZ3axpot7B6img3sW6g8shYJikE0CKA0chA==, + } peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 vite-tsconfig-paths@4.3.2: - resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} + resolution: + { + integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==, + } peerDependencies: vite: '*' peerDependenciesMeta: @@ -8270,8 +14148,11 @@ packages: optional: true vite@5.4.8: - resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { + integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==, + } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: '@types/node': ^18.0.0 || >=20.0.0 @@ -8301,13 +14182,19 @@ packages: optional: true vitest-canvas-mock@0.3.3: - resolution: {integrity: sha512-3P968tYBpqYyzzOaVtqnmYjqbe13576/fkjbDEJSfQAkHtC5/UjuRHOhFEN/ZV5HVZIkaROBUWgazDKJ+Ibw+Q==} + resolution: + { + integrity: sha512-3P968tYBpqYyzzOaVtqnmYjqbe13576/fkjbDEJSfQAkHtC5/UjuRHOhFEN/ZV5HVZIkaROBUWgazDKJ+Ibw+Q==, + } peerDependencies: vitest: '*' vitest@1.5.0: - resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { + integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==, + } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: '@edge-runtime/vm': '*' @@ -8331,35 +14218,62 @@ packages: optional: true vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + resolution: + { + integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==, + } w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==, + } + engines: { node: '>=14' } walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + resolution: + { + integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, + } watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==, + } + engines: { node: '>=10.13.0' } wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + resolution: + { + integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==, + } wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + resolution: + { + integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, + } webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, + } + engines: { node: '>=12' } webpack-dev-middleware@7.4.2: - resolution: {integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==} - engines: {node: '>= 18.12.0'} + resolution: + { + integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==, + } + engines: { node: '>= 18.12.0' } peerDependencies: webpack: ^5.0.0 peerDependenciesMeta: @@ -8367,8 +14281,11 @@ packages: optional: true webpack-dev-server@5.1.0: - resolution: {integrity: sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==} - engines: {node: '>= 18.12.0'} + resolution: + { + integrity: sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==, + } + engines: { node: '>= 18.12.0' } hasBin: true peerDependencies: webpack: ^5.0.0 @@ -8380,16 +14297,25 @@ packages: optional: true webpack-node-externals@3.0.0: - resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==, + } + engines: { node: '>=6' } webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, + } + engines: { node: '>=10.13.0' } webpack-subresource-integrity@5.1.0: - resolution: {integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==} - engines: {node: '>= 12'} + resolution: + { + integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==, + } + engines: { node: '>= 12' } peerDependencies: html-webpack-plugin: '>= 5.0.0-beta.1 < 6' webpack: ^5.12.0 @@ -8398,8 +14324,11 @@ packages: optional: true webpack@5.95.0: - resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==, + } + engines: { node: '>=10.13.0' } hasBin: true peerDependencies: webpack-cli: '*' @@ -8408,100 +14337,175 @@ packages: optional: true websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==, + } + engines: { node: '>=0.8.0' } websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==, + } + engines: { node: '>=0.8.0' } whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==, + } + engines: { node: '>=12' } whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==, + } + engines: { node: '>=12' } whatwg-url@12.0.1: - resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==, + } + engines: { node: '>=14' } whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + resolution: + { + integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, + } which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==, + } + engines: { node: '>= 0.4' } which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + resolution: + { + integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, + } hasBin: true which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: '>= 8' } hasBin: true why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==, + } + engines: { node: '>=8' } hasBin: true wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + resolution: + { + integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==, + } widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==, + } + engines: { node: '>=12' } windows-release@5.1.1: - resolution: {integrity: sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } winston-transport@4.8.0: - resolution: {integrity: sha512-qxSTKswC6llEMZKgCQdaWgDuMJQnhuvF5f2Nk3SNXc4byfQ+voo2mX1Px9dkNOuR8p0KAjfPG29PuYUSIb+vSA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-qxSTKswC6llEMZKgCQdaWgDuMJQnhuvF5f2Nk3SNXc4byfQ+voo2mX1Px9dkNOuR8p0KAjfPG29PuYUSIb+vSA==, + } + engines: { node: '>= 12.0.0' } winston@3.15.0: - resolution: {integrity: sha512-RhruH2Cj0bV0WgNL+lOfoUBI4DVfdUNjVnJGVovWZmrcKtrFTTRzgXYK2O9cymSGjrERCtaAeHwMNnUWXlwZow==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-RhruH2Cj0bV0WgNL+lOfoUBI4DVfdUNjVnJGVovWZmrcKtrFTTRzgXYK2O9cymSGjrERCtaAeHwMNnUWXlwZow==, + } + engines: { node: '>= 12.0.0' } word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, + } + engines: { node: '>=0.10.0' } wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + resolution: + { + integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, + } wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, + } + engines: { node: '>=8' } wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: '>=10' } wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: '>=12' } wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + resolution: + { + integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==, + } write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { + integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, + } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==, + } + engines: { node: '>=10.0.0' } peerDependencies: bufferutil: ^4.0.1 utf-8-validate: '>=5.0.2' @@ -8512,84 +14516,143 @@ packages: optional: true xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==, + } + engines: { node: '>=12' } xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==, + } + engines: { node: '>=12' } xml2js@0.6.2: - resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==, + } + engines: { node: '>=4.0.0' } xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==, + } + engines: { node: '>=4.0' } xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + resolution: + { + integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, + } y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: '>=10' } yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, + } + engines: { node: '>= 6' } yaml@2.3.1: - resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==, + } + engines: { node: '>= 14' } yaml@2.6.1: - resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==, + } + engines: { node: '>= 14' } hasBin: true yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + } + engines: { node: '>=12' } yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, + } + engines: { node: '>=12' } yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + resolution: + { + integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==, + } yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, + } + engines: { node: '>=6' } yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: '>=10' } yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} + resolution: + { + integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==, + } + engines: { node: '>=12.20' } yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==, + } + engines: { node: '>=18' } yup@0.32.11: - resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==, + } + engines: { node: '>=10' } zip-stream@5.0.2: - resolution: {integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==, + } + engines: { node: '>= 12.0.0' } snapshots: - '@aashutoshrathi/word-wrap@1.2.6': {} '@adobe/css-tools@4.3.3': {} @@ -9809,6 +15872,9 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true + '@esbuild/linux-loong64@0.14.54': + optional: true + '@esbuild/linux-loong64@0.19.12': optional: true @@ -13355,6 +19421,90 @@ snapshots: es6-error@4.1.1: {} + esbuild-android-64@0.14.54: + optional: true + + esbuild-android-arm64@0.14.54: + optional: true + + esbuild-darwin-64@0.14.54: + optional: true + + esbuild-darwin-arm64@0.14.54: + optional: true + + esbuild-freebsd-64@0.14.54: + optional: true + + esbuild-freebsd-arm64@0.14.54: + optional: true + + esbuild-linux-32@0.14.54: + optional: true + + esbuild-linux-64@0.14.54: + optional: true + + esbuild-linux-arm64@0.14.54: + optional: true + + esbuild-linux-arm@0.14.54: + optional: true + + esbuild-linux-mips64le@0.14.54: + optional: true + + esbuild-linux-ppc64le@0.14.54: + optional: true + + esbuild-linux-riscv64@0.14.54: + optional: true + + esbuild-linux-s390x@0.14.54: + optional: true + + esbuild-netbsd-64@0.14.54: + optional: true + + esbuild-openbsd-64@0.14.54: + optional: true + + esbuild-sunos-64@0.14.54: + optional: true + + esbuild-windows-32@0.14.54: + optional: true + + esbuild-windows-64@0.14.54: + optional: true + + esbuild-windows-arm64@0.14.54: + optional: true + + esbuild@0.14.54: + optionalDependencies: + '@esbuild/linux-loong64': 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 + esbuild@0.19.12: optionalDependencies: '@esbuild/aix-ppc64': 0.19.12 From 4cab7c27ac3d428c16f1b1b54fa5f3008d2c40a6 Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Mon, 16 Dec 2024 15:16:19 -0700 Subject: [PATCH 08/14] chore: remove-legacy-sdk --- e2e/autoscript-apps/package.json | 2 +- e2e/davinci-app/package.json | 2 +- e2e/token-vault-app/package.json | 2 +- e2e/token-vault-proxy/package.json | 2 +- packages/davinci-client/package.json | 2 +- packages/javascript-sdk/.babelrc | 3 - packages/javascript-sdk/.eslintignore | 10 - packages/javascript-sdk/.eslintrc.json | 8 - packages/javascript-sdk/CHANGELOG.md | 327 ------------ packages/javascript-sdk/LICENSE | 21 - packages/javascript-sdk/README.md | 177 ------- packages/javascript-sdk/package.json | 63 --- packages/javascript-sdk/src/auth/enums.ts | 51 -- packages/javascript-sdk/src/auth/index.ts | 114 ----- .../javascript-sdk/src/auth/interfaces.ts | 95 ---- .../javascript-sdk/src/config/constants.ts | 16 - packages/javascript-sdk/src/config/enums.ts | 23 - .../javascript-sdk/src/config/helpers.test.ts | 36 -- packages/javascript-sdk/src/config/helpers.ts | 84 --- packages/javascript-sdk/src/config/index.ts | 139 ----- .../javascript-sdk/src/config/interfaces.ts | 173 ------- .../src/config/well-known.mock.ts | 420 --------------- .../attribute-input-callback.test.ts | 82 --- .../callbacks/attribute-input-callback.ts | 91 ---- .../src/fr-auth/callbacks/choice-callback.ts | 69 --- .../callbacks/confirmation-callback.ts | 82 --- .../callbacks/device-profile-callback.ts | 55 -- .../src/fr-auth/callbacks/factory.ts | 98 ---- .../callbacks/fr-auth-callback.test.ts | 40 -- .../callbacks/hidden-value-callback.ts | 26 - .../src/fr-auth/callbacks/index.ts | 107 ---- .../fr-auth/callbacks/kba-create-callback.ts | 66 --- .../fr-auth/callbacks/metadata-callback.ts | 33 -- .../src/fr-auth/callbacks/name-callback.ts | 40 -- .../fr-auth/callbacks/password-callback.ts | 54 -- .../ping-protect-evaluation-callback.test.ts | 58 --- .../ping-protect-evaluation-callback.ts | 75 --- .../ping-protect-initialize-callback.test.ts | 142 ------ .../ping-protect-initialize-callback.ts | 49 -- .../callbacks/polling-wait-callback.ts | 40 -- .../fr-auth/callbacks/recaptcha-callback.ts | 40 -- .../recaptcha-enterprise-callback.test.ts | 74 --- .../recaptcha-enterprise-callback.ts | 90 ---- .../fr-auth/callbacks/redirect-callback.ts | 33 -- .../fr-auth/callbacks/select-idp-callback.ts | 53 -- .../suspended-text-output-callback.ts | 26 - .../terms-and-conditions-callback.ts | 55 -- .../callbacks/text-input-callback.test.ts | 42 -- .../fr-auth/callbacks/text-input-callback.ts | 40 -- .../fr-auth/callbacks/text-output-callback.ts | 40 -- ...validated-create-password-callback.test.ts | 81 --- .../validated-create-password-callback.ts | 81 --- ...validated-create-username-callback.test.ts | 81 --- .../validated-create-username-callback.ts | 81 --- packages/javascript-sdk/src/fr-auth/enums.ts | 20 - .../src/fr-auth/fr-login-failure.ts | 64 --- .../src/fr-auth/fr-login-success.ts | 48 -- .../javascript-sdk/src/fr-auth/fr-step.ts | 121 ----- packages/javascript-sdk/src/fr-auth/index.ts | 196 ------- .../javascript-sdk/src/fr-auth/interfaces.ts | 27 - .../javascript-sdk/src/fr-device/collector.ts | 53 -- .../javascript-sdk/src/fr-device/defaults.ts | 90 ---- .../src/fr-device/device-profile.mock.data.ts | 122 ----- .../src/fr-device/device-profile.test.ts | 86 ---- .../javascript-sdk/src/fr-device/index.ts | 264 ---------- .../src/fr-device/interfaces.ts | 67 --- .../src/fr-device/sample-profile.json | 45 -- .../javascript-sdk/src/fr-policy/enums.ts | 35 -- .../src/fr-policy/fr-policy.test.ts | 197 -------- .../javascript-sdk/src/fr-policy/helpers.ts | 18 - .../javascript-sdk/src/fr-policy/index.ts | 124 ----- .../src/fr-policy/interfaces.ts | 22 - .../src/fr-policy/message-creator.ts | 68 --- .../src/fr-qr-code/index.mock.data.ts | 174 ------- .../src/fr-qr-code/index.test.ts | 68 --- .../javascript-sdk/src/fr-qr-code/index.ts | 86 ---- .../src/fr-recovery-codes/index.ts | 72 --- .../fr-recovery-codes/recovery-codes.test.ts | 43 -- .../fr-recovery-codes/script-parser.test.ts | 35 -- .../src/fr-recovery-codes/script-parser.ts | 51 -- .../script-text.mock.data.ts | 121 ----- packages/javascript-sdk/src/fr-user/index.ts | 84 --- .../javascript-sdk/src/fr-webauthn/enums.ts | 36 -- .../src/fr-webauthn/fr-webauthn.mock.data.ts | 375 -------------- .../src/fr-webauthn/fr-webauthn.test.ts | 106 ---- .../src/fr-webauthn/helpers.mock.data.ts | 20 - .../src/fr-webauthn/helpers.test.ts | 55 -- .../javascript-sdk/src/fr-webauthn/helpers.ts | 124 ----- .../javascript-sdk/src/fr-webauthn/index.ts | 477 ------------------ .../src/fr-webauthn/interfaces.ts | 111 ---- .../src/fr-webauthn/script-parser.test.ts | 108 ---- .../src/fr-webauthn/script-parser.ts | 192 ------- .../src/fr-webauthn/script-text.mock.data.ts | 464 ----------------- .../src/http-client/helpers.test.ts | 117 ----- .../javascript-sdk/src/http-client/helpers.ts | 222 -------- .../src/http-client/http-client.mock.data.ts | 109 ---- .../javascript-sdk/src/http-client/index.ts | 211 -------- .../src/http-client/interfaces.ts | 49 -- packages/javascript-sdk/src/index.test.ts | 106 ---- packages/javascript-sdk/src/index.ts | 162 ------ .../javascript-sdk/src/oauth2-client/enums.ts | 19 - .../javascript-sdk/src/oauth2-client/index.ts | 401 --------------- .../src/oauth2-client/interfaces.ts | 69 --- .../src/oauth2-client/state-pkce.ts | 55 -- .../src/session-manager/index.ts | 74 --- .../javascript-sdk/src/shared/constants.ts | 19 - .../javascript-sdk/src/shared/interfaces.ts | 22 - packages/javascript-sdk/src/shared/types.ts | 18 - .../src/token-manager/helpers.test.ts | 55 -- .../src/token-manager/helpers.ts | 25 - .../src/token-manager/index.test.ts | 30 -- .../javascript-sdk/src/token-manager/index.ts | 240 --------- .../token-manager/token-manager.mock.data.ts | 14 - .../src/token-storage/constants.ts | 20 - .../javascript-sdk/src/token-storage/index.ts | 103 ---- .../src/token-storage/interfaces.ts | 23 - .../src/token-storage/local-storage.ts | 54 -- .../src/token-storage/session-storage.ts | 54 -- packages/javascript-sdk/src/typings.d.ts | 13 - packages/javascript-sdk/src/typings.test.d.ts | 11 - .../javascript-sdk/src/user-manager/index.ts | 26 - packages/javascript-sdk/src/util/deferred.ts | 27 - packages/javascript-sdk/src/util/http.ts | 20 - .../javascript-sdk/src/util/logger.test.ts | 322 ------------ packages/javascript-sdk/src/util/logger.ts | 81 --- .../src/util/middleware.mock.data.ts | 104 ---- .../src/util/middleware.test.ts | 93 ---- .../javascript-sdk/src/util/middleware.ts | 49 -- packages/javascript-sdk/src/util/pkce.test.ts | 51 -- packages/javascript-sdk/src/util/pkce.ts | 76 --- .../javascript-sdk/src/util/realm.test.ts | 35 -- packages/javascript-sdk/src/util/realm.ts | 29 -- packages/javascript-sdk/src/util/storage.ts | 36 -- packages/javascript-sdk/src/util/strings.ts | 21 - .../javascript-sdk/src/util/timeout.test.ts | 27 - packages/javascript-sdk/src/util/timeout.ts | 27 - packages/javascript-sdk/src/util/url.test.ts | 86 ---- packages/javascript-sdk/src/util/url.ts | 85 ---- .../tests/integration/fr-auth.mock.data.ts | 91 ---- .../tests/integration/fr-auth.test.ts | 67 --- .../integration/http-client.mock.data.ts | 102 ---- .../tests/integration/http-client.test.ts | 139 ----- .../tests/integration/oauth2-client.test.ts | 63 --- packages/javascript-sdk/tsconfig.json | 21 - packages/javascript-sdk/tsconfig.lib.json | 26 - packages/javascript-sdk/tsconfig.spec.json | 29 -- packages/javascript-sdk/typedoc.json | 68 --- packages/javascript-sdk/vite.config.ts | 63 --- packages/javascript-sdk/vitest.setup.ts | 1 - packages/ping-protect/package.json | 2 +- packages/token-vault/package.json | 2 +- pnpm-lock.yaml | 44 +- 152 files changed, 30 insertions(+), 12441 deletions(-) delete mode 100644 packages/javascript-sdk/.babelrc delete mode 100644 packages/javascript-sdk/.eslintignore delete mode 100644 packages/javascript-sdk/.eslintrc.json delete mode 100644 packages/javascript-sdk/CHANGELOG.md delete mode 100644 packages/javascript-sdk/LICENSE delete mode 100644 packages/javascript-sdk/README.md delete mode 100644 packages/javascript-sdk/package.json delete mode 100644 packages/javascript-sdk/src/auth/enums.ts delete mode 100644 packages/javascript-sdk/src/auth/index.ts delete mode 100644 packages/javascript-sdk/src/auth/interfaces.ts delete mode 100644 packages/javascript-sdk/src/config/constants.ts delete mode 100644 packages/javascript-sdk/src/config/enums.ts delete mode 100644 packages/javascript-sdk/src/config/helpers.test.ts delete mode 100644 packages/javascript-sdk/src/config/helpers.ts delete mode 100644 packages/javascript-sdk/src/config/index.ts delete mode 100644 packages/javascript-sdk/src/config/interfaces.ts delete mode 100644 packages/javascript-sdk/src/config/well-known.mock.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.test.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/choice-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/confirmation-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/device-profile-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/factory.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/fr-auth-callback.test.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/hidden-value-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/index.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/kba-create-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/metadata-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/name-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/password-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-evaluation-callback.test.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-evaluation-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-initialize-callback.test.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-initialize-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/polling-wait-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-enterprise-callback.test.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-enterprise-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/redirect-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/select-idp-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/suspended-text-output-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/terms-and-conditions-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.test.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/text-output-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.test.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.test.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/enums.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/fr-login-failure.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/fr-login-success.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/fr-step.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/index.ts delete mode 100644 packages/javascript-sdk/src/fr-auth/interfaces.ts delete mode 100644 packages/javascript-sdk/src/fr-device/collector.ts delete mode 100644 packages/javascript-sdk/src/fr-device/defaults.ts delete mode 100644 packages/javascript-sdk/src/fr-device/device-profile.mock.data.ts delete mode 100644 packages/javascript-sdk/src/fr-device/device-profile.test.ts delete mode 100644 packages/javascript-sdk/src/fr-device/index.ts delete mode 100644 packages/javascript-sdk/src/fr-device/interfaces.ts delete mode 100644 packages/javascript-sdk/src/fr-device/sample-profile.json delete mode 100644 packages/javascript-sdk/src/fr-policy/enums.ts delete mode 100644 packages/javascript-sdk/src/fr-policy/fr-policy.test.ts delete mode 100644 packages/javascript-sdk/src/fr-policy/helpers.ts delete mode 100644 packages/javascript-sdk/src/fr-policy/index.ts delete mode 100644 packages/javascript-sdk/src/fr-policy/interfaces.ts delete mode 100644 packages/javascript-sdk/src/fr-policy/message-creator.ts delete mode 100644 packages/javascript-sdk/src/fr-qr-code/index.mock.data.ts delete mode 100644 packages/javascript-sdk/src/fr-qr-code/index.test.ts delete mode 100644 packages/javascript-sdk/src/fr-qr-code/index.ts delete mode 100644 packages/javascript-sdk/src/fr-recovery-codes/index.ts delete mode 100644 packages/javascript-sdk/src/fr-recovery-codes/recovery-codes.test.ts delete mode 100644 packages/javascript-sdk/src/fr-recovery-codes/script-parser.test.ts delete mode 100644 packages/javascript-sdk/src/fr-recovery-codes/script-parser.ts delete mode 100644 packages/javascript-sdk/src/fr-recovery-codes/script-text.mock.data.ts delete mode 100644 packages/javascript-sdk/src/fr-user/index.ts delete mode 100644 packages/javascript-sdk/src/fr-webauthn/enums.ts delete mode 100644 packages/javascript-sdk/src/fr-webauthn/fr-webauthn.mock.data.ts delete mode 100644 packages/javascript-sdk/src/fr-webauthn/fr-webauthn.test.ts delete mode 100644 packages/javascript-sdk/src/fr-webauthn/helpers.mock.data.ts delete mode 100644 packages/javascript-sdk/src/fr-webauthn/helpers.test.ts delete mode 100644 packages/javascript-sdk/src/fr-webauthn/helpers.ts delete mode 100644 packages/javascript-sdk/src/fr-webauthn/index.ts delete mode 100644 packages/javascript-sdk/src/fr-webauthn/interfaces.ts delete mode 100644 packages/javascript-sdk/src/fr-webauthn/script-parser.test.ts delete mode 100644 packages/javascript-sdk/src/fr-webauthn/script-parser.ts delete mode 100644 packages/javascript-sdk/src/fr-webauthn/script-text.mock.data.ts delete mode 100644 packages/javascript-sdk/src/http-client/helpers.test.ts delete mode 100644 packages/javascript-sdk/src/http-client/helpers.ts delete mode 100644 packages/javascript-sdk/src/http-client/http-client.mock.data.ts delete mode 100644 packages/javascript-sdk/src/http-client/index.ts delete mode 100644 packages/javascript-sdk/src/http-client/interfaces.ts delete mode 100644 packages/javascript-sdk/src/index.test.ts delete mode 100644 packages/javascript-sdk/src/index.ts delete mode 100644 packages/javascript-sdk/src/oauth2-client/enums.ts delete mode 100644 packages/javascript-sdk/src/oauth2-client/index.ts delete mode 100644 packages/javascript-sdk/src/oauth2-client/interfaces.ts delete mode 100644 packages/javascript-sdk/src/oauth2-client/state-pkce.ts delete mode 100644 packages/javascript-sdk/src/session-manager/index.ts delete mode 100644 packages/javascript-sdk/src/shared/constants.ts delete mode 100644 packages/javascript-sdk/src/shared/interfaces.ts delete mode 100644 packages/javascript-sdk/src/shared/types.ts delete mode 100644 packages/javascript-sdk/src/token-manager/helpers.test.ts delete mode 100644 packages/javascript-sdk/src/token-manager/helpers.ts delete mode 100644 packages/javascript-sdk/src/token-manager/index.test.ts delete mode 100644 packages/javascript-sdk/src/token-manager/index.ts delete mode 100644 packages/javascript-sdk/src/token-manager/token-manager.mock.data.ts delete mode 100644 packages/javascript-sdk/src/token-storage/constants.ts delete mode 100644 packages/javascript-sdk/src/token-storage/index.ts delete mode 100644 packages/javascript-sdk/src/token-storage/interfaces.ts delete mode 100644 packages/javascript-sdk/src/token-storage/local-storage.ts delete mode 100644 packages/javascript-sdk/src/token-storage/session-storage.ts delete mode 100644 packages/javascript-sdk/src/typings.d.ts delete mode 100644 packages/javascript-sdk/src/typings.test.d.ts delete mode 100644 packages/javascript-sdk/src/user-manager/index.ts delete mode 100644 packages/javascript-sdk/src/util/deferred.ts delete mode 100644 packages/javascript-sdk/src/util/http.ts delete mode 100644 packages/javascript-sdk/src/util/logger.test.ts delete mode 100644 packages/javascript-sdk/src/util/logger.ts delete mode 100644 packages/javascript-sdk/src/util/middleware.mock.data.ts delete mode 100644 packages/javascript-sdk/src/util/middleware.test.ts delete mode 100644 packages/javascript-sdk/src/util/middleware.ts delete mode 100644 packages/javascript-sdk/src/util/pkce.test.ts delete mode 100644 packages/javascript-sdk/src/util/pkce.ts delete mode 100644 packages/javascript-sdk/src/util/realm.test.ts delete mode 100644 packages/javascript-sdk/src/util/realm.ts delete mode 100644 packages/javascript-sdk/src/util/storage.ts delete mode 100644 packages/javascript-sdk/src/util/strings.ts delete mode 100644 packages/javascript-sdk/src/util/timeout.test.ts delete mode 100644 packages/javascript-sdk/src/util/timeout.ts delete mode 100644 packages/javascript-sdk/src/util/url.test.ts delete mode 100644 packages/javascript-sdk/src/util/url.ts delete mode 100644 packages/javascript-sdk/tests/integration/fr-auth.mock.data.ts delete mode 100644 packages/javascript-sdk/tests/integration/fr-auth.test.ts delete mode 100644 packages/javascript-sdk/tests/integration/http-client.mock.data.ts delete mode 100644 packages/javascript-sdk/tests/integration/http-client.test.ts delete mode 100644 packages/javascript-sdk/tests/integration/oauth2-client.test.ts delete mode 100644 packages/javascript-sdk/tsconfig.json delete mode 100644 packages/javascript-sdk/tsconfig.lib.json delete mode 100644 packages/javascript-sdk/tsconfig.spec.json delete mode 100644 packages/javascript-sdk/typedoc.json delete mode 100644 packages/javascript-sdk/vite.config.ts delete mode 100644 packages/javascript-sdk/vitest.setup.ts diff --git a/e2e/autoscript-apps/package.json b/e2e/autoscript-apps/package.json index 3a538bcce..48feafa67 100644 --- a/e2e/autoscript-apps/package.json +++ b/e2e/autoscript-apps/package.json @@ -4,7 +4,7 @@ "private": true, "type": "module", "dependencies": { - "@forgerock/javascript-sdk": "workspace:*", + "@forgerock/javascript-sdk": "4.6.0", "@forgerock/device-client": "workspace:*", "@forgerock/ping-protect": "workspace:*", "rxjs": "^7.4.0" diff --git a/e2e/davinci-app/package.json b/e2e/davinci-app/package.json index 7c0aecad3..edf7370fa 100644 --- a/e2e/davinci-app/package.json +++ b/e2e/davinci-app/package.json @@ -5,7 +5,7 @@ "private": true, "dependencies": { "@forgerock/davinci-client": "workspace:*", - "@forgerock/javascript-sdk": "workspace:*" + "@forgerock/javascript-sdk": "4.6.0" }, "devDependencies": {}, "version": "0.0.0", diff --git a/e2e/token-vault-app/package.json b/e2e/token-vault-app/package.json index b4756f356..6fb33e351 100644 --- a/e2e/token-vault-app/package.json +++ b/e2e/token-vault-app/package.json @@ -4,7 +4,7 @@ "private": true, "type": "module", "dependencies": { - "@forgerock/javascript-sdk": "workspace:*", + "@forgerock/javascript-sdk": "4.6.0", "@forgerock/token-vault": "workspace:*", "@forgerock/token-vault-interceptor": "workspace:*" }, diff --git a/e2e/token-vault-proxy/package.json b/e2e/token-vault-proxy/package.json index d07de7d1e..7eaed8d45 100644 --- a/e2e/token-vault-proxy/package.json +++ b/e2e/token-vault-proxy/package.json @@ -5,7 +5,7 @@ "private": true, "type": "module", "dependencies": { - "@forgerock/javascript-sdk": "workspace:*", + "@forgerock/javascript-sdk": "4.6.0", "@forgerock/token-vault": "workspace:*" }, "devDependencies": {}, diff --git a/packages/davinci-client/package.json b/packages/davinci-client/package.json index 47707f618..51edf55dc 100644 --- a/packages/davinci-client/package.json +++ b/packages/davinci-client/package.json @@ -15,7 +15,7 @@ "access": "public" }, "dependencies": { - "@forgerock/javascript-sdk": "workspace:*", + "@forgerock/javascript-sdk": "4.6.0", "@reduxjs/toolkit": "2.3.0", "immer": "10.1.1" }, diff --git a/packages/javascript-sdk/.babelrc b/packages/javascript-sdk/.babelrc deleted file mode 100644 index 1c3a3a742..000000000 --- a/packages/javascript-sdk/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": [["@nx/js/babel", { "useBuiltIns": false }]] -} diff --git a/packages/javascript-sdk/.eslintignore b/packages/javascript-sdk/.eslintignore deleted file mode 100644 index 6dee592cf..000000000 --- a/packages/javascript-sdk/.eslintignore +++ /dev/null @@ -1,10 +0,0 @@ -node_modules -*.md -LICENSE -.babelrc -.env* -.bin -dist -docs -coverage -vite.config.*.timestamp* diff --git a/packages/javascript-sdk/.eslintrc.json b/packages/javascript-sdk/.eslintrc.json deleted file mode 100644 index d0f41df6d..000000000 --- a/packages/javascript-sdk/.eslintrc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "overrides": [ - { - "files": ["*.ts", "*.js"] - } - ] -} diff --git a/packages/javascript-sdk/CHANGELOG.md b/packages/javascript-sdk/CHANGELOG.md deleted file mode 100644 index 3112e22ae..000000000 --- a/packages/javascript-sdk/CHANGELOG.md +++ /dev/null @@ -1,327 +0,0 @@ -# Changelog - -## [4.6.0] - 2024-08-15 - -### 🚀 Features - -- ping-fed-central-login ([57e7c80](https://github.com/ForgeRock/forgerock-javascript-sdk/commit/57e7c80)) - -- recaptcha-enterprise-callback ([006cec9](https://github.com/ForgeRock/forgerock-javascript-sdk/commit/006cec9)) - -- support-metadata-marketplace-protect ([a3494b9](https://github.com/ForgeRock/forgerock-javascript-sdk/commit/a3494b9)) - -- **javascript-sdk:** refactor authorize URL utilities for DaVinci ([b34e458](https://github.com/ForgeRock/forgerock-javascript-sdk/commit/b34e458)) - -- **javascript-sdk:** recaptcha-enterprise ([8b4656c](https://github.com/ForgeRock/forgerock-javascript-sdk/commit/8b4656c)) - -### 🩹 Fixes - -- **javascript-sdk:** allowed-error-messages ([88ece3f](https://github.com/ForgeRock/forgerock-javascript-sdk/commit/88ece3f)) - -- **javascript-sdk:** change pkce utility to return storage function ([b4e0fbe](https://github.com/ForgeRock/forgerock-javascript-sdk/commit/b4e0fbe)) - -### ❤️ Thank You - -- Justin Lowery -- ryanbas21 - -## [4.4.2] - 2024-05-15 - -Features: -feat: new request header by @juangarmendia05 in #432 - -Fixes: -fix(javascript-sdk): fix-exports-update-protect by @ryanbas21 in #433 -fix(javascript-sdk): circular-dep by @ryanbas21 in #435 -fix(javascript-sdk): change x-requested-platform to opt-in by @cerebrl in #438 -fix(javascript-sdk): add logout redirect for pingone by @cerebrl in #443 - -## [4.4.1] - 2024-03-27 - -Fixes: -fix(javascript-sdk): Export the classes of ping-protect callbacks from index - -## [4.4.0] - 2024-03-12 - -Features: - -feat(javascript-sdk): add config.setAsync for wellknown endpoint support -feat(javascript-sdk): handle-device-name-in-response - -Fixes -fix(javascript-sdk): add PingOne login error to allowed errors -fix(javascript-sdk): sessionStorage conflict -fix(javascript-sdk): circular-dependency - -## [4.3.0] - 2024-01-04 - -Features - -- Make a prefix to the storage keys configurable via the Config class -- Added a QR Code utility class to determine if a step has a QR Code and handle QR Codes in SDK - -Fixes - -- Fix main and module fields in package.json being undefined - -## [4.2.0] - 2023-09-11 - -Features: - -- Added ability for SDK to accept a logLevel and customLogger option in the config. The default to the logger is `none` which means the SDK will no longer output to the console messages/warnings/console.error calls. - -## [4.1.2] - 2023-07-20 - -Features: - -- Minor changes to prepare for an upcoming Token Vault release - -Fixes: - -- fix(javascript-sdk): get-tokens-default-destructure (360df9968d) - -## [4.1.1] - 2023-06-29 - -Features: - -- Transaction Authorization advices information adds support for JSON, HTTPClient modified to support this change - -Fixes: - -- Improved types when in strict mode of Typescript - -## [4.0.0] - 2023-05-23 - -Breaking Changes: - -- Dropped UMD bundle support, if you would like to use a UMD bundle it's available in 3.4 or you can produce your own by git cloning the repo and setting up the ability to do so. -- Removed Event and FRUI modules - -Deprecated: - -- JavaScript support configuration property deprecated. - -Features: - -- Updated the esmodule bundle -- Added interface to register a name to a webauthn device - -Fixes: - -- Fixed Policy Types so that a PolicyRequirement array is outputted from `failedPolicies` - -Infrastructure: - -- Updated tags in github to be prefixed with package name - -# Changelog - -## [3.4.0] - 2022-10-18 - -- Fixed HTTP headers by capitalizing all header names -- Add support for TextInput Callback -- Fix object checks for device profile callback and use globalThis instead of window - -## [3.3.1] - 2022-05-18 - -- Fixed issue where UMD bundle namespace changed - -## [3.3.0] - 2022-04-25 - -### Added: - -- OAuth token threshold config property and proactive refresh of tokens expiring soon -- Add Angular sample app to the repo - -## [3.2.2] - 2022-1-31 - -### Fixed - -- Fixed typescript transpilation bug in esmodule config - -## [3.2.1] - 2022-1-31 - -### Fixed - -- Updated readme - -## [3.2.0] - 2022-1-31 - -### Fixed - -- `/authorize` call not honoring middleware overwrites -- expand middleware passing to call-site so that it overwrites middleware set in `config` - -### Added: - -- Refactor of end-to-end test suite to use playwright test runner instead of jest -- Upgrade rxjs version from 6 to 7 in `autoscript` files for e2e tests -- Remove SSL certificate dependency in CI -- Move to using Github Actions for CI -- Convert to monorepo using `nx` -- Add react sample app to the repo -- Remove certificate dependency across all sample apps -- Replaced development bundle with a rollup production bundle in javascript-sdk package -- Update Readme's in all packages / samples -- Added a CONTRIBUTING.MD file -- Added a pull request template for contributors - -## [3.0.0] - 2021-6-24 - -### Added - -- "Native" Social Login callbacks for both the original AM nodes in 6.5 and the new IDM nodes in 7.0 -- SDK Social Login feature officially supports Apple, Facebook and Google -- New `FRAuth` methods for handing redirection to provider and resuming an authentication journey - - `FRAuth.redirect` for redirecting to an Identity Provider for authentication - - `FRAuth.resume` supports both return from an IdP and returning from Email Suspend node -- New `FRAuth.start` method that aliases `FRAuth.next` to align native mobile SDKs -- E2E test pages will now follow your OS's dark mode setting - -### Fixed - -- Arbitrary query parameters are now passed along through to the `/authorize` endpoint supporting the use of ACR values for tree specificity -- Fixed build issue when using Windows PowerShell -- WebAuthn error handling is now standardized according to the WebAuthn spec -- When WebAuthn encounters an error, the SDK now formats the error appropriately for AM and sets it into the hiddenValueCallback; this allows the developer to just send it to AM "as is" or handle it specially when catching the thrown error -- Changed the default behavior in case of unidentified storage, to be the localStorage option -- Increased timeout (20 to 60 seconds) for E2E tests to avoid pure timeout failures - -### Breaking - -- WebAuthn's thrown error message text has been changed to align with spec, so check all conditionals comparing error message strings -- Renamed `getAuthorizeUrl` method to `getAuthCodeByIframe` -- Removed the single parameter from `createVerifier` function -- Removal of `nonce` function - -## [2.2.0] - 2020-12-18 - -### Added - -- Centralized login support has been added -- OAuth authorize endpoint now supports both iframe and fetch through the new `support` property in the config -- Support for TypeScript 4.0 - -### Fixed - -- `step.getStage()` is no longer used in sample app; `getStage(step)` is now used for better compatibility with AM 6.5 -- `FRUser.logout` now uses a try-catch around each endpoint call, rather than a single try-catch, ensuring an error in one doesn't interrupt other endpoints being called -- Paths for sample app now point to correct favicon image -- Improved automation testing -- Compatibility with AM 6.5.3 WebAuthn nodes -- Step detection with `getWebAuthnStepType` and "usernameless" configuration -- `getTokens` method with `forceRenew` now revokes existing tokens, if present, before requesting new ones - -## [2.1.0] - 2020-08-25 - -### Added - -- Support for "usernameless" login (storing username on WebAuthn capable tech) -- Support for the recovery code display node and the parsing of the codes from the TextOutputCallback -- Support for user verification property for WebAuthn -- Updated support for new IDM nodes for registration and self-service: BooleanAttributeInputCallback and NumberAttributeInputCallback support -- Added SuspendedTextOutputCallback support for the new Email Suspended Node -- Added SessionManager.logout() call back to FRUser.logout() - -### Fixed - -- Conditionally set user verification, relying party and allow credentials to WebAuthn key options -- Added exclude credentials to script parsing for WebAuthn key options -- Ensure display name and username are correctly parsed and added to WebAuthn key options -- Add authenticator attachment to WebAuthn and other WebAuthn fixes for custom configuration -- Increased entropy for cryptographic functions related to PKCE for both state and verifier -- Improved instructions for cert creation for sample app - -### Deprecated - -- Name change for `getAuthorizeUrl`: method's name will change to better reflect its behavior in v3 -- Removal of `nonce`: this utility is no longer used in the SDK, and therefore will be removed in v3 -- Function signature change for `createVerifier`: the parameter will be removed in v3. - -## [2.0.0] - 2020-06-22 - -### Added - -- Support for authorization by transaction -- Support for authorization by tree -- Support for device profile collection callback -- Allow server paths to be configurable -- Allow OAuth token storage to be configurable -- Support for request "middleware" for modifying request from SDK -- "Containerize" code base for easier development -- End-to-end tests now use Playwright and mock Node.js server -- Support for WebAuthn script-based authentication - -### Fixed - -- Increased default timeout to accommodate development/debugging -- Provide alternative token store for Firefox Private IndexedDB bug -- Aligned json-based WebAuthn with 7.0 release of AM - -## [1.0.5] - 2020-01-16 - -### Added - -- Support for additional querystring parameters (e.g. `suspendedId`) when invoking authentication trees - -## [1.0.4] - 2020-01-06 - -### Fixed - -- Renamed `getWebAuthStepType` to `getWebAuthnStepType` in `FRWebAuthn` module - -## [1.0.3] - 2020-01-06 - -### Added - -- Replaced `url` and `querystring` dependencies to avoid build issues in some environments - -## [1.0.2] - 2019-12-20 - -### Added - -- Exported `Deferred` and `nonce` - -## [1.0.1] - 2019-12-19 - -### Added - -- Server mocking with Mirage JS for E2E tests -- Version header to all OpenAM calls to avoid CSRF problems -- Updated callback interface to reflect that some properties are optional - -## [1.0.0] - 2019-12-09 - -### Added - -- WebAuthn module that can be used in custom UIs -- Improvements to `FRCallback` -- Addressed all linter warnings - -## [0.9.3] - 2019-11-13 - -### Fixed - -- Non-relative import in FRAuth module - -## [0.9.2] - 2019-11-06 - -### Added - -- OAuth2Client obeys `realmPath` configuration setting - -## [0.9.1] - 2019-10-28 - -### Added - -- FRPolicy module allows easy consumption and customization of policy-related errors -- Export `SessionManager` module -- `FRStep.type` property to simplify conditional handling of tree responses -- Overhaul and expansion of tests to include unit, integration, and e2e testing - -## [0.9.0] - 2019-10-17 - -### Added - -- Initial release for SDK -- Initial npm deployment for beta version diff --git a/packages/javascript-sdk/LICENSE b/packages/javascript-sdk/LICENSE deleted file mode 100644 index e5396cc66..000000000 --- a/packages/javascript-sdk/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 ForgeRock - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages/javascript-sdk/README.md b/packages/javascript-sdk/README.md deleted file mode 100644 index 67ca80f5d..000000000 --- a/packages/javascript-sdk/README.md +++ /dev/null @@ -1,177 +0,0 @@ -[![npm (scoped)](https://img.shields.io/npm/v/@forgerock/javascript-sdk?color=%23f46200&label=Version&style=flat-square)](CHANGELOG.md) -[![ForgeRock CI](https://github.com/ForgeRock/forgerock-javascript-sdk/actions/workflows/ci.yml/badge.svg)](https://github.com/ForgeRock/forgerock-javascript-sdk/actions/workflows/ci.yml) - -

- - Logo - -

ForgeRock SDK for JavaScript

-

- Change Log - · - Support - · - Docs -

-

- -The ForgeRock JavaScript SDK enables you to quickly integrate the [ForgeRock Identity Platform](https://www.forgerock.com/digital-identity-and-access-management-platform) into your client-side JavaScript apps. - -Use the SDKs to leverage _[Intelligent Authentication](https://www.forgerock.com/platform/access-management/intelligent-authentication)_ in [ForgeRock's Access Management (AM)](https://www.forgerock.com/platform/access-management) product, to easily step through each stage of an authentication tree by using callbacks. - - - - -## Requirements - -- ForgeRock Identity Platform - - - Access Management (AM) 6.5.2+ - -- Browsers: - - Chrome 87 - - Firefox 84 - - Safari 14 - - Edge 87 (Chromium) - - Edge 44 (Legacy): requires one polyfill for TextEncoder, [`fast-text-encoding` is recommended](https://www.npmjs.com/package/fast-text-encoding) - -> **Tip**: Older browsers (like IE11) may require multiple [polyfills, which can be found in our documentation](https://sdks.forgerock.com/javascript/polyfills/). - - - - -## Installation - -``` -npm install @forgerock/javascript-sdk -``` - - - - -## Getting Started - -To try out the ForgeRock JavaScript SDK, perform these steps: - -1. Setup CORS support in an Access Management (AM) instance. - - See [Enabling CORS Support](https://sdks.forgerock.com/js/01_prepare-am/#enabling-cors-support) in the Documentation. - -2. Create an authentication tree in AM. - - See [Creating a User Authentication Tree](https://sdks.forgerock.com/js/01_prepare-am/#creating-a-user-authentication-tree) in the Documentation. - -3. Clone this repo: - - ``` - git clone https://github.com/ForgeRock/forgerock-javascript-sdk.git - ``` - -4. In the root folder of the repo, use NPM to install dependencies: - - ``` - npm install - ``` - -5. Build the ForgeRock JavaScript SDK: - - ``` - pnpm run build - ``` - -6. Open `samples/embedded-login/index.html` and edit the configuration values to match your AM instance. - -7. Serve the `samples` directory by using a simple HTTP server. - - - Run `pnpm run start:samples` - -8. Edit your `/etc/hosts` file to point your localhost (e.g. `127.0.0.1`) to `sdkapp.example.com` - -9. In a [supported web browser](#requirements), navigate to `https://sdkapp.example.com:8443`, and then click **Embedded Login**. - - - - -## Samples - -ForgeRock provides these samples to help demonstrate SDK functionality/implementation. They are provided "as is" and are not official products of ForgeRock and are not officially supported. - -- **Embedded login - `/samples/embedded-login`** - - In most real-world scenarios, you will want to have full control over the UI. In these cases, you can use `FRAuth` to obtain typed callback instances from authentication trees and render the UI in whatever way makes sense for your application. - - You can run this sample app with the `pnpm run start:samples` command. Please [see the Getting Started instructions](#getting-started) for more details. - -- **Central login - `/samples/central-login`** - - In cases in which a centralized login application is desired, in contrast to an embedded login form, the SDK provides a method for leveraging an OAuth flow known as Authorization Code Flow (with PKCE). By using an option (login of "redirect") provided by `TokenManager` to request OAuth/OIDC tokens, when the user is not authenticated, the SDK will redirect the user to the configured login application with the ForgeRock platform. Once authenticated, the user will be redirected back to the original application to attain OAuth/OIDC tokens to complete the user flow. - - You can run this sample app with the `pnpm run start:samples` command. Please [see the Getting Started instructions](#getting-started) for more details. - -- **React todos - `/samples/reactjs-todos`** - - A sample React JS application is provided to demonstrate how the JavaScript SDK can be implemented within a React context. You can read more about this application by [visiting its README.md file](samples/reactjs-todo/README.md). - - Since this sample app uses npm's workspaces feature, npm 7 or higher is required. When on npm 7+, dependencies are already installed when running `npm install`. You can run this sample app with: `npx nx run reactjs-todo:serve`. - - - - -## Documentation - -Documentation for the SDKs is provided at ****, and includes topics such as: - -- Introducing the SDK Features -- Preparing AM for use with the SDKS -- API Reference documentation - - - - -## Support - -If you encounter any issues, be sure to check our **[Troubleshooting](https://backstage.forgerock.com/knowledge/kb/article/a83789945)** pages. - -Support tickets can be raised whenever you need our assistance; here are some examples of when it is appropriate to open a ticket (but not limited to): - -- Suspected bugs or problems with ForgeRock software. -- Requests for assistance - please look at the **[Documentation](https://sdks.forgerock.com)** and **[Knowledge Base](https://backstage.forgerock.com/knowledge/kb/home/g32324668)** first. - -You can raise a ticket using **[BackStage](https://backstage.forgerock.com/support/tickets)**, our customer support portal that provides one stop access to ForgeRock services. - -BackStage shows all currently open support tickets and allows you to raise a new one by clicking **New Ticket**. - -## Version History - -[Our version history can be viewed by visiting our CHANGELOG.md](https://github.com/ForgeRock/forgerock-javascript-sdk/blob/master/CHANGELOG.md). - - - - -## Contributing - -If you would like to contribute to this project you can fork the repository, clone it to your machine and get started. - - - -Be sure to check out our [Coding Style and Guidelines](https://wikis.forgerock.org/confluence/display/devcom/Coding+Style+and+Guidelines) page. - - - - -## Disclaimer - -> **This code is provided by ForgeRock on an “as is” basis, without warranty of any kind, to the fullest extent permitted by law. ForgeRock does not represent or warrant or make any guarantee regarding the use of this code or the accuracy, timeliness or completeness of any data or information relating to this code, and ForgeRock hereby disclaims all warranties whether express, or implied or statutory, including without limitation the implied warranties of merchantability, fitness for a particular purpose, and any warranty of non-infringement. ForgeRock shall not have any liability arising out of or related to any use, implementation or configuration of this code, including but not limited to use for any commercial purpose. Any action or suit relating to the use of the code may be brought only in the courts of a jurisdiction wherein ForgeRock resides or in which ForgeRock conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions.** - - - - -## License - -This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details - ---- - -© Copyright 2020 ForgeRock AS. All Rights Reserved. - -[forgerock-logo]: https://www.forgerock.com/themes/custom/forgerock/images/fr-logo-horz-color.svg 'ForgeRock Logo' diff --git a/packages/javascript-sdk/package.json b/packages/javascript-sdk/package.json deleted file mode 100644 index c398f085c..000000000 --- a/packages/javascript-sdk/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "@forgerock/javascript-sdk", - "version": "4.6.0", - "description": "ForgeRock JavaScript SDK", - "author": "ForgeRock", - "license": "MIT", - "files": ["dist/*"], - "repository": { - "type": "git", - "url": "git+https://github.com:ForgeRock/forgerock-javascript-sdk.git", - "directory": "packages/javascript-sdk" - }, - "bugs": { - "url": "https://github.com/ForgeRock/forgerock-javascript-sdk/issues" - }, - "homepage": "https://github.com/ForgeRock/forgerock-javascript-sdk#readme", - "main": "./dist/index.cjs", - "module": "./dist/index.js", - "sideEffects": false, - "types": "./dist/index.d.ts", - "exports": { - ".": { - "import": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } - }, - "./src/*": { - "import": { - "types": "./dist/*.d.ts", - "default": "./dist/*.js" - }, - "require": { - "types": "./dist/*.d.cts", - "default": "./dist/*.cjs" - } - }, - "./src/": { - "import": { - "types": "./dist/*.d.ts", - "default": "./dist/*.js" - }, - "require": { - "types": "./dist/*.d.cts", - "default": "./dist/*.cjs" - } - } - }, - "type": "module", - "devDependencies": { - "vitest": "^1.4.0" - }, - "scripts": { - "build": "vite build", - "test": "vitest", - "test:coverage": "vitest --coverage", - "lint": "eslint **/*.ts --fix" - } -} diff --git a/packages/javascript-sdk/src/auth/enums.ts b/packages/javascript-sdk/src/auth/enums.ts deleted file mode 100644 index 435769fe3..000000000 --- a/packages/javascript-sdk/src/auth/enums.ts +++ /dev/null @@ -1,51 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * enums.ts - * - * Copyright (c) 2020-2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * Known errors that can occur during authentication. - */ -enum ErrorCode { - BadRequest = 'BAD_REQUEST', - Timeout = 'TIMEOUT', - Unauthorized = 'UNAUTHORIZED', - Unknown = 'UNKNOWN', -} - -/** - * Types of callbacks directly supported by the SDK. - */ -enum CallbackType { - BooleanAttributeInputCallback = 'BooleanAttributeInputCallback', - ChoiceCallback = 'ChoiceCallback', - ConfirmationCallback = 'ConfirmationCallback', - DeviceProfileCallback = 'DeviceProfileCallback', - HiddenValueCallback = 'HiddenValueCallback', - KbaCreateCallback = 'KbaCreateCallback', - MetadataCallback = 'MetadataCallback', - NameCallback = 'NameCallback', - NumberAttributeInputCallback = 'NumberAttributeInputCallback', - PasswordCallback = 'PasswordCallback', - PingOneProtectEvaluationCallback = 'PingOneProtectEvaluationCallback', - PingOneProtectInitializeCallback = 'PingOneProtectInitializeCallback', - PollingWaitCallback = 'PollingWaitCallback', - ReCaptchaCallback = 'ReCaptchaCallback', - ReCaptchaEnterpriseCallback = 'ReCaptchaEnterpriseCallback', - RedirectCallback = 'RedirectCallback', - SelectIdPCallback = 'SelectIdPCallback', - StringAttributeInputCallback = 'StringAttributeInputCallback', - SuspendedTextOutputCallback = 'SuspendedTextOutputCallback', - TermsAndConditionsCallback = 'TermsAndConditionsCallback', - TextInputCallback = 'TextInputCallback', - TextOutputCallback = 'TextOutputCallback', - ValidatedCreatePasswordCallback = 'ValidatedCreatePasswordCallback', - ValidatedCreateUsernameCallback = 'ValidatedCreateUsernameCallback', -} - -export { CallbackType, ErrorCode }; diff --git a/packages/javascript-sdk/src/auth/index.ts b/packages/javascript-sdk/src/auth/index.ts deleted file mode 100644 index 682f06b55..000000000 --- a/packages/javascript-sdk/src/auth/index.ts +++ /dev/null @@ -1,114 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { ServerConfig, StepOptions } from '../config'; -import Config from '../config'; -import { ActionTypes } from '../config/enums'; -import { REQUESTED_WITH, X_REQUESTED_PLATFORM } from '../shared/constants'; -import type { StringDict } from '../shared/interfaces'; -import { withTimeout } from '../util/timeout'; -import { getEndpointPath, resolve, stringify } from '../util/url'; -import type { Step } from './interfaces'; -import middlewareWrapper from '../util/middleware'; - -/** - * Provides direct access to the OpenAM authentication tree API. - */ -abstract class Auth { - /** - * Gets the next step in the authentication tree. - * - * @param {Step} previousStep The previous step, including any required input. - * @param {StepOptions} options Configuration default overrides. - * @return {Step} The next step in the authentication tree. - */ - public static async next(previousStep?: Step, options?: StepOptions): Promise { - const { middleware, platformHeader, realmPath, serverConfig, tree, type } = Config.get(options); - const query = options ? options.query : {}; - const url = this.constructUrl(serverConfig, realmPath, tree, query); - const runMiddleware = middlewareWrapper( - { - url: new URL(url), - init: this.configureRequest(previousStep), - }, - { - type: previousStep ? ActionTypes.Authenticate : ActionTypes.StartAuthenticate, - payload: { - tree, - type: type ? type : 'service', - }, - }, - ); - const req = runMiddleware(middleware); - - /** - * Run after as to now allow mutation by user - * Since the init headers can be an array, object or Headers class, - * we need to handle all types. - */ - if (platformHeader) { - if (req.init.headers instanceof Headers) { - req.init.headers.set('X-Requested-Platform', X_REQUESTED_PLATFORM); - } else if (Array.isArray(req.init.headers)) { - req.init.headers.push(['X-Requested-Platform', X_REQUESTED_PLATFORM]); - } else if (req.init.headers) { - req.init.headers['X-Requested-Platform'] = X_REQUESTED_PLATFORM; - } else { - req.init.headers = { - 'X-Requested-Platform': X_REQUESTED_PLATFORM, - }; - } - } - const res = await withTimeout(fetch(req.url.toString(), req.init), serverConfig.timeout); - const json = await this.getResponseJson(res); - return json; - } - - private static constructUrl( - serverConfig: ServerConfig, - realmPath?: string, - tree?: string, - query?: StringDict, - ): string { - const treeParams = tree ? { authIndexType: 'service', authIndexValue: tree } : undefined; - const params: StringDict = { ...query, ...treeParams }; - const queryString = Object.keys(params).length > 0 ? `?${stringify(params)}` : ''; - const path = getEndpointPath('authenticate', realmPath, serverConfig.paths); - const url = resolve(serverConfig.baseUrl, `${path}${queryString}`); - return url; - } - - private static configureRequest(step?: Step): RequestInit { - const init: RequestInit = { - body: step ? JSON.stringify(step) : undefined, - credentials: 'include', - headers: new Headers({ - Accept: 'application/json', - 'Accept-API-Version': 'protocol=1.0,resource=2.1', - 'Content-Type': 'application/json', - 'X-Requested-With': REQUESTED_WITH, - }), - method: 'POST', - }; - - return init; - } - - private static async getResponseJson(res: Response): Promise { - const contentType = res.headers.get('content-type'); - const isJson = contentType && contentType.indexOf('application/json') > -1; - const json = isJson ? await res.json() : {}; - json.status = res.status; - json.ok = res.ok; - return json; - } -} - -export default Auth; diff --git a/packages/javascript-sdk/src/auth/interfaces.ts b/packages/javascript-sdk/src/auth/interfaces.ts deleted file mode 100644 index e022d2a56..000000000 --- a/packages/javascript-sdk/src/auth/interfaces.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * interfaces.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { CallbackType } from './enums'; - -/** - * Represents the authentication tree API payload schema. - */ -interface Step { - authId?: string; - callbacks?: Callback[]; - code?: number; - description?: string; - detail?: StepDetail; - header?: string; - message?: string; - ok?: string; - realm?: string; - reason?: string; - stage?: string; - status?: number; - successUrl?: string; - tokenId?: string; -} - -/** - * Represents details of a failure in an authentication step. - */ -interface StepDetail { - failedPolicyRequirements?: FailedPolicyRequirement[]; - failureUrl?: string; - result?: boolean; -} - -/** - * Represents failed policies for a matching property. - */ -interface FailedPolicyRequirement { - policyRequirements: PolicyRequirement[]; - property: string; -} - -/** - * Represents a failed policy policy and failed policy params. - */ -interface PolicyRequirement { - params?: Partial; - policyRequirement: string; -} - -interface PolicyParams { - [key: string]: unknown; - disallowedFields: string; - duplicateValue: string; - forbiddenChars: string; - maxLength: number; - minLength: number; - numCaps: number; - numNums: number; -} - -/** - * Represents the authentication tree API callback schema. - */ -interface Callback { - _id?: number; - input?: NameValue[]; - output: NameValue[]; - type: CallbackType; -} - -/** - * Represents a name/value pair found in an authentication tree callback. - */ -interface NameValue { - name: string; - value: unknown; -} - -export type { - Callback, - FailedPolicyRequirement, - NameValue, - PolicyParams, - PolicyRequirement, - Step, - StepDetail, -}; diff --git a/packages/javascript-sdk/src/config/constants.ts b/packages/javascript-sdk/src/config/constants.ts deleted file mode 100644 index 1a301ecc5..000000000 --- a/packages/javascript-sdk/src/config/constants.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * constants.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** @hidden */ -const DEFAULT_TIMEOUT = 5 * 1000; -const DEFAULT_OAUTH_THRESHOLD = 30 * 1000; -const PREFIX = 'FR-SDK'; - -export { DEFAULT_TIMEOUT, DEFAULT_OAUTH_THRESHOLD, PREFIX }; diff --git a/packages/javascript-sdk/src/config/enums.ts b/packages/javascript-sdk/src/config/enums.ts deleted file mode 100644 index 75ba147a8..000000000 --- a/packages/javascript-sdk/src/config/enums.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * enums.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -export enum ActionTypes { - Authenticate = 'AUTHENTICATE', - Authorize = 'AUTHORIZE', - EndSession = 'END_SESSION', - Logout = 'LOGOUT', - ExchangeToken = 'EXCHANGE_TOKEN', - RefreshToken = 'REFRESH_TOKEN', - ResumeAuthenticate = 'RESUME_AUTHENTICATE', - RevokeToken = 'REVOKE_TOKEN', - StartAuthenticate = 'START_AUTHENTICATE', - UserInfo = 'USER_INFO', - WellKnown = 'WELL_KNOWN', -} diff --git a/packages/javascript-sdk/src/config/helpers.test.ts b/packages/javascript-sdk/src/config/helpers.test.ts deleted file mode 100644 index c1b2ca168..000000000 --- a/packages/javascript-sdk/src/config/helpers.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { convertWellKnown } from './helpers'; -import { frWellKnown, piWellKnown } from './well-known.mock'; - -describe('Test config helpers', () => { - it('should test wellknown response conversion ForgeRock', () => { - const result = convertWellKnown(frWellKnown); - const expected = { - baseUrl: 'https://openam-spetrov.forgeblocks.com', - paths: { - accessToken: '/am/oauth2/alpha/access_token', - authenticate: '/am/json/alpha/authenticate', - authorize: '/am/oauth2/alpha/authorize', - endSession: '/am/oauth2/alpha/connect/endSession', - revoke: '/am/oauth2/alpha/token/revoke', - sessions: '/am/json/alpha/sessions', - userInfo: '/am/oauth2/alpha/userinfo', - }, - }; - expect(result).toStrictEqual(expected); - }); - - it('should test wellknown response conversion from Ping', () => { - const result = convertWellKnown(piWellKnown); - const expected = { - baseUrl: 'https://auth.pingone.ca', - paths: { - accessToken: '/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/token', - authorize: '/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/authorize', - endSession: '/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/signoff', - revoke: '/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/revoke', - userInfo: '/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/userinfo', - }, - }; - expect(result).toStrictEqual(expected); - }); -}); diff --git a/packages/javascript-sdk/src/config/helpers.ts b/packages/javascript-sdk/src/config/helpers.ts deleted file mode 100644 index 5f1c56208..000000000 --- a/packages/javascript-sdk/src/config/helpers.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * helpers.ts - * - * Copyright (c) 2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import middlewareWrapper from '../util/middleware'; -import { withTimeout } from '../util/timeout'; -import { ActionTypes } from './enums'; -import type { AsyncConfigOptions, ServerConfig, WellKnownResponse } from './interfaces'; - -/** - * @function convertWellKnown - Convert the response from welknown into SDK config - * @param {WellKnownResponse} data - response from wellknown endpoint - * @returns {ServerConfig} - */ -export function convertWellKnown(data: WellKnownResponse, options?: ServerConfig): ServerConfig { - if (!data.authorization_endpoint) { - throw new Error('Wellknown endpoint did not return `authorization_endpoint`'); - } - - const fullUrl = new URL(data.authorization_endpoint); - const baseUrl = fullUrl.origin; - - let authenticateUrl: string | undefined; - let sessionsUrl: string | undefined; - - if (options?.paths) { - // Prioritize user provided URLs for authenticate and session as they are NOT provided in wellknown response - authenticateUrl = options?.paths?.authenticate; - sessionsUrl = options?.paths?.sessions; - } else if (data.issuer.includes('/am/')) { - // If no authentiate and session URL provided, detect AM and use standard `/authenticate` - authenticateUrl = `${data.issuer.replace('oauth2', 'json')}/authenticate`; - // Use standard AM `/sessions` - sessionsUrl = `${data.issuer.replace('oauth2', 'json')}/sessions`; - } else if (data.issuer.includes('/as/')) { - // URLs for PingOne's authenticate and sessions, once supported - } - - const paths = { - ...(authenticateUrl ? { authenticate: new URL(authenticateUrl).pathname } : {}), - authorize: new URL(data.authorization_endpoint).pathname, - accessToken: new URL(data.token_endpoint).pathname, - endSession: new URL(data.end_session_endpoint).pathname, - userInfo: new URL(data.userinfo_endpoint).pathname, - revoke: new URL(data.revocation_endpoint).pathname, - ...(sessionsUrl ? { sessions: new URL(sessionsUrl).pathname } : {}), - }; - - return { - baseUrl, - paths, - }; -} - -/** - * @function fetchWellKnown - Fetch the wellknown endpoint for OAuth/OIDC URLs - */ -export async function fetchWellKnown(options: AsyncConfigOptions): Promise { - if (!options.serverConfig.wellknown) { - throw new Error('wellknown URL is missing in options'); - } - - const runMiddleware = middlewareWrapper( - { - url: new URL(options.serverConfig?.wellknown), - init: { method: 'GET' }, - }, - { - type: ActionTypes.WellKnown, - payload: {}, - }, - ); - const req = runMiddleware(options.middleware); - const res = await withTimeout(fetch(req.url.toString(), req.init), options.serverConfig.timeout); - - const json = await res.json(); - return json; -} diff --git a/packages/javascript-sdk/src/config/index.ts b/packages/javascript-sdk/src/config/index.ts deleted file mode 100644 index 020aff13f..000000000 --- a/packages/javascript-sdk/src/config/index.ts +++ /dev/null @@ -1,139 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020-2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { DEFAULT_TIMEOUT, DEFAULT_OAUTH_THRESHOLD, PREFIX } from './constants'; -import { convertWellKnown, fetchWellKnown } from './helpers'; -import type { - AsyncConfigOptions, - ConfigOptions, - ServerConfig, - StepOptions, - ValidConfigOptions, -} from './interfaces'; - -/** - * Sets defaults for options that are required but have no supplied value - * @param options The options to set defaults for - * @returns options The options with defaults - */ -function setDefaults(options: ConfigOptions): ConfigOptions { - return { - ...options, - oauthThreshold: options.oauthThreshold || DEFAULT_OAUTH_THRESHOLD, - logLevel: options.logLevel || 'none', - platformHeader: options.platformHeader || false, - prefix: options.prefix || PREFIX, - }; -} - -/** - * Utility for merging configuration defaults with one-off options. - * - * Example: - * - * ```js - * // Establish configuration defaults - * Config.set({ - * clientId: 'myApp', - * serverConfig: { baseUrl: 'https://openam-domain.com/am' }, - * tree: 'UsernamePassword' - * }); - * - * // Specify overrides as needed - * const configOverrides = { tree: 'PasswordlessWebAuthn' }; - * const step = await FRAuth.next(undefined, configOverrides); - */ -abstract class Config { - private static options: ConfigOptions; - - /** - * Sets the default options. - * - * @param options The options to use as defaults - */ - public static set(options: ConfigOptions): void { - if (!this.isValid(options)) { - throw new Error('Configuration is invalid'); - } - if (options.serverConfig) { - this.validateServerConfig(options.serverConfig); - } - this.options = { ...setDefaults(options) }; - } - - /** - * @method setAsync - Asynchronously calls the WellKnown endpoint to collect the APIs for OAuth - * @param {AsyncConfigOptions} options - config options with wellknown endpoint URL - * @returns {Promise} - Returns a success or failure message object - */ - public static async setAsync(options: AsyncConfigOptions): Promise { - if (!options.serverConfig.wellknown) { - throw new Error( - 'Missing well-known property. Use `Config.set` method if not using well-known endpoint.', - ); - } - // @ts-expect-error safety against runtimes without typescript - if (options.serverConfig.baseUrl) { - console.warn( - 'The baseUrl property passed in will be ignored, and replaced with well-known origin.', - ); - } - - // Fetch wellknown endpoint for OAuth/OIDC API URLs - const json = await fetchWellKnown(options); - // Use wellknown object and convert to custom paths - const serverConfig = convertWellKnown(json); - - // Remove wellknown property as it's no longer needed - delete options.serverConfig.wellknown; - // Assign to a new config object with the "sync" config type - const newConfig = options as ConfigOptions; - newConfig.serverConfig = serverConfig; - - // Set the config as usual - this.set(newConfig); - } - - /** - * Merges the provided options with the default options. Ensures a server configuration exists. - * - * @param options The options to merge with defaults - */ - public static get(options?: ConfigOptions): ValidConfigOptions { - if (!this.options && !options) { - throw new Error('Configuration has not been set'); - } - - const merged = { ...this.options, ...options }; - if (!merged.serverConfig || !merged.serverConfig.baseUrl) { - throw new Error('Server configuration has not been set'); - } - - return merged as ValidConfigOptions; - } - - private static isValid(options: ConfigOptions): boolean { - return !!(options && options.serverConfig); - } - - private static validateServerConfig(serverConfig: ServerConfig): void { - if (!serverConfig.timeout) { - serverConfig.timeout = DEFAULT_TIMEOUT; - } - - const url = serverConfig.baseUrl; - if (url && url.charAt(url.length - 1) !== '/') { - serverConfig.baseUrl = url + '/'; - } - } -} - -export default Config; -export type { ConfigOptions, ServerConfig, ValidConfigOptions, StepOptions }; diff --git a/packages/javascript-sdk/src/config/interfaces.ts b/packages/javascript-sdk/src/config/interfaces.ts deleted file mode 100644 index 7d183d373..000000000 --- a/packages/javascript-sdk/src/config/interfaces.ts +++ /dev/null @@ -1,173 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * interfaces.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { ActionTypes } from './enums'; -import type { FRCallbackFactory } from '../fr-auth/callbacks/factory'; -import type { StringDict, Tokens } from '../shared/interfaces'; - -type LogLevel = 'none' | 'info' | 'warn' | 'error' | 'debug'; - -interface Action { - type: ActionTypes; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - payload: any; -} - -/** - * Custom Logger for logger - */ -interface LoggerFunctions< - W = (...msgs: unknown[]) => void, - E = (...msgs: unknown[]) => void, - L = (...msgs: unknown[]) => void, - I = (...msgs: unknown[]) => void, -> { - warn?: W; - error?: E; - log?: L; - info?: I; -} -/** - * Configuration options. - */ -interface ConfigOptions { - callbackFactory?: FRCallbackFactory; - clientId?: string; - middleware?: RequestMiddleware[]; - realmPath?: string; - redirectUri?: string; - scope?: string; - serverConfig?: ServerConfig; - tokenStore?: TokenStoreObject | 'sessionStorage' | 'localStorage'; - tree?: string; - type?: string; - oauthThreshold?: number; - logLevel?: LogLevel; - logger?: LoggerFunctions; - platformHeader?: boolean; - prefix?: string; -} - -/** - * Async ConfigOptions for well-known endpoint usage - */ -interface AsyncConfigOptions extends Omit { - serverConfig: AsyncServerConfig; -} - -type ConfigurablePaths = keyof CustomPathConfig; -/** - * Optional configuration for custom paths for actions - */ -interface CustomPathConfig { - authenticate?: string; - authorize?: string; - accessToken?: string; - endSession?: string; - userInfo?: string; - revoke?: string; - sessions?: string; -} - -type RequestMiddleware = (req: RequestObj, action: Action, next: () => RequestObj) => void; - -interface RequestObj { - url: URL; - init: RequestInit; -} - -/** - * Configuration settings for connecting to a server. - */ -interface ServerConfig { - baseUrl: string; - paths?: CustomPathConfig; - timeout?: number; -} - -/** - * Configuration settings for async config with well-known - */ -interface AsyncServerConfig extends Omit { - wellknown?: string; -} - -/** - * API for implementing a custom token store - */ -interface TokenStoreObject { - get: (clientId: string) => Promise; - set: (clientId: string, token: Tokens) => Promise; - remove: (clientId: string) => Promise; -} - -/** - * Configuration options with a server configuration specified. - */ -interface ValidConfigOptions extends ConfigOptions { - serverConfig: ServerConfig; - logLevel: LogLevel; -} - -/** - * Represents configuration overrides used when requesting the next - * step in an authentication tree. - */ -interface StepOptions extends ConfigOptions { - query?: StringDict; -} - -interface WellKnownResponse { - issuer: string; - authorization_endpoint: string; - pushed_authorization_request_endpoint?: string; - token_endpoint: string; - userinfo_endpoint: string; - end_session_endpoint: string; - introspection_endpoint: string; - revocation_endpoint: string; - jwks_uri?: string; - device_authorization_endpoint?: string; - claims_parameter_supported?: boolean; - request_parameter_supported?: boolean; - request_uri_parameter_supported?: boolean; - require_pushed_authorization_requests?: boolean; - scopes_supported?: string[]; - response_types_supported?: string[]; - response_modes_supported?: string[]; - grant_types_supported?: string[]; - subject_types_supported?: string[]; - id_token_signing_alg_values_supported?: string[]; - userinfo_signing_alg_values_supported?: string[]; - request_object_signing_alg_values_supported?: string[]; - token_endpoint_auth_methods_supported?: string[]; - token_endpoint_auth_signing_alg_values_supported?: string[]; - claim_types_supported?: string[]; - claims_supported?: string[]; - code_challenge_methods_supported?: string[]; -} - -export type { - Action, - AsyncConfigOptions, - AsyncServerConfig, - ConfigOptions, - ConfigurablePaths, - CustomPathConfig, - LogLevel, - LoggerFunctions, - RequestMiddleware, - RequestObj, - ServerConfig, - TokenStoreObject, - ValidConfigOptions, - StepOptions, - WellKnownResponse, -}; diff --git a/packages/javascript-sdk/src/config/well-known.mock.ts b/packages/javascript-sdk/src/config/well-known.mock.ts deleted file mode 100644 index 2a4d955ab..000000000 --- a/packages/javascript-sdk/src/config/well-known.mock.ts +++ /dev/null @@ -1,420 +0,0 @@ -export const frWellKnown = { - request_parameter_supported: true, - pushed_authorization_request_endpoint: - 'https://openam-spetrov.forgeblocks.com:443/am/oauth2/alpha/par', - introspection_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'RSA-OAEP', - 'ECDH-ES+A128KW', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - claims_parameter_supported: false, - introspection_endpoint: 'https://openam-spetrov.forgeblocks.com:443/am/oauth2/alpha/introspect', - issuer: 'https://openam-spetrov.forgeblocks.com:443/am/oauth2/alpha', - id_token_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - userinfo_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - authorization_endpoint: 'https://openam-spetrov.forgeblocks.com:443/am/oauth2/alpha/authorize', - authorization_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'RSA-OAEP', - 'ECDH-ES+A128KW', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - introspection_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - claims_supported: [], - rcs_request_signing_alg_values_supported: [ - 'PS384', - 'ES384', - 'RS384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - token_endpoint_auth_methods_supported: [ - 'client_secret_post', - 'private_key_jwt', - 'self_signed_tls_client_auth', - 'tls_client_auth', - 'none', - 'client_secret_basic', - ], - tls_client_certificate_bound_access_tokens: true, - response_modes_supported: [ - 'fragment.jwt', - 'form_post', - 'form_post.jwt', - 'jwt', - 'fragment', - 'query.jwt', - 'query', - ], - backchannel_logout_session_supported: true, - token_endpoint: 'https://openam-spetrov.forgeblocks.com:443/am/oauth2/alpha/access_token', - response_types_supported: [ - 'code token id_token', - 'code', - 'code id_token', - 'device_code', - 'id_token', - 'code token', - 'token', - 'token id_token', - ], - authorization_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - revocation_endpoint_auth_methods_supported: [ - 'client_secret_post', - 'private_key_jwt', - 'self_signed_tls_client_auth', - 'tls_client_auth', - 'none', - 'client_secret_basic', - ], - request_uri_parameter_supported: true, - grant_types_supported: [ - 'implicit', - 'urn:ietf:params:oauth:grant-type:saml2-bearer', - 'refresh_token', - 'password', - 'client_credentials', - 'urn:ietf:params:oauth:grant-type:device_code', - 'authorization_code', - 'urn:openid:params:grant-type:ciba', - 'urn:ietf:params:oauth:grant-type:uma-ticket', - 'urn:ietf:params:oauth:grant-type:jwt-bearer', - ], - version: '3.0', - prompt_values_supported: ['none', 'login', 'consent'], - userinfo_endpoint: 'https://openam-spetrov.forgeblocks.com:443/am/oauth2/alpha/userinfo', - require_request_uri_registration: true, - code_challenge_methods_supported: ['plain', 'S256'], - id_token_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'RSA-OAEP', - 'ECDH-ES+A128KW', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - authorization_signing_alg_values_supported: [ - 'PS384', - 'RS384', - 'EdDSA', - 'ES384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - request_object_signing_alg_values_supported: [ - 'PS384', - 'ES384', - 'RS384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - request_object_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'ECDH-ES+A128KW', - 'RSA-OAEP', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - rcs_response_signing_alg_values_supported: [ - 'PS384', - 'ES384', - 'RS384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - introspection_signing_alg_values_supported: [ - 'PS384', - 'RS384', - 'EdDSA', - 'ES384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - check_session_iframe: - 'https://openam-spetrov.forgeblocks.com:443/am/oauth2/alpha/connect/checkSession', - scopes_supported: [ - 'address', - 'phone', - 'openid', - 'profile', - 'fr:idm:*', - 'am-introspect-all-tokens', - 'email', - ], - backchannel_logout_supported: true, - acr_values_supported: [], - request_object_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - rcs_request_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'RSA-OAEP', - 'ECDH-ES+A128KW', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - userinfo_signing_alg_values_supported: [ - 'ES384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - ], - require_pushed_authorization_requests: false, - rcs_response_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - userinfo_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'RSA-OAEP', - 'ECDH-ES+A128KW', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - end_session_endpoint: - 'https://openam-spetrov.forgeblocks.com:443/am/oauth2/alpha/connect/endSession', - rcs_request_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - revocation_endpoint: 'https://openam-spetrov.forgeblocks.com:443/am/oauth2/alpha/token/revoke', - rcs_response_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'ECDH-ES+A128KW', - 'RSA-OAEP', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - token_endpoint_auth_signing_alg_values_supported: [ - 'PS384', - 'ES384', - 'RS384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - jwks_uri: 'https://openam-spetrov.forgeblocks.com:443/am/oauth2/alpha/connect/jwk_uri', - subject_types_supported: ['public', 'pairwise'], - id_token_signing_alg_values_supported: [ - 'PS384', - 'ES384', - 'RS384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - registration_endpoint: 'https://openam-spetrov.forgeblocks.com:443/am/oauth2/alpha/register', -}; - -export const piWellKnown = { - issuer: 'https://auth.pingone.ca/02fb4743-189a-4bc7-9d6c-a919edfe6447/as', - authorization_endpoint: - 'https://auth.pingone.ca/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/authorize', - pushed_authorization_request_endpoint: - 'https://auth.pingone.ca/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/par', - token_endpoint: 'https://auth.pingone.ca/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/token', - userinfo_endpoint: 'https://auth.pingone.ca/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/userinfo', - jwks_uri: 'https://auth.pingone.ca/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/jwks', - end_session_endpoint: 'https://auth.pingone.ca/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/signoff', - introspection_endpoint: - 'https://auth.pingone.ca/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/introspect', - revocation_endpoint: 'https://auth.pingone.ca/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/revoke', - device_authorization_endpoint: - 'https://auth.pingone.ca/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/device_authorization', - claims_parameter_supported: false, - request_parameter_supported: true, - request_uri_parameter_supported: false, - require_pushed_authorization_requests: false, - scopes_supported: ['openid', 'profile', 'email', 'address', 'phone'], - response_types_supported: [ - 'code', - 'id_token', - 'token id_token', - 'code id_token', - 'code token', - 'code token id_token', - ], - response_modes_supported: ['pi.flow', 'query', 'fragment', 'form_post'], - grant_types_supported: [ - 'authorization_code', - 'implicit', - 'client_credentials', - 'refresh_token', - 'urn:ietf:params:oauth:grant-type:device_code', - ], - subject_types_supported: ['public'], - id_token_signing_alg_values_supported: ['RS256'], - userinfo_signing_alg_values_supported: ['none'], - request_object_signing_alg_values_supported: [ - 'none', - 'HS256', - 'HS384', - 'HS512', - 'RS256', - 'RS384', - 'RS512', - ], - token_endpoint_auth_methods_supported: [ - 'client_secret_basic', - 'client_secret_post', - 'client_secret_jwt', - 'private_key_jwt', - ], - token_endpoint_auth_signing_alg_values_supported: [ - 'HS256', - 'HS384', - 'HS512', - 'RS256', - 'RS384', - 'RS512', - ], - claim_types_supported: ['normal'], - claims_supported: [ - 'sub', - 'iss', - 'auth_time', - 'acr', - 'name', - 'given_name', - 'family_name', - 'middle_name', - 'preferred_username', - 'profile', - 'picture', - 'zoneinfo', - 'phone_number', - 'updated_at', - 'address', - 'email', - 'locale', - ], - code_challenge_methods_supported: ['plain', 'S256'], -}; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.test.ts deleted file mode 100644 index 8be0340ca..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.test.ts +++ /dev/null @@ -1,82 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * attribute-input-callback.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { CallbackType } from '../../auth/enums'; -import type { Callback } from '../../auth/interfaces'; -import AttributeInputCallback from './attribute-input-callback'; -import { describe, expect, it } from 'vitest'; - -describe('AttributeInputCallback', () => { - const payload: Callback = { - _id: 0, - input: [ - { - name: 'IDToken0', - value: '', - }, - { - name: 'IDToken0validateOnly', - value: false, - }, - ], - output: [ - { - name: 'name', - value: 'givenName', - }, - { - name: 'prompt', - value: 'First Name:', - }, - { - name: 'required', - value: true, - }, - { - name: 'policies', - value: { - policyRequirements: ['a', 'b'], - name: 'givenName', - policies: [], - }, - }, - { - name: 'failedPolicies', - value: [JSON.stringify({ failedPolicies: { c: 'c', d: 'd' } })], - }, - { - name: 'validateOnly', - value: false, - }, - ], - type: CallbackType.StringAttributeInputCallback, - }; - - it('reads/writes basic properties with "validate only"', () => { - const cb = new AttributeInputCallback(payload); - cb.setValue('Clark'); - cb.setValidateOnly(true); - - expect(cb.getType()).toBe('StringAttributeInputCallback'); - expect(cb.getName()).toBe('givenName'); - expect(cb.getPrompt()).toBe('First Name:'); - expect(cb.isRequired()).toBe(true); - expect(cb.getPolicies().policyRequirements).toStrictEqual(['a', 'b']); - expect(cb.getFailedPolicies()).toStrictEqual([{ failedPolicies: { c: 'c', d: 'd' } }]); - expect(cb.getInputValue()).toBe('Clark'); - expect(cb.payload.input[1].value).toBe(true); - }); - - it('writes validate only to `false` for submission', () => { - const cb = new AttributeInputCallback(payload); - cb.setValidateOnly(false); - expect(cb.payload.input[1].value).toBe(false); - }); -}); diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.ts deleted file mode 100644 index df11c7486..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/attribute-input-callback.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * attribute-input-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback, PolicyRequirement } from '../../auth/interfaces'; -import type { StringDict } from '../../shared/interfaces'; - -/** - * Represents a callback used to collect attributes. - * - * @typeparam T Maps to StringAttributeInputCallback, NumberAttributeInputCallback and - * BooleanAttributeInputCallback, respectively - */ -class AttributeInputCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the attribute name. - */ - public getName(): string { - return this.getOutputByName('name', ''); - } - - /** - * Gets the attribute prompt. - */ - public getPrompt(): string { - return this.getOutputByName('prompt', ''); - } - - /** - * Gets whether the attribute is required. - */ - public isRequired(): boolean { - return this.getOutputByName('required', false); - } - - /** - * Gets the callback's failed policies. - */ - public getFailedPolicies(): PolicyRequirement[] { - const failedPolicies = this.getOutputByName( - 'failedPolicies', - [], - ) as unknown as string[]; - try { - return failedPolicies.map((v) => JSON.parse(v)) as PolicyRequirement[]; - } catch (err) { - throw new Error( - 'Unable to parse "failed policies" from the ForgeRock server. The JSON within `AttributeInputCallback` was either malformed or missing.', - ); - } - } - - /** - * Gets the callback's applicable policies. - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - public getPolicies(): StringDict { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return this.getOutputByName>('policies', {}); - } - - /** - * Set if validating value only. - */ - public setValidateOnly(value: boolean): void { - this.setInputValue(value, /validateOnly/); - } - - /** - * Sets the attribute's value. - */ - public setValue(value: T): void { - this.setInputValue(value); - } -} - -export default AttributeInputCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/choice-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/choice-callback.ts deleted file mode 100644 index 1eceb731a..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/choice-callback.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * choice-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to collect an answer to a choice. - */ -class ChoiceCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the choice's prompt. - */ - public getPrompt(): string { - return this.getOutputByName('prompt', ''); - } - - /** - * Gets the choice's default answer. - */ - public getDefaultChoice(): number { - return this.getOutputByName('defaultChoice', 0); - } - - /** - * Gets the choice's possible answers. - */ - public getChoices(): string[] { - return this.getOutputByName('choices', []); - } - - /** - * Sets the choice's answer by index position. - */ - public setChoiceIndex(index: number): void { - const length = this.getChoices().length; - if (index < 0 || index > length - 1) { - throw new Error(`${index} is out of bounds`); - } - this.setInputValue(index); - } - - /** - * Sets the choice's answer by value. - */ - public setChoiceValue(value: string): void { - const index = this.getChoices().indexOf(value); - if (index === -1) { - throw new Error(`"${value}" is not a valid choice`); - } - this.setInputValue(index); - } -} - -export default ChoiceCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/confirmation-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/confirmation-callback.ts deleted file mode 100644 index 50f3fba18..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/confirmation-callback.ts +++ /dev/null @@ -1,82 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * confirmation-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to collect a confirmation to a message. - */ -class ConfirmationCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the index position of the confirmation's default answer. - */ - public getDefaultOption(): number { - return Number(this.getOutputByName('defaultOption', 0)); - } - - /** - * Gets the confirmation's message type. - */ - public getMessageType(): number { - return Number(this.getOutputByName('messageType', 0)); - } - - /** - * Gets the confirmation's possible answers. - */ - public getOptions(): string[] { - return this.getOutputByName('options', []); - } - - /** - * Gets the confirmation's option type. - */ - public getOptionType(): number { - return Number(this.getOutputByName('optionType', 0)); - } - - /** - * Gets the confirmation's prompt. - */ - public getPrompt(): string { - return this.getOutputByName('prompt', ''); - } - - /** - * Set option index. - */ - public setOptionIndex(index: number): void { - if (index !== 0 && index !== 1) { - throw new Error(`"${index}" is not a valid choice`); - } - this.setInputValue(index); - } - - /** - * Set option value. - */ - public setOptionValue(value: string): void { - const index = this.getOptions().indexOf(value); - if (index === -1) { - throw new Error(`"${value}" is not a valid choice`); - } - this.setInputValue(index); - } -} - -export default ConfirmationCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/device-profile-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/device-profile-callback.ts deleted file mode 100644 index 577c0fcd0..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/device-profile-callback.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * device-profile-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; -import type { DeviceProfileData } from '../../fr-device/interfaces'; - -/** - * Represents a callback used to collect device profile data. - */ -class DeviceProfileCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the callback's data. - */ - public getMessage(): string { - return this.getOutputByName('message', ''); - } - - /** - * Does callback require metadata? - */ - public isMetadataRequired(): boolean { - return this.getOutputByName('metadata', false); - } - - /** - * Does callback require location data? - */ - public isLocationRequired(): boolean { - return this.getOutputByName('location', false); - } - - /** - * Sets the profile. - */ - public setProfile(profile: DeviceProfileData): void { - this.setInputValue(JSON.stringify(profile)); - } -} - -export default DeviceProfileCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/factory.ts b/packages/javascript-sdk/src/fr-auth/callbacks/factory.ts deleted file mode 100644 index 854b0baff..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/factory.ts +++ /dev/null @@ -1,98 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * factory.ts - * - * Copyright (c) 2020-2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import { CallbackType } from '../../auth/enums'; -import type { Callback } from '../../auth/interfaces'; -import AttributeInputCallback from './attribute-input-callback'; -import ChoiceCallback from './choice-callback'; -import ConfirmationCallback from './confirmation-callback'; -import DeviceProfileCallback from './device-profile-callback'; -import HiddenValueCallback from './hidden-value-callback'; -import KbaCreateCallback from './kba-create-callback'; -import MetadataCallback from './metadata-callback'; -import NameCallback from './name-callback'; -import PasswordCallback from './password-callback'; -import PingOneProtectEvaluationCallback from './ping-protect-evaluation-callback'; -import PingOneProtectInitializeCallback from './ping-protect-initialize-callback'; -import PollingWaitCallback from './polling-wait-callback'; -import ReCaptchaCallback from './recaptcha-callback'; -import ReCaptchaEnterpriseCallback from './recaptcha-enterprise-callback'; -import RedirectCallback from './redirect-callback'; -import SelectIdPCallback from './select-idp-callback'; -import SuspendedTextOutputCallback from './suspended-text-output-callback'; -import TermsAndConditionsCallback from './terms-and-conditions-callback'; -import TextInputCallback from './text-input-callback'; -import TextOutputCallback from './text-output-callback'; -import ValidatedCreatePasswordCallback from './validated-create-password-callback'; -import ValidatedCreateUsernameCallback from './validated-create-username-callback'; - -type FRCallbackFactory = (callback: Callback) => FRCallback; - -/** - * @hidden - */ -function createCallback(callback: Callback): FRCallback { - switch (callback.type) { - case CallbackType.BooleanAttributeInputCallback: - return new AttributeInputCallback(callback); - case CallbackType.ChoiceCallback: - return new ChoiceCallback(callback); - case CallbackType.ConfirmationCallback: - return new ConfirmationCallback(callback); - case CallbackType.DeviceProfileCallback: - return new DeviceProfileCallback(callback); - case CallbackType.HiddenValueCallback: - return new HiddenValueCallback(callback); - case CallbackType.KbaCreateCallback: - return new KbaCreateCallback(callback); - case CallbackType.MetadataCallback: - return new MetadataCallback(callback); - case CallbackType.NameCallback: - return new NameCallback(callback); - case CallbackType.NumberAttributeInputCallback: - return new AttributeInputCallback(callback); - case CallbackType.PasswordCallback: - return new PasswordCallback(callback); - case CallbackType.PingOneProtectEvaluationCallback: - return new PingOneProtectEvaluationCallback(callback); - case CallbackType.PingOneProtectInitializeCallback: - return new PingOneProtectInitializeCallback(callback); - case CallbackType.PollingWaitCallback: - return new PollingWaitCallback(callback); - case CallbackType.ReCaptchaCallback: - return new ReCaptchaCallback(callback); - case CallbackType.ReCaptchaEnterpriseCallback: - return new ReCaptchaEnterpriseCallback(callback); - case CallbackType.RedirectCallback: - return new RedirectCallback(callback); - case CallbackType.SelectIdPCallback: - return new SelectIdPCallback(callback); - case CallbackType.StringAttributeInputCallback: - return new AttributeInputCallback(callback); - case CallbackType.SuspendedTextOutputCallback: - return new SuspendedTextOutputCallback(callback); - case CallbackType.TermsAndConditionsCallback: - return new TermsAndConditionsCallback(callback); - case CallbackType.TextInputCallback: - return new TextInputCallback(callback); - case CallbackType.TextOutputCallback: - return new TextOutputCallback(callback); - case CallbackType.ValidatedCreatePasswordCallback: - return new ValidatedCreatePasswordCallback(callback); - case CallbackType.ValidatedCreateUsernameCallback: - return new ValidatedCreateUsernameCallback(callback); - default: - return new FRCallback(callback); - } -} - -export default createCallback; -export type { FRCallbackFactory }; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/fr-auth-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/fr-auth-callback.test.ts deleted file mode 100644 index 38c33c854..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/fr-auth-callback.test.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * fr-auth-callback.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import { CallbackType } from '../../auth/enums'; -import type { Callback } from '../../auth/interfaces'; - -describe('FRCallback', () => { - it('reads/writes basic properties', () => { - const payload: Callback = { - _id: 0, - input: [ - { - name: 'userName', - value: '', - }, - ], - output: [ - { - name: 'prompt', - value: 'Username:', - }, - ], - type: CallbackType.NameCallback, - }; - const cb = new FRCallback(payload); - cb.setInputValue('superman'); - - expect(cb.getType()).toBe('NameCallback'); - expect(cb.getOutputValue('prompt')).toBe('Username:'); - expect(cb.getInputValue()).toBe('superman'); - }); -}); diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/hidden-value-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/hidden-value-callback.ts deleted file mode 100644 index 9967fd3f3..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/hidden-value-callback.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * hidden-value-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to collect information indirectly from the user. - */ -class HiddenValueCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } -} - -export default HiddenValueCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/index.ts b/packages/javascript-sdk/src/fr-auth/callbacks/index.ts deleted file mode 100644 index 392f01bcf..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/index.ts +++ /dev/null @@ -1,107 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { CallbackType } from '../../auth/enums'; -import type { Callback, NameValue } from '../../auth/interfaces'; - -/** - * Base class for authentication tree callback wrappers. - */ -class FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) {} - - /** - * Gets the name of this callback type. - */ - public getType(): CallbackType { - return this.payload.type; - } - - /** - * Gets the value of the specified input element, or the first element if `selector` is not - * provided. - * - * @param selector The index position or name of the desired element - */ - public getInputValue(selector: number | string = 0): unknown { - return this.getArrayElement(this.payload.input, selector).value; - } - - /** - * Sets the value of the specified input element, or the first element if `selector` is not - * provided. - * - * @param selector The index position or name of the desired element - */ - public setInputValue(value: unknown, selector: number | string | RegExp = 0): void { - this.getArrayElement(this.payload.input, selector).value = value; - } - - /** - * Gets the value of the specified output element, or the first element if `selector` - * is not provided. - * - * @param selector The index position or name of the desired element - */ - public getOutputValue(selector: number | string = 0): unknown { - return this.getArrayElement(this.payload.output, selector).value; - } - - /** - * Gets the value of the first output element with the specified name or the - * specified default value. - * - * @param name The name of the desired element - */ - public getOutputByName(name: string, defaultValue: T): T { - const output = this.payload.output.find((x) => x.name === name); - return output ? (output.value as T) : defaultValue; - } - - private getArrayElement( - array: NameValue[] | undefined, - selector: number | string | RegExp = 0, - ): NameValue { - if (array === undefined) { - throw new Error(`No NameValue array was provided to search (selector ${selector})`); - } - - if (typeof selector === 'number') { - if (selector < 0 || selector > array.length - 1) { - throw new Error(`Selector index ${selector} is out of range`); - } - return array[selector]; - } - - if (typeof selector === 'string') { - const input = array.find((x) => x.name === selector); - if (!input) { - throw new Error(`Missing callback input entry "${selector}"`); - } - return input; - } - - // Duck typing for RegEx - if (typeof selector === 'object' && selector.test && Boolean(selector.exec)) { - const input = array.find((x) => selector.test(x.name)); - if (!input) { - throw new Error(`Missing callback input entry "${selector}"`); - } - return input; - } - - throw new Error('Invalid selector value type'); - } -} - -export default FRCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/kba-create-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/kba-create-callback.ts deleted file mode 100644 index 5469b38e5..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/kba-create-callback.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * kba-create-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to collect KBA-style security questions and answers. - */ -class KbaCreateCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the callback prompt. - */ - public getPrompt(): string { - return this.getOutputByName('prompt', ''); - } - - /** - * Gets the callback's list of pre-defined security questions. - */ - public getPredefinedQuestions(): string[] { - return this.getOutputByName('predefinedQuestions', []); - } - - /** - * Sets the callback's security question. - */ - public setQuestion(question: string): void { - this.setValue('question', question); - } - - /** - * Sets the callback's security question answer. - */ - public setAnswer(answer: string): void { - this.setValue('answer', answer); - } - - private setValue(type: 'question' | 'answer', value: string): void { - if (!this.payload.input) { - throw new Error('KBA payload is missing input'); - } - - const input = this.payload.input.find((x) => x.name.endsWith(type)); - if (!input) { - throw new Error(`No input has name ending in "${type}"`); - } - input.value = value; - } -} - -export default KbaCreateCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/metadata-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/metadata-callback.ts deleted file mode 100644 index 56f5418fa..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/metadata-callback.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * metadata-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to deliver and collect miscellaneous data. - */ -class MetadataCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the callback's data. - */ - public getData(): T { - return this.getOutputByName('data', {} as T); - } -} - -export default MetadataCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/name-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/name-callback.ts deleted file mode 100644 index 17ef43875..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/name-callback.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * name-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to collect a username. - */ -class NameCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the callback's prompt. - */ - public getPrompt(): string { - return this.getOutputByName('prompt', ''); - } - - /** - * Sets the username. - */ - public setName(name: string): void { - this.setInputValue(name); - } -} - -export default NameCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/password-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/password-callback.ts deleted file mode 100644 index 5ac558acf..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/password-callback.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * password-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback, PolicyRequirement } from '../../auth/interfaces'; - -/** - * Represents a callback used to collect a password. - */ -class PasswordCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the callback's failed policies. - */ - public getFailedPolicies(): PolicyRequirement[] { - return this.getOutputByName('failedPolicies', []); - } - - /** - * Gets the callback's applicable policies. - */ - public getPolicies(): string[] { - return this.getOutputByName('policies', []); - } - - /** - * Gets the callback's prompt. - */ - public getPrompt(): string { - return this.getOutputByName('prompt', ''); - } - - /** - * Sets the password. - */ - public setPassword(password: string): void { - this.setInputValue(password); - } -} - -export default PasswordCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-evaluation-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-evaluation-callback.test.ts deleted file mode 100644 index a7c719ea8..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-evaluation-callback.test.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { vi, describe, it, expect } from 'vitest'; -import { CallbackType } from '../../auth/enums'; -import PingOneProtectEvaluationCallback from './ping-protect-evaluation-callback'; - -describe('PingOneProtectEvaluationCallback', () => { - it('should be defined', () => { - expect(PingOneProtectEvaluationCallback).toBeDefined(); - }); - it('should test that the pauseBehavior method can be called', () => { - const callback = new PingOneProtectEvaluationCallback({ - type: 'PingOneProtectEvaluationCallback' as CallbackType.PingOneProtectEvaluationCallback, - output: [{ name: 'pauseBehavioralData', value: true }], - }); - const mock = vi.spyOn(callback, 'getPauseBehavioralData'); - callback.getPauseBehavioralData(); - expect(mock).toHaveBeenCalled(); - }); - it('should test setData method', () => { - const callback = new PingOneProtectEvaluationCallback({ - type: 'PingOneProtectEvaluationCallback' as CallbackType.PingOneProtectEvaluationCallback, - output: [{ name: 'signals', value: '' }], - input: [ - { - name: 'IDToken1signals', - value: '', - }, - { - name: 'IDToken1clientError', - value: '', - }, - ], - }); - const mock = vi.spyOn(callback, 'setData'); - callback.setData('data'); - expect(mock).toHaveBeenCalledWith('data'); - expect(callback.getInputValue('IDToken1signals')).toBe('data'); - }); - it('should test setClientError method', () => { - const callback = new PingOneProtectEvaluationCallback({ - type: 'PingOneProtectEvaluationCallback' as CallbackType.PingOneProtectEvaluationCallback, - output: [{ name: 'signals', value: '' }], - input: [ - { - name: 'IDToken1signals', - value: '', - }, - { - name: 'IDToken1clientError', - value: '', - }, - ], - }); - const mock = vi.spyOn(callback, 'setClientError'); - callback.setClientError('error i just set'); - expect(mock).toHaveBeenCalledWith('error i just set'); - expect(callback.getInputValue('IDToken1clientError')).toBe('error i just set'); - }); -}); diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-evaluation-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-evaluation-callback.ts deleted file mode 100644 index e50cf13d7..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-evaluation-callback.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * ping-protect-evaluation-callback.ts - * - * Copyright (c) 2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * @class - Represents a callback used to complete and package up device and behavioral data. - */ -class PingOneProtectEvaluationCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the callback's pauseBehavioralData value. - * @returns {boolean} - */ - public getPauseBehavioralData(): boolean { - return this.getOutputByName('pauseBehavioralData', false); - } - - /** - * @method setData - Set the result of data collection - * @param {string} data - Data from calling pingProtect.get() - * @returns {void} - */ - public setData(data: string): void { - this.setInputValue(data, /signals/); - } - - /** - * @method setClientError - Set the client error message - * @param {string} errorMessage - Error message - * @returns {void} - */ - public setClientError(errorMessage: string): void { - this.setInputValue(errorMessage, /clientError/); - } -} - -export default PingOneProtectEvaluationCallback; - -/** - * Example of callback: -{ - "type": "PingOneProtectEvaluationCallback", - "output": [ - { - "name": "pauseBehavioralData", - "value": true - } - ], - "input": [ - { - "name": "IDToken1signals", - "value": "" - }, - { - "name": "IDToken1clientError", - "value": "" - } - ] -} -*/ diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-initialize-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-initialize-callback.test.ts deleted file mode 100644 index a8030f5c9..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-initialize-callback.test.ts +++ /dev/null @@ -1,142 +0,0 @@ -import { vi, describe, expect, it } from 'vitest'; -import { CallbackType } from '../../auth/enums'; -import PingOneProtectInitializeCallback from './ping-protect-initialize-callback'; - -describe('PingOneProtectInitializeCallback', () => { - it('should exist', () => { - expect(PingOneProtectInitializeCallback).toBeDefined(); - }); - it('should test the getConfig method', () => { - const callback = new PingOneProtectInitializeCallback({ - type: 'PingOneProtectInitializeCallback' as CallbackType, - input: [ - { - name: 'IDToken1signals', - value: '', - }, - { - name: 'IDToken1clientError', - value: '', - }, - ], - output: [ - { - name: 'envId', - value: '02fb4743-189a-4bc7-9d6c-a919edfe6447', - }, - { - name: 'consoleLogEnabled', - value: false, - }, - { - name: 'deviceAttributesToIgnore', - value: [], - }, - { - name: 'customHost', - value: '', - }, - { - name: 'lazyMetadata', - value: false, - }, - { - name: 'behavioralDataCollection', - value: true, - }, - { - name: 'deviceKeyRsyncIntervals', - value: 14, - }, - { - name: 'enableTrust', - value: false, - }, - { - name: 'disableTags', - value: false, - }, - { - name: 'disableHub', - value: false, - }, - ], - }); - const mock = vi.spyOn(callback, 'getConfig'); - const config = callback.getConfig(); - expect(mock).toHaveBeenCalled(); - expect(config).toMatchObject({ - envId: '02fb4743-189a-4bc7-9d6c-a919edfe6447', - consoleLogEnabled: false, - deviceAttributesToIgnore: [], - customHost: '', - lazyMetadata: false, - behavioralDataCollection: true, - deviceKeyRsyncIntervals: 14, - enableTrust: false, - disableTags: false, - disableHub: false, - }); - }); - it('should test the setClientError method', () => { - const callback = new PingOneProtectInitializeCallback({ - type: 'PingOneProtectInitializeCallback' as CallbackType, - input: [ - { - name: 'IDToken1signals', - value: '', - }, - { - name: 'IDToken1clientError', - value: '', - }, - ], - output: [ - { - name: 'envId', - value: '02fb4743-189a-4bc7-9d6c-a919edfe6447', - }, - { - name: 'consoleLogEnabled', - value: false, - }, - { - name: 'deviceAttributesToIgnore', - value: [], - }, - { - name: 'customHost', - value: '', - }, - { - name: 'lazyMetadata', - value: false, - }, - { - name: 'behavioralDataCollection', - value: true, - }, - { - name: 'deviceKeyRsyncIntervals', - value: 14, - }, - { - name: 'enableTrust', - value: false, - }, - { - name: 'disableTags', - value: false, - }, - { - name: 'disableHub', - value: false, - }, - ], - }); - const mock = vi.spyOn(callback, 'setClientError'); - callback.setClientError('error i just set'); - expect(mock).toHaveBeenCalled(); - expect(callback.getInputValue('IDToken1clientError')).toBe('error i just set'); - }); -}); diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-initialize-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-initialize-callback.ts deleted file mode 100644 index 7f96bc6d6..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/ping-protect-initialize-callback.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * ping-protect-initialize-callback.ts - * - * Copyright (c) 2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * @class - Represents a callback used to initialize and start device and behavioral data collection. - */ -class PingOneProtectInitializeCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Get callback's initialization config settings - */ - public getConfig() { - const config = { - envId: this.getOutputByName('envId', ''), - consoleLogEnabled: this.getOutputByName('consoleLogEnabled', false), - deviceAttributesToIgnore: this.getOutputByName('deviceAttributesToIgnore', []), - customHost: this.getOutputByName('customHost', ''), - lazyMetadata: this.getOutputByName('lazyMetadata', false), - behavioralDataCollection: this.getOutputByName('behavioralDataCollection', true), - deviceKeyRsyncIntervals: this.getOutputByName('deviceKeyRsyncIntervals', 14), - enableTrust: this.getOutputByName('enableTrust', false), - disableTags: this.getOutputByName('disableTags', false), - disableHub: this.getOutputByName('disableHub', false), - }; - return config; - } - - public setClientError(errorMessage: string): void { - this.setInputValue(errorMessage, /clientError/); - } -} - -export default PingOneProtectInitializeCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/polling-wait-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/polling-wait-callback.ts deleted file mode 100644 index 3441be154..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/polling-wait-callback.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * polling-wait-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to instruct the system to poll while a backend process completes. - */ -class PollingWaitCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the message to display while polling. - */ - public getMessage(): string { - return this.getOutputByName('message', ''); - } - - /** - * Gets the polling interval in milliseconds. - */ - public getWaitTime(): number { - return Number(this.getOutputByName('waitTime', 0)); - } -} - -export default PollingWaitCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-callback.ts deleted file mode 100644 index 498f4f269..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-callback.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * recaptcha-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to integrate reCAPTCHA. - */ -class ReCaptchaCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the reCAPTCHA site key. - */ - public getSiteKey(): string { - return this.getOutputByName('recaptchaSiteKey', ''); - } - - /** - * Sets the reCAPTCHA result. - */ - public setResult(result: string): void { - this.setInputValue(result); - } -} - -export default ReCaptchaCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-enterprise-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-enterprise-callback.test.ts deleted file mode 100644 index c9080fa41..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-enterprise-callback.test.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { describe, expect, it, beforeAll } from 'vitest'; -import ReCaptchaEnterpriseCallback from './recaptcha-enterprise-callback'; -import { CallbackType } from '../../auth/enums'; -import { Callback } from '../../auth/interfaces'; - -const recaptchaCallback: Callback = { - type: 'ReCaptchaEnterpriseCallback' as CallbackType.ReCaptchaEnterpriseCallback, - output: [ - { - name: 'recaptchaSiteKey', - value: '6LdSu_spAAAAAKz3UhIy4JYQld2lm_WRt7dEhf9T', - }, - { - name: 'captchaApiUri', - value: 'https://www.google.com/recaptcha/enterprise.js', - }, - { - name: 'captchaDivClass', - value: 'g-recaptcha', - }, - ], - input: [ - { - name: 'IDToken1token', - value: '', - }, - { - name: 'IDToken1action', - value: '', - }, - { - name: 'IDToken1clientError', - value: '', - }, - { - name: 'IDToken1payload', - value: '', - }, - ], -}; -describe('enterprise recaptcha', () => { - let callback: ReCaptchaEnterpriseCallback; - beforeAll(() => { - callback = new ReCaptchaEnterpriseCallback(recaptchaCallback); - }); - it('should get the site key', () => { - const siteKey = callback.getSiteKey(); - expect(siteKey).toEqual('6LdSu_spAAAAAKz3UhIy4JYQld2lm_WRt7dEhf9T'); - }); - it('should get captchaApiUri', () => { - const url = callback.getApiUrl(); - expect(url).toEqual('https://www.google.com/recaptcha/enterprise.js'); - }); - it('should set the action', () => { - callback.setAction('my_action'); - expect(callback.getInputValue('IDToken1action')).toEqual('my_action'); - }); - it('should set the client error', () => { - callback.setClientError('error here'); - expect(callback.getInputValue('IDToken1clientError')).toEqual('error here'); - }); - it('should set the payload', () => { - callback.setPayload({ test: 'here' }); - expect(callback.getInputValue('IDToken1payload')).toEqual({ test: 'here' }); - }); - it('should set the token', () => { - callback.setResult('12345'); - expect(callback.getInputValue('IDToken1token')).toEqual('12345'); - }); - it('should get the class', () => { - const className = callback.getElementClass(); - expect(className).toBe('g-recaptcha'); - }); -}); diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-enterprise-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-enterprise-callback.ts deleted file mode 100644 index fb3f4e7aa..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/recaptcha-enterprise-callback.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * recaptcha-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; -//"input": [ -// { -// "name": "IDToken1token", -// "value": "" -// }, -// { -// "name": "IDToken1action", -// "value": "" -// }, -// { -// "name": "IDToken1clientError", -// "value": "" -// }, -// { -// "name": "IDToken1payload", -// "value": "" -// } - -/** - * Represents a callback used to integrate reCAPTCHA. - */ -class ReCaptchaEnterpriseCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the reCAPTCHA site key. - */ - public getSiteKey(): string { - return this.getOutputByName('recaptchaSiteKey', ''); - } - - /** - * Get the api url - */ - public getApiUrl(): string { - return this.getOutputByName('captchaApiUri', ''); - } - /** - * Get the class name - */ - public getElementClass(): string { - return this.getOutputByName('captchaDivClass', ''); - } - /** - * Sets the reCAPTCHA result. - */ - public setResult(result: string): void { - this.setInputValue(result); - } - - /** - * Set client client error - */ - public setClientError(error: string) { - this.setInputValue(error, 'IDToken1clientError'); - } - - /** - * Set the recaptcha payload - */ - public setPayload(payload: unknown) { - this.setInputValue(payload, 'IDToken1payload'); - } - - /** - * Set the recaptcha action - */ - public setAction(action: string) { - this.setInputValue(action, 'IDToken1action'); - } -} - -export default ReCaptchaEnterpriseCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/redirect-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/redirect-callback.ts deleted file mode 100644 index c4851382c..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/redirect-callback.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * redirect-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to collect an answer to a choice. - */ -class RedirectCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the redirect URL. - */ - public getRedirectUrl(): string { - return this.getOutputByName('redirectUrl', ''); - } -} - -export default RedirectCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/select-idp-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/select-idp-callback.ts deleted file mode 100644 index a67823b14..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/select-idp-callback.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * select-idp-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -interface IdPValue { - provider: string; - uiConfig: { - [key: string]: string; - }; -} - -/** - * Represents a callback used to collect an answer to a choice. - */ -class SelectIdPCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the available providers. - */ - public getProviders(): IdPValue[] { - return this.getOutputByName('providers', []); - } - - /** - * Sets the provider by name. - */ - public setProvider(value: string): void { - const item = this.getProviders().find((item) => item.provider === value); - if (!item) { - throw new Error(`"${value}" is not a valid choice`); - } - this.setInputValue(item.provider); - } -} - -export default SelectIdPCallback; - -export type { IdPValue }; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/suspended-text-output-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/suspended-text-output-callback.ts deleted file mode 100644 index 55ec03b92..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/suspended-text-output-callback.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * suspended-text-output-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import TextOutputCallback from './text-output-callback'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to display a message. - */ -class SuspendedTextOutputCallback extends TextOutputCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } -} - -export default SuspendedTextOutputCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/terms-and-conditions-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/terms-and-conditions-callback.ts deleted file mode 100644 index 2b4fc4d4f..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/terms-and-conditions-callback.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * terms-and-conditions-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to collect acceptance of terms and conditions. - */ -class TermsAndConditionsCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the terms and conditions content. - */ - public getTerms(): string { - return this.getOutputByName('terms', ''); - } - - /** - * Gets the version of the terms and conditions. - */ - public getVersion(): string { - return this.getOutputByName('version', ''); - } - - /** - * Gets the date of the terms and conditions. - */ - public getCreateDate(): Date { - const date = this.getOutputByName('createDate', ''); - return new Date(date); - } - - /** - * Sets the callback's acceptance. - */ - public setAccepted(accepted = true): void { - this.setInputValue(accepted); - } -} - -export default TermsAndConditionsCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.test.ts deleted file mode 100644 index 94bcdc8e0..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.test.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * attribute-input-callback.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { describe, it, expect } from 'vitest'; -import { CallbackType } from '../../auth/enums'; -import type { Callback } from '../../auth/interfaces'; -import TextInputCallback from './text-input-callback'; - -describe('TextInputCallback', () => { - const payload: Callback = { - type: CallbackType.TextInputCallback, - output: [ - { - name: 'prompt', - value: 'Provide a nickname for this account', - }, - ], - input: [ - { - name: 'IDToken1', - value: '', - }, - ], - }; - - it('reads/writes basic properties', () => { - const cb = new TextInputCallback(payload); - - expect(cb.getPrompt()).toBe('Provide a nickname for this account'); - - cb.setInput('Test setting input'); - - expect(cb.getInputValue()).toBe('Test setting input'); - }); -}); diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.ts deleted file mode 100644 index 4b9c4dfc9..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/text-input-callback.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * text-input-callback.ts - * - * Copyright (c) 2022 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to retrieve input from the user. - */ -class TextInputCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the callback's prompt. - */ - public getPrompt(): string { - return this.getOutputByName('prompt', ''); - } - - /** - * Sets the callback's input value. - */ - public setInput(input: string): void { - this.setInputValue(input); - } -} - -export default TextInputCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/text-output-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/text-output-callback.ts deleted file mode 100644 index 025f7a9a3..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/text-output-callback.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * text-output-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback } from '../../auth/interfaces'; - -/** - * Represents a callback used to display a message. - */ -class TextOutputCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the message content. - */ - public getMessage(): string { - return this.getOutputByName('message', ''); - } - - /** - * Gets the message type. - */ - public getMessageType(): string { - return this.getOutputByName('messageType', ''); - } -} - -export default TextOutputCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.test.ts deleted file mode 100644 index 7c0c1f2c3..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.test.ts +++ /dev/null @@ -1,81 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * validated-create-password-callback.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { describe, it, expect } from 'vitest'; -import { CallbackType } from '../../auth/enums'; -import type { Callback } from '../../auth/interfaces'; -import ValidatedCreatePasswordCallback from './validated-create-password-callback'; - -describe('ValidatedCreatePasswordCallback', () => { - const payload: Callback = { - type: CallbackType.ValidatedCreatePasswordCallback, - output: [ - { - name: 'echoOn', - value: false, - }, - { - name: 'required', - value: true, - }, - { - name: 'policies', - value: { - policyRequirements: ['a', 'b'], - name: 'password', - policies: [], - }, - }, - { - name: 'failedPolicies', - value: [JSON.stringify({ failedPolicies: { c: 'c', d: 'd' } })], - }, - { - name: 'validateOnly', - value: false, - }, - { - name: 'prompt', - value: 'Password', - }, - ], - input: [ - { - name: 'IDToken2', - value: '', - }, - { - name: 'IDToken2validateOnly', - value: false, - }, - ], - _id: 1, - }; - - it('reads/writes basic properties with "validate only"', () => { - const cb = new ValidatedCreatePasswordCallback(payload); - cb.setPassword('abcd123'); - cb.setValidateOnly(true); - - expect(cb.getType()).toBe('ValidatedCreatePasswordCallback'); - expect(cb.getPrompt()).toBe('Password'); - expect(cb.isRequired()).toBe(true); - expect(cb.getPolicies().policyRequirements).toStrictEqual(['a', 'b']); - expect(cb.getFailedPolicies()).toStrictEqual([{ failedPolicies: { c: 'c', d: 'd' } }]); - expect(cb.payload.input[0].value).toBe('abcd123'); - expect(cb.payload.input[1].value).toBe(true); - }); - - it('writes validate only to `false` for submission', () => { - const cb = new ValidatedCreatePasswordCallback(payload); - cb.setValidateOnly(false); - expect(cb.payload.input[1].value).toBe(false); - }); -}); diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.ts deleted file mode 100644 index f36d1395f..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-password-callback.ts +++ /dev/null @@ -1,81 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * validated-create-password-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback, PolicyRequirement } from '../../auth/interfaces'; -import type { StringDict } from '../../shared/interfaces'; - -/** - * Represents a callback used to collect a valid platform password. - */ -class ValidatedCreatePasswordCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the callback's failed policies. - */ - public getFailedPolicies(): PolicyRequirement[] { - const failedPolicies = this.getOutputByName( - 'failedPolicies', - [], - ) as unknown as string[]; - try { - return failedPolicies.map((v) => JSON.parse(v)) as PolicyRequirement[]; - } catch (err) { - throw new Error( - 'Unable to parse "failed policies" from the ForgeRock server. The JSON within `ValidatedCreatePasswordCallback` was either malformed or missing.', - ); - } - } - - /** - * Gets the callback's applicable policies. - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - public getPolicies(): StringDict { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return this.getOutputByName>('policies', {}); - } - - /** - * Gets the callback's prompt. - */ - public getPrompt(): string { - return this.getOutputByName('prompt', ''); - } - - /** - * Gets whether the password is required. - */ - public isRequired(): boolean { - return this.getOutputByName('required', false); - } - - /** - * Sets the callback's password. - */ - public setPassword(password: string): void { - this.setInputValue(password); - } - - /** - * Set if validating value only. - */ - public setValidateOnly(value: boolean): void { - this.setInputValue(value, /validateOnly/); - } -} - -export default ValidatedCreatePasswordCallback; diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.test.ts b/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.test.ts deleted file mode 100644 index adbc21110..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.test.ts +++ /dev/null @@ -1,81 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * validated-create-username-callback.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { describe, it, expect } from 'vitest'; -import { CallbackType } from '../../auth/enums'; -import type { Callback } from '../../auth/interfaces'; -import ValidatedCreateUsernameCallback from './validated-create-username-callback'; - -describe('ValidatedCreateUsernameCallback', () => { - const payload: Callback = { - type: CallbackType.ValidatedCreateUsernameCallback, - output: [ - { - name: 'echoOn', - value: false, - }, - { - name: 'required', - value: true, - }, - { - name: 'policies', - value: { - policyRequirements: ['a', 'b'], - name: 'username', - policies: [], - }, - }, - { - name: 'failedPolicies', - value: [JSON.stringify({ failedPolicies: { c: 'c', d: 'd' } })], - }, - { - name: 'validateOnly', - value: false, - }, - { - name: 'prompt', - value: 'Username', - }, - ], - input: [ - { - name: 'IDToken2', - value: '', - }, - { - name: 'IDToken2validateOnly', - value: false, - }, - ], - _id: 1, - }; - - it('reads/writes basic properties with "validate only"', () => { - const cb = new ValidatedCreateUsernameCallback(payload); - cb.setName('abcd123'); - cb.setValidateOnly(true); - - expect(cb.getType()).toBe('ValidatedCreateUsernameCallback'); - expect(cb.getPrompt()).toBe('Username'); - expect(cb.isRequired()).toBe(true); - expect(cb.getPolicies().policyRequirements).toStrictEqual(['a', 'b']); - expect(cb.getFailedPolicies()).toStrictEqual([{ failedPolicies: { c: 'c', d: 'd' } }]); - expect(cb.payload.input[0].value).toBe('abcd123'); - expect(cb.payload.input[1].value).toBe(true); - }); - - it('writes validate only to `false` for submission', () => { - const cb = new ValidatedCreateUsernameCallback(payload); - cb.setValidateOnly(false); - expect(cb.payload.input[1].value).toBe(false); - }); -}); diff --git a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.ts b/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.ts deleted file mode 100644 index 7e8f8fa1a..000000000 --- a/packages/javascript-sdk/src/fr-auth/callbacks/validated-create-username-callback.ts +++ /dev/null @@ -1,81 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * validated-create-username-callback.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRCallback from '.'; -import type { Callback, PolicyRequirement } from '../../auth/interfaces'; -import type { StringDict } from '../../shared/interfaces'; - -/** - * Represents a callback used to collect a valid platform username. - */ -class ValidatedCreateUsernameCallback extends FRCallback { - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Callback) { - super(payload); - } - - /** - * Gets the callback's prompt. - */ - public getPrompt(): string { - return this.getOutputByName('prompt', ''); - } - - /** - * Gets the callback's failed policies. - */ - public getFailedPolicies(): PolicyRequirement[] { - const failedPolicies = this.getOutputByName( - 'failedPolicies', - [], - ) as unknown as string[]; - try { - return failedPolicies.map((v) => JSON.parse(v)) as PolicyRequirement[]; - } catch (err) { - throw new Error( - 'Unable to parse "failed policies" from the ForgeRock server. The JSON within `ValidatedCreateUsernameCallback` was either malformed or missing.', - ); - } - } - - /** - * Gets the callback's applicable policies. - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - public getPolicies(): StringDict { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return this.getOutputByName>('policies', {}); - } - - /** - * Gets whether the username is required. - */ - public isRequired(): boolean { - return this.getOutputByName('required', false); - } - - /** - * Sets the callback's username. - */ - public setName(name: string): void { - this.setInputValue(name); - } - - /** - * Set if validating value only. - */ - public setValidateOnly(value: boolean): void { - this.setInputValue(value, /validateOnly/); - } -} - -export default ValidatedCreateUsernameCallback; diff --git a/packages/javascript-sdk/src/fr-auth/enums.ts b/packages/javascript-sdk/src/fr-auth/enums.ts deleted file mode 100644 index b031a864e..000000000 --- a/packages/javascript-sdk/src/fr-auth/enums.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * enums.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * Types of steps returned by the authentication tree. - */ -enum StepType { - LoginFailure = 'LoginFailure', - LoginSuccess = 'LoginSuccess', - Step = 'Step', -} - -export { StepType }; diff --git a/packages/javascript-sdk/src/fr-auth/fr-login-failure.ts b/packages/javascript-sdk/src/fr-auth/fr-login-failure.ts deleted file mode 100644 index 76d353a4c..000000000 --- a/packages/javascript-sdk/src/fr-auth/fr-login-failure.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * fr-login-failure.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRPolicy from '../fr-policy'; -import type { MessageCreator, ProcessedPropertyError } from '../fr-policy/interfaces'; -import type { Step } from '../auth/interfaces'; -import { StepType } from './enums'; -import type { AuthResponse, FailureDetail } from './interfaces'; - -class FRLoginFailure implements AuthResponse { - /** - * The type of step. - */ - public readonly type = StepType.LoginFailure; - - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Step) {} - - /** - * Gets the error code. - */ - public getCode(): number { - return Number(this.payload.code); - } - - /** - * Gets the failure details. - */ - public getDetail(): FailureDetail | undefined { - return this.payload.detail; - } - - /** - * Gets the failure message. - */ - public getMessage(): string | undefined { - return this.payload.message; - } - - /** - * Gets processed failure message. - */ - public getProcessedMessage(messageCreator?: MessageCreator): ProcessedPropertyError[] { - return FRPolicy.parseErrors(this.payload, messageCreator); - } - - /** - * Gets the failure reason. - */ - public getReason(): string | undefined { - return this.payload.reason; - } -} - -export default FRLoginFailure; diff --git a/packages/javascript-sdk/src/fr-auth/fr-login-success.ts b/packages/javascript-sdk/src/fr-auth/fr-login-success.ts deleted file mode 100644 index 88acd639e..000000000 --- a/packages/javascript-sdk/src/fr-auth/fr-login-success.ts +++ /dev/null @@ -1,48 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * fr-login-success.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { Step } from '../auth/interfaces'; -import { StepType } from './enums'; -import type { AuthResponse } from './interfaces'; - -class FRLoginSuccess implements AuthResponse { - /** - * The type of step. - */ - public readonly type = StepType.LoginSuccess; - - /** - * @param payload The raw payload returned by OpenAM - */ - constructor(public payload: Step) {} - - /** - * Gets the step's realm. - */ - public getRealm(): string | undefined { - return this.payload.realm; - } - - /** - * Gets the step's session token. - */ - public getSessionToken(): string | undefined { - return this.payload.tokenId; - } - - /** - * Gets the step's success URL. - */ - public getSuccessUrl(): string | undefined { - return this.payload.successUrl; - } -} - -export default FRLoginSuccess; diff --git a/packages/javascript-sdk/src/fr-auth/fr-step.ts b/packages/javascript-sdk/src/fr-auth/fr-step.ts deleted file mode 100644 index ba987f22f..000000000 --- a/packages/javascript-sdk/src/fr-auth/fr-step.ts +++ /dev/null @@ -1,121 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * fr-step.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { CallbackType } from '../auth/enums'; -import type { Callback, Step } from '../auth/interfaces'; -import type FRCallback from './callbacks'; -import type { FRCallbackFactory } from './callbacks/factory'; -import createCallback from './callbacks/factory'; -import { StepType } from './enums'; -import type { AuthResponse } from './interfaces'; - -/** - * Represents a single step of an authentication tree. - */ -class FRStep implements AuthResponse { - /** - * The type of step. - */ - public readonly type = StepType.Step; - - /** - * The callbacks contained in this step. - */ - public callbacks: FRCallback[] = []; - - /** - * @param payload The raw payload returned by OpenAM - * @param callbackFactory A function that returns am implementation of FRCallback - */ - constructor( - public payload: Step, - callbackFactory?: FRCallbackFactory, - ) { - if (payload.callbacks) { - this.callbacks = this.convertCallbacks(payload.callbacks, callbackFactory); - } - } - - /** - * Gets the first callback of the specified type in this step. - * - * @param type The type of callback to find. - */ - public getCallbackOfType(type: CallbackType): T { - const callbacks = this.getCallbacksOfType(type); - if (callbacks.length !== 1) { - throw new Error(`Expected 1 callback of type "${type}", but found ${callbacks.length}`); - } - return callbacks[0]; - } - - /** - * Gets all callbacks of the specified type in this step. - * - * @param type The type of callback to find. - */ - public getCallbacksOfType(type: CallbackType): T[] { - return this.callbacks.filter((x) => x.getType() === type) as T[]; - } - - /** - * Sets the value of the first callback of the specified type in this step. - * - * @param type The type of callback to find. - * @param value The value to set for the callback. - */ - public setCallbackValue(type: CallbackType, value: unknown): void { - const callbacks = this.getCallbacksOfType(type); - if (callbacks.length !== 1) { - throw new Error(`Expected 1 callback of type "${type}", but found ${callbacks.length}`); - } - callbacks[0].setInputValue(value); - } - - /** - * Gets the step's description. - */ - public getDescription(): string | undefined { - return this.payload.description; - } - - /** - * Gets the step's header. - */ - public getHeader(): string | undefined { - return this.payload.header; - } - - /** - * Gets the step's stage. - */ - public getStage(): string | undefined { - return this.payload.stage; - } - - private convertCallbacks( - callbacks: Callback[], - callbackFactory?: FRCallbackFactory, - ): FRCallback[] { - const converted = callbacks.map((x: Callback) => { - // This gives preference to the provided factory and falls back to our default implementation - return (callbackFactory || createCallback)(x) || createCallback(x); - }); - return converted; - } -} - -/** - * A function that can populate the provided authentication tree step. - */ -type FRStepHandler = (step: FRStep) => void; - -export default FRStep; -export type { FRStepHandler }; diff --git a/packages/javascript-sdk/src/fr-auth/index.ts b/packages/javascript-sdk/src/fr-auth/index.ts deleted file mode 100644 index 5d783edf5..000000000 --- a/packages/javascript-sdk/src/fr-auth/index.ts +++ /dev/null @@ -1,196 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import Config, { StepOptions } from '../config'; -import Auth from '../auth/index'; -import { CallbackType } from '../auth/enums'; -import type RedirectCallback from '../fr-auth/callbacks/redirect-callback'; -import FRLoginFailure from './fr-login-failure'; -import FRLoginSuccess from './fr-login-success'; -import FRStep from './fr-step'; - -/** - * Provides access to the OpenAM authentication tree API. - */ -abstract class FRAuth { - public static get previousStepKey() { - return `${Config.get().prefix}-PreviousStep`; - } - - /** - * Requests the next step in the authentication tree. - * - * Call `FRAuth.next()` recursively. At each step, check for session token or error, otherwise - * populate the step's callbacks and call `next()` again. - * - * Example: - * - * ```js - * async function nextStep(previousStep) { - * const thisStep = await FRAuth.next(previousStep); - * - * switch (thisStep.type) { - * case StepType.LoginSuccess: - * const token = thisStep.getSessionToken(); - * break; - * case StepType.LoginFailure: - * const detail = thisStep.getDetail(); - * break; - * case StepType.Step: - * // Populate `thisStep` callbacks here, and then continue - * thisStep.setInputValue('foo'); - * nextStep(thisStep); - * break; - * } - * } - * ``` - * - * @param previousStep The previous step with its callback values populated - * @param options Configuration overrides - * @return The next step in the authentication tree - */ - public static async next( - previousStep?: FRStep, - options?: StepOptions, - ): Promise { - const nextPayload = await Auth.next(previousStep ? previousStep.payload : undefined, options); - - if (nextPayload.authId) { - // If there's an authId, tree has not been completed - const callbackFactory = options ? options.callbackFactory : undefined; - return new FRStep(nextPayload, callbackFactory); - } - - if (!nextPayload.authId && nextPayload.ok) { - // If there's no authId, and the response is OK, tree is complete - return new FRLoginSuccess(nextPayload); - } - - // If there's no authId, and the response is not OK, tree has failure - return new FRLoginFailure(nextPayload); - } - - /** - * Redirects to the URL identified in the RedirectCallback and saves the full - * step information to localStorage for retrieval when user returns from login. - * - * Example: - * ```js - * forgerock.FRAuth.redirect(step); - * ``` - */ - public static redirect(step: FRStep): void { - const cb = step.getCallbackOfType(CallbackType.RedirectCallback) as RedirectCallback; - const redirectUrl = cb.getRedirectUrl(); - - localStorage.setItem(this.previousStepKey, JSON.stringify(step)); - location.assign(redirectUrl); - } - - /** - * Resumes a tree after returning from an external client or provider. - * Requires the full URL of the current window. It will parse URL for - * key-value pairs as well as, if required, retrieves previous step. - * - * Example; - * ```js - * forgerock.FRAuth.resume(window.location.href) - * ``` - */ - public static async resume( - url: string, - options?: StepOptions, - ): Promise { - const parsedUrl = new URL(url); - const code = parsedUrl.searchParams.get('code'); - const error = parsedUrl.searchParams.get('error'); - const errorCode = parsedUrl.searchParams.get('errorCode'); - const errorMessage = parsedUrl.searchParams.get('errorMessage'); - const form_post_entry = parsedUrl.searchParams.get('form_post_entry'); - const nonce = parsedUrl.searchParams.get('nonce'); - const RelayState = parsedUrl.searchParams.get('RelayState'); - const responsekey = parsedUrl.searchParams.get('responsekey'); - const scope = parsedUrl.searchParams.get('scope'); - const state = parsedUrl.searchParams.get('state'); - const suspendedId = parsedUrl.searchParams.get('suspendedId'); - const authIndexValue = parsedUrl.searchParams.get('authIndexValue') ?? undefined; - - let previousStep; - - function requiresPreviousStep() { - return (code && state) || form_post_entry || responsekey; - } - - /** - * If we are returning back from a provider, the previous redirect step data is required. - * Retrieve the previous step from localStorage, and then delete it to remove stale data. - * If suspendedId is present, no previous step data is needed, so skip below conditional. - */ - if (requiresPreviousStep()) { - const redirectStepString = localStorage.getItem(this.previousStepKey); - - if (!redirectStepString) { - throw new Error('Error: could not retrieve original redirect information.'); - } - - try { - previousStep = JSON.parse(redirectStepString); - } catch (err) { - throw new Error('Error: could not parse redirect params or step information'); - } - - localStorage.removeItem(this.previousStepKey); - } - - /** - * Construct options object from the options parameter and key-value pairs from URL. - * Ensure query parameters from current URL are the last properties spread in the object. - */ - const nextOptions = { - ...options, - query: { - // Conditionally spread properties into object. Don't spread props with undefined/null. - ...(code && { code }), - ...(error && { error }), - ...(errorCode && { errorCode }), - ...(errorMessage && { errorMessage }), - ...(form_post_entry && { form_post_entry }), - ...(nonce && { nonce }), - ...(RelayState && { RelayState }), - ...(responsekey && { responsekey }), - ...(scope && { scope }), - ...(state && { state }), - ...(suspendedId && { suspendedId }), - // Allow developer to add or override params with their own. - ...(options && options.query), - }, - ...((options?.tree ?? authIndexValue) && { - tree: options?.tree ?? authIndexValue, - }), - }; - - return await this.next(previousStep, nextOptions); - } - - /** - * Requests the first step in the authentication tree. - * This is essentially an alias to calling FRAuth.next without a previous step. - * - * @param options Configuration overrides - * @return The next step in the authentication tree - */ - public static async start( - options?: StepOptions, - ): Promise { - return await FRAuth.next(undefined, options); - } -} - -export default FRAuth; diff --git a/packages/javascript-sdk/src/fr-auth/interfaces.ts b/packages/javascript-sdk/src/fr-auth/interfaces.ts deleted file mode 100644 index 2de0f3ff8..000000000 --- a/packages/javascript-sdk/src/fr-auth/interfaces.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * interfaces.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { StepType } from './enums'; - -/** - * Base interface for all types of authentication step responses. - */ -interface AuthResponse { - type: StepType; -} - -/** - * Represents details of a failure in an authentication step. - */ -interface FailureDetail { - failureUrl?: string; -} - -export type { AuthResponse, FailureDetail }; diff --git a/packages/javascript-sdk/src/fr-device/collector.ts b/packages/javascript-sdk/src/fr-device/collector.ts deleted file mode 100644 index 7e37f037f..000000000 --- a/packages/javascript-sdk/src/fr-device/collector.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * collector.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { StringDict } from '../shared/interfaces'; - -/** - * @class Collector - base class for FRDevice - * Generic collector functions for collecting a device profile attributes - */ -class Collector { - /** - * @method reduceToObject - goes one to two levels into source to collect attribute - * @param props - array of strings; can use dot notation for two level lookup - * @param src - source of attributes to check - */ - // eslint-disable-next-line - reduceToObject(props: string[], src: StringDict): StringDict { - return props.reduce((prev, curr) => { - if (curr.includes('.')) { - const propArr = curr.split('.'); - const prop1 = propArr[0]; - const prop2 = propArr[1]; - const prop = src[prop1] && src[prop1][prop2]; - prev[prop2] = prop != undefined ? prop : ''; - } else { - prev[curr] = src[curr] != undefined ? src[curr] : null; - } - return prev; - }, {} as StringDict); - } - - /** - * @method reduceToString - goes one level into source to collect attribute - * @param props - array of strings - * @param src - source of attributes to check - */ - // eslint-disable-next-line - reduceToString(props: string[], src: any): string { - return props.reduce((prev, curr) => { - prev = `${prev}${src[curr].filename};`; - return prev; - }, ''); - } -} - -export default Collector; diff --git a/packages/javascript-sdk/src/fr-device/defaults.ts b/packages/javascript-sdk/src/fr-device/defaults.ts deleted file mode 100644 index 9b6d6a027..000000000 --- a/packages/javascript-sdk/src/fr-device/defaults.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * defaults.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -const browserProps = [ - 'userAgent', - 'appName', - 'appCodeName', - 'appVersion', - 'appMinorVersion', - 'buildID', - 'product', - 'productSub', - 'vendor', - 'vendorSub', - 'browserLanguage', -]; -const configurableCategories = [ - 'fontNames', - 'displayProps', - 'browserProps', - 'hardwareProps', - 'platformProps', -]; -const delay = 30 * 1000; -const devicePlatforms = { - mac: ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'], - windows: ['Win32', 'Win64', 'Windows', 'WinCE'], - ios: ['iPhone', 'iPad', 'iPod'], -}; -const displayProps = ['width', 'height', 'pixelDepth', 'orientation.angle']; -const fontNames = [ - 'cursive', - 'monospace', - 'serif', - 'sans-serif', - 'fantasy', - 'Arial', - 'Arial Black', - 'Arial Narrow', - 'Arial Rounded MT Bold', - 'Bookman Old Style', - 'Bradley Hand ITC', - 'Century', - 'Century Gothic', - 'Comic Sans MS', - 'Courier', - 'Courier New', - 'Georgia', - 'Gentium', - 'Impact', - 'King', - 'Lucida Console', - 'Lalit', - 'Modena', - 'Monotype Corsiva', - 'Papyrus', - 'Tahoma', - 'TeX', - 'Times', - 'Times New Roman', - 'Trebuchet MS', - 'Verdana', - 'Verona', -]; -const hardwareProps = [ - 'cpuClass', - 'deviceMemory', - 'hardwareConcurrency', - 'maxTouchPoints', - 'oscpu', -]; -const platformProps = ['language', 'platform', 'userLanguage', 'systemLanguage']; - -export { - browserProps, - configurableCategories, - delay, - devicePlatforms, - displayProps, - fontNames, - hardwareProps, - platformProps, -}; diff --git a/packages/javascript-sdk/src/fr-device/device-profile.mock.data.ts b/packages/javascript-sdk/src/fr-device/device-profile.mock.data.ts deleted file mode 100644 index 7227fe0dc..000000000 --- a/packages/javascript-sdk/src/fr-device/device-profile.mock.data.ts +++ /dev/null @@ -1,122 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * device-profile.mock.data.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -const expectedJsdom = { - identifier: '', - metadata: { - hardware: { - display: { - width: 0, - height: 0, - pixelDepth: 24, - angle: '', - }, - cpuClass: null, - deviceMemory: null, - hardwareConcurrency: 16, - maxTouchPoints: null, - oscpu: null, - }, - browser: { - appName: 'Netscape', - userAgent: 'Mozilla/5.0 (darwin) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/16.2.2', - appCodeName: 'Mozilla', - appVersion: '4.0', - appMinorVersion: null, - buildID: null, - product: 'Gecko', - productSub: '20030107', - vendor: 'Apple Computer, Inc.', - vendorSub: '', - browserLanguage: null, - plugins: '', - }, - platform: { - deviceName: 'Unknown (Browser)', - fonts: '', - language: 'en-US', - platform: '', - userLanguage: null, - systemLanguage: null, - timezone: 300, - }, - }, -}; - -const expectedJsdomWithoutDisplay = { - identifier: '', - metadata: { - hardware: { - display: {}, - cpuClass: null, - deviceMemory: null, - hardwareConcurrency: 16, - maxTouchPoints: null, - oscpu: null, - }, - browser: { - appName: 'Netscape', - userAgent: 'Mozilla/5.0 (darwin) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/16.2.2', - appCodeName: 'Mozilla', - appVersion: '4.0', - appMinorVersion: null, - buildID: null, - product: 'Gecko', - productSub: '20030107', - vendor: 'Apple Computer, Inc.', - vendorSub: '', - browserLanguage: null, - plugins: '', - }, - platform: { - deviceName: 'Unknown (Browser)', - fonts: '', - language: 'en-US', - platform: '', - userLanguage: null, - systemLanguage: null, - timezone: 300, - }, - }, -}; - -const expectedJsdomWithNarrowedBrowserProps = { - identifier: '', - metadata: { - hardware: { - display: { - width: 0, - height: 0, - pixelDepth: 24, - angle: '', - }, - cpuClass: null, - deviceMemory: null, - hardwareConcurrency: 16, - maxTouchPoints: null, - oscpu: null, - }, - browser: { - userAgent: 'Mozilla/5.0 (darwin) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/16.2.2', - plugins: '', - }, - platform: { - deviceName: 'Unknown (Browser)', - fonts: '', - language: 'en-US', - platform: '', - userLanguage: null, - systemLanguage: null, - timezone: 300, - }, - }, -}; - -export { expectedJsdom, expectedJsdomWithoutDisplay, expectedJsdomWithNarrowedBrowserProps }; diff --git a/packages/javascript-sdk/src/fr-device/device-profile.test.ts b/packages/javascript-sdk/src/fr-device/device-profile.test.ts deleted file mode 100644 index 93128bbfe..000000000 --- a/packages/javascript-sdk/src/fr-device/device-profile.test.ts +++ /dev/null @@ -1,86 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * device-profile.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import { vi, expect, describe, it, beforeAll } from 'vitest'; -import Config from '../config'; -import FRDevice from './index'; - -Object.defineProperty(window, 'crypto', { - writable: true, - value: { - getRandomValues: vi.fn().mockImplementation(() => ['714524572', '2799534390', '3707617532']), - }, -}); - -beforeAll(() => { - Config.set({ - serverConfig: { - baseUrl: 'http://am.example.com:8443', - timeout: 3000, - }, - }); -}); -describe('Test DeviceProfile', () => { - it('should return basic metadata', async () => { - const device = new FRDevice(); - const profile = await device.getProfile({ - location: false, - metadata: true, - }); - const userAgent = profile.metadata.browser.userAgent as string; - const appName = profile.metadata.browser.appName as string; - const appVersion = profile.metadata.browser.appVersion as string; - const vendor = profile.metadata.browser.vendor as string; - const display = profile.metadata.hardware.display; - const deviceName = profile.metadata.platform.deviceName as string; - expect(userAgent.includes('jsdom')).toBeTruthy(); - expect(appName).toBe('Netscape'); - expect(appVersion).toBe('4.0'); - expect(vendor).toBe('Apple Computer, Inc.'); - expect(display).toHaveProperty('width'); - expect(display).toHaveProperty('height'); - expect(deviceName.length).toBeGreaterThan(1); - }); - - it('should return metadata without any display props', async () => { - const device = new FRDevice({ displayProps: [] }); - const profile = await device.getProfile({ - location: false, - metadata: true, - }); - const userAgent = profile.metadata.browser.userAgent as string; - const display = profile.metadata.hardware.display; - const deviceName = profile.metadata.platform.deviceName as string; - expect(userAgent.length).toBeGreaterThan(1); - expect(display.width).toBeFalsy(); - expect(display.height).toBeFalsy(); - expect(deviceName.length).toBeGreaterThan(1); - }); - - it('should return metadata according to narrowed browser props', async () => { - const device = new FRDevice({ browserProps: ['userAgent'] }); - const profile = await device.getProfile({ - location: false, - metadata: true, - }); - const userAgent = profile.metadata.browser.userAgent as string; - const appName = profile.metadata.browser.appName as string; - const appVersion = profile.metadata.browser.appVersion as string; - const vendor = profile.metadata.browser.vendor as string; - const display = profile.metadata.hardware.display; - const deviceName = profile.metadata.platform.deviceName as string; - expect(userAgent.includes('jsdom')).toBeTruthy(); - expect(appName).toBeFalsy(); - expect(appVersion).toBeFalsy(); - expect(vendor).toBeFalsy(); - expect(display).toHaveProperty('width'); - expect(display).toHaveProperty('height'); - expect(deviceName.length).toBeGreaterThan(1); - }); -}); diff --git a/packages/javascript-sdk/src/fr-device/index.ts b/packages/javascript-sdk/src/fr-device/index.ts deleted file mode 100644 index a67b2d437..000000000 --- a/packages/javascript-sdk/src/fr-device/index.ts +++ /dev/null @@ -1,264 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { - browserProps, - configurableCategories, - delay, - devicePlatforms, - displayProps, - fontNames, - hardwareProps, - platformProps, -} from './defaults'; -import type { - BaseProfileConfig, - Category, - CollectParameters, - DeviceProfileData, - Geolocation, - ProfileConfigOptions, -} from './interfaces'; -import Collector from './collector'; -import { FRLogger } from '../util/logger'; -import Config from '../config'; - -/** - * @class FRDevice - Collects user device metadata - * - * Example: - * - * ```js - * // Instantiate new device object (w/optional config, if needed) - * const device = new forgerock.FRDevice( - * // optional configuration - * ); - * // override any instance methods, if needed - * // e.g.: device.getDisplayMeta = () => {}; - * - * // Call getProfile with required argument obj of boolean properties - * // of location and metadata - * const profile = await device.getProfile({ - * location: isLocationRequired, - * metadata: isMetadataRequired, - * }); - * ``` - */ -class FRDevice extends Collector { - config: BaseProfileConfig = { - fontNames, - devicePlatforms, - displayProps, - browserProps, - hardwareProps, - platformProps, - }; - - constructor(config?: ProfileConfigOptions) { - super(); - if (config) { - Object.keys(config).forEach((key: string) => { - if (!configurableCategories.includes(key)) { - throw new Error('Device profile configuration category does not exist.'); - } - this.config[key as Category] = config[key as Category]; - }); - } - } - - getBrowserMeta(): { [key: string]: string } { - if (typeof navigator === 'undefined') { - FRLogger.warn('Cannot collect browser metadata. navigator is not defined.'); - return {}; - } - return this.reduceToObject(this.config.browserProps, navigator); - } - - getBrowserPluginsNames(): string { - if (!(typeof navigator !== 'undefined' && navigator.plugins)) { - FRLogger.warn('Cannot collect browser plugin information. navigator.plugins is not defined.'); - return ''; - } - return this.reduceToString(Object.keys(navigator.plugins), navigator.plugins); - } - - getDeviceName(): string { - if (typeof navigator === 'undefined') { - FRLogger.warn('Cannot collect device name. navigator is not defined.'); - return ''; - } - const userAgent = navigator.userAgent; - const platform = navigator.platform; - - switch (true) { - case this.config.devicePlatforms.mac.includes(platform): - return 'Mac (Browser)'; - case this.config.devicePlatforms.ios.includes(platform): - return `${platform} (Browser)`; - case this.config.devicePlatforms.windows.includes(platform): - return 'Windows (Browser)'; - case /Android/.test(platform) || /Android/.test(userAgent): - return 'Android (Browser)'; - case /CrOS/.test(userAgent) || /Chromebook/.test(userAgent): - return 'Chrome OS (Browser)'; - case /Linux/.test(platform): - return 'Linux (Browser)'; - default: - return `${platform || 'Unknown'} (Browser)`; - } - } - - getDisplayMeta(): { [key: string]: string | number | null } { - if (typeof screen === 'undefined') { - FRLogger.warn('Cannot collect screen information. screen is not defined.'); - return {}; - } - return this.reduceToObject(this.config.displayProps, screen); - } - - getHardwareMeta(): { [key: string]: string } { - if (typeof navigator === 'undefined') { - FRLogger.warn('Cannot collect OS metadata. Navigator is not defined.'); - return {}; - } - return this.reduceToObject(this.config.hardwareProps, navigator); - } - - getIdentifier(): string { - const storageKey = `${Config.get().prefix}-DeviceID`; - - if (!(typeof globalThis.crypto !== 'undefined' && globalThis.crypto.getRandomValues)) { - FRLogger.warn('Cannot generate profile ID. Crypto and/or getRandomValues is not supported.'); - return ''; - } - if (!localStorage) { - FRLogger.warn('Cannot store profile ID. localStorage is not supported.'); - return ''; - } - let id = localStorage.getItem(storageKey); - if (!id) { - // generate ID, 3 sections of random numbers: "714524572-2799534390-3707617532" - id = globalThis.crypto.getRandomValues(new Uint32Array(3)).join('-'); - localStorage.setItem(storageKey, id); - } - return id; - } - - getInstalledFonts(): string { - if (typeof document === 'undefined') { - FRLogger.warn('Cannot collect font data. Global document object is undefined.'); - return ''; - } - const canvas = document.createElement('canvas'); - if (!canvas) { - FRLogger.warn('Cannot collect font data. Browser does not support canvas element'); - return ''; - } - const context = canvas.getContext && canvas.getContext('2d'); - - if (!context) { - FRLogger.warn('Cannot collect font data. Browser does not support 2d canvas context'); - return ''; - } - const text = 'abcdefghi0123456789'; - context.font = '72px Comic Sans'; - const baseWidth = context.measureText(text).width; - - const installedFonts = this.config.fontNames.reduce((prev, curr) => { - context.font = `72px ${curr}, Comic Sans`; - const newWidth = context.measureText(text).width; - - if (newWidth !== baseWidth) { - prev = `${prev}${curr};`; - } - return prev; - }, ''); - - return installedFonts; - } - - async getLocationCoordinates(): Promise> { - if (!(typeof navigator !== 'undefined' && navigator.geolocation)) { - FRLogger.warn( - 'Cannot collect geolocation information. navigator.geolocation is not defined.', - ); - return Promise.resolve({}); - } - // eslint-disable-next-line no-async-promise-executor - return new Promise(async (resolve) => { - navigator.geolocation.getCurrentPosition( - (position) => - resolve({ - latitude: position.coords.latitude, - longitude: position.coords.longitude, - }), - (error) => { - FRLogger.warn( - 'Cannot collect geolocation information. ' + error.code + ': ' + error.message, - ); - resolve({}); - }, - { - enableHighAccuracy: true, - timeout: delay, - maximumAge: 0, - }, - ); - }); - } - - getOSMeta(): { [key: string]: string } { - if (typeof navigator === 'undefined') { - FRLogger.warn('Cannot collect OS metadata. navigator is not defined.'); - return {}; - } - return this.reduceToObject(this.config.platformProps, navigator); - } - - async getProfile({ location, metadata }: CollectParameters): Promise { - const profile: DeviceProfileData = { - identifier: this.getIdentifier(), - }; - - if (metadata) { - profile.metadata = { - hardware: { - ...this.getHardwareMeta(), - display: this.getDisplayMeta(), - }, - browser: { - ...this.getBrowserMeta(), - plugins: this.getBrowserPluginsNames(), - }, - platform: { - ...this.getOSMeta(), - deviceName: this.getDeviceName(), - fonts: this.getInstalledFonts(), - timezone: this.getTimezoneOffset(), - }, - }; - } - if (location) { - profile.location = await this.getLocationCoordinates(); - } - return profile; - } - - getTimezoneOffset(): number | null { - try { - return new Date().getTimezoneOffset(); - } catch (err) { - FRLogger.warn('Cannot collect timezone information. getTimezoneOffset is not defined.'); - return null; - } - } -} - -export default FRDevice; diff --git a/packages/javascript-sdk/src/fr-device/interfaces.ts b/packages/javascript-sdk/src/fr-device/interfaces.ts deleted file mode 100644 index dbb2e0003..000000000 --- a/packages/javascript-sdk/src/fr-device/interfaces.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * interfaces.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -type Category = 'fontNames' | 'displayProps' | 'browserProps' | 'hardwareProps' | 'platformProps'; - -interface CollectParameters { - location: boolean; - metadata: boolean; -} - -interface DeviceProfileData { - identifier: string; - metadata?: { - hardware: { - display: { - [key: string]: string | number | null; - }; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - [key: string]: any; - }; - browser: { - [key: string]: string | number | null; - }; - platform: { - [key: string]: string | number | null; - }; - }; - location?: Geolocation | Record; -} - -interface Geolocation { - latitude: number; - longitude: number; -} - -interface BaseProfileConfig { - fontNames: string[]; - devicePlatforms: { - mac: string[]; - windows: string[]; - ios: string[]; - }; - displayProps: string[]; - browserProps: string[]; - hardwareProps: string[]; - platformProps: string[]; -} - -interface ProfileConfigOptions { - [key: string]: string[]; -} - -export type { - BaseProfileConfig, - Category, - CollectParameters, - DeviceProfileData, - Geolocation, - ProfileConfigOptions, -}; diff --git a/packages/javascript-sdk/src/fr-device/sample-profile.json b/packages/javascript-sdk/src/fr-device/sample-profile.json deleted file mode 100644 index 1b0375352..000000000 --- a/packages/javascript-sdk/src/fr-device/sample-profile.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "indentifier": "714524572-2799534390-3707617532", - "metadata": { - "hardware": { - "cpuClass": null, - "deviceMemory": 8, - "hardwareConcurrency": 16, - "maxTouchPoints": 0, - "oscpu": null, - "display": { - "width": 1080, - "height": 1920, - "pixelDepth": 24, - "angle": 270 - } - }, - "browser": { - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36 Edg/80.0.361.111", - "appName": "Netscape", - "appCodeName": "Mozilla", - "appVersion": "5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36 Edg/80.0.361.111", - "appMinorVersion": null, - "buildID": null, - "product": "Gecko", - "productSub": "20030107", - "vendor": "Google Inc.", - "vendorSub": "", - "browserLanguage": null, - "plugins": "internal-pdf-viewer;mhjfbmdgcfjbbpaeojofohoefgiehjai;internal-nacl-plugin;" - }, - "platform": { - "deviceName": "Mac (Browser)", - "language": "en-US", - "platform": "MacIntel", - "userLanguage": null, - "systemLanguage": null, - "fonts": "cursive;monospace;sans-serif;fantasy;Arial;Arial Black;Arial Narrow;Arial Rounded MT Bold;Comic Sans MS;Courier;Courier New;Georgia;Impact;Papyrus;Tahoma;Trebuchet MS;Verdana;", - "timezone": 300 - } - }, - "location": { - "latitude": 27.766237, - "longitude": -94.889905 - } -} diff --git a/packages/javascript-sdk/src/fr-policy/enums.ts b/packages/javascript-sdk/src/fr-policy/enums.ts deleted file mode 100644 index d12489ed2..000000000 --- a/packages/javascript-sdk/src/fr-policy/enums.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * enums.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -enum PolicyKey { - CannotContainCharacters = 'CANNOT_CONTAIN_CHARACTERS', - CannotContainDuplicates = 'CANNOT_CONTAIN_DUPLICATES', - CannotContainOthers = 'CANNOT_CONTAIN_OTHERS', - LeastCapitalLetters = 'AT_LEAST_X_CAPITAL_LETTERS', - LeastNumbers = 'AT_LEAST_X_NUMBERS', - MatchRegexp = 'MATCH_REGEXP', - MaximumLength = 'MAX_LENGTH', - MaximumNumber = 'MAXIMUM_NUMBER_VALUE', - MinimumLength = 'MIN_LENGTH', - MinimumNumber = 'MINIMUM_NUMBER_VALUE', - Required = 'REQUIRED', - Unique = 'UNIQUE', - UnknownPolicy = 'UNKNOWN_POLICY', - ValidArrayItems = 'VALID_ARRAY_ITEMS', - ValidDate = 'VALID_DATE', - ValidEmailAddress = 'VALID_EMAIL_ADDRESS_FORMAT', - ValidNameFormat = 'VALID_NAME_FORMAT', - ValidNumber = 'VALID_NUMBER', - ValidPhoneFormat = 'VALID_PHONE_FORMAT', - ValidQueryFilter = 'VALID_QUERY_FILTER', - ValidType = 'VALID_TYPE', -} - -export { PolicyKey }; diff --git a/packages/javascript-sdk/src/fr-policy/fr-policy.test.ts b/packages/javascript-sdk/src/fr-policy/fr-policy.test.ts deleted file mode 100644 index ea66db6ea..000000000 --- a/packages/javascript-sdk/src/fr-policy/fr-policy.test.ts +++ /dev/null @@ -1,197 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * fr-policy.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRPolicy from '.'; -import { PolicyKey } from './enums'; - -describe('The IDM error handling', () => { - const property = 'userName'; - - it('returns a human readable error message', () => { - const test = { - expectedString: `${property} must be unique`, - policy: { - policyRequirement: 'UNIQUE', - }, - }; - const message = FRPolicy.parsePolicyRequirement(property, test.policy); - expect(message).toBe(test.expectedString); - }); - - it('returns a human readable error message with param data', () => { - const test = { - expectedString: `${property} must be at least 6 characters`, - policy: { - params: { - minLength: 6, - }, - policyRequirement: 'MIN_LENGTH', - }, - }; - const message = FRPolicy.parsePolicyRequirement(property, test.policy); - expect(message).toBe(test.expectedString); - }); - - it('returns a human readable generic message for unknown error', () => { - const test = { - expectedString: `${property}: Unknown policy requirement "SOME_UNKNOWN_POLICY"`, - policy: { - params: { - unknownParam: 6, - }, - policyRequirement: 'SOME_UNKNOWN_POLICY', - }, - }; - const message = FRPolicy.parsePolicyRequirement(property, test.policy); - expect(message).toBe(test.expectedString); - }); - - it('error handling is extensible by customer', () => { - const test = { - customMessage: { - CUSTOM_POLICY: (property: string, params: { policyRequirement: string }): string => - `this is a custom message for "${params.policyRequirement}" policy of ${property}`, - }, - expectedString: `this is a custom message for "CUSTOM_POLICY" policy of ${property}`, - policy: { - policyRequirement: 'CUSTOM_POLICY', - }, - }; - const message = FRPolicy.parsePolicyRequirement(property, test.policy, test.customMessage); - expect(message).toBe(test.expectedString); - }); - - it('error handling is overwritable by customer', () => { - const test = { - customMessage: { - [PolicyKey.Unique]: (property: string): string => - `this is a custom message for "UNIQUE" policy of ${property}`, - }, - expectedString: `this is a custom message for "UNIQUE" policy of ${property}`, - policy: { - policyRequirement: 'UNIQUE', - }, - }; - const message = FRPolicy.parsePolicyRequirement(property, test.policy, test.customMessage); - expect(message).toBe(test.expectedString); - }); - - it('groups failed policies for one property', () => { - const policy = { - policyRequirements: [ - { - policyRequirement: 'UNIQUE', - }, - { - params: { - minLength: 6, - }, - policyRequirement: 'MIN_LENGTH', - }, - ], - property: 'userName', - }; - - const messageArray = FRPolicy.parseFailedPolicyRequirement(policy); - expect(messageArray).toEqual([ - 'userName must be unique', - 'userName must be at least 6 characters', - ]); - }); - - it('returns an object array with a human readable error and the server error', () => { - const errorResponse = { - code: 403, - reason: 'Forbidden', - message: 'Policy validation failed', - detail: { - failedPolicyRequirements: [ - { - policyRequirements: [ - { - policyRequirement: 'UNIQUE', - }, - { - params: { - minLength: 6, - }, - policyRequirement: 'MIN_LENGTH', - }, - { - policyRequirement: 'CUSTOM_POLICY', - }, - ], - property: 'userName', - }, - { - policyRequirements: [ - { - params: { - numCaps: 1, - }, - policyRequirement: 'AT_LEAST_X_CAPITAL_LETTERS', - }, - { - params: { - minLength: 6, - }, - policyRequirement: 'MIN_LENGTH', - }, - ], - property: 'password', - }, - ], - result: false, - }, - }; - const customMessage = { - [PolicyKey.Unique]: (property: string): string => - `this is a custom message for "UNIQUE" policy of ${property}`, - CUSTOM_POLICY: (property: string, params: { policyRequirement: string }): string => - `this is a custom message for "${params.policyRequirement}" policy of ${property}`, - }; - const expected = [ - { - messages: [ - 'this is a custom message for "UNIQUE" policy of userName', - 'userName must be at least 6 characters', - 'this is a custom message for "CUSTOM_POLICY" policy of userName', - ], - detail: { - policyRequirements: [ - { policyRequirement: 'UNIQUE' }, - { params: { minLength: 6 }, policyRequirement: 'MIN_LENGTH' }, - { policyRequirement: 'CUSTOM_POLICY' }, - ], - property: 'userName', - }, - }, - { - messages: [ - 'password must contain at least 1 capital letter', - 'password must be at least 6 characters', - ], - detail: { - policyRequirements: [ - { - params: { numCaps: 1 }, - policyRequirement: 'AT_LEAST_X_CAPITAL_LETTERS', - }, - { params: { minLength: 6 }, policyRequirement: 'MIN_LENGTH' }, - ], - property: 'password', - }, - }, - ]; - - const errorObjArr = FRPolicy.parseErrors(errorResponse, customMessage); - expect(errorObjArr).toEqual(expected); - }); -}); diff --git a/packages/javascript-sdk/src/fr-policy/helpers.ts b/packages/javascript-sdk/src/fr-policy/helpers.ts deleted file mode 100644 index 6803f8534..000000000 --- a/packages/javascript-sdk/src/fr-policy/helpers.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * helpers.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -function getProp(obj: { [key: string]: unknown } | undefined, prop: string, defaultValue: T): T { - if (!obj || obj[prop] === undefined) { - return defaultValue; - } - return obj[prop] as T; -} - -export { getProp }; diff --git a/packages/javascript-sdk/src/fr-policy/index.ts b/packages/javascript-sdk/src/fr-policy/index.ts deleted file mode 100644 index c773c583e..000000000 --- a/packages/javascript-sdk/src/fr-policy/index.ts +++ /dev/null @@ -1,124 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { FailedPolicyRequirement, PolicyRequirement, Step } from '../auth/interfaces'; -import { PolicyKey } from './enums'; -import type { MessageCreator, ProcessedPropertyError } from './interfaces'; -import defaultMessageCreator from './message-creator'; - -/** - * Utility for processing policy failures into human readable messages. - * - * Example: - * - * ```js - * // Create message overrides and extensions as needed - * const messageCreator = { - * [PolicyKey.unique]: (property: string) => ( - * `this is a custom message for "UNIQUE" policy of ${property}` - * ), - * CUSTOM_POLICY: (property: string, params: any) => ( - * `this is a custom message for "${params.policyRequirement}" policy of ${property}` - * ), - * }; - * - * const thisStep = await FRAuth.next(previousStep); - * - * if (thisStep.type === StepType.LoginFailure) { - * const messagesStepMethod = thisStep.getProcessedMessage(messageCreator); - * const messagesClassMethod = FRPolicy.parseErrors(thisStep, messageCreator) - * } - */ -abstract class FRPolicy { - /** - * Parses policy errors and generates human readable error messages. - * - * @param {Step} err The step containing the error. - * @param {MessageCreator} messageCreator - * Extensible and overridable custom error messages for policy failures. - * @return {ProcessedPropertyError[]} Array of objects containing all processed policy errors. - */ - public static parseErrors( - err: Partial, - messageCreator?: MessageCreator, - ): ProcessedPropertyError[] { - const errors: ProcessedPropertyError[] = []; - if (err.detail && err.detail.failedPolicyRequirements) { - err.detail.failedPolicyRequirements.map((x) => { - errors.push.apply(errors, [ - { - detail: x, - messages: this.parseFailedPolicyRequirement(x, messageCreator), - }, - ]); - }); - } - return errors; - } - - /** - * Parses a failed policy and returns a string array of error messages. - * - * @param {FailedPolicyRequirement} failedPolicy The detail data of the failed policy. - * @param {MessageCreator} customMessage - * Extensible and overridable custom error messages for policy failures. - * @return {string[]} Array of strings with all processed policy errors. - */ - public static parseFailedPolicyRequirement( - failedPolicy: FailedPolicyRequirement, - messageCreator?: MessageCreator, - ): string[] { - const errors: string[] = []; - failedPolicy.policyRequirements.map((policyRequirement) => { - errors.push( - this.parsePolicyRequirement(failedPolicy.property, policyRequirement, messageCreator), - ); - }); - return errors; - } - - /** - * Parses a policy error into a human readable error message. - * - * @param {string} property The property with the policy failure. - * @param {PolicyRequirement} policy The policy failure data. - * @param {MessageCreator} customMessage - * Extensible and overridable custom error messages for policy failures. - * @return {string} Human readable error message. - */ - public static parsePolicyRequirement( - property: string, - policy: PolicyRequirement, - messageCreator: MessageCreator = {}, - ): string { - // AM is returning policy requirement failures as JSON strings - const policyObject = typeof policy === 'string' ? JSON.parse(policy) : { ...policy }; - - const policyRequirement = policyObject.policyRequirement; - - // Determine which message creator function to use - const effectiveMessageCreator = - messageCreator[policyRequirement] || - defaultMessageCreator[policyRequirement] || - defaultMessageCreator[PolicyKey.UnknownPolicy]; - - // Flatten the parameters and create the message - const params = policyObject.params - ? { ...policyObject.params, policyRequirement } - : { policyRequirement }; - const message = effectiveMessageCreator(property, params); - - return message; - } -} - -export default FRPolicy; -export type { MessageCreator, ProcessedPropertyError }; -export { PolicyKey }; diff --git a/packages/javascript-sdk/src/fr-policy/interfaces.ts b/packages/javascript-sdk/src/fr-policy/interfaces.ts deleted file mode 100644 index 6d1bf868f..000000000 --- a/packages/javascript-sdk/src/fr-policy/interfaces.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * interfaces.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { FailedPolicyRequirement } from '../auth/interfaces'; - -interface MessageCreator { - [key: string]: (propertyName: string, params?: { [key: string]: unknown }) => string; -} - -interface ProcessedPropertyError { - detail: FailedPolicyRequirement; - messages: string[]; -} - -export type { MessageCreator, ProcessedPropertyError }; diff --git a/packages/javascript-sdk/src/fr-policy/message-creator.ts b/packages/javascript-sdk/src/fr-policy/message-creator.ts deleted file mode 100644 index b8315f8c0..000000000 --- a/packages/javascript-sdk/src/fr-policy/message-creator.ts +++ /dev/null @@ -1,68 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * message-creator.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { plural } from '../util/strings'; -import { PolicyKey } from './enums'; -import { getProp } from './helpers'; -import type { MessageCreator } from './interfaces'; - -const defaultMessageCreator: MessageCreator = { - [PolicyKey.CannotContainCharacters]: (property: string, params?: { forbiddenChars?: string }) => { - const forbiddenChars = getProp(params, 'forbiddenChars', ''); - return `${property} must not contain following characters: "${forbiddenChars}"`; - }, - [PolicyKey.CannotContainDuplicates]: (property: string, params?: { duplicateValue?: string }) => { - const duplicateValue = getProp(params, 'duplicateValue', ''); - return `${property} must not contain duplicates: "${duplicateValue}"`; - }, - [PolicyKey.CannotContainOthers]: (property: string, params?: { disallowedFields?: string }) => { - const disallowedFields = getProp(params, 'disallowedFields', ''); - return `${property} must not contain: "${disallowedFields}"`; - }, - [PolicyKey.LeastCapitalLetters]: (property: string, params?: { numCaps?: number }) => { - const numCaps = getProp(params, 'numCaps', 0); - return `${property} must contain at least ${numCaps} capital ${plural(numCaps, 'letter')}`; - }, - [PolicyKey.LeastNumbers]: (property: string, params?: { numNums?: number }) => { - const numNums = getProp(params, 'numNums', 0); - return `${property} must contain at least ${numNums} numeric ${plural(numNums, 'value')}`; - }, - [PolicyKey.MatchRegexp]: (property: string) => `${property} has failed the "MATCH_REGEXP" policy`, - [PolicyKey.MaximumLength]: (property: string, params?: { maxLength?: number }) => { - const maxLength = getProp(params, 'maxLength', 0); - return `${property} must be at most ${maxLength} ${plural(maxLength, 'character')}`; - }, - [PolicyKey.MaximumNumber]: (property: string) => - `${property} has failed the "MAXIMUM_NUMBER_VALUE" policy`, - [PolicyKey.MinimumLength]: (property: string, params?: { minLength?: number }) => { - const minLength = getProp(params, 'minLength', 0); - return `${property} must be at least ${minLength} ${plural(minLength, 'character')}`; - }, - [PolicyKey.MinimumNumber]: (property: string) => - `${property} has failed the "MINIMUM_NUMBER_VALUE" policy`, - [PolicyKey.Required]: (property: string) => `${property} is required`, - [PolicyKey.Unique]: (property: string) => `${property} must be unique`, - [PolicyKey.UnknownPolicy]: (property: string, params?: { policyRequirement?: string }) => { - const policyRequirement = getProp(params, 'policyRequirement', 'Unknown'); - return `${property}: Unknown policy requirement "${policyRequirement}"`; - }, - [PolicyKey.ValidArrayItems]: (property: string) => - `${property} has failed the "VALID_ARRAY_ITEMS" policy`, - [PolicyKey.ValidDate]: (property: string) => `${property} has an invalid date`, - [PolicyKey.ValidEmailAddress]: (property: string) => `${property} has an invalid email address`, - [PolicyKey.ValidNameFormat]: (property: string) => `${property} has an invalid name format`, - [PolicyKey.ValidNumber]: (property: string) => `${property} has an invalid number`, - [PolicyKey.ValidPhoneFormat]: (property: string) => `${property} has an invalid phone number`, - [PolicyKey.ValidQueryFilter]: (property: string) => - `${property} has failed the "VALID_QUERY_FILTER" policy`, - [PolicyKey.ValidType]: (property: string) => `${property} has failed the "VALID_TYPE" policy`, -}; - -export default defaultMessageCreator; diff --git a/packages/javascript-sdk/src/fr-qr-code/index.mock.data.ts b/packages/javascript-sdk/src/fr-qr-code/index.mock.data.ts deleted file mode 100644 index f1c9db7e0..000000000 --- a/packages/javascript-sdk/src/fr-qr-code/index.mock.data.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { CallbackType } from '../auth/enums'; - -export const otpQRCodeStep = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9', - callbacks: [ - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - 'Scan the QR code image below with the ForgeRock Authenticator app to register your ' + - 'device with your login.', - }, - { - name: 'messageType', - value: '0', - }, - ], - }, - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - `window.QRCodeReader.createCode({\n id: 'callback_0',\n text: 'otpauth\\x3A\\x` + - `2F\\x2Ftotp\\x2FForgeRock\\x3Ajlowery\\x3Fperiod\\x3D30\\x26b\\x3D032b75\\x26` + - `digits\\x3D6\\x26secret\\QITSTC234FRIU8DD987DW3VPICFY\\x3D\\x3D\\x3D\\x3D\\x3` + - `D\\x',\n 3D\\x26issuer\\x3DForgeRock version: '20',\n code: 'L'\n});`, - }, - { - name: 'messageType', - value: '4', - }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { - name: 'value', - value: - 'otpauth://totp/ForgeRock:jlowery?secret=QITSTC234FRIU8DD987DW3VPICFY======&issue' + - 'r=ForgeRock&period=30&digits=6&b=032b75', - }, - { - name: 'id', - value: 'mfaDeviceRegistration', - }, - ], - input: [ - { - name: 'IDToken3', - value: 'mfaDeviceRegistration', - }, - ], - }, - { - type: CallbackType.ConfirmationCallback, - output: [ - { - name: 'prompt', - value: '', - }, - { - name: 'messageType', - value: 0, - }, - { - name: 'options', - value: ['Next'], - }, - { - name: 'optionType', - value: -1, - }, - { - name: 'defaultOption', - value: 0, - }, - ], - input: [ - { - name: 'IDToken4', - value: 0, - }, - ], - }, - ], -}; - -export const pushQRCodeStep = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9', - callbacks: [ - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - 'Scan the QR code image below with the ForgeRock Authenticator app to register ' + - 'your device with your login.', - }, - { - name: 'messageType', - value: '0', - }, - ], - }, - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - `window.QRCodeReader.createCode({\n id: 'callback_0',\n text: 'pushauth\\x` + - `3A\\x2F\\x2Fpush\\x2Fforgerock\\x3AJustin\\x2520Lowery\\x3Fa\\x3DaHR0cHM6Ly9vc` + - `GVuYW0tZm9yZ2Vycm9jay1zZGtzLmZvcmdlYmxvY2tzLmNvbTo0NDMvYW0vanNvbi9hbHBoYS9wdXN` + - `oL3Nucy9tZXNzYWdlP19hY3Rpb249YXV0aGVudGljYXRl\\x26r\\x3DaHR0cHM6Ly9vcGVuYW0tZm` + - `9yZ2Vycm9jay1zZGtzLmZvcmdlYmxvY2tzLmNvbTo0NDMvYW0vanNvbi9hbHBoYS9wdXNoL3Nucy9t` + - `ZXNzYWdlP19hY3Rpb249cmVnaXN0ZXI\\x26b\\x3D032b75\\x26s\\x3DFoxEr5uAzrys1yBmuyg` + - `PbxrVjysElmzsmqifi6eO_AI\\x26c\\x3DXD\\x2DMxsK2sRGa7sUw7kinSKoUDf_eNYMZUV2f0z5` + - `kjgw\\x26l\\x3DYW1sYmNvb2tpZT0wMQ\\x26m\\x3DREGISTER\\x3A53b85112\\x2D8ba9\\x2` + - `D4b7e\\x2D9107\\x2Decbca2d65f7b1695151603616\\x26issuer\\x3DRm9yZ2VSb2Nr',\n ` + - ` version: '20',\n code: 'L'\n});`, - }, - { - name: 'messageType', - value: '4', - }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { - name: 'value', - value: - 'pushauth://push/forgerock:Justin%20Lowery?l=YW1sYmNvb2tpZT0wMQ&issuer=Rm9yZ2VSb' + - '2Nr&m=REGISTER:53b85112-8ba9-4b7e-9107-ecbca2d65f7b1695151603616&s=FoxEr5uAzrys' + - '1yBmuygPbxrVjysElmzsmqifi6eO_AI&c=XD-MxsK2sRGa7sUw7kinSKoUDf_eNYMZUV2f0z5kjgw&r' + - '=aHR0cHM6Ly9vcGVuYW0tZm9yZ2Vycm9jay1zZGtzLmZvcmdlYmxvY2tzLmNvbTo0NDMvYW0vanNvbi' + - '9hbHBoYS9wdXNoL3Nucy9tZXNzYWdlP19hY3Rpb249cmVnaXN0ZXI&a=aHR0cHM6Ly9vcGVuYW0tZm9' + - 'yZ2Vycm9jay1zZGtzLmZvcmdlYmxvY2tzLmNvbTo0NDMvYW0vanNvbi9hbHBoYS9wdXNoL3Nucy9tZ' + - 'XNzYWdlP19hY3Rpb249YXV0aGVudGljYXRl&b=032b75', - }, - { - name: 'id', - value: 'mfaDeviceRegistration', - }, - ], - input: [ - { - name: 'IDToken3', - value: 'mfaDeviceRegistration', - }, - ], - }, - { - type: CallbackType.PollingWaitCallback, - output: [ - { - name: 'waitTime', - value: '5000', - }, - { - name: 'message', - value: 'Waiting for response...', - }, - ], - }, - ], -}; diff --git a/packages/javascript-sdk/src/fr-qr-code/index.test.ts b/packages/javascript-sdk/src/fr-qr-code/index.test.ts deleted file mode 100644 index a2ce2728f..000000000 --- a/packages/javascript-sdk/src/fr-qr-code/index.test.ts +++ /dev/null @@ -1,68 +0,0 @@ -import FRStep from '../fr-auth/fr-step'; -import FRQRCode from './index'; -import { otpQRCodeStep, pushQRCodeStep } from './index.mock.data'; -// import WebAuthn step as it's similar in structure for testing non-QR Code steps -import { webAuthnRegJSCallback70 } from '../fr-webauthn/fr-webauthn.mock.data'; - -describe('Class for managing QR Codes', () => { - it('should return true for step containing OTP QR Code callbacks', () => { - const expected = true; - const step = new FRStep(otpQRCodeStep); - const result = FRQRCode.isQRCodeStep(step); - - expect(result).toBe(expected); - }); - - it('should return true for step containing Push QR Code callbacks', () => { - const expected = true; - const step = new FRStep(pushQRCodeStep); - const result = FRQRCode.isQRCodeStep(step); - - expect(result).toBe(expected); - }); - - it('should return false for step containing WebAuthn step', () => { - const expected = false; - const step = new FRStep(webAuthnRegJSCallback70); - const result = FRQRCode.isQRCodeStep(step); - - expect(result).toBe(expected); - }); - - it('should return an object with OTP QR Code data', () => { - const expected = { - message: - 'Scan the QR code image below with the ForgeRock Authenticator app to register your ' + - 'device with your login.', - use: 'otp', - uri: - 'otpauth://totp/ForgeRock:jlowery?secret=QITSTC234FRIU8DD987DW3VPICFY======&issue' + - 'r=ForgeRock&period=30&digits=6&b=032b75', - }; - const step = new FRStep(otpQRCodeStep); - const result = FRQRCode.getQRCodeData(step); - - expect(result).toStrictEqual(expected); - }); - - it('should return an object with Push QR Code data', () => { - const expected = { - message: - 'Scan the QR code image below with the ForgeRock Authenticator app to register ' + - 'your device with your login.', - use: 'push', - uri: - 'pushauth://push/forgerock:Justin%20Lowery?l=YW1sYmNvb2tpZT0wMQ&issuer=Rm9yZ2VSb' + - '2Nr&m=REGISTER:53b85112-8ba9-4b7e-9107-ecbca2d65f7b1695151603616&s=FoxEr5uAzrys' + - '1yBmuygPbxrVjysElmzsmqifi6eO_AI&c=XD-MxsK2sRGa7sUw7kinSKoUDf_eNYMZUV2f0z5kjgw&r' + - '=aHR0cHM6Ly9vcGVuYW0tZm9yZ2Vycm9jay1zZGtzLmZvcmdlYmxvY2tzLmNvbTo0NDMvYW0vanNvbi' + - '9hbHBoYS9wdXNoL3Nucy9tZXNzYWdlP19hY3Rpb249cmVnaXN0ZXI&a=aHR0cHM6Ly9vcGVuYW0tZm9' + - 'yZ2Vycm9jay1zZGtzLmZvcmdlYmxvY2tzLmNvbTo0NDMvYW0vanNvbi9hbHBoYS9wdXNoL3Nucy9tZ' + - 'XNzYWdlP19hY3Rpb249YXV0aGVudGljYXRl&b=032b75', - }; - const step = new FRStep(pushQRCodeStep); - const result = FRQRCode.getQRCodeData(step); - - expect(result).toStrictEqual(expected); - }); -}); diff --git a/packages/javascript-sdk/src/fr-qr-code/index.ts b/packages/javascript-sdk/src/fr-qr-code/index.ts deleted file mode 100644 index b14f0ee3a..000000000 --- a/packages/javascript-sdk/src/fr-qr-code/index.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { CallbackType } from '../auth/enums'; -import HiddenValueCallback from '../fr-auth/callbacks/hidden-value-callback'; -import TextOutputCallback from '../fr-auth/callbacks/text-output-callback'; -import FRStep from '../fr-auth/fr-step'; - -export type QRCodeData = { - message: string; - use: string; - uri: string; -}; - -/** - * @class FRQRCode - A utility class for handling QR Code steps - * - * Example: - * - * ```js - * const isQRCodeStep = FRQRCode.isQRCodeStep(step); - * let qrCodeData; - * if (isQRCodeStep) { - * qrCodeData = FRQRCode.getQRCodeData(step); - * } - * ``` - */ -abstract class FRQRCode { - /** - * @method isQRCodeStep - determines if step contains QR Code callbacks - * @param {FRStep} step - step object from AM response - * @returns {boolean} - */ - public static isQRCodeStep(step: FRStep): boolean { - const hiddenValueCb = step.getCallbacksOfType(CallbackType.HiddenValueCallback); - - // QR Codes step should have at least one HiddenValueCallback - if (hiddenValueCb.length === 0) { - return false; - } - return !!this.getQRCodeURICb(hiddenValueCb); - } - - /** - * @method getQRCodeData - gets the necessary information from the QR Code callbacks - * @param {FRStep} step - step object from AM response - * @returns {QRCodeData} - */ - public static getQRCodeData(step: FRStep): QRCodeData { - const hiddenValueCb = step.getCallbacksOfType(CallbackType.HiddenValueCallback); - - // QR Codes step should have at least one HiddenValueCallback - if (hiddenValueCb.length === 0) { - throw new Error( - 'QR Code step must contain a HiddenValueCallback. Use `FRQRCode.isQRCodeStep` to guard.', - ); - } - const qrCodeURICb = this.getQRCodeURICb(hiddenValueCb) as HiddenValueCallback; - const outputValue = qrCodeURICb ? qrCodeURICb.getOutputValue('value') : ''; - const qrCodeUse = - typeof outputValue === 'string' && outputValue.includes('otpauth://') ? 'otp' : 'push'; - - const messageCbs = step.getCallbacksOfType(CallbackType.TextOutputCallback); - const displayMessageCb = messageCbs.find((cb) => { - const textOutputCallback = cb as TextOutputCallback; - return textOutputCallback.getMessageType() !== '4'; - }) as TextOutputCallback | null; - - return { - message: displayMessageCb ? displayMessageCb.getMessage() : '', - use: qrCodeUse, - uri: typeof outputValue === 'string' ? outputValue : '', - }; - } - - private static getQRCodeURICb(hiddenValueCbs: HiddenValueCallback[]) { - // Look for a HiddenValueCallback with an OTP URI - return hiddenValueCbs.find((cb) => { - const outputValue = cb.getOutputValue('value'); - - if (typeof outputValue === 'string') { - return outputValue?.includes('otpauth://') || outputValue?.includes('pushauth://'); - } - return false; - }); - } -} - -export default FRQRCode; diff --git a/packages/javascript-sdk/src/fr-recovery-codes/index.ts b/packages/javascript-sdk/src/fr-recovery-codes/index.ts deleted file mode 100644 index 7b67ea8a5..000000000 --- a/packages/javascript-sdk/src/fr-recovery-codes/index.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { CallbackType } from '../auth/enums'; -import type TextOutputCallback from '../fr-auth/callbacks/text-output-callback'; -import type FRStep from '../fr-auth/fr-step'; -import { parseDeviceNameText, parseDisplayRecoveryCodesText } from './script-parser'; - -/** - * Utility for handling recovery code nodes. - * - * Example: - * - * ```js - * // Determine if step is Display Recovery Codes step - * const isDisplayRecoveryCodesStep = FRRecoveryCodes.isDisplayStep(step); - * if (isDisplayRecoveryCodesStep) { - * const recoveryCodes = FRRecoveryCodes.getCodes(step); - * // Do the UI needful - * } - * ``` - */ -abstract class FRRecoveryCodes { - public static getDeviceName(step: FRStep): string { - const text = this.getDisplayCallback(step)?.getOutputByName('message', '') ?? ''; - return parseDeviceNameText(text); - } - /** - * Retrieves the recovery codes by parsing the JavaScript message text in callback. - * - * @param step The step to evaluate - * @return Recovery Code values in array - */ - public static getCodes(step: FRStep): string[] { - const text = this.getDisplayCallback(step)?.getOutputByName('message', ''); - return parseDisplayRecoveryCodesText(text || ''); - } - - /** - * Determines if the given step is a Display Recovery Codes step. - * - * @param step The step to evaluate - * @return Is this step a Display Recovery Codes step - */ - public static isDisplayStep(step: FRStep): boolean { - return !!this.getDisplayCallback(step); - } - - /** - * Gets the recovery codes step. - * - * @param step The step to evaluate - * @return gets the Display Recovery Codes' callback - */ - private static getDisplayCallback(step: FRStep): TextOutputCallback | undefined { - return step - .getCallbacksOfType(CallbackType.TextOutputCallback) - .find((x) => { - const cb = x.getOutputByName('message', undefined); - return cb && (cb.includes('Recovery Codes') || cb.includes('recovery codes')); - }); - } -} - -export default FRRecoveryCodes; diff --git a/packages/javascript-sdk/src/fr-recovery-codes/recovery-codes.test.ts b/packages/javascript-sdk/src/fr-recovery-codes/recovery-codes.test.ts deleted file mode 100644 index ab59402be..000000000 --- a/packages/javascript-sdk/src/fr-recovery-codes/recovery-codes.test.ts +++ /dev/null @@ -1,43 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * recovery-codes.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import FRStep from '../fr-auth/fr-step'; -import FRRecoveryCodes from './index'; -import { - displayRecoveryCodesResponse, - expectedDeviceName, - expectedRecoveryCodes, - otherResponse, -} from './script-text.mock.data'; - -describe('Class for managing the Display Recovery Codes node', () => { - it('should return true if Display Recovery Codes step', () => { - const step = new FRStep(displayRecoveryCodesResponse); - const isDisplayStep = FRRecoveryCodes.isDisplayStep(step); - expect(isDisplayStep).toBe(true); - }); - - it('should return false if not Display Recovery Codes step', () => { - const step = new FRStep(otherResponse); - const isDisplayStep = FRRecoveryCodes.isDisplayStep(step); - expect(isDisplayStep).toBe(false); - }); - - it('should return the Recovery Codes as array of strings', () => { - const step = new FRStep(displayRecoveryCodesResponse); - const recoveryCodes = FRRecoveryCodes.getCodes(step); - expect(recoveryCodes).toStrictEqual(expectedRecoveryCodes); - }); - it('should return a display name from the getDisplayName method', () => { - const step = new FRStep(displayRecoveryCodesResponse); - const displayName = FRRecoveryCodes.getDeviceName(step); - expect(displayName).toStrictEqual(expectedDeviceName); - }); -}); diff --git a/packages/javascript-sdk/src/fr-recovery-codes/script-parser.test.ts b/packages/javascript-sdk/src/fr-recovery-codes/script-parser.test.ts deleted file mode 100644 index bcc9bcbf1..000000000 --- a/packages/javascript-sdk/src/fr-recovery-codes/script-parser.test.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * script-parser.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { parseDeviceNameText, parseDisplayRecoveryCodesText } from './script-parser'; -import { describe, expect, it } from 'vitest'; -import { - displayRecoveryCodes, - expectedRecoveryCodes, - securityKeyCustomNameResponse, - securityKeyResponse, -} from './script-text.mock.data'; - -describe('Parsing of the Display Recovery Codes script text', () => { - it('should parse the Display Recovery Codes Text', () => { - const result = parseDisplayRecoveryCodesText(displayRecoveryCodes); - expect(result).toStrictEqual(expectedRecoveryCodes); - }); - it('should parse the display name from recovery codes script', () => { - const text = securityKeyResponse; - const result = parseDeviceNameText(text); - expect(result).toStrictEqual('New Security Key'); - }); - it('should parse a custom name out of the recovery text', () => { - const text = securityKeyCustomNameResponse; - const result = parseDeviceNameText(text); - expect(result).toStrictEqual('My Custom Device Name'); - }); -}); diff --git a/packages/javascript-sdk/src/fr-recovery-codes/script-parser.ts b/packages/javascript-sdk/src/fr-recovery-codes/script-parser.ts deleted file mode 100644 index 92ef8fbd3..000000000 --- a/packages/javascript-sdk/src/fr-recovery-codes/script-parser.ts +++ /dev/null @@ -1,51 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * script-parser.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -function parseDisplayRecoveryCodesText(text: string): string[] { - /** - * e.g. ` ... - * "
\n" + - * "iZmEtxvQ00\n" + - * "
\n" + - * ... ` - */ - - const recoveryCodesMatches = text.match(/\s[\w\W]"([\w]*)\\/g); - const recoveryCodes = - Array.isArray(recoveryCodesMatches) && - recoveryCodesMatches.map((substr: string) => { - // e.g. `"iZmEtxvQ00\` - const arr = substr.match(/"([\w]*)\\/); - return Array.isArray(arr) ? arr[1] : ''; - }); - return recoveryCodes || []; -} - -/** - * - * @param text - * @returns string - */ -function parseDeviceNameText(text: string): string { - /** - * We default the device name to 'New Security Key' - * If the user has a device name, it will be wrapped in tags - * e.g. ` ... My Security Key ... ` - * We want to remove the tags and just return the device name - * e.g. ` ... My Security Key ... ` - */ - const displayName = - text - ?.match(/\s*.*<\/em>/g)?.[0] - ?.replace('', '') - ?.replace('', '') ?? 'New Security Key'; - return displayName; -} -export { parseDeviceNameText, parseDisplayRecoveryCodesText }; diff --git a/packages/javascript-sdk/src/fr-recovery-codes/script-text.mock.data.ts b/packages/javascript-sdk/src/fr-recovery-codes/script-text.mock.data.ts deleted file mode 100644 index 89b953020..000000000 --- a/packages/javascript-sdk/src/fr-recovery-codes/script-text.mock.data.ts +++ /dev/null @@ -1,121 +0,0 @@ -/* eslint-disable no-useless-escape */ -/* - * @forgerock/javascript-sdk - * - * script-text.mock.data.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { CallbackType } from '../auth/enums'; - -/* eslint-disable max-len */ -const displayRecoveryCodes = `/* -* Copyright 2018 ForgeRock AS. All Rights Reserved -* -* Use of this code requires a commercial software license with ForgeRock AS. -* or with one of its affiliates. All use shall be exclusively subject -* to such license between the licensee and ForgeRock AS. -*/\n\nvar newLocation = document.getElementById(\"wrapper\");\nvar oldHtml = newLocation.getElementsByTagName(\"fieldset\")[0].innerHTML;\nnewLocation.getElementsByTagName(\"fieldset\")[0].innerHTML = \"
\\n\" + - \"
\\n\" + - \"

Your Recovery Codes

\\n\" + - \"

You must make a copy of these WebAuthn authenticator recovery codes. They cannot be displayed again.

\\n\" + - \"
\\n\" + - \"
\\n\" + - \"iZmEtxvQ00\\n\" + - \"
\\n\" + - \"
\\n\" + - \"Eqw3GFVamY\\n\" + - \"
\\n\" + - \"
\\n\" + - \"nNPqIEtIpS\\n\" + - \"
\\n\" + - \"
\\n\" + - \"vGhNQpDjP8\\n\" + - \"
\\n\" + - \"
\\n\" + - \"ItA4W3iBaA\\n\" + - \"
\\n\" + - \"
\\n\" + - \"JmLQP6XyIo\\n\" + - \"
\\n\" + - \"
\\n\" + - \"G2e6foNKke\\n\" + - \"
\\n\" + - \"
\\n\" + - \"h2SqAqvT21\\n\" + - \"
\\n\" + - \"
\\n\" + - \"q6VX1ojNbI\\n\" + - \"
\\n\" + - \"
\\n\" + - \"IZKIQXAfY2\\n\" + - \"
\\n\" + - \"
\\n\" + - \"

Use one of these codes to authenticate if you lose your device, which has been named: New Security Key

\\n\" + - \"
\\n\" + - \"
\" + oldHtml;\ndocument.body.appendChild(newLocation);\n\n\n -`; - -const displayRecoveryCodesResponse = { - authId: 'foo', - callbacks: [ - { - type: 'TextOutputCallback' as CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - '/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nvar newLocation = document.getElementById("wrapper");\nvar oldHtml = newLocation.getElementsByTagName("fieldset")[0].innerHTML;\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML = "
\\n" +\n "
\\n" +\n "

Your Recovery Codes

\\n" +\n "

You must make a copy of these WebAuthn authenticator recovery codes. They cannot be displayed again.

\\n" +\n "
\\n" +\n "
\\n" +\n "iZmEtxvQ00\\n" +\n "
\\n" +\n "
\\n" +\n "Eqw3GFVamY\\n" +\n "
\\n" +\n "
\\n" +\n "nNPqIEtIpS\\n" +\n "
\\n" +\n "
\\n" +\n "vGhNQpDjP8\\n" +\n "
\\n" +\n "
\\n" +\n "ItA4W3iBaA\\n" +\n "
\\n" +\n "
\\n" +\n "JmLQP6XyIo\\n" +\n "
\\n" +\n "
\\n" +\n "G2e6foNKke\\n" +\n "
\\n" +\n "
\\n" +\n "h2SqAqvT21\\n" +\n "
\\n" +\n "
\\n" +\n "q6VX1ojNbI\\n" +\n "
\\n" +\n "
\\n" +\n "IZKIQXAfY2\\n" +\n "
\\n" +\n "
\\n" +\n "

Use one of these codes to authenticate if you lose your device, which has been named: New Security Key

\\n" +\n "
\\n" +\n "
" + oldHtml;\ndocument.body.appendChild(newLocation);\n\n\n', - }, - { name: 'messageType', value: '4' }, - ], - }, - ], -}; -const expectedDeviceName = 'New Security Key'; - -const expectedRecoveryCodes = [ - 'iZmEtxvQ00', - 'Eqw3GFVamY', - 'nNPqIEtIpS', - 'vGhNQpDjP8', - 'ItA4W3iBaA', - 'JmLQP6XyIo', - 'G2e6foNKke', - 'h2SqAqvT21', - 'q6VX1ojNbI', - 'IZKIQXAfY2', -]; - -const otherResponse = { - authId: 'foo', - callbacks: [ - { - type: 'TextOutputCallback' as CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - '/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nvar new Location = foo;', - }, - { name: 'messageType', value: '4' }, - ], - }, - ], -}; - -const securityKeyResponse = `/* * Copyright 2018 ForgeRock AS. All Rights Reserved * * Use of this code requires a commercial software license with ForgeRock AS. * or with one of its affiliates. All use shall be exclusively subject * to such license between the licensee and ForgeRock AS. */ var newLocation = document.getElementById("wrapper"); var oldHtml = newLocation.getElementsByTagName("fieldset")[0].innerHTML; newLocation.getElementsByTagName("fieldset")[0].innerHTML = "
\n" + "
\n" + "

Your Recovery Codes

\n" + "

You must make a copy of these recovery codes. They cannot be displayed again.

\n" + "
\n" + "
\n" + "kw50qtmm32\n" + "
\n" + "
\n" + "Rt2Td8AK2s\n" + "
\n" + "
\n" + "6vZrIRCBJB\n" + "
\n" + "
\n" + "HCmL01Yiyv\n" + "
\n" + "
\n" + "BvDsSpazA2\n" + "
\n" + "
\n" + "T6pbKLyW2l\n" + "
\n" + "
\n" + "gZR0u6XubS\n" + "
\n" + "
\n" + "VZ1bH94IfO\n" + "
\n" + "
\n" + "O9BZ4bLefQ\n" + "
\n" + "
\n" + "NKNrBxlHCt\n" + "
\n" + "
\n" + "

Use one of these codes to authenticate if you lose your device, which has been named: New Security Key

\n" + "
\n" + "
" + oldHtml; document.body.appendChild(newLocation);`; -const securityKeyCustomNameResponse = `/* * Copyright 2018 ForgeRock AS. All Rights Reserved * * Use of this code requires a commercial software license with ForgeRock AS. * or with one of its affiliates. All use shall be exclusively subject * to such license between the licensee and ForgeRock AS. */ var newLocation = document.getElementById("wrapper"); var oldHtml = newLocation.getElementsByTagName("fieldset")[0].innerHTML; newLocation.getElementsByTagName("fieldset")[0].innerHTML = "
\n" + "
\n" + "

Your Recovery Codes

\n" + "

You must make a copy of these recovery codes. They cannot be displayed again.

\n" + "
\n" + "
\n" + "kw50qtmm32\n" + "
\n" + "
\n" + "Rt2Td8AK2s\n" + "
\n" + "
\n" + "6vZrIRCBJB\n" + "
\n" + "
\n" + "HCmL01Yiyv\n" + "
\n" + "
\n" + "BvDsSpazA2\n" + "
\n" + "
\n" + "T6pbKLyW2l\n" + "
\n" + "
\n" + "gZR0u6XubS\n" + "
\n" + "
\n" + "VZ1bH94IfO\n" + "
\n" + "
\n" + "O9BZ4bLefQ\n" + "
\n" + "
\n" + "NKNrBxlHCt\n" + "
\n" + "
\n" + "

Use one of these codes to authenticate if you lose your device, which has been named: My Custom Device Name

\n" + "
\n" + "
" + oldHtml; document.body.appendChild(newLocation);`; - -export { - displayRecoveryCodes, - displayRecoveryCodesResponse, - expectedDeviceName, - expectedRecoveryCodes, - otherResponse, - securityKeyCustomNameResponse, - securityKeyResponse, -}; diff --git a/packages/javascript-sdk/src/fr-user/index.ts b/packages/javascript-sdk/src/fr-user/index.ts deleted file mode 100644 index c69054aa6..000000000 --- a/packages/javascript-sdk/src/fr-user/index.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { ConfigOptions } from '../config'; -import type { FRStepHandler } from '../fr-auth/fr-step'; -import type FRStep from '../fr-auth/fr-step'; -import { FRLogger } from '../util/logger'; -import OAuth2Client from '../oauth2-client'; -import SessionManager from '../session-manager'; -import TokenManager from '../token-manager'; -import type { LogoutOptions } from '../oauth2-client/interfaces'; -import TokenStorage from '../token-storage'; - -/** - * High-level API for logging a user in/out and getting profile information. - */ -abstract class FRUser { - /** - * Logs the user in with the specified step handler, acquires OAuth tokens, and retrieves - * user profile. **Currently not implemented.** - * - * @typeparam T The type of user object expected - * @param handler The function to invoke when handling authentication steps - * @param options Configuration overrides - */ - public static async login( - handler: FRStepHandler, - options?: ConfigOptions, - ): Promise { - FRLogger.info(handler, options); // Avoid lint errors - throw new Error('FRUser.login() not implemented'); - } - - /** - * Ends the user's session and revokes OAuth tokens. - * - * @param options Configuration overrides - */ - public static async logout(options?: LogoutOptions): Promise { - // Shallow copy options to delete redirect prop - const configOptions = { ...options }; - delete configOptions.redirect; - - // Just log any exceptions that are thrown, but don't abandon the flow - try { - // Both invalidates the session on the server AND removes browser cookie - await SessionManager.logout(configOptions); - } catch (error) { - FRLogger.warn('Session logout was not successful'); - } - - try { - await OAuth2Client.revokeToken(configOptions); - } catch (error) { - FRLogger.warn('OAuth revokeToken was not successful'); - } - - // Grab tokens and keep in closure - const storedTokens = await TokenStorage.get(); - const { idToken = '' } = storedTokens || {}; - - // Remove tokens locally - await TokenManager.deleteTokens(); - - // Do this last as it can result in a redirect if using PingOne - try { - // Invalidates session on the server tied to the ID Token - // Needed for Express environment as session logout is unavailable - // Pass in the original `options` as it's needed for redirect control - await OAuth2Client.endSession({ ...options, idToken }); - } catch (error) { - FRLogger.warn('OAuth endSession was not successful'); - } - } -} - -export default FRUser; diff --git a/packages/javascript-sdk/src/fr-webauthn/enums.ts b/packages/javascript-sdk/src/fr-webauthn/enums.ts deleted file mode 100644 index 41afa8d57..000000000 --- a/packages/javascript-sdk/src/fr-webauthn/enums.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * enums.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -enum WebAuthnOutcome { - Error = 'ERROR', - Unsupported = 'unsupported', -} - -enum WebAuthnOutcomeType { - AbortError = 'AbortError', - DataError = 'DataError', - ConstraintError = 'ConstraintError', - EncodingError = 'EncodingError', - InvalidError = 'InvalidError', - NetworkError = 'NetworkError', - NotAllowedError = 'NotAllowedError', - NotSupportedError = 'NotSupportedError', - SecurityError = 'SecurityError', - TimeoutError = 'TimeoutError', - UnknownError = 'UnknownError', -} - -enum WebAuthnStepType { - None = 0, - Authentication = 1, - Registration = 2, -} - -export { WebAuthnOutcome, WebAuthnOutcomeType, WebAuthnStepType }; diff --git a/packages/javascript-sdk/src/fr-webauthn/fr-webauthn.mock.data.ts b/packages/javascript-sdk/src/fr-webauthn/fr-webauthn.mock.data.ts deleted file mode 100644 index 72e7c2794..000000000 --- a/packages/javascript-sdk/src/fr-webauthn/fr-webauthn.mock.data.ts +++ /dev/null @@ -1,375 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * fr-webauthn.mock.data.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { CallbackType } from '../auth/enums'; - -export const webAuthnRegJSCallback653 = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... ', - callbacks: [ - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar publicKey = {\n challenge: new Int8Array([63, -71, 8, -32, 51, 11, 35, -85, -19, -93, -17, 9, -10, 104, 96, -5, -43, -94, 126, 123, 18, 44, -53, 27, 69, -59, -45, -113, 4, -120, -12, -17]).buffer,\n // Relying Party:\n rp: {\n \n name: "ForgeRock"\n },\n // User:\n user: {\n id: Uint8Array.from("sgsP5DNBy2TvEhwnWHu1BFRw2_LQepAdjkOfC1z6nxU", function (c) { return c.charCodeAt(0) }),\n name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",\n displayName: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629"\n },\n pubKeyCredParams: [ { "type": "public-key", "alg": -7 }, { "type": "public-key", "alg": -257 } ],\n attestation: "none",\n timeout: 60000,\n excludeCredentials: [],\n authenticatorSelection: {"userVerification":"discouraged"}\n};\n\nnavigator.credentials.create({publicKey: publicKey})\n .then(function (newCredentialInfo) {\n var rawId = newCredentialInfo.id;\n var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));\n var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + keyData + "::" + rawId;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });\n', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "
\\n" +\n "
\\n" +\n "
\\n" +\n "

Waiting for local device...

\\n" +\n "
\\n" +\n "
\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "
";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { name: 'value', value: 'false' }, - { name: 'id', value: 'webAuthnOutcome' }, - ], - input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }], - }, - ], -}; - -export const webAuthnAuthJSCallback653 = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... ', - callbacks: [ - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar acceptableCredentials = [\n { "type": "public-key", "id": new Int8Array([1, 97, 2, 123, -105, -19, -106, 10, -86, 82, -23, 5, 52, 63, 103, 110, -71, 53, 107, 104, 76, -42, -49, 96, 67, -114, -97, 19, -59, 89, -102, -115, -110, -101, -6, -98, 39, -75, 2, 74, 23, -105, 67, 6, -112, 21, -3, 36, -114, 52, 35, 75, 74, 82, -8, 115, -128, -34, -105, 110, 124, 41, -79, -53, -90, 81, -11, -7, 91, -45, -67, -82, 106, 74, 30, 112, 100, -47, 54, -12, 95, 81, 97, 36, 123, -15, -91, 87, -82, 87, -45, -103, -80, 109, -111, 82, 109, 58, 50, 19, -21, -102, 54, -108, -68, 12, -101, -53, -65, 11, -94, -36, 112, -101, -95, -90, -118, 68, 13, 8, -49, -77, -28, -82, -97, 126, -71, 33, -58, 19, 58, -118, 36, -28, 22, -55, 64, -72, -80, -9, -48, -50, 58, -52, 64, -64, -27, -5, -12, 110, -95, -17]).buffer }\n];\n\nvar options = {\n \n challenge: new Int8Array([109, 14, 35, -101, 97, -69, -105, -89, -58, 14, 108, 59, 45, 87, 109, -78, -51, 64, 90, 124, -97, 43, -84, -108, -69, -117, 101, -4, -36, -69, -106, 103]).buffer,\n timeout: 60000,\n userVerification: "discouraged",\n allowCredentials: acceptableCredentials\n};\n\nnavigator.credentials.get({ "publicKey" : options })\n .then(function (assertion) {\n var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));\n var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();\n var signature = new Int8Array(assertion.response.signature).toString();\n var rawId = assertion.id;\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });\n', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "
\\n" +\n "
\\n" +\n "
\\n" +\n "

Waiting for local device...

\\n" +\n "
\\n" +\n "
\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "
";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { name: 'value', value: 'false' }, - { name: 'id', value: 'webAuthnOutcome' }, - ], - input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }], - }, - ], -}; - -export const webAuthnRegJSCallback70 = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... ', - callbacks: [ - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar publicKey = {\n challenge: new Int8Array([87, -95, 18, -17, -59, -3, -72, -9, -109, 77, -66, 67, 101, -59, -29, -92, -31, -58, 117, -14, 3, -123, 1, -54, -69, -122, 44, 111, 30, 49, 12, 81]).buffer,\n // Relying Party:\n rp: {\n id: "https://user.example.com:3002",\n name: "ForgeRock"\n },\n // User:\n user: {\n id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),\n name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",\n displayName: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629"\n },\n pubKeyCredParams: [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ],\n attestation: "none",\n timeout: 60000,\n excludeCredentials: [{ "type": "public-key", "id": new Int8Array([49, -96, -107, 113, 106, 5, 115, 22, 68, 121, -85, -27, 8, -58, -113, 127, -105, -37, -10, -12, -58, -25, 29, -82, -18, 69, -99, 125, 33, 82, 38, -66, -27, -128, -91, -86, 87, 68, 94, 0, -78, 70, -11, -70, -14, -53, 38, -60, 46, 27, 66, 46, 21, -125, -70, 123, -46, -124, 86, -2, 102, 70, -52, 54]).buffer },{ "type": "public-key", "id": new Int8Array([64, 17, -15, -123, -21, 127, 76, -120, 90, -112, -5, 54, 105, 93, 82, -104, -79, 107, -69, -3, -113, -94, -59, -4, 126, -33, 117, 32, -44, 122, -97, 8, -112, 105, -96, 96, 90, 44, -128, -121, 107, 79, -98, -68, -93, 11, -105, -47, 102, 13, 110, 84, 59, -91, -30, 37, -3, -22, 39, 111, -10, 87, -50, -35]).buffer }],\n authenticatorSelection: {"userVerification":"preferred"}\n};\n\nnavigator.credentials.create({publicKey: publicKey})\n .then(function (newCredentialInfo) {\n var rawId = newCredentialInfo.id;\n var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));\n var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + keyData + "::" + rawId;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "
\\n" +\n "
\\n" +\n "
\\n" +\n "

Waiting for local device...

\\n" +\n "
\\n" +\n "
\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "
";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { name: 'value', value: 'false' }, - { name: 'id', value: 'webAuthnOutcome' }, - ], - input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }], - }, - ], -}; - -export const webAuthnAuthJSCallback70 = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... ', - callbacks: [ - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar options = {\n \n challenge: new Int8Array([-2, 85, 78, -80, -124, -6, -118, 15, 77, -30, -76, -27, -43, -19, -51, -68, 60, -80, -64, -102, 73, -103, 76, -77, -96, -28, 5, -23, -59, -36, 1, -1]).buffer,\n timeout: 60000,\n allowCredentials: [{ "type": "public-key", "id": new Int8Array([-107, 93, 68, -67, -5, 107, 18, 16, -25, -30, 80, 103, -75, -53, -2, -95, 102, 42, 47, 126, -1, 85, 93, 45, -85, 8, -108, 107, 47, -25, 66, 12, -96, 81, 104, -127, 26, -59, -69, -23, 75, 89, 58, 124, -93, 4, 28, -128, 121, 35, 39, 103, -86, -86, 123, -67, -7, -4, 79, -49, 127, -19, 7, 4]).buffer }]\n};\n\nnavigator.credentials.get({ "publicKey" : options })\n .then(function (assertion) {\n var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));\n var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();\n var signature = new Int8Array(assertion.response.signature).toString();\n var rawId = assertion.id;\n var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });\n', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "
\\n" +\n "
\\n" +\n "
\\n" +\n "

Waiting for local device...

\\n" +\n "
\\n" +\n "
\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "
";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { name: 'value', value: 'false' }, - { name: 'id', value: 'webAuthnOutcome' }, - ], - input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }], - }, - ], -}; - -export const webAuthnRegJSCallback70StoredUsername = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... ', - callbacks: [ - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar publicKey = {\n challenge: new Int8Array([-90, -30, 14, -111, 43, -115, -125, 43, -96, 124, -109, -1, -100, -64, -52, -56, -15, -9, 41, 22, -111, -116, -65, -88, 108, -60, -58, 53, 62, -66, -34, 104]).buffer,\n // Relying Party:\n rp: {\n \n name: "ForgeRock"\n },\n // User:\n user: {\n id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),\n name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",\n displayName: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629"\n },\n pubKeyCredParams: [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ],\n attestation: "none",\n timeout: 60000,\n excludeCredentials: [],\n authenticatorSelection: {"userVerification":"preferred","requireResidentKey":true}\n};\n\nnavigator.credentials.create({publicKey: publicKey})\n .then(function (newCredentialInfo) {\n var rawId = newCredentialInfo.id;\n var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));\n var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + keyData + "::" + rawId;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "
\\n" +\n "
\\n" +\n "
\\n" +\n "

Waiting for local device...

\\n" +\n "
\\n" +\n "
\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "
";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { name: 'value', value: 'false' }, - { name: 'id', value: 'webAuthnOutcome' }, - ], - input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }], - }, - ], -}; - -export const webAuthnAuthJSCallback70StoredUsername = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... ', - callbacks: [ - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar options = {\n \n challenge: new Int8Array([50, -11, 63, -112, 37, -61, 57, 126, 83, -127, 122, -42, -102, -82, 26, -95, -75, -37, 16, 52, 27, 54, -101, 124, -16, 99, 33, 92, 63, 10, -110, 102]).buffer,\n timeout: 60000,\n userVerification: "preferred",\n \n};\n\nnavigator.credentials.get({ "publicKey" : options })\n .then(function (assertion) {\n var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));\n var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();\n var signature = new Int8Array(assertion.response.signature).toString();\n var rawId = assertion.id;\n var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });\n', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.TextOutputCallback, - output: [ - { - name: 'message', - value: - // eslint-disable-next-line - '/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "
\\n" +\n "
\\n" +\n "
\\n" +\n "

Waiting for local device...

\\n" +\n "
\\n" +\n "
\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "
";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);', - }, - { name: 'messageType', value: '4' }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { name: 'value', value: 'false' }, - { name: 'id', value: 'webAuthnOutcome' }, - ], - input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }], - }, - ], -}; - -export const webAuthnRegMetaCallback70 = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... ', - callbacks: [ - { - type: CallbackType.MetadataCallback, - output: [ - { - name: 'data', - value: { - relyingPartyName: 'ForgeRock', - attestationPreference: 'none', - displayName: '57a5b4e4-6999-4b45-bf86-a4f2e5d4b629', - _type: 'WebAuthn', - relyingPartyId: '', - userName: '57a5b4e4-6999-4b45-bf86-a4f2e5d4b629', - authenticatorSelection: '{"userVerification":"preferred"}', - userId: 'NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5', - timeout: '60000', - excludeCredentials: '', - pubKeyCredParams: - '[ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ]', - challenge: 'PiIwSUMSo5qN7ahxaBVzWCHnpIxiWZPBix3PDI4/O8k=', - }, - }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { name: 'value', value: 'false' }, - { name: 'id', value: 'webAuthnOutcome' }, - ], - input: [{ name: 'IDToken2', value: 'webAuthnOutcome' }], - }, - ], -}; - -export const webAuthnAuthMetaCallback70 = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... ', - callbacks: [ - { - type: CallbackType.MetadataCallback, - output: [ - { - name: 'data', - value: { - userVerification: 'preferred', - _type: 'WebAuthn', - challenge: 'J7kVW1EpFY3thLYVMAAJuR9dswysFhqgrBT6vvSuidE=', - relyingPartyId: '', - allowCredentials: - // eslint-disable-next-line - 'allowCredentials: [{ "type": "public-key", "id": new Int8Array([1, 122, 110, -32, -105, -95, -90, 81, 20, -122, -96, -115, -115, 38, -7, 15, -127, 48, 48, 97, 94, -23, -54, 74, 3, -41, -118, -124, 112, 5, -77, 87, -11, 102, -86, 93, 27, 112, -128, 103, -58, -75, 68, -62, -62, 72, -27, 108, -59, 0, -124, -117, -121, -52, -97, -88, -112, 22, 122, 109, 104, -89, -10, 46, -95, 62, 64, 43, -42, 127, -53, -98, 88, -126, -68, -94, -5, 81, -71, -52, -54, -12, -55, 127, -125, 125, 53, -61, 61, 47, -66, -12, 25, 115, -24, -56, 95, 8, -20, -6, 4, 72, -45, -103, -52, 39, 123, 13, 9, -79, 99, -62, 84, -2, -41, 55, 125, 17, 126, -38, -80, -83, -28, 99, -26, -30, -18, 122, 92, -91, -128, -27, 4, 27, -39, 36, 117, 4, 120, 9, -24, -72, 84, 124, 25, 100, -40, 32, 63, -97, 119, 10, 73, 8, -46, 61, 56]).buffer },{ "type": "public-key", "id": new Int8Array([1, 15, 3, 3, 70, 54, 31, -27, -121, 121, 41, 83, -28, -49, 9, -113, -58, 117, -97, 18, 1, 100, -29, 6, -116, -93, 90, -91, 75, -120, -127, 50, 99, -37, -56, -41, 105, 42, 8, -87, -21, 37, -7, 96, -121, -125, -33, 79, 2, -10, 127, -117, 23, 46, 42, 29, 125, 91, 47, -101, 126, 44, 70, -84, -124, -94, -119, -87, 63, -116, 11, -28, 127, 76, -67, 36, -62, 62, -125, -82, 99, 71, 24, 32, -87, 93, 53, 97, -44, 18, -14, 77, 80, 77, 110, -80, -52, 18, 69, 127, 82, -27, -116, 42, -66, -53, -26, -29, 74, 75, 34, -88, -119, 118, -50, -70, -110, -68, -91, -15, 100, 113, 24, 13, -127, 39, -1, -85, 114, -125, 89, 89, -101, 94, -37, 82, -61, 15, -2, 3, -4, 9, 28, -75, -84, 96, 60, 85, -44, -98, -27, -29, 107, -115, -111, -3, -102]).buffer }]', - timeout: '60000', - }, - }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { name: 'value', value: 'false' }, - { name: 'id', value: 'webAuthnOutcome' }, - ], - input: [{ name: 'IDToken2', value: 'webAuthnOutcome' }], - }, - ], -}; - -export const webAuthnRegMetaCallback70StoredUsername = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... ', - callbacks: [ - { - type: CallbackType.MetadataCallback, - output: [ - { - name: 'data', - value: { - relyingPartyName: 'ForgeRock', - attestationPreference: 'none', - displayName: '57a5b4e4-6999-4b45-bf86-a4f2e5d4b629', - _type: 'WebAuthn', - relyingPartyId: '', - userName: '57a5b4e4-6999-4b45-bf86-a4f2e5d4b629', - authenticatorSelection: '{"userVerification":"preferred","requireResidentKey":true}', - userId: 'NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5', - timeout: '60000', - excludeCredentials: '', - pubKeyCredParams: - '[ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ]', - challenge: 'DfZ7CvBgBaApXZgcqSb+7/yA5ih/yRHhpDzrrWLMtZc=', - }, - }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { name: 'value', value: 'false' }, - { name: 'id', value: 'webAuthnOutcome' }, - ], - input: [{ name: 'IDToken2', value: 'webAuthnOutcome' }], - }, - ], -}; - -export const webAuthnAuthMetaCallback70StoredUsername = { - authId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... ', - callbacks: [ - { - type: CallbackType.MetadataCallback, - output: [ - { - name: 'data', - value: { - userVerification: 'preferred', - _type: 'WebAuthn', - challenge: 'OHmmFKfBhrUZKkuZJ84lf9N8TaRmQSjRdZyueeSIXAo=', - relyingPartyId: '', - allowCredentials: '', - timeout: '60000', - }, - }, - ], - }, - { - type: CallbackType.HiddenValueCallback, - output: [ - { name: 'value', value: 'false' }, - { name: 'id', value: 'webAuthnOutcome' }, - ], - input: [{ name: 'IDToken2', value: 'webAuthnOutcome' }], - }, - ], -}; diff --git a/packages/javascript-sdk/src/fr-webauthn/fr-webauthn.test.ts b/packages/javascript-sdk/src/fr-webauthn/fr-webauthn.test.ts deleted file mode 100644 index b3ec84116..000000000 --- a/packages/javascript-sdk/src/fr-webauthn/fr-webauthn.test.ts +++ /dev/null @@ -1,106 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * fr-webauthn.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { WebAuthnStepType } from './enums'; -import FRWebAuthn from './index'; -import { - webAuthnRegJSCallback653, - webAuthnAuthJSCallback653, - webAuthnRegJSCallback70, - webAuthnAuthJSCallback70, - webAuthnRegMetaCallback70, - webAuthnAuthMetaCallback70, - webAuthnRegJSCallback70StoredUsername, - webAuthnAuthJSCallback70StoredUsername, - webAuthnRegMetaCallback70StoredUsername, - webAuthnAuthMetaCallback70StoredUsername, -} from './fr-webauthn.mock.data'; -import FRStep from '../fr-auth/fr-step'; - -describe('Test FRWebAuthn class with 6.5.3 "Passwordless"', () => { - it('should return Registration type with register text-output callbacks', () => { - // eslint-disable-next-line - const step = new FRStep(webAuthnRegJSCallback653 as any); - const stepType = FRWebAuthn.getWebAuthnStepType(step); - expect(stepType).toBe(WebAuthnStepType.Registration); - }); - it('should return Authentication type with authenticate text-output callbacks', () => { - // eslint-disable-next-line - const step = new FRStep(webAuthnAuthJSCallback653 as any); - const stepType = FRWebAuthn.getWebAuthnStepType(step); - expect(stepType).toBe(WebAuthnStepType.Authentication); - }); - // it('should return Registration type with register metadata callbacks', () => { - // // eslint-disable-next-line - // const step = new FRStep(webAuthnRegMetaCallback653 as any); - // const stepType = FRWebAuthn.getWebAuthnStepType(step); - // expect(stepType).toBe(WebAuthnStepType.Registration); - // }); - // it('should return Authentication type with authenticate metadata callbacks', () => { - // // eslint-disable-next-line - // const step = new FRStep(webAuthnAuthMetaCallback653 as any); - // const stepType = FRWebAuthn.getWebAuthnStepType(step); - // expect(stepType).toBe(WebAuthnStepType.Authentication); - // }); -}); - -describe('Test FRWebAuthn class with 7.0 "Passwordless"', () => { - it('should return Registration type with register text-output callbacks', () => { - // eslint-disable-next-line - const step = new FRStep(webAuthnRegJSCallback70 as any); - const stepType = FRWebAuthn.getWebAuthnStepType(step); - expect(stepType).toBe(WebAuthnStepType.Registration); - }); - it('should return Authentication type with authenticate text-output callbacks', () => { - // eslint-disable-next-line - const step = new FRStep(webAuthnAuthJSCallback70 as any); - const stepType = FRWebAuthn.getWebAuthnStepType(step); - expect(stepType).toBe(WebAuthnStepType.Authentication); - }); - it('should return Registration type with register metadata callbacks', () => { - // eslint-disable-next-line - const step = new FRStep(webAuthnRegMetaCallback70 as any); - const stepType = FRWebAuthn.getWebAuthnStepType(step); - expect(stepType).toBe(WebAuthnStepType.Registration); - }); - it('should return Authentication type with authenticate metadata callbacks', () => { - // eslint-disable-next-line - const step = new FRStep(webAuthnAuthMetaCallback70 as any); - const stepType = FRWebAuthn.getWebAuthnStepType(step); - expect(stepType).toBe(WebAuthnStepType.Authentication); - }); -}); - -describe('Test FRWebAuthn class with 7.0 "Usernameless"', () => { - it('should return Registration type with register text-output callbacks', () => { - // eslint-disable-next-line - const step = new FRStep(webAuthnRegJSCallback70StoredUsername as any); - const stepType = FRWebAuthn.getWebAuthnStepType(step); - expect(stepType).toBe(WebAuthnStepType.Registration); - }); - it('should return Authentication type with authenticate text-output callbacks', () => { - // eslint-disable-next-line - const step = new FRStep(webAuthnAuthJSCallback70StoredUsername as any); - const stepType = FRWebAuthn.getWebAuthnStepType(step); - expect(stepType).toBe(WebAuthnStepType.Authentication); - }); - it('should return Registration type with register metadata callbacks', () => { - // eslint-disable-next-line - const step = new FRStep(webAuthnRegMetaCallback70StoredUsername as any); - const stepType = FRWebAuthn.getWebAuthnStepType(step); - expect(stepType).toBe(WebAuthnStepType.Registration); - }); - it('should return Authentication type with authenticate metadata callbacks', () => { - // eslint-disable-next-line - const step = new FRStep(webAuthnAuthMetaCallback70StoredUsername as any); - const stepType = FRWebAuthn.getWebAuthnStepType(step); - expect(stepType).toBe(WebAuthnStepType.Authentication); - }); -}); diff --git a/packages/javascript-sdk/src/fr-webauthn/helpers.mock.data.ts b/packages/javascript-sdk/src/fr-webauthn/helpers.mock.data.ts deleted file mode 100644 index d8526f0ea..000000000 --- a/packages/javascript-sdk/src/fr-webauthn/helpers.mock.data.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * helpers.mock.data.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -// eslint-disable-next-line -export const allowCredentials70 = 'allowCredentials: [{ "type": "public-key", "id": new Int8Array([1, -16, 9, 79, 6, -2, -82, 51, 124, -94, 95, 23, -86, 70, -43, 89, 91, -9, 45, -22, 91, -51, 84, 93, 24, -64, 38, 101, 126, -53, 87, 70, -49, -88, -105, 116, 33, 75, -39, -92, -5, 115, 12, 52, 124, -100, 85, 104, -15, 5, -13, 25, -74, 101, 71, -115, -102, 16, 10, -9, -19, -110, 65, 118, -28, 89, -15, -115, -81, 22, -104, 123, 17, -92, 49, 109, -38, -51, 100, 96, -65, 25, -48, 28, 106, -45, 17, -45, -37, 46, -5, -6, -26, -23, -108, 13, -66, -55, -117, -107, 119, 7, -32, 34, 46, 0, -29, -111, -32, 45, -15, -113, 110, 123, -44, 6, 10, 65, 99, 25, 105, 69, -127, 76, 127, -33, -89, -56, 74, 25, 43, -43, -56, 9, 87, 80, 124, -32, -39, 115, 17, 18, 78, 121, 69, -36, -44, -28, -109, -126, 58, 64, 80, -4, 21, 63, -19]).buffer }]'; -// eslint-disable-next-line -export const allowMultipleCredentials70 = 'allowCredentials: [{ "type": "public-key", "id": new Int8Array([-33, 120, 18, 124, 16, 5, -127, -51, 68, 85, 76, -92, -3, 25, 116, 91, 71, 53, 106, -114, -86, 9, -81, -96, -32, -110, 66, -23, -5, 104, 96, 46, 43, -66, -110, 8, -70, 11, 51, -93, 19, 124, 81, 78, 58, -97, 89, -87, -26, -112, 95, -83, 118, -25, 118, 3, 35, -96, 120, -76, -87, 83, -101, 82]).buffer },{ "type": "public-key", "id": new Int8Array([1, 73, 82, 23, 76, -5, -53, -48, -104, -17, -42, 45, 7, 35, 35, -72, -7, 37, 9, 37, 117, 42, 66, 116, 58, 25, -68, 53, 113, -10, 102, 3, -60, -81, -74, 96, -5, 111, -56, 110, -101, -54, -31, -123, -100, 3, 37, -69, -114, -19, -25, -62, 18, 122, 39, 11, 83, 60, -58, 3, 116, 10, -80, -35, 6, -128, -51, -92, 100, -115, -22, -122, 21, -65, 97, 67, -49, 26, 42, -11, 90, 121, -63, 112, -16, 118, -99, -73, -89, -67, 72, -80, 18, -72, 109, 4, -14, 1, -93, 17, -17, -70, -2, -5, -116, 111, -128, 7, 62, -34, -43, 110, 89, 113, -65, -95, 113, -5, -104, -100, -73, 42, 2, 112, -21, 41, 41, 91, 108, -102, 47, -77, -52, 70, 107, -4, 25, -120, 114, 30, 23, 103, 120, 17, 55, 91, -110, -58, -110, 13, -56, 57, -126, 36, 40, 89, -9]).buffer }]' -// eslint-disable-next-line -export const acceptableCredentials653 = '{ "type": "public-key", "id": new Int8Array([53, -21, 26, -99, 5, 4, -112, -76, -126, 90, -35, -7, -31, -92, 19, -71, -39, 73, 52, -10, -14, -7, -59, -7, -36, -111, 64, 101, 29, 89, 90, -56, 108, 42, 32, -19, -113, 118, -114, 49, 109, -70, 68, -89, 36, -36, -103, -128, 34, -24, -40, -71, -125, -120, -80, 63, 25, -33, 2, 26, 111, -52, -15, -52]).buffer }'; -// eslint-disable-next-line -export const acceptableMultipleCredentials653 = '{ "type": "public-key", "id": new Int8Array([17, 88, -12, 26, -50, -48, -38, 36, -69, -105, -68, -38, 66, -53, -37, -50, -109, -126, 122, 26, 25, -45, 96, 37, -124, 102, 124, 94, -98, -59, 113, 94, 115, -111, -69, 45, 37, -83, 118, -115, -4, -49, 34, 115, -24, -49, -37, -17, -127, -15, 62, 18, 93, 122, -109, 53, -52, 44, -63, -74, 109, 2, -110, 45]).buffer },{ "type": "public-key", "id": new Int8Array([1, 83, -98, 32, 110, -62, 78, 53, -63, -118, 12, 122, -72, -15, 85, 48, -39, -97, -73, 108, -122, -60, 56, -112, -89, -118, 111, 0, -4, 13, -50, -43, -53, 28, 114, 82, 22, -76, 15, 51, -95, 26, -90, -93, -51, 115, -28, 85, -105, -27, 111, 70, 106, -28, 45, 126, 44, 63, -16, 97, -55, 31, -24, 57, -92, 48, 26, 127, -39, 75, 12, 13, 100, -77, 13, -48, 49, 52, 31, 85, 9, 63, -122, -90, -54, -87, -110, -1, 115, -122, -69, -15, 83, 57, 95, -31, -92, -116, 89, -109, -98, 21, 24, -80, -28, 103, -28, -82, -39, 114, -29, -46, -76, 123, -69, -44, 124, 10, 53, -103, 19, -43, -12, 62, -83, -86, 95, -78, 70, -105, 116, -25, 106, 54, -72, -119, 91, 91, -71, -49, 22, 25, -108, 112, -14, 55, 9, 75, 89, -91, -59, 45]).buffer }'; -// eslint-disable-next-line -export const pubKeyCredParamsStr = '[ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ]'; diff --git a/packages/javascript-sdk/src/fr-webauthn/helpers.test.ts b/packages/javascript-sdk/src/fr-webauthn/helpers.test.ts deleted file mode 100644 index cf454eb40..000000000 --- a/packages/javascript-sdk/src/fr-webauthn/helpers.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * helpers.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { describe, it, expect } from 'vitest'; -import { parseCredentials, parsePubKeyArray } from './helpers'; -import { - allowCredentials70, - allowMultipleCredentials70, - acceptableCredentials653, - acceptableMultipleCredentials653, - pubKeyCredParamsStr, -} from './helpers.mock.data'; - -describe('Test WebAuthn helper functions', () => { - it('should parse the one credential in the MetadataCallback 7.0', () => { - const credentials = parseCredentials(allowCredentials70); - expect(credentials[0].id.toString()).toBe('[object ArrayBuffer]'); - expect(credentials[0].type).toBe('public-key'); - }); - - it('should parse the two credentials in the MetadataCallback 7.0', () => { - const credentials = parseCredentials(allowMultipleCredentials70); - expect(credentials[0].id.toString()).toBe('[object ArrayBuffer]'); - expect(credentials[0].type).toBe('public-key'); - expect(credentials[1].id.toString()).toBe('[object ArrayBuffer]'); - expect(credentials[1].type).toBe('public-key'); - }); - - it('should parse the one credential in the MetadataCallback 6.5', () => { - const credentials = parseCredentials(acceptableCredentials653); - expect(credentials[0].id.toString()).toBe('[object ArrayBuffer]'); - expect(credentials[0].type).toBe('public-key'); - }); - - it('should parse the two credentials in the MetadataCallback 6.5', () => { - const credentials = parseCredentials(acceptableMultipleCredentials653); - expect(credentials[0].id.toString()).toBe('[object ArrayBuffer]'); - expect(credentials[0].type).toBe('public-key'); - expect(credentials[1].id.toString()).toBe('[object ArrayBuffer]'); - expect(credentials[1].type).toBe('public-key'); - }); - - it('should parse the pubKeyCredParams in the MetadataCallback 7.0 & 6.5.3', () => { - const pubKeyCredParams = parsePubKeyArray(pubKeyCredParamsStr); - expect(pubKeyCredParams).toContainEqual({ type: 'public-key', alg: -7 }); - expect(pubKeyCredParams).toContainEqual({ type: 'public-key', alg: -257 }); - }); -}); diff --git a/packages/javascript-sdk/src/fr-webauthn/helpers.ts b/packages/javascript-sdk/src/fr-webauthn/helpers.ts deleted file mode 100644 index 428441ee7..000000000 --- a/packages/javascript-sdk/src/fr-webauthn/helpers.ts +++ /dev/null @@ -1,124 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * helpers.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * @module - * @ignore - * These are private utility functions for HttpClient - */ -import { WebAuthnOutcomeType } from './enums'; -import type { ParsedCredential } from './interfaces'; - -function ensureArray(arr: RegExpMatchArray | null): string[] { - return arr || []; -} - -function arrayBufferToString(arrayBuffer: ArrayBuffer): string { - // https://goo.gl/yabPex - To future-proof, we'll pass along whatever the browser - // gives us and let AM disregard randomly-injected properties - const uint8Array = new Uint8Array(arrayBuffer); - const txtDecoder = new TextDecoder(); - - const json = txtDecoder.decode(uint8Array); - return json; -} - -function getIndexOne(arr: RegExpMatchArray | null): string { - return arr ? arr[1] : ''; -} - -// TODO: Remove this once AM is providing fully-serialized JSON -function parseCredentials(value: string): ParsedCredential[] { - try { - const creds = value - .split('}') - .filter((x) => !!x && x !== ']') - .map((x) => { - // eslint-disable-next-line @typescript-eslint/no-use-before-define - const idArray = parseNumberArray(x); - return { - id: new Int8Array(idArray).buffer, - type: 'public-key' as PublicKeyCredentialType, - }; - }); - return creds; - } catch (error) { - const e = new Error('Transforming credential object to string failed'); - e.name = WebAuthnOutcomeType.EncodingError; - throw e; - } -} - -function parseNumberArray(value: string): number[] { - const matches = /new Int8Array\((.+)\)/.exec(value); - if (matches === null || matches.length < 2) { - return []; - } - return JSON.parse(matches[1]); -} - -function parsePubKeyArray(value: string | unknown[]): PublicKeyCredentialParameters[] | undefined { - if (Array.isArray(value)) { - return value as PublicKeyCredentialParameters[]; - } - if (typeof value !== 'string') { - return undefined; - } - if (value && value[0] === '[') { - return JSON.parse(value); - } - value = value.replace(/(\w+):/g, '"$1":'); - return JSON.parse(`[${value}]`); -} - -function parseAllowCredentialsArray( - value: string | unknown[], -): PublicKeyCredentialDescriptor[] | undefined { - if (!value) { - return undefined; - } - if (Array.isArray(value)) { - return value as PublicKeyCredentialDescriptor[]; - } - if (typeof value !== 'string') { - return undefined; - } - if (value && value[0] === '[') { - return JSON.parse(value); - } - value = value.replace(/(\w+):/g, '"$1":'); - return JSON.parse(`[${value}]`); -} - -/** - * AM is currently serializing RP as one of the following formats, depending on - * whether RP ID has been configured: - * "relyingPartyId":"" - * "relyingPartyId":"rpId: \"foo\"," - * This regex handles both formats, but should be removed once AM is fixed. - */ -function parseRelyingPartyId(relyingPartyId: string): string { - if (relyingPartyId.includes('rpId')) { - return relyingPartyId.replace(/rpId: "(.+)",/, '$1'); - } else { - return relyingPartyId.replace(/id: "(.+)",/, '$1'); - } -} - -export { - ensureArray, - arrayBufferToString, - getIndexOne, - parseCredentials, - parseNumberArray, - parseAllowCredentialsArray, - parsePubKeyArray, - parseRelyingPartyId, -}; diff --git a/packages/javascript-sdk/src/fr-webauthn/index.ts b/packages/javascript-sdk/src/fr-webauthn/index.ts deleted file mode 100644 index 4cd1b5c4b..000000000 --- a/packages/javascript-sdk/src/fr-webauthn/index.ts +++ /dev/null @@ -1,477 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { CallbackType } from '../auth/enums'; -import type HiddenValueCallback from '../fr-auth/callbacks/hidden-value-callback'; -import type MetadataCallback from '../fr-auth/callbacks/metadata-callback'; -import type FRStep from '../fr-auth/fr-step'; -import { WebAuthnOutcome, WebAuthnOutcomeType, WebAuthnStepType } from './enums'; -import { - arrayBufferToString, - parseCredentials, - parsePubKeyArray, - parseRelyingPartyId, -} from './helpers'; -import type { - AttestationType, - RelyingParty, - WebAuthnAuthenticationMetadata, - WebAuthnCallbacks, - WebAuthnRegistrationMetadata, - WebAuthnTextOutputRegistration, -} from './interfaces'; -import type TextOutputCallback from '../fr-auth/callbacks/text-output-callback'; -import { parseWebAuthnAuthenticateText, parseWebAuthnRegisterText } from './script-parser'; - -// :::::: -type OutcomeWithName< - ClientId extends string, - Attestation extends AttestationType, - PubKeyCred extends PublicKeyCredential, - Name = '', -> = Name extends infer P extends string - ? `${ClientId}::${Attestation}::${PubKeyCred['id']}${P extends '' ? '' : `::${P}`}` - : never; -// JSON-based WebAuthn -type WebAuthnMetadata = WebAuthnAuthenticationMetadata | WebAuthnRegistrationMetadata; -// Script-based WebAuthn -type WebAuthnTextOutput = WebAuthnTextOutputRegistration; -/** - * Utility for integrating a web browser's WebAuthn API. - * - * Example: - * - * ```js - * // Determine if a step is a WebAuthn step - * const stepType = FRWebAuthn.getWebAuthnStepType(step); - * if (stepType === WebAuthnStepType.Registration) { - * // Register a new device - * await FRWebAuthn.register(step); - * } else if (stepType === WebAuthnStepType.Authentication) { - * // Authenticate with a registered device - * await FRWebAuthn.authenticate(step); - * } - * ``` - */ -abstract class FRWebAuthn { - /** - * Determines if the given step is a WebAuthn step. - * - * @param step The step to evaluate - * @return A WebAuthnStepType value - */ - public static getWebAuthnStepType(step: FRStep): WebAuthnStepType { - const outcomeCallback = this.getOutcomeCallback(step); - const metadataCallback = this.getMetadataCallback(step); - const textOutputCallback = this.getTextOutputCallback(step); - - if (outcomeCallback && metadataCallback) { - const metadata = metadataCallback.getOutputValue('data') as { - pubKeyCredParams?: []; - }; - if (metadata?.pubKeyCredParams) { - return WebAuthnStepType.Registration; - } - - return WebAuthnStepType.Authentication; - } else if (outcomeCallback && textOutputCallback) { - const message = textOutputCallback.getMessage(); - if (message.includes('pubKeyCredParams')) { - return WebAuthnStepType.Registration; - } - - return WebAuthnStepType.Authentication; - } else { - return WebAuthnStepType.None; - } - } - - /** - * Populates the step with the necessary authentication outcome. - * - * @param step The step that contains WebAuthn authentication data - * @return The populated step - */ - public static async authenticate(step: FRStep): Promise { - const { hiddenCallback, metadataCallback, textOutputCallback } = this.getCallbacks(step); - if (hiddenCallback && (metadataCallback || textOutputCallback)) { - let outcome: ReturnType; - - try { - let publicKey: PublicKeyCredentialRequestOptions; - if (metadataCallback) { - const meta = metadataCallback.getOutputValue('data') as WebAuthnAuthenticationMetadata; - publicKey = this.createAuthenticationPublicKey(meta); - } else if (textOutputCallback) { - publicKey = parseWebAuthnAuthenticateText(textOutputCallback.getMessage()); - } - // TypeScript doesn't like `publicKey` being assigned in conditionals above - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - const credential = await this.getAuthenticationCredential(publicKey); - outcome = this.getAuthenticationOutcome(credential); - } catch (error) { - if (!(error instanceof Error)) throw error; - // NotSupportedError is a special case - if (error.name === WebAuthnOutcomeType.NotSupportedError) { - hiddenCallback.setInputValue(WebAuthnOutcome.Unsupported); - throw error; - } - hiddenCallback.setInputValue(`${WebAuthnOutcome.Error}::${error.name}:${error.message}`); - throw error; - } - - hiddenCallback.setInputValue(outcome); - return step; - } else { - const e = new Error('Incorrect callbacks for WebAuthn authentication'); - e.name = WebAuthnOutcomeType.DataError; - hiddenCallback?.setInputValue(`${WebAuthnOutcome.Error}::${e.name}:${e.message}`); - throw e; - } - } - /** - * Populates the step with the necessary registration outcome. - * - * @param step The step that contains WebAuthn registration data - * @return The populated step - */ - // Can make this generic const in Typescript 5.0 > and the name itself will - // be inferred from the type so `typeof deviceName` will not just return string - // but the actual name of the deviceName passed in as a generic. - public static async register( - step: FRStep, - deviceName?: T, - ): Promise { - const { hiddenCallback, metadataCallback, textOutputCallback } = this.getCallbacks(step); - if (hiddenCallback && (metadataCallback || textOutputCallback)) { - let outcome: OutcomeWithName; - - try { - let publicKey: PublicKeyCredentialRequestOptions; - if (metadataCallback) { - const meta = metadataCallback.getOutputValue('data') as WebAuthnRegistrationMetadata; - publicKey = this.createRegistrationPublicKey(meta); - const credential = await this.getRegistrationCredential( - publicKey as PublicKeyCredentialCreationOptions, - ); - outcome = this.getRegistrationOutcome(credential); - } else if (textOutputCallback) { - publicKey = parseWebAuthnRegisterText(textOutputCallback.getMessage()); - const credential = await this.getRegistrationCredential( - publicKey as PublicKeyCredentialCreationOptions, - ); - outcome = this.getRegistrationOutcome(credential); - } else { - throw new Error('No Credential found from Public Key'); - } - } catch (error) { - if (!(error instanceof Error)) throw error; - // NotSupportedError is a special case - if (error.name === WebAuthnOutcomeType.NotSupportedError) { - hiddenCallback.setInputValue(WebAuthnOutcome.Unsupported); - throw error; - } - hiddenCallback.setInputValue(`${WebAuthnOutcome.Error}::${error.name}:${error.message}`); - throw error; - } - hiddenCallback.setInputValue( - deviceName && deviceName.length > 0 ? `${outcome}::${deviceName}` : outcome, - ); - return step; - } else { - const e = new Error('Incorrect callbacks for WebAuthn registration'); - e.name = WebAuthnOutcomeType.DataError; - hiddenCallback?.setInputValue(`${WebAuthnOutcome.Error}::${e.name}:${e.message}`); - throw e; - } - } - - /** - * Returns an object containing the two WebAuthn callbacks. - * - * @param step The step that contains WebAuthn callbacks - * @return The WebAuthn callbacks - */ - public static getCallbacks(step: FRStep): WebAuthnCallbacks { - const hiddenCallback = this.getOutcomeCallback(step); - const metadataCallback = this.getMetadataCallback(step); - const textOutputCallback = this.getTextOutputCallback(step); - - const returnObj: WebAuthnCallbacks = { - hiddenCallback, - }; - if (metadataCallback) { - returnObj.metadataCallback = metadataCallback; - } else if (textOutputCallback) { - returnObj.textOutputCallback = textOutputCallback; - } - return returnObj; - } - - /** - * Returns the WebAuthn metadata callback containing data to pass to the browser - * Web Authentication API. - * - * @param step The step that contains WebAuthn callbacks - * @return The metadata callback - */ - public static getMetadataCallback(step: FRStep): MetadataCallback | undefined { - return step.getCallbacksOfType(CallbackType.MetadataCallback).find((x) => { - const cb = x.getOutputByName('data', undefined); - // eslint-disable-next-line no-prototype-builtins - return cb && cb.hasOwnProperty('relyingPartyId'); - }); - } - - /** - * Returns the WebAuthn hidden value callback where the outcome should be populated. - * - * @param step The step that contains WebAuthn callbacks - * @return The hidden value callback - */ - public static getOutcomeCallback(step: FRStep): HiddenValueCallback | undefined { - return step - .getCallbacksOfType(CallbackType.HiddenValueCallback) - .find((x) => x.getOutputByName('id', '') === 'webAuthnOutcome'); - } - - /** - * Returns the WebAuthn metadata callback containing data to pass to the browser - * Web Authentication API. - * - * @param step The step that contains WebAuthn callbacks - * @return The metadata callback - */ - public static getTextOutputCallback(step: FRStep): TextOutputCallback | undefined { - return step - .getCallbacksOfType(CallbackType.TextOutputCallback) - .find((x) => { - const cb = x.getOutputByName('message', undefined); - return cb && cb.includes('webAuthnOutcome'); - }); - } - - /** - * Retrieves the credential from the browser Web Authentication API. - * - * @param options The public key options associated with the request - * @return The credential - */ - public static async getAuthenticationCredential( - options: PublicKeyCredentialRequestOptions, - ): Promise { - // Feature check before we attempt registering a device - if (!window.PublicKeyCredential) { - const e = new Error('PublicKeyCredential not supported by this browser'); - e.name = WebAuthnOutcomeType.NotSupportedError; - throw e; - } - const credential = await navigator.credentials.get({ publicKey: options }); - return credential as PublicKeyCredential; - } - - /** - * Converts an authentication credential into the outcome expected by OpenAM. - * - * @param credential The credential to convert - * @return The outcome string - */ - public static getAuthenticationOutcome( - credential: PublicKeyCredential | null, - ): - | OutcomeWithName - | OutcomeWithName { - if (credential === null) { - const e = new Error('No credential generated from authentication'); - e.name = WebAuthnOutcomeType.UnknownError; - throw e; - } - - try { - const clientDataJSON = arrayBufferToString(credential.response.clientDataJSON); - const assertionResponse = credential.response as AuthenticatorAssertionResponse; - const authenticatorData = new Int8Array( - assertionResponse.authenticatorData, - ).toString() as AttestationType; - const signature = new Int8Array(assertionResponse.signature).toString(); - - // Current native typing for PublicKeyCredential does not include `userHandle` - // eslint-disable-next-line - // @ts-ignore - const userHandle = arrayBufferToString(credential.response.userHandle); - - let stringOutput = - `${clientDataJSON}::${authenticatorData}::${signature}::${credential.id}` as OutcomeWithName< - string, - AttestationType, - PublicKeyCredential - >; - // Check if Username is stored on device - if (userHandle) { - stringOutput = `${stringOutput}::${userHandle}`; - return stringOutput as OutcomeWithName< - string, - AttestationType, - PublicKeyCredential, - string - >; - } - - return stringOutput; - } catch (error) { - const e = new Error('Transforming credential object to string failed'); - e.name = WebAuthnOutcomeType.EncodingError; - throw e; - } - } - - /** - * Retrieves the credential from the browser Web Authentication API. - * - * @param options The public key options associated with the request - * @return The credential - */ - public static async getRegistrationCredential( - options: PublicKeyCredentialCreationOptions, - ): Promise { - // Feature check before we attempt registering a device - if (!window.PublicKeyCredential) { - const e = new Error('PublicKeyCredential not supported by this browser'); - e.name = WebAuthnOutcomeType.NotSupportedError; - throw e; - } - const credential = await navigator.credentials.create({ - publicKey: options, - }); - return credential as PublicKeyCredential; - } - - /** - * Converts a registration credential into the outcome expected by OpenAM. - * - * @param credential The credential to convert - * @return The outcome string - */ - public static getRegistrationOutcome( - credential: PublicKeyCredential | null, - ): OutcomeWithName { - if (credential === null) { - const e = new Error('No credential generated from registration'); - e.name = WebAuthnOutcomeType.UnknownError; - throw e; - } - - try { - const clientDataJSON = arrayBufferToString(credential.response.clientDataJSON); - const attestationResponse = credential.response as AuthenticatorAttestationResponse; - const attestationObject = new Int8Array( - attestationResponse.attestationObject, - ).toString() as AttestationType.Direct; - return `${clientDataJSON}::${attestationObject}::${credential.id}`; - } catch (error) { - const e = new Error('Transforming credential object to string failed'); - e.name = WebAuthnOutcomeType.EncodingError; - throw e; - } - } - - /** - * Converts authentication tree metadata into options required by the browser - * Web Authentication API. - * - * @param metadata The metadata provided in the authentication tree MetadataCallback - * @return The Web Authentication API request options - */ - public static createAuthenticationPublicKey( - metadata: WebAuthnAuthenticationMetadata, - ): PublicKeyCredentialRequestOptions { - const { - acceptableCredentials, - allowCredentials, - challenge, - relyingPartyId, - timeout, - userVerification, - } = metadata; - const rpId = parseRelyingPartyId(relyingPartyId); - const allowCredentialsValue = parseCredentials(allowCredentials || acceptableCredentials || ''); - - return { - challenge: Uint8Array.from(atob(challenge), (c) => c.charCodeAt(0)).buffer, - timeout, - // only add key-value pair if proper value is provided - ...(allowCredentialsValue && { allowCredentials: allowCredentialsValue }), - ...(userVerification && { userVerification }), - ...(rpId && { rpId }), - }; - } - - /** - * Converts authentication tree metadata into options required by the browser - * Web Authentication API. - * - * @param metadata The metadata provided in the authentication tree MetadataCallback - * @return The Web Authentication API request options - */ - public static createRegistrationPublicKey( - metadata: WebAuthnRegistrationMetadata, - ): PublicKeyCredentialCreationOptions { - const { pubKeyCredParams: pubKeyCredParamsString } = metadata; - const pubKeyCredParams = parsePubKeyArray(pubKeyCredParamsString); - if (!pubKeyCredParams) { - const e = new Error('Missing pubKeyCredParams property from registration options'); - e.name = WebAuthnOutcomeType.DataError; - throw e; - } - const excludeCredentials = parseCredentials(metadata.excludeCredentials); - - const { - attestationPreference, - authenticatorSelection, - challenge, - relyingPartyId, - relyingPartyName, - timeout, - userId, - userName, - displayName, - } = metadata; - const rpId = parseRelyingPartyId(relyingPartyId); - const rp: RelyingParty = { - name: relyingPartyName, - ...(rpId && { id: rpId }), - }; - - return { - attestation: attestationPreference, - authenticatorSelection: JSON.parse(authenticatorSelection), - challenge: Uint8Array.from(atob(challenge), (c) => c.charCodeAt(0)).buffer, - ...(excludeCredentials.length && { excludeCredentials }), - pubKeyCredParams, - rp, - timeout, - user: { - displayName: displayName || userName, - id: Int8Array.from(userId.split('').map((c: string) => c.charCodeAt(0))), - name: userName, - }, - }; - } -} - -export default FRWebAuthn; -export type { - RelyingParty, - WebAuthnAuthenticationMetadata, - WebAuthnCallbacks, - WebAuthnRegistrationMetadata, -}; -export { WebAuthnOutcome, WebAuthnStepType }; diff --git a/packages/javascript-sdk/src/fr-webauthn/interfaces.ts b/packages/javascript-sdk/src/fr-webauthn/interfaces.ts deleted file mode 100644 index de57c7a6d..000000000 --- a/packages/javascript-sdk/src/fr-webauthn/interfaces.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * interfaces.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type HiddenValueCallback from '../fr-auth/callbacks/hidden-value-callback'; -import type MetadataCallback from '../fr-auth/callbacks/metadata-callback'; -import type TextOutputCallback from '../fr-auth/callbacks/text-output-callback'; - -enum AttestationType { - Direct = 'direct', - Indirect = 'indirect', - None = 'none', -} - -interface DeviceStepState extends StepState { - value1: number; - value2: number; -} - -enum UserVerificationType { - Discouraged = 'discouraged', - Preferred = 'preferred', - Required = 'required', -} - -interface RelyingParty { - name: string; - id?: string; -} - -interface ResponseCredential { - response: { clientDataJSON: ArrayBuffer }; -} - -interface Step { - data?: TData; - state: TState; - type: StepType; -} - -interface StepState { - authId: string; -} - -enum StepType { - DeviceAuthentication = 'DeviceAuthentication', - DeviceRegistration = 'DeviceRegistration', - DeviceRegistrationChoice = 'DeviceRegistrationChoice', - LoginFailure = 'LoginFailure', - LoginSuccess = 'LoginSuccess', - OneTimePassword = 'OneTimePassword', - SecondFactorChoice = 'SecondFactorChoice', - Username = 'Username', - UsernamePassword = 'UsernamePassword', - UserPassword = 'UserPassword', -} - -interface WebAuthnRegistrationMetadata { - attestationPreference: 'none' | 'indirect' | 'direct'; - authenticatorSelection: string; - challenge: string; - excludeCredentials: string; - pubKeyCredParams: string; - relyingPartyId: string; - relyingPartyName: string; - timeout: number; - userId: string; - userName: string; - displayName?: string; -} - -interface WebAuthnAuthenticationMetadata { - acceptableCredentials?: string; - allowCredentials?: string; - challenge: string; - relyingPartyId: string; - timeout: number; - userVerification: UserVerificationType; -} - -interface WebAuthnCallbacks { - hiddenCallback?: HiddenValueCallback; - metadataCallback?: MetadataCallback; - textOutputCallback?: TextOutputCallback; -} - -type WebAuthnTextOutputRegistration = string; - -interface ParsedCredential { - id: ArrayBuffer | SharedArrayBuffer; - type: 'public-key'; -} - -export type { - DeviceStepState, - ParsedCredential, - RelyingParty, - ResponseCredential, - Step, - WebAuthnCallbacks, - WebAuthnAuthenticationMetadata, - WebAuthnRegistrationMetadata, - WebAuthnTextOutputRegistration, -}; -export { AttestationType, StepType, UserVerificationType }; diff --git a/packages/javascript-sdk/src/fr-webauthn/script-parser.test.ts b/packages/javascript-sdk/src/fr-webauthn/script-parser.test.ts deleted file mode 100644 index 617e26f27..000000000 --- a/packages/javascript-sdk/src/fr-webauthn/script-parser.test.ts +++ /dev/null @@ -1,108 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * script-parser.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { parseWebAuthnAuthenticateText, parseWebAuthnRegisterText } from './script-parser'; -import { - authenticateInputWithRpidAndAllowCredentials, - authenticateInputWithRpidAndAllowCredentialsAndAllowRecoveryCode, - authenticateInputWithRpidAllowCredentialsAndQuotes, - authenticateInputWithoutRpidAndAllowCredentials, - authenticateInputWithAcceptableCredentialsWithoutRpid, - registerInputWithRpid, - registerInputWithRpidAndQuotes, - registerOutputWithRpid, - registerInputWithoutRpid, - registerOutputWithoutRpid, - registerInputWithExcludeCreds, -} from './script-text.mock.data'; - -describe('Parsing of the WebAuthn script type text', () => { - it('should parse the WebAuthn authenticate block of text with rpid and allow credentials', () => { - const obj = parseWebAuthnAuthenticateText(authenticateInputWithRpidAndAllowCredentials); - expect(obj.allowCredentials[0].type).toBe('public-key'); - expect(obj.allowCredentials[0].id.byteLength > 0).toBe(true); - expect(obj.challenge.byteLength > 0).toBe(true); - expect(obj.timeout).toBe(60000); - expect(obj.rpId).toBe('example.com'); - }); - it('should parse the WebAuthn authenticate block of text with rpid and allow credentials & Allow recovery code', () => { - const obj = parseWebAuthnAuthenticateText( - authenticateInputWithRpidAndAllowCredentialsAndAllowRecoveryCode, - ); - expect(obj.allowCredentials[0].type).toBe('public-key'); - expect(obj.allowCredentials[0].id.byteLength > 0).toBe(true); - expect(obj.challenge.byteLength > 0).toBe(true); - expect(obj.timeout).toBe(60000); - expect(obj.userVerification).toBe('preferred'); - }); - it('should parse the WebAuthn authenticate block of text with quoted keys', () => { - const obj = parseWebAuthnAuthenticateText(authenticateInputWithRpidAllowCredentialsAndQuotes); - expect(obj.allowCredentials[0].type).toBe('public-key'); - expect(obj.allowCredentials[0].id.byteLength > 0).toBe(true); - expect(obj.challenge.byteLength > 0).toBe(true); - expect(obj.timeout).toBe(60000); - expect(obj.rpId).toBe('example.com'); - }); - - it('should parse the WebAuthn authenticate block from 6.5.3 text', () => { - const obj = parseWebAuthnAuthenticateText( - authenticateInputWithAcceptableCredentialsWithoutRpid, - ); - expect(obj.allowCredentials[0].type).toBe('public-key'); - expect(obj.allowCredentials[0].id.byteLength > 0).toBe(true); - expect(obj.challenge.byteLength > 0).toBe(true); - expect(obj.timeout).toBe(60000); - }); - - it('should parse the WebAuthn authenticate block of text', () => { - const obj = parseWebAuthnAuthenticateText(authenticateInputWithoutRpidAndAllowCredentials); - expect(obj.allowCredentials).toBe(undefined); - expect(obj.rpId).toBe(undefined); - }); - - it('should parse the WebAuthn register block of text with rpid', () => { - const obj = parseWebAuthnRegisterText(registerInputWithRpid); - expect(obj.attestation).toBe(registerOutputWithRpid.attestation); - expect(obj.authenticatorSelection).toStrictEqual(registerOutputWithRpid.authenticatorSelection); - expect(obj.challenge.byteLength > 0).toBe(true); - expect(obj.pubKeyCredParams).toContainEqual(registerOutputWithRpid.pubKeyCredParams[0]); - expect(obj.pubKeyCredParams).toContainEqual(registerOutputWithRpid.pubKeyCredParams[1]); - expect(obj.rp).toStrictEqual(registerOutputWithRpid.rp); - expect(obj.timeout).toBe(registerOutputWithRpid.timeout); - expect(obj.user.displayName).toStrictEqual(registerOutputWithRpid.user.displayName); - expect(obj.user.name).toBe(registerOutputWithRpid.user.name); - expect(obj.user.id.byteLength > 0).toBe(true); - }); - - it('should parse the WebAuthn register block of text with rpid and quoted keys', () => { - const obj = parseWebAuthnRegisterText(registerInputWithRpidAndQuotes); - expect(obj.attestation).toBe(registerOutputWithRpid.attestation); - expect(obj.authenticatorSelection).toStrictEqual(registerOutputWithRpid.authenticatorSelection); - expect(obj.challenge.byteLength > 0).toBe(true); - expect(obj.pubKeyCredParams).toContainEqual(registerOutputWithRpid.pubKeyCredParams[0]); - expect(obj.pubKeyCredParams).toContainEqual(registerOutputWithRpid.pubKeyCredParams[1]); - expect(obj.rp).toStrictEqual(registerOutputWithRpid.rp); - expect(obj.timeout).toBe(registerOutputWithRpid.timeout); - expect(obj.user.displayName).toStrictEqual(registerOutputWithRpid.user.displayName); - expect(obj.user.name).toBe(registerOutputWithRpid.user.name); - expect(obj.user.id.byteLength > 0).toBe(true); - }); - - it('should parse the WebAuthn register block of text withOUT rpid', () => { - const obj = parseWebAuthnRegisterText(registerInputWithoutRpid); - expect(obj.rp).toStrictEqual(registerOutputWithoutRpid.rp); - }); - - it('should parse the WebAuthn register block of text with exclude creds', () => { - const obj = parseWebAuthnRegisterText(registerInputWithExcludeCreds); - expect(obj.excludeCredentials.length).toBe(2); - expect(obj.excludeCredentials[0].type).toBe('public-key'); - }); -}); diff --git a/packages/javascript-sdk/src/fr-webauthn/script-parser.ts b/packages/javascript-sdk/src/fr-webauthn/script-parser.ts deleted file mode 100644 index 0c07410f8..000000000 --- a/packages/javascript-sdk/src/fr-webauthn/script-parser.ts +++ /dev/null @@ -1,192 +0,0 @@ -/* eslint-disable no-useless-escape */ -/* - * @forgerock/javascript-sdk - * - * script-parser.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { WebAuthnOutcomeType } from './enums'; -import { ensureArray, getIndexOne, parsePubKeyArray, parseCredentials } from './helpers'; -import type { AttestationType, UserVerificationType } from './interfaces'; - -function parseWebAuthnRegisterText(text: string): PublicKeyCredentialCreationOptions { - const txtEncoder = new TextEncoder(); - - // TODO: Incrementally move to `*` instead of `{0,}` - // e.g. `attestation: "none"` - const attestation = getIndexOne(text.match(/attestation"{0,}:\s{0,}"(\w+)"/)) as AttestationType; - // e.g. `timeout: 60000` - const timeout = Number(getIndexOne(text.match(/timeout"{0,}:\s{0,}(\d+)/))); - // e.g. from 7.0: `"userVerification":"preferred"` - // e.g. from 6.5: `userVerification: "preferred"` - const userVerification = getIndexOne( - text.match(/userVerification"{0,}:\s{0,}"(\w+)"/), - ) as UserVerificationType; - // e.g. `"requireResidentKey":true` - const requireResidentKey = getIndexOne( - text.match(/requireResidentKey"{0,}:\s{0,}(\w+)/), - ) as string; - // e.g. `"authenticatorAttachment":"cross-platform"` - const authenticatorAttachment = getIndexOne( - text.match(/authenticatorAttachment"{0,}:\s{0,}"([\w-]+)/), - ) as AuthenticatorAttachment; - - // e.g. `rp: {\n id: \"https://user.example.com:3002\",\n name: \"ForgeRock\"\n }` - const rp = getIndexOne(text.match(/rp"{0,}:\s{0,}{([^}]+)}/)).trim(); - // e.g. `id: \"example.com\" - const rpId = getIndexOne(rp.match(/id"{0,}:\s{0,}"([^"]*)"/)); - // e.g. `name: \"ForgeRock\"` - const rpName = getIndexOne(rp.match(/name"{0,}:\s{0,}"([^"]*)"/)); - - // e.g. `user: {\n id: Uint8Array.from(\"NTdhN...RiNjI5\", - // function (c) { return c.charCodeAt(0) }),\n - // name: \"57a5b4e4-...-a4f2e5d4b629\",\n - // displayName: \"57a5b4e4-...-a4f2e5d4b629\"\n }` - const user = getIndexOne(text.match(/user"{0,}:\s{0,}{([^]{0,})},/)).trim(); - // e.g `id: Uint8Array.from(\"NTdhN...RiNjI5\",` - const userId = getIndexOne(user.match(/id"{0,}:\s{0,}Uint8Array.from\("([^"]+)"/)); - // e.g. `name: \"57a5b4e4-...-a4f2e5d4b629\",` - const userName = getIndexOne(user.match(/name"{0,}:\s{0,}"([\d\w._-]+)"/)); - // e.g. `displayName: \"57a5b4e4-...-a4f2e5d4b629\"` - const userDisplayName = getIndexOne(user.match(/displayName"{0,}:\s{0,}"([\d\w\s.@_-]+)"/)); - - // e.g. `pubKeyCredParams: [ - // { \"type\": \"public-key\", \"alg\": -257 }, { \"type\": \"public-key\", \"alg\": -7 } - // ]` - const pubKeyCredParamsString = getIndexOne( - // Capture the `pubKeyCredParams` without also matching `excludeCredentials` as well. - // `excludeCredentials` values are very similar to this property, so we need to make sure - // our last value doesn't end with "buffer", so we are only capturing objects that - // end in a digit and possibly a space. - text.match(/pubKeyCredParams"*:\s*\[([^]+\d\s*})\s*]/), - ).trim(); - // e.g. `{ \"type\": \"public-key\", \"alg\": -257 }, { \"type\": \"public-key\", \"alg\": -7 }` - const pubKeyCredParams = parsePubKeyArray(pubKeyCredParamsString); - if (!pubKeyCredParams) { - const e = new Error('Missing pubKeyCredParams property from registration options'); - e.name = WebAuthnOutcomeType.DataError; - throw e; - } - - // e.g. `excludeCredentials: [{ - // \"type\": \"public-key\", \"id\": new Int8Array([-18, 69, -99, 82, 38, -66]).buffer }, - // { \"type\": \"public-key\", \"id\": new Int8Array([64, 17, -15, 56, -32, 91]).buffer }],\n` - const excludeCredentialsString = getIndexOne( - text.match(/excludeCredentials"{0,}:\s{0,}\[([^]+)\s{0,}]/), - ).trim(); - // e.g. `{ \"type\": \"public-key\", \"id\": new Int8Array([-18, 69, -99, 82, 38, -66]).buffer }, - // { \"type\": \"public-key\", \"id\": new Int8Array([64, 17, -15, 56, -32, 91]).buffer }` - const excludeCredentials = parseCredentials(excludeCredentialsString); - - // e.g. `challenge: new Int8Array([87, -95, 18, ... -3, 49, 12, 81]).buffer,` - const challengeArr: string[] = ensureArray( - text.match(/challenge"{0,}:\s{0,}new\s{0,}(Uint|Int)8Array\(([^\)]+)/), - ); - // e.g. `[87, -95, 18, ... -3, 49, 12, 81]` - const challengeJSON = JSON.parse(challengeArr[2]); - // e.g. [87, -95, 18, ... -3, 49, 12, 81] - const challenge = new Int8Array(challengeJSON).buffer; - - return { - attestation, - authenticatorSelection: { - userVerification, - // Only include authenticatorAttachment prop if the value is truthy - ...(authenticatorAttachment && { authenticatorAttachment }), - // Only include requireResidentKey prop if the value is of string "true" - ...(requireResidentKey === 'true' && { - requireResidentKey: !!requireResidentKey, - }), - }, - challenge, - ...(excludeCredentials.length && { excludeCredentials }), - pubKeyCredParams, - rp: { - name: rpName, - // only add key-value pair if truthy value is provided - ...(rpId && { id: rpId }), - }, - timeout, - user: { - displayName: userDisplayName, - id: txtEncoder.encode(userId), - name: userName, - }, - }; -} - -function parseWebAuthnAuthenticateText(text: string): PublicKeyCredentialRequestOptions { - let allowCredentials; - let allowCredentialsText; - - if (text.includes('acceptableCredentials')) { - // e.g. `var acceptableCredentials = [ - // { "type": "public-key", "id": new Int8Array([1, 97, 2, 123, ... -17]).buffer } - // ];` - allowCredentialsText = getIndexOne( - text.match(/acceptableCredentials"*\s*=\s*\[([^]+)\s*]/), - ).trim(); - } else { - // e.g. `allowCredentials: [ - // { \"type\": \"public-key\", - // \"id\": new Int8Array([-107, 93, 68, -67, ... -19, 7, 4]).buffer } - // ]` - allowCredentialsText = getIndexOne( - text.match(/allowCredentials"{0,}:\s{0,}\[([^]+)\s{0,}]/), - ).trim(); - } - // e.g. `"userVerification":"preferred"` - const userVerification = getIndexOne( - text.match(/userVerification"{0,}:\s{0,}"(\w+)"/), - ) as UserVerificationType; - - if (allowCredentialsText) { - // Splitting objects in array in case the user has multiple keys - const allowCredentialArr = allowCredentialsText.split('},') || [allowCredentialsText]; - // Iterating over array of substrings - allowCredentials = allowCredentialArr.map((str) => { - // e.g. `{ \"type\": \"public-key\", - const type = getIndexOne(str.match(/type"{0,}:\s{0,}"([\w-]+)"/)) as 'public-key'; - // e.g. \"id\": new Int8Array([-107, 93, 68, -67, ... -19, 7, 4]).buffer - const idArr = ensureArray(str.match(/id"{0,}:\s{0,}new\s{0,}(Uint|Int)8Array\(([^\)]+)/)); - // e.g. `[-107, 93, 68, -67, ... -19, 7, 4]` - const idJSON = JSON.parse(idArr[2]); - // e.g. [-107, 93, 68, -67, ... -19, 7, 4] - const id = new Int8Array(idJSON).buffer; - - return { - type, - id, - }; - }); - } - - // e.g. `timeout: 60000` - const timeout = Number(getIndexOne(text.match(/timeout"{0,}:\s{0,}(\d+)/))); - - // e.g. `challenge: new Int8Array([87, -95, 18, ... -3, 49, 12, 81]).buffer,` - const challengeArr: string[] = ensureArray( - text.match(/challenge"{0,}:\s{0,}new\s{0,}(Uint|Int)8Array\(([^\)]+)/), - ); - // e.g. `[87, -95, 18, ... -3, 49, 12, 81]` - const challengeJSON = JSON.parse(challengeArr[2]); - // e.g. [87, -95, 18, ... -3, 49, 12, 81] - const challenge = new Int8Array(challengeJSON).buffer; - // e.g. `rpId: \"example.com\"` - const rpId = getIndexOne(text.match(/rpId"{0,}:\s{0,}\\{0,}"([^"\\]*)/)); - - return { - challenge, - timeout, - // only add key-value pairs if the truthy values are provided - ...(allowCredentials && { allowCredentials }), - ...(userVerification && { userVerification }), - ...(rpId && { rpId }), - }; -} - -export { parseWebAuthnAuthenticateText, parseWebAuthnRegisterText }; diff --git a/packages/javascript-sdk/src/fr-webauthn/script-text.mock.data.ts b/packages/javascript-sdk/src/fr-webauthn/script-text.mock.data.ts deleted file mode 100644 index 3cc85e5fd..000000000 --- a/packages/javascript-sdk/src/fr-webauthn/script-text.mock.data.ts +++ /dev/null @@ -1,464 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * script-text.mock.data.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/* eslint-disable max-len */ -export const authenticateInputWithRpidAndAllowCredentials = `/* -* Copyright 2018-2020 ForgeRock AS. All Rights Reserved -* -* Use of this code requires a commercial software license with ForgeRock AS. -* or with one of its affiliates. All use shall be exclusively subject -* to such license between the licensee and ForgeRock AS. -*/ - -if (!window.PublicKeyCredential) { - document.getElementById('webAuthnOutcome').value = "unsupported"; - document.getElementById("loginButton_0").click(); -} - -var options = { - rpId: "example.com", - challenge: new Int8Array([14, 126, -110, -74, 64, -66, 20, -56, -40, -28, 116, -61, -128, -20, 72, 24, 42, 79, -105, 94, -84, -12, -17, -97, 105, -31, -30, 92, 55, 67, -83, 65]).buffer, - timeout: 60000, - allowCredentials: [{ type: "public-key", id: new Int8Array([-107, 93, 68, -67, -5, 107, 18, 16, -25, -30, 80, 103, -75, -53, -2, -95, 102, 42, 47, 126, -1, 85, 93, 45, -85, 8, -108, 107, 47, -25, 66, 12, -96, 81, 104, -127, 26, -59, -69, -23, 75, 89, 58, 124, -93, 4, 28, -128, 121, 35, 39, 103, -86, -86, 123, -67, -7, -4, 79, -49, 127, -19, 7, 4]).buffer }] -}; - -navigator.credentials.get({ "publicKey" : options }) - .then(function (assertion) { - var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON)); - var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString(); - var signature = new Int8Array(assertion.response.signature).toString(); - var rawId = assertion.id; - var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle)); - document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle; - document.getElementById("loginButton_0").click(); - }).catch(function (err) { - document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err; - document.getElementById("loginButton_0").click(); - });`; - -export const authenticateInputWithRpidAllowCredentialsAndQuotes = `/* -* Copyright 2018-2020 ForgeRock AS. All Rights Reserved -* -* Use of this code requires a commercial software license with ForgeRock AS. -* or with one of its affiliates. All use shall be exclusively subject -* to such license between the licensee and ForgeRock AS. -*/ - -if (!window.PublicKeyCredential) { - document.getElementById('webAuthnOutcome').value = "unsupported"; - document.getElementById("loginButton_0").click(); -} - -var options = { - "rpId": "example.com", - "challenge": new Int8Array([14, 126, -110, -74, 64, -66, 20, -56, -40, -28, 116, -61, -128, -20, 72, 24, 42, 79, -105, 94, -84, -12, -17, -97, 105, -31, -30, 92, 55, 67, -83, 65]).buffer, - "timeout": 60000, - "allowCredentials": [{ "type": "public-key", "id": new Int8Array([-107, 93, 68, -67, -5, 107, 18, 16, -25, -30, 80, 103, -75, -53, -2, -95, 102, 42, 47, 126, -1, 85, 93, 45, -85, 8, -108, 107, 47, -25, 66, 12, -96, 81, 104, -127, 26, -59, -69, -23, 75, 89, 58, 124, -93, 4, 28, -128, 121, 35, 39, 103, -86, -86, 123, -67, -7, -4, 79, -49, 127, -19, 7, 4]).buffer }] -}; - -navigator.credentials.get({ "publicKey" : options }) - .then(function (assertion) { - var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON)); - var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString(); - var signature = new Int8Array(assertion.response.signature).toString(); - var rawId = assertion.id; - var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle)); - document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle; - document.getElementById("loginButton_0").click(); - }).catch(function (err) { - document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err; - document.getElementById("loginButton_0").click(); - });`; - -export const authenticateInputWithoutRpidAndAllowCredentials = `/* -* Copyright 2018-2020 ForgeRock AS. All Rights Reserved -* -* Use of this code requires a commercial software license with ForgeRock AS. -* or with one of its affiliates. All use shall be exclusively subject -* to such license between the licensee and ForgeRock AS. -*/ - -if (!window.PublicKeyCredential) { - document.getElementById('webAuthnOutcome').value = "unsupported"; - document.getElementById("loginButton_0").click(); -} - -var options = { - challenge: new Int8Array([14, 126, -110, -74, 64, -66, 20, -56, -40, -28, 116, -61, -128, -20, 72, 24, 42, 79, -105, 94, -84, -12, -17, -97, 105, -31, -30, 92, 55, 67, -83, 65]).buffer, - timeout: 60000, -}; - -navigator.credentials.get({ "publicKey" : options }) - .then(function (assertion) { - var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON)); - var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString(); - var signature = new Int8Array(assertion.response.signature).toString(); - var rawId = assertion.id; - var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle)); - document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle; - document.getElementById("loginButton_0").click(); - }).catch(function (err) { - document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err; - document.getElementById("loginButton_0").click(); - });`; - -// AM 6.5.3 variant of JS text string -export const authenticateInputWithAcceptableCredentialsWithoutRpid = `/* -* Copyright 2018-2020 ForgeRock AS. All Rights Reserved -* -* Use of this code requires a commercial software license with ForgeRock AS. -* or with one of its affiliates. All use shall be exclusively subject -* to such license between the licensee and ForgeRock AS. -*/ - -if (!window.PublicKeyCredential) { - document.getElementById('webAuthnOutcome').value = "unsupported"; - document.getElementById("loginButton_0").click(); -} - -var acceptableCredentials = [ - { "type": "public-key", "id": new Int8Array([1, 97, 2, 123, -105, -19, -106, 10, -86, 82, -23, 5, 52, 63, 103, 110, -71, 53, 107, 104, 76, -42, -49, 96, 67, -114, -97, 19, -59, 89, -102, -115, -110, -101, -6, -98, 39, -75, 2, 74, 23, -105, 67, 6, -112, 21, -3, 36, -114, 52, 35, 75, 74, 82, -8, 115, -128, -34, -105, 110, 124, 41, -79, -53, -90, 81, -11, -7, 91, -45, -67, -82, 106, 74, 30, 112, 100, -47, 54, -12, 95, 81, 97, 36, 123, -15, -91, 87, -82, 87, -45, -103, -80, 109, -111, 82, 109, 58, 50, 19, -21, -102, 54, -108, -68, 12, -101, -53, -65, 11, -94, -36, 112, -101, -95, -90, -118, 68, 13, 8, -49, -77, -28, -82, -97, 126, -71, 33, -58, 19, 58, -118, 36, -28, 22, -55, 64, -72, -80, -9, -48, -50, 58, -52, 64, -64, -27, -5, -12, 110, -95, -17]).buffer } -]; - -var options = { - - challenge: new Int8Array([-42, -21, -101, -22, -35, 94, 14, 33, -75, -12, -113, 86, 109, -51, 62, 89, 29, 119, 48, -92, 33, -64, 102, -18, 18, -122, 73, 13, -17, -50, -22, -74]).buffer, - timeout: 60000, - userVerification: "preferred", - allowCredentials: acceptableCredentials -}; - -navigator.credentials.get({ "publicKey" : options }) - .then(function (assertion) { - var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON)); - var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString(); - var signature = new Int8Array(assertion.response.signature).toString(); - var rawId = assertion.id; - document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId; - document.getElementById("loginButton_0").click(); - }).catch(function (err) { - document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err; - document.getElementById("loginButton_0").click(); - });`; - -export const registerInputWithRpid = `/* - * Copyright 2018-2020 ForgeRock AS. All Rights Reserved - * - * Use of this code requires a commercial software license with ForgeRock AS. - * or with one of its affiliates. All use shall be exclusively subject - * to such license between the licensee and ForgeRock AS. - */ - -if (!window.PublicKeyCredential) { - document.getElementById('webAuthnOutcome').value = "unsupported"; - document.getElementById("loginButton_0").click(); -} - -var publicKey = { - challenge: new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer, - // Relying Party: - rp: { - id: "example.com", - name: "ForgeRock" - }, - // User: - user: { - id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }), - name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629", - displayName: "bob_lee-tester@me.co.uk" - }, - // Below pubKeyCredParams format represents AM 6.5 - pubKeyCredParams: [ - { - type: "public-key", - alg: -7 - } - ,{ - type: "public-key", - alg: -257 - } - ], - attestation: "none", - timeout: 60000, - excludeCredentials: [], - authenticatorSelection: { - userVerification: "preferred" - authenticatorAttachment:"cross-platform" - } -}; - -navigator.credentials.create({publicKey: publicKey}) - .then(function (newCredentialInfo) { - var rawId = newCredentialInfo.id; - var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON)); - var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString(); - document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId; - document.getElementById("loginButton_0").click(); - }).catch(function (err) { - document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err; - document.getElementById("loginButton_0").click(); - });`; - -export const registerInputWithRpidAndQuotes = `/* - * Copyright 2018-2020 ForgeRock AS. All Rights Reserved - * - * Use of this code requires a commercial software license with ForgeRock AS. - * or with one of its affiliates. All use shall be exclusively subject - * to such license between the licensee and ForgeRock AS. - */ - - if (!window.PublicKeyCredential) { - document.getElementById('webAuthnOutcome').value = "unsupported"; - document.getElementById("loginButton_0").click(); - } - - var publicKey = { - "challenge": new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer, - // Relying Party: - "rp": { - "id": "example.com", - "name": "ForgeRock" - }, - // User: - "user": { - "id": Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }), - "name": "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629", - "displayName": "bob_lee-tester@me.co.uk" - }, - "pubKeyCredParams": [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ], - "attestation": "none", - "timeout": 60000, - "excludeCredentials": [], - "authenticatorSelection": {"userVerification":"preferred","authenticatorAttachment":"cross-platform"} - }; - - navigator.credentials.create({publicKey: publicKey}) - .then(function (newCredentialInfo) { - var rawId = newCredentialInfo.id; - var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON)); - var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString(); - document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId; - document.getElementById("loginButton_0").click(); - }).catch(function (err) { - document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err; - document.getElementById("loginButton_0").click(); - });`; - -export const registerOutputWithRpid = { - attestation: 'none', - authenticatorSelection: { - userVerification: 'preferred', - authenticatorAttachment: 'cross-platform', - }, - challenge: [ - /* don't directly test */ - ], - pubKeyCredParams: [ - { type: 'public-key', alg: -257 }, - { type: 'public-key', alg: -7 }, - ], - rp: { id: 'example.com', name: 'ForgeRock' }, - timeout: 60000, - user: { - displayName: 'bob_lee-tester@me.co.uk', - id: [ - /* don't directly test */ - ], - name: '57a5b4e4-6999-4b45-bf86-a4f2e5d4b629', - }, -}; - -export const registerInputWithoutRpid = `/* - * Copyright 2018-2020 ForgeRock AS. All Rights Reserved - * - * Use of this code requires a commercial software license with ForgeRock AS. - * or with one of its affiliates. All use shall be exclusively subject - * to such license between the licensee and ForgeRock AS. - */ - -if (!window.PublicKeyCredential) { - document.getElementById('webAuthnOutcome').value = "unsupported"; - document.getElementById("loginButton_0").click(); -} - -var publicKey = { - challenge: new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer, - // Relying Party: - rp: { - name: "ForgeRock" - }, - // User: - user: { - id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }), - name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629", - displayName: "Bob Tester" - }, - pubKeyCredParams: [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ], - attestation: "none", - timeout: 60000, - excludeCredentials: [], - authenticatorSelection: {"userVerification":"preferred"} -}; - -navigator.credentials.create({publicKey: publicKey}) - .then(function (newCredentialInfo) { - var rawId = newCredentialInfo.id; - var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON)); - var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString(); - document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId; - document.getElementById("loginButton_0").click(); - }).catch(function (err) { - document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err; - document.getElementById("loginButton_0").click(); - });`; - -export const registerOutputWithoutRpid = { - attestation: 'none', - authenticatorSelection: { userVerification: 'preferred' }, - challenge: [ - /* don't directly test */ - ], - pubKeyCredParams: [ - { type: 'public-key', alg: -257 }, - { type: 'public-key', alg: -7 }, - ], - rp: { name: 'ForgeRock' }, - timeout: 60000, - user: { - displayName: 'Bob Tester', - id: [ - /* don't directly test */ - ], - name: '57a5b4e4-6999-4b45-bf86-a4f2e5d4b629', - }, -}; - -export const registerInputWithExcludeCreds = `/* - * Copyright 2018-2020 ForgeRock AS. All Rights Reserved - * - * Use of this code requires a commercial software license with ForgeRock AS. - * or with one of its affiliates. All use shall be exclusively subject - * to such license between the licensee and ForgeRock AS. - */ - -if (!window.PublicKeyCredential) { - document.getElementById('webAuthnOutcome').value = "unsupported"; - document.getElementById("loginButton_0").click(); -} - -var publicKey = { - challenge: new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer, - // Relying Party: - rp: { - name: "ForgeRock" - }, - // User: - user: { - id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }), - name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629", - displayName: "Bob Tester" - }, - pubKeyCredParams: [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ], - attestation: "none", - timeout: 60000, - excludeCredentials: [{ "type": "public-key", "id": new Int8Array([49, -96, -107, 113, 106, 5, 115, 22, 68, 121, -85, -27, 8, -58, -113, 127, -105, -37, -10, -12, -58, -25, 29, -82, -18, 69, -99, 125, 33, 82, 38, -66, -27, -128, -91, -86, 87, 68, 94, 0, -78, 70, -11, -70, -14, -53, 38, -60, 46, 27, 66, 46, 21, -125, -70, 123, -46, -124, 86, -2, 102, 70, -52, 54]).buffer },{ "type": "public-key", "id": new Int8Array([64, 17, -15, -123, -21, 127, 76, -120, 90, -112, -5, 54, 105, 93, 82, -104, -79, 107, -69, -3, -113, -94, -59, -4, 126, -33, 117, 32, -44, 122, -97, 8, -112, 105, -96, 96, 90, 44, -128, -121, 107, 79, -98, -68, -93, 11, -105, -47, 102, 13, 110, 84, 59, -91, -30, 37, -3, -22, 39, 111, -10, 87, -50, -35]).buffer }], - authenticatorSelection: {"userVerification":"preferred"} -}; - -navigator.credentials.create({publicKey: publicKey}) - .then(function (newCredentialInfo) { - var rawId = newCredentialInfo.id; - var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON)); - var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString(); - document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId; - document.getElementById("loginButton_0").click(); - }).catch(function (err) { - document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err; - document.getElementById("loginButton_0").click(); - });`; - -export const registerOutputWithExcludeCreds = { - attestation: 'none', - authenticatorSelection: { userVerification: 'preferred' }, - challenge: [ - /* don't directly test */ - ], - excludeCredentials: [ - { - type: 'public-key', - id: 'Do not directly test', - }, - { - type: 'public-key', - id: 'Do not directly test', - }, - ], - pubKeyCredParams: [ - { type: 'public-key', alg: -257 }, - { type: 'public-key', alg: -7 }, - ], - rp: { name: 'ForgeRock' }, - timeout: 60000, - user: { - displayName: 'Bob Tester', - id: [ - /* don't directly test */ - ], - name: '57a5b4e4-6999-4b45-bf86-a4f2e5d4b629', - }, -}; - -export const authenticateInputWithRpidAndAllowCredentialsAndAllowRecoveryCode = `/* - * Copyright 2018-2022 ForgeRock AS. All Rights Reserved - * - * Use of this code requires a commercial software license with ForgeRock AS. - * or with one of its affiliates. All use shall be exclusively subject - * to such license between the licensee and ForgeRock AS. - */ - -if (!window.PublicKeyCredential) { - document.getElementById('webAuthnOutcome').value = "unsupported"; - document.getElementById("loginButton_0").click(); -} - -var options = { - - challenge: new Int8Array([-17, -117, -10, 120, -90, 127, 70, -73, 114, -37, -94, 126, -96, -111, -65, 78, -84, 53, 74, -18, 93, 102, 24, -77, -97, -6, -106, -10, -101, -29, 36, -33]).buffer, - timeout: 60000, - userVerification: "preferred", - allowCredentials: [{ "type": "public-key", "id": new Int8Array([-33, 59, -68, 121, 57, -27, -33, -40, 55, 8, -65, -15, -40, -103, 73, 61, 49, 56, 65, -84, -27, -86, -103, -115, 15, 43, -64, -60, -105, 81, -111, 115, 105, 111, -105, 64, 73, 55, -35, 35, 38, 59, -91, 95, 64, 30, -10, -6, -91, -59, 26, 19, -3, 2, -39, 71, 112, 124, -66, -89, -10, -35, 122, 103]).buffer }] -}; - -navigator.credentials.get({ "publicKey" : options }) - .then(function (assertion) { - var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON)); - var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString(); - var signature = new Int8Array(assertion.response.signature).toString(); - var rawId = assertion.id; - var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle)); - document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle; - document.getElementById("loginButton_0").click(); - }).catch(function (err) { - document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err; - var allowRecoveryCode = 'true' === "true"; - if (allowRecoveryCode) { - var loginButton = document.getElementById("loginButton_0"); - if (loginButton) { - var prev = loginButton.previousElementSibling; - if (prev && prev.nodeName == "DIV") { - prev.getElementsByTagName("div")[0].innerHTML = " " - + err + ""; - } - } - } else { - document.getElementById("loginButton_0").click(); - } - }); -`; diff --git a/packages/javascript-sdk/src/http-client/helpers.test.ts b/packages/javascript-sdk/src/http-client/helpers.test.ts deleted file mode 100644 index df0b22fb3..000000000 --- a/packages/javascript-sdk/src/http-client/helpers.test.ts +++ /dev/null @@ -1,117 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * helpers.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { - buildAuthzOptions, - examineForIGAuthz, - examineForIGAuthzHeader, - examineForRESTAuthz, - normalizeIGJSONResponseToAdviceJSON, - normalizeIGRedirectResponseToAdviceJSON, -} from './helpers'; -import { - authzByTxnResFromIG, - authzByTxnResFromIGHeader, - authzByTxnResFromREST, - authzByTreeResFromIG, - authzByTreeResFromIGHeader, - authzByTreeResFromREST, - authzTreeJSON, - authzTxnJSON, -} from './http-client.mock.data'; - -describe('Test HttpClient utils', () => { - it('build auth by tree req options', () => { - const txnAuthObj = authzTreeJSON; - const expectedUrl = - // eslint-disable-next-line max-len, prettier/prettier - 'https://openam.example.com/am/json/realms/root/authenticate?authIndexType=composite_advice&authIndexValue=%3CAdvices%3E%3CAttributeValuePair%3E%3CAttribute%20name%3D%22AuthenticateToServiceConditionAdvice%22%2F%3E%3CValue%3Eabc%3C%2FValue%3E%3C%2FAttributeValuePair%3E%3C%2FAdvices%3E'; - - const output = buildAuthzOptions(txnAuthObj, 'https://openam.example.com/am/', 0); - expect(output.url).toStrictEqual(expectedUrl); - }); - - it('build auth by txn req options', () => { - const txnAuthObj = authzTxnJSON; - const expectedUrl = - // eslint-disable-next-line max-len, prettier/prettier - 'https://openam.example.com/am/json/realms/root/authenticate?authIndexType=composite_advice&authIndexValue=%3CAdvices%3E%3CAttributeValuePair%3E%3CAttribute%20name%3D%22TransactionConditionAdvice%22%2F%3E%3CValue%3Eabc%3C%2FValue%3E%3C%2FAttributeValuePair%3E%3C%2FAdvices%3E'; - const output = buildAuthzOptions(txnAuthObj, 'https://openam.example.com/am/', 0); - expect(output.url).toStrictEqual(expectedUrl); - }); - - it('examines response for IG auth by tree', async () => { - const output = await examineForIGAuthz(authzByTreeResFromIG); - expect(output).toBe(true); - }); - - it('examines response for IG auth by tree using header', async () => { - const output = await examineForIGAuthzHeader(authzByTreeResFromIGHeader); - expect(output).toBe(true); - }); - - it('examines response for REST auth by tree', async () => { - const output = await examineForRESTAuthz(authzByTreeResFromREST); - expect(output).toBe(true); - }); - - it('examines response for IG auth by txn', async () => { - const output = await examineForIGAuthz(authzByTxnResFromIG); - expect(output).toBe(true); - }); - - it('examines response for IG auth by txn using header', async () => { - const output = await examineForIGAuthzHeader(authzByTxnResFromIGHeader); - expect(output).toBe(true); - }); - - it('examines response for REST auth by txn', async () => { - const output = await examineForRESTAuthz(authzByTxnResFromREST); - expect(output).toBe(true); - }); - - it('normalizes authz by tree from IG redirect to JSON', async () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const res: any = { - // eslint-disable-next-line max-len, prettier/prettier - url: 'https://openam.example.com/am/json/realms/root/authenticate?authIndexType=composite_advice&authIndexValue=%3CAdvices%3E%3CAttributeValuePair%3E%3CAttribute+name%3D%22AuthenticateToServiceConditionAdvice%22%2F%3E%3CValue%3Eabc%3C%2FValue%3E%3C%2FAttributeValuePair%3E%3C%2FAdvices%3E', - }; - const expected = authzTreeJSON; - const output = await normalizeIGRedirectResponseToAdviceJSON(res); - expect(output).toStrictEqual(expected); - }); - - it('normalizes IG redirect to advice JSON', async () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const res: any = { - // eslint-disable-next-line max-len, prettier/prettier - url: 'https://openam.example.com/am/json/realms/root/authenticate?authIndexType=composite_advice&authIndexValue=%3CAdvices%3E%3CAttributeValuePair%3E%3CAttribute+name%3D%22TransactionConditionAdvice%22%2F%3E%3CValue%3Eabc%3C%2FValue%3E%3C%2FAttributeValuePair%3E%3C%2FAdvices%3E', - }; - const expected = authzTxnJSON; - const output = await normalizeIGRedirectResponseToAdviceJSON(res); - expect(output).toStrictEqual(expected); - }); - - it('normalizes IG JSON to advice JSON', async () => { - const advices = btoa('{"TransactionConditionAdvice":["abc"]}'); - const headers = new Headers(); - headers.append( - 'WWW-Authenticate', - `SSOADVICE realm="/",advices="${advices}",am_uri="https://openam.example.com/am"`, - ); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const res: any = { - headers: headers, - }; - const expected = authzTxnJSON; - const output = await normalizeIGJSONResponseToAdviceJSON(res); - expect(output).toStrictEqual(expected); - }); -}); diff --git a/packages/javascript-sdk/src/http-client/helpers.ts b/packages/javascript-sdk/src/http-client/helpers.ts deleted file mode 100644 index 73ccaf200..000000000 --- a/packages/javascript-sdk/src/http-client/helpers.ts +++ /dev/null @@ -1,222 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * helpers.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * @module - * @ignore - * These are private utility functions for HttpClient - */ -import type { CustomPathConfig } from '../config/interfaces'; -import type { - Advices, - HttpClientRequestOptions, - RequiresNewTokenFn, - AuthorizationJSON, -} from './interfaces'; -import type { Tokens } from '../shared/interfaces'; -import { getEndpointPath, resolve, stringify } from '../util/url'; -import { FRLogger } from '../util/logger'; - -export function addAuthzInfoToHeaders( - init: RequestInit, - advices: Advices, - tokens?: Tokens | void, -): Headers { - const headers = new Headers(init.headers); - - if (advices.AuthenticateToServiceConditionAdvice) { - headers.set('X-Tree', advices.AuthenticateToServiceConditionAdvice[0]); - } else if (advices.TransactionConditionAdvice) { - headers.set('X-TxID', advices.TransactionConditionAdvice[0]); - } - - if (tokens && tokens.idToken) { - headers.set('X-IdToken', tokens.idToken); - } - return headers; -} - -export function addAuthzInfoToURL(url: string, advices: Advices, tokens?: Tokens | void): string { - const updatedURL = new URL(url); - - // Only modify URL for Transactional Authorization - if (advices.TransactionConditionAdvice) { - const txId = advices.TransactionConditionAdvice[0]; - // Add Txn ID to *original* request options as URL param - updatedURL.searchParams.append('_txid', txId); - } - - // If tokens are used, send idToken (OIDC) - if (tokens && tokens.idToken) { - updatedURL.searchParams.append('_idtoken', tokens.idToken); - } - - // FYI: in certain circumstances, the URL may be returned unchanged - return updatedURL.toString(); -} - -export function buildAuthzOptions( - authzObj: AuthorizationJSON, - baseURL: string, - timeout: number, - realmPath?: string, - customPaths?: CustomPathConfig, -): HttpClientRequestOptions { - const treeAuthAdvices = authzObj.advices && authzObj.advices.AuthenticateToServiceConditionAdvice; - const txnAuthAdvices = authzObj.advices && authzObj.advices.TransactionConditionAdvice; - let attributeValue = ''; - let attributeName = ''; - - if (treeAuthAdvices) { - attributeValue = treeAuthAdvices.reduce((prev: string, curr: string) => { - const prevWithSpace = prev ? ` ${prev}` : prev; - prev = `${curr}${prevWithSpace}`; - return prev; - }, ''); - attributeName = 'AuthenticateToServiceConditionAdvice'; - } else if (txnAuthAdvices) { - attributeValue = txnAuthAdvices.reduce((prev: string, curr: string) => { - const prevWithSpace = prev ? ` ${prev}` : prev; - prev = `${curr}${prevWithSpace}`; - return prev; - }, ''); - attributeName = 'TransactionConditionAdvice'; - } - - const openTags = ``; - const nameTag = ``; - const valueTag = `${attributeValue}`; - const endTags = ``; - const fullXML = `${openTags}${nameTag}${valueTag}${endTags}`; - - const path = getEndpointPath('authenticate', realmPath, customPaths); - const queryParams = { - authIndexType: 'composite_advice', - authIndexValue: fullXML, - }; - - const options = { - init: { - method: 'POST', - credentials: 'include' as const, - headers: new Headers({ - 'Accept-API-Version': 'resource=2.0, protocol=1.0', - }), - }, - timeout, - url: resolve(baseURL, `${path}?${stringify(queryParams)}`), - }; - return options; -} - -export function examineForIGAuthz(res: Response): boolean { - const type = res.headers.get('Content-Type') || ''; - return type.includes('html') && res.url.includes('composite_advice'); -} - -export function examineForIGAuthzHeader(headers: Headers): boolean { - const authnHeader = headers.get('WWW-Authenticate') || ''; - return authnHeader.includes('advices'); -} - -export async function examineForRESTAuthz(res: Response): Promise { - const clone = res.clone(); - const json = await clone.json(); - return !!json.advices; -} - -function getXMLValueFromURL(urlString: string): string { - const url = new URL(urlString); - const value = url.searchParams.get('authIndexValue') || ''; - const parser = new DOMParser(); - const decodedValue = decodeURIComponent(value); - const doc = parser.parseFromString(decodedValue, 'application/xml'); - const el = doc.querySelector('Value'); - return el ? el.innerHTML : ''; -} - -export function getAdvicesFromHeader(header: string): Advices { - const headerArr = header.split(',') || []; - const advicesSubstr = headerArr.find((substr) => substr.includes('advices')) || ''; - let advicesValueParsed: Advices; - try { - const advicesValueArray = advicesSubstr.match(/"(\S+)"/); - const advicesValue = advicesValueArray ? advicesValueArray[1] : ''; - const advicesValueDecoded = atob(advicesValue); - advicesValueParsed = JSON.parse(advicesValueDecoded); - return advicesValueParsed; - } catch (err) { - FRLogger.error('Could not parse advices value from WWW-Authenticate header'); - } - return {}; -} - -export function hasAuthzAdvice(json: AuthorizationJSON): boolean { - if (json.advices && json.advices.AuthenticateToServiceConditionAdvice) { - return ( - Array.isArray(json.advices.AuthenticateToServiceConditionAdvice) && - json.advices.AuthenticateToServiceConditionAdvice.length > 0 - ); - } else if (json.advices && json.advices.TransactionConditionAdvice) { - return ( - Array.isArray(json.advices.TransactionConditionAdvice) && - json.advices.TransactionConditionAdvice.length > 0 - ); - } else { - return false; - } -} - -export async function isAuthzStep(res: Response): Promise { - // TODO: add comment - const clone = res.clone(); - const json = await clone.json(); - return !!json.callbacks; -} - -export function newTokenRequired(res: Response, requiresNewToken?: RequiresNewTokenFn): boolean { - if (typeof requiresNewToken === 'function') { - return requiresNewToken(res); - } - return res.status === 401; -} - -export function normalizeIGRedirectResponseToAdviceJSON(res: Response): AuthorizationJSON { - const advices: Advices = {}; - if (res.url.includes('AuthenticateToServiceConditionAdvice')) { - advices.AuthenticateToServiceConditionAdvice = [getXMLValueFromURL(res.url)]; - } else { - advices.TransactionConditionAdvice = [getXMLValueFromURL(res.url)]; - } - return { - resource: '', - actions: {}, - attributes: {}, - advices, - ttl: 0, - }; -} - -export function normalizeIGJSONResponseToAdviceJSON(res: Response): AuthorizationJSON { - const authHeader = res.headers.get('WWW-Authenticate') || ''; - const advicesObject = getAdvicesFromHeader(authHeader); - - return { - resource: '', - actions: {}, - attributes: {}, - advices: advicesObject, - ttl: 0, - }; -} - -export async function normalizeRESTJSON(res: Response): Promise { - return await res.json(); -} diff --git a/packages/javascript-sdk/src/http-client/http-client.mock.data.ts b/packages/javascript-sdk/src/http-client/http-client.mock.data.ts deleted file mode 100644 index d739c8b6e..000000000 --- a/packages/javascript-sdk/src/http-client/http-client.mock.data.ts +++ /dev/null @@ -1,109 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * http-client.mock.data.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -export const authzByTreeResFromIG = { - headers: { - get(): string { - return 'text/html; charset=utf-8'; - }, - }, - redirected: true, - // eslint-disable-next-line max-len, prettier/prettier - url: 'https://openam.example.com/am/json/realms/root/authenticate?authIndexType=composite_advice&authIndexValue=%3CAdvices%3E%3CAttributeValuePair%3E%3CAttribute%20name%3D%22AuthenticateToServiceConditionAdvice%22%2F%3E%3CValue%3Eabc%3C%2FValue%3E%3C%2FAttributeValuePair%3E%3C%2FAdvices%3E', - // eslint-disable-next-line @typescript-eslint/no-explicit-any -} as any; - -export const authzByTreeResFromIGHeader = { - get(name: string): string { - const headerValue = - 'SSOADVICE realm="/",advices="eyJBdXRoZW50aWNhdGVUb1NlcnZpY2VDb25kaXRpb25BZHZpY2UiOlsiL3NkazpDb25maXJtUGFzc3dvcmQiXX0=",am_uri="https://openam.example.com/am",'; - switch (name) { - case 'WWW-Authenticate': - return headerValue; - default: - return headerValue; - } - }, -} as any; - -export const authzByTxnResFromIG = { - headers: { - get(): string { - return 'text/html; charset=utf-8'; - }, - }, - redirected: true, - // eslint-disable-next-line max-len, prettier/prettier - url: 'https://openam.example.com/am/json/realms/root/authenticate?authIndexType=composite_advice&authIndexValue=%3CAdvices%3E%3CAttributeValuePair%3E%3CAttribute%20name%3D%22TransactionConditionAdvice%22%2F%3E%3CValue%3Eabc%3C%2FValue%3E%3C%2FAttributeValuePair%3E%3C%2FAdvices%3E', - // eslint-disable-next-line @typescript-eslint/no-explicit-any -} as any; - -export const authzByTxnResFromIGHeader = { - get(name: string): string { - const headerValue = - 'SSOADVICE realm="/",advices="eyJUcmFuc2FjdGlvbkNvbmRpdGlvbkFkdmljZSI6WyIzOWRmZGQxNS01OWEzLTQ3M2MtYTdmYy1lY2RhM2JiYzNiYzgiXX0=",am_uri="https://openam.example.com/am"'; - switch (name) { - case 'WWW-Authenticate': - return headerValue; - default: - return headerValue; - } - }, -} as any; - -export const authzTreeJSON = { - resource: '', - actions: {}, - attributes: {}, - advices: { - AuthenticateToServiceConditionAdvice: ['abc'], - }, - ttl: 0, -}; - -export const authzTxnJSON = { - resource: '', - actions: {}, - attributes: {}, - advices: { - TransactionConditionAdvice: ['abc'], - }, - ttl: 0, -}; - -export const authzByTreeResFromREST = { - clone() { - return { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - json(): any { - return Promise.resolve(authzTreeJSON); - }, - }; - }, - json() { - return Promise.resolve(authzTreeJSON); - }, - // eslint-disable-next-line @typescript-eslint/no-explicit-any -} as any; - -export const authzByTxnResFromREST = { - clone() { - return { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - json(): any { - return Promise.resolve(authzTxnJSON); - }, - }; - }, - json() { - return Promise.resolve(authzTxnJSON); - }, - // eslint-disable-next-line @typescript-eslint/no-explicit-any -} as any; diff --git a/packages/javascript-sdk/src/http-client/index.ts b/packages/javascript-sdk/src/http-client/index.ts deleted file mode 100644 index ee67ea840..000000000 --- a/packages/javascript-sdk/src/http-client/index.ts +++ /dev/null @@ -1,211 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import Config from '../config'; -import { ActionTypes } from '../config/enums'; -import FRAuth from '../fr-auth'; -import { StepType } from '../fr-auth/enums'; -import FRStep from '../fr-auth/fr-step'; -import type { - HandleStep, - HttpClientRequestOptions, - RequiresNewTokenFn, - AuthorizationJSON, -} from './interfaces'; -import TokenManager from '../token-manager'; -import TokenStorage from '../token-storage'; -import { withTimeout } from '../util/timeout'; -import { - addAuthzInfoToHeaders, - addAuthzInfoToURL, - buildAuthzOptions, - examineForIGAuthz, - examineForIGAuthzHeader, - examineForRESTAuthz, - hasAuthzAdvice, - isAuthzStep, - newTokenRequired, - normalizeIGRedirectResponseToAdviceJSON, - normalizeIGJSONResponseToAdviceJSON, - normalizeRESTJSON, -} from './helpers'; -import middlewareWrapper from '../util/middleware'; - -/** - * HTTP client that includes bearer token injection and refresh. - * This module also supports authorization for policy protected endpoints. - * - * Example: - * - * ```js - * return forgerock.HttpClient.request({ - * url: `https://example.com/protected/resource`, - * init: { - * method: 'GET', - * credentials: 'include', - * }, - * authorization: { - * handleStep: async (step) => { - * step.getCallbackOfType('PasswordCallback').setPassword(pw); - * return Promise.resolve(step); - * }, - * }, - * }); - * ``` - */ -abstract class HttpClient { - /** - * Makes a request using the specified options. - * - * @param options The options to use when making the request - */ - public static async request(options: HttpClientRequestOptions): Promise { - let res = await this._request(options, false); - let authorizationJSON: AuthorizationJSON | undefined; - let hasIG = false; - - if (newTokenRequired(res, options.requiresNewToken)) { - res = await this._request(options, true); - } - - if (options.authorization && options.authorization.handleStep) { - if (res.status === 401 && examineForIGAuthzHeader(res.headers)) { - hasIG = true; - authorizationJSON = normalizeIGJSONResponseToAdviceJSON(res); - } else if (res.redirected && examineForIGAuthz(res)) { - hasIG = true; - authorizationJSON = normalizeIGRedirectResponseToAdviceJSON(res); - } else if (await examineForRESTAuthz(res)) { - authorizationJSON = await normalizeRESTJSON(res); - } - - if (authorizationJSON && authorizationJSON.advices) { - const { middleware, realmPath, serverConfig } = Config.get(options.authorization.config); - const authzOptions = buildAuthzOptions( - authorizationJSON, - serverConfig.baseUrl, - options.timeout, - realmPath, - serverConfig.paths, - ); - - const url = new URL(authzOptions.url); - const type = url.searchParams.get('authIndexType') as string; - const tree = url.searchParams.get('authIndexValue') as string; - const runMiddleware = middlewareWrapper( - { - url: new URL(authzOptions.url), - init: authzOptions.init, - }, - { - type: ActionTypes.StartAuthenticate, - payload: { type, tree }, - }, - ); - const { url: authUrl, init: authInit } = runMiddleware(middleware); - authzOptions.url = authUrl.toString(); - authzOptions.init = authInit; - const initialStep = await this._request(authzOptions, false); - - if (!(await isAuthzStep(initialStep))) { - throw new Error('Error: Initial response from auth server not a "step".'); - } - if (!hasAuthzAdvice(authorizationJSON)) { - throw new Error(`Error: Transactional or Service Advice is empty.`); - } - - // Walk through auth tree - await this.stepIterator(initialStep, options.authorization.handleStep); - // See if OAuth tokens are being used - const tokens = await TokenStorage.get(); - - if (hasIG) { - // Update URL with IDs and tokens for IG - options.url = addAuthzInfoToURL(options.url, authorizationJSON.advices, tokens); - } else { - // Update headers with IDs and tokens for REST API - options.init.headers = addAuthzInfoToHeaders( - options.init, - authorizationJSON.advices, - tokens, - ); - } - // Retry original resource request - res = await this._request(options, false); - } else { - throw new Error(`Error: Unable to process advice`); - } - } - - return res; - } - - private static async setAuthHeaders(headers: Headers, forceRenew: boolean): Promise { - let tokens = await TokenStorage.get(); - - /** - * Condition to see if Auth is session based or OAuth token based - */ - if (tokens && tokens.accessToken) { - // Access tokens are an OAuth artifact - tokens = await TokenManager.getTokens({ forceRenew }); - // TODO: Temp fix; refactor this in next txn auth story - if (tokens && tokens.accessToken) { - headers.set('Authorization', `Bearer ${tokens.accessToken}`); - } - } - return headers; - } - - private static async stepIterator(res: Response, handleStep: HandleStep): Promise { - const jsonRes = await res.json(); - const initialStep = new FRStep(jsonRes); - - // eslint-disable-next-line no-async-promise-executor - return new Promise(async (resolve, reject) => { - async function handleNext(step: FRStep): Promise { - const input = await handleStep(step); - const output = await FRAuth.next(input, { tree: '', type: '' }); - - if (output.type === StepType.LoginSuccess) { - resolve(); - } else if (output.type === StepType.LoginFailure) { - reject('Authentication tree failure.'); - } else { - handleNext(output); - } - } - - handleNext(initialStep); - }); - } - - private static async _request( - options: HttpClientRequestOptions, - forceRenew: boolean, - ): Promise { - const { url, init, timeout } = options; - let headers = new Headers(init.headers || {}); - - if (options.authorization) { - headers.set('x-authenticate-response', 'header'); - } - - if (!options.bypassAuthentication) { - headers = await this.setAuthHeaders(headers, forceRenew); - } - init.headers = headers; - - return withTimeout(fetch(url, init), timeout); - } -} - -export default HttpClient; -export type { HttpClientRequestOptions, RequiresNewTokenFn }; diff --git a/packages/javascript-sdk/src/http-client/interfaces.ts b/packages/javascript-sdk/src/http-client/interfaces.ts deleted file mode 100644 index 68ea767a5..000000000 --- a/packages/javascript-sdk/src/http-client/interfaces.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * interfaces.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { ConfigOptions } from '../config/interfaces'; -import type FRStep from '../fr-auth/fr-step'; - -export interface Advices { - AuthenticateToServiceConditionAdvice?: string[]; - TransactionConditionAdvice?: string[]; -} - -export declare type HandleStep = (step: FRStep) => Promise; - -/** - * Options to use when making an HTTP call. - */ -export interface HttpClientRequestOptions { - bypassAuthentication?: boolean; - authorization?: { - config?: ConfigOptions; - handleStep: HandleStep; - idToken?: string; - txnID?: string; - }; - init: RequestInit; - requiresNewToken?: RequiresNewTokenFn; - timeout: number; - url: string; -} - -/** - * A function that determines whether a new token is required based on a HTTP response. - */ -export type RequiresNewTokenFn = (res: Response) => boolean; - -export interface AuthorizationJSON { - resource: string; - actions: { [key: string]: string }; - attributes: { [key: string]: string }; - advices: Advices | null; - ttl: number; -} diff --git a/packages/javascript-sdk/src/index.test.ts b/packages/javascript-sdk/src/index.test.ts deleted file mode 100644 index 39bc2e74f..000000000 --- a/packages/javascript-sdk/src/index.test.ts +++ /dev/null @@ -1,106 +0,0 @@ -import * as sdk from './'; -import Auth from './auth'; -import { CallbackType, ErrorCode } from './auth/enums'; -import Config from './config'; -import FRAuth from './fr-auth'; -import FRCallback from './fr-auth/callbacks'; -import AttributeInputCallback from './fr-auth/callbacks/attribute-input-callback'; -import ChoiceCallback from './fr-auth/callbacks/choice-callback'; -import ConfirmationCallback from './fr-auth/callbacks/confirmation-callback'; -import DeviceProfileCallback from './fr-auth/callbacks/device-profile-callback'; -import HiddenValueCallback from './fr-auth/callbacks/hidden-value-callback'; -import KbaCreateCallback from './fr-auth/callbacks/kba-create-callback'; -import MetadataCallback from './fr-auth/callbacks/metadata-callback'; -import NameCallback from './fr-auth/callbacks/name-callback'; -import PasswordCallback from './fr-auth/callbacks/password-callback'; -import PollingWaitCallback from './fr-auth/callbacks/polling-wait-callback'; -import PingOneProtectEvaluationCallback from './fr-auth/callbacks/ping-protect-evaluation-callback'; -import PingOneProtectInitializeCallback from './fr-auth/callbacks/ping-protect-initialize-callback'; -import ReCaptchaCallback from './fr-auth/callbacks/recaptcha-callback'; -import RedirectCallback from './fr-auth/callbacks/redirect-callback'; -import SelectIdPCallback from './fr-auth/callbacks/select-idp-callback'; -import SuspendedTextOutputCallback from './fr-auth/callbacks/suspended-text-output-callback'; -import TermsAndConditionsCallback from './fr-auth/callbacks/terms-and-conditions-callback'; -import TextInputCallback from './fr-auth/callbacks/text-input-callback'; -import TextOutputCallback from './fr-auth/callbacks/text-output-callback'; -// eslint-disable-next-line max-len -import ValidatedCreatePasswordCallback from './fr-auth/callbacks/validated-create-password-callback'; -// eslint-disable-next-line max-len -import ValidatedCreateUsernameCallback from './fr-auth/callbacks/validated-create-username-callback'; -import { StepType } from './fr-auth/enums'; -import FRLoginFailure from './fr-auth/fr-login-failure'; -import FRLoginSuccess from './fr-auth/fr-login-success'; -import FRStep from './fr-auth/fr-step'; -import FRDevice from './fr-device'; -import FRPolicy, { PolicyKey } from './fr-policy'; -import FRQRCode from './fr-qr-code'; -import defaultMessageCreator from './fr-policy/message-creator'; -import FRRecoveryCodes from './fr-recovery-codes'; -import FRUser from './fr-user'; -import FRWebAuthn, { WebAuthnOutcome, WebAuthnStepType } from './fr-webauthn'; -import HttpClient from './http-client'; -import OAuth2Client, { ResponseType } from './oauth2-client'; -import SessionManager from './session-manager'; -import TokenManager from './token-manager'; -import TokenStorage from './token-storage'; -import UserManager from './user-manager'; -import Deferred from './util/deferred'; -import PKCE from './util/pkce'; -import LocalStorage from './util/storage'; - -test('ensure the sdk exports are exported from the index', () => { - expect(sdk).toBeDefined(); - expect(sdk).toMatchObject({ - defaultMessageCreator, - AttributeInputCallback, - Auth, - CallbackType, - ChoiceCallback, - Config, - ConfirmationCallback, - Deferred, - DeviceProfileCallback, - ErrorCode, - FRAuth, - FRCallback, - FRDevice, - FRLoginFailure, - FRLoginSuccess, - FRPolicy, - FRQRCode, - FRRecoveryCodes, - FRStep, - FRUser, - FRWebAuthn, - HiddenValueCallback, - HttpClient, - KbaCreateCallback, - LocalStorage, - MetadataCallback, - NameCallback, - OAuth2Client, - PasswordCallback, - PKCE, - PingOneProtectEvaluationCallback, - PingOneProtectInitializeCallback, - PolicyKey, - PollingWaitCallback, - ReCaptchaCallback, - RedirectCallback, - ResponseType, - SelectIdPCallback, - SessionManager, - StepType, - SuspendedTextOutputCallback, - TermsAndConditionsCallback, - TextInputCallback, - TextOutputCallback, - TokenManager, - TokenStorage, - UserManager, - ValidatedCreatePasswordCallback, - ValidatedCreateUsernameCallback, - WebAuthnOutcome, - WebAuthnStepType, - }); -}); diff --git a/packages/javascript-sdk/src/index.ts b/packages/javascript-sdk/src/index.ts deleted file mode 100644 index 6944a4ace..000000000 --- a/packages/javascript-sdk/src/index.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020-2021 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import Auth from './auth'; -import { CallbackType, ErrorCode } from './auth/enums'; -import type { Callback, NameValue, PolicyRequirement, Step, StepDetail } from './auth/interfaces'; -import Config from './config'; -import type { ConfigOptions, ValidConfigOptions } from './config'; -import FRAuth from './fr-auth'; -import FRCallback from './fr-auth/callbacks'; -import AttributeInputCallback from './fr-auth/callbacks/attribute-input-callback'; -import ChoiceCallback from './fr-auth/callbacks/choice-callback'; -import ConfirmationCallback from './fr-auth/callbacks/confirmation-callback'; -import DeviceProfileCallback from './fr-auth/callbacks/device-profile-callback'; -import type { FRCallbackFactory } from './fr-auth/callbacks/factory'; -import HiddenValueCallback from './fr-auth/callbacks/hidden-value-callback'; -import KbaCreateCallback from './fr-auth/callbacks/kba-create-callback'; -import MetadataCallback from './fr-auth/callbacks/metadata-callback'; -import NameCallback from './fr-auth/callbacks/name-callback'; -import PasswordCallback from './fr-auth/callbacks/password-callback'; -import PollingWaitCallback from './fr-auth/callbacks/polling-wait-callback'; -import ReCaptchaCallback from './fr-auth/callbacks/recaptcha-callback'; -import RedirectCallback from './fr-auth/callbacks/redirect-callback'; -import type { IdPValue } from './fr-auth/callbacks/select-idp-callback'; -import SelectIdPCallback from './fr-auth/callbacks/select-idp-callback'; -import SuspendedTextOutputCallback from './fr-auth/callbacks/suspended-text-output-callback'; -import TermsAndConditionsCallback from './fr-auth/callbacks/terms-and-conditions-callback'; -import TextInputCallback from './fr-auth/callbacks/text-input-callback'; -import TextOutputCallback from './fr-auth/callbacks/text-output-callback'; -// eslint-disable-next-line max-len -import ValidatedCreatePasswordCallback from './fr-auth/callbacks/validated-create-password-callback'; -// eslint-disable-next-line max-len -import ValidatedCreateUsernameCallback from './fr-auth/callbacks/validated-create-username-callback'; -import { StepType } from './fr-auth/enums'; -import FRLoginFailure from './fr-auth/fr-login-failure'; -import PingOneProtectEvaluationCallback from './fr-auth/callbacks/ping-protect-evaluation-callback'; -import PingOneProtectInitializeCallback from './fr-auth/callbacks/ping-protect-initialize-callback'; -import ReCaptchaEnterpriseCallback from './fr-auth/callbacks/recaptcha-enterprise-callback'; -import FRLoginSuccess from './fr-auth/fr-login-success'; -import type { FRStepHandler } from './fr-auth/fr-step'; -import FRStep from './fr-auth/fr-step'; -import type { AuthResponse, FailureDetail } from './fr-auth/interfaces'; -import FRDevice from './fr-device'; -import type { MessageCreator, ProcessedPropertyError } from './fr-policy'; -import FRPolicy, { PolicyKey } from './fr-policy'; -import FRQRCode from './fr-qr-code'; -import defaultMessageCreator from './fr-policy/message-creator'; -import FRRecoveryCodes from './fr-recovery-codes'; -import FRUser from './fr-user'; -import type { - RelyingParty, - WebAuthnAuthenticationMetadata, - WebAuthnCallbacks, - WebAuthnRegistrationMetadata, -} from './fr-webauthn'; -import FRWebAuthn, { WebAuthnOutcome, WebAuthnStepType } from './fr-webauthn'; -import HttpClient from './http-client'; -import type { - GetAuthorizationUrlOptions, - GetOAuth2TokensOptions, - OAuth2Tokens, -} from './oauth2-client'; -import OAuth2Client, { ResponseType } from './oauth2-client'; -import SessionManager from './session-manager'; -import type { Tokens } from './shared/interfaces'; -import type { GetTokensOptions } from './token-manager'; -import TokenManager from './token-manager'; -import TokenStorage from './token-storage'; -import UserManager from './user-manager'; -import Deferred from './util/deferred'; -import PKCE from './util/pkce'; -import LocalStorage from './util/storage'; -import type { LoggerFunctions, StepOptions } from './config/interfaces'; - -export type { - AuthResponse, - Callback, - ConfigOptions, - FailureDetail, - FRCallbackFactory, - FRStepHandler, - GetAuthorizationUrlOptions, - GetOAuth2TokensOptions, - GetTokensOptions, - IdPValue, - LoggerFunctions, - MessageCreator, - NameValue, - OAuth2Tokens, - PolicyRequirement, - ProcessedPropertyError, - RelyingParty, - Step, - StepDetail, - Tokens, - ValidConfigOptions, - WebAuthnAuthenticationMetadata, - WebAuthnCallbacks, - WebAuthnRegistrationMetadata, -}; -export { - defaultMessageCreator, - AttributeInputCallback, - Auth, - CallbackType, - ChoiceCallback, - Config, - ConfirmationCallback, - Deferred, - DeviceProfileCallback, - ErrorCode, - FRAuth, - FRCallback, - FRDevice, - FRLoginFailure, - FRLoginSuccess, - FRPolicy, - FRQRCode, - FRRecoveryCodes, - FRStep, - FRUser, - FRWebAuthn, - HiddenValueCallback, - HttpClient, - KbaCreateCallback, - LocalStorage, - MetadataCallback, - NameCallback, - OAuth2Client, - PasswordCallback, - PingOneProtectEvaluationCallback, - PingOneProtectInitializeCallback, - PKCE, - PolicyKey, - PollingWaitCallback, - ReCaptchaCallback, - ReCaptchaEnterpriseCallback, - RedirectCallback, - ResponseType, - SelectIdPCallback, - SessionManager, - StepOptions, - StepType, - SuspendedTextOutputCallback, - TermsAndConditionsCallback, - TextInputCallback, - TextOutputCallback, - TokenManager, - TokenStorage, - UserManager, - ValidatedCreatePasswordCallback, - ValidatedCreateUsernameCallback, - WebAuthnOutcome, - WebAuthnStepType, -}; diff --git a/packages/javascript-sdk/src/oauth2-client/enums.ts b/packages/javascript-sdk/src/oauth2-client/enums.ts deleted file mode 100644 index 25657ec32..000000000 --- a/packages/javascript-sdk/src/oauth2-client/enums.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * enums.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * Specifies the type of OAuth flow to invoke. - */ -enum ResponseType { - Code = 'code', - Token = 'token', -} - -export { ResponseType }; diff --git a/packages/javascript-sdk/src/oauth2-client/index.ts b/packages/javascript-sdk/src/oauth2-client/index.ts deleted file mode 100644 index e6c705e40..000000000 --- a/packages/javascript-sdk/src/oauth2-client/index.ts +++ /dev/null @@ -1,401 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020-2021 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { ActionTypes } from '../config/enums'; -import type { ConfigOptions } from '../config/index'; -import Config from '../config/index'; -import type { ConfigurablePaths } from '../config/interfaces'; -import type { StringDict } from '../shared/interfaces'; -import type { Noop } from '../shared/types'; -import TokenStorage from '../token-storage'; -import { isOkOr4xx } from '../util/http'; -import PKCE from '../util/pkce'; -import { withTimeout } from '../util/timeout'; -import { getEndpointPath, resolve, stringify } from '../util/url'; -import { ResponseType } from './enums'; -import type { - AccessTokenResponse, - LogoutOptions, - GetAuthorizationUrlOptions, - GetOAuth2TokensOptions, - OAuth2Tokens, - EndSessionOptions, -} from './interfaces'; -import middlewareWrapper from '../util/middleware'; - -const allowedErrors = { - // AM error for consent requirement - AuthenticationConsentRequired: 'Authentication or consent required', - - // Ping federate consent requirement - AuthenticationIsRequired: 'Authentication is required.', - - // Manual iframe error - AuthorizationTimeout: 'Authorization timed out', - - // Chromium browser error - FailedToFetch: 'Failed to fetch', - - // Mozilla browser error - NetworkError: 'NetworkError when attempting to fetch resource.', - - // Webkit browser error - CORSError: 'Cross-origin redirection', - - // prompt=none errors - InteractionNotAllowed: 'The request requires some interaction that is not allowed.', - - // PingOne login error - LoginRequired: 'User authentication is required', - - RequestRequiresConsent: 'The request requires consent.', -}; - -/** - * OAuth 2.0 client. - */ -abstract class OAuth2Client { - public static async createAuthorizeUrl(options: GetAuthorizationUrlOptions): Promise { - const { clientId, middleware, redirectUri, scope } = Config.get(options); - const requestParams: StringDict = { - ...options.query, - client_id: clientId, - redirect_uri: redirectUri, - response_type: options.responseType, - scope, - state: options.state, - ...(options.prompt ? { prompt: options.prompt } : {}), - }; - - if (options.verifier) { - const challenge = await PKCE.createChallenge(options.verifier); - requestParams.code_challenge = challenge; - requestParams.code_challenge_method = 'S256'; - } - - const runMiddleware = middlewareWrapper( - { - url: new URL(this.getUrl('authorize', requestParams, options)), - init: {}, - }, - { type: ActionTypes.Authorize }, - ); - const { url } = runMiddleware(middleware); - return url.toString(); - } - - /** - * Calls the authorize URL with an iframe. If successful, - * it returns the callback URL with authentication code, - * optionally using PKCE. - * Method renamed in v3. - * Original Name: getAuthorizeUrl - * New Name: getAuthCodeByIframe - */ - public static async getAuthCodeByIframe(options: GetAuthorizationUrlOptions): Promise { - const url = await this.createAuthorizeUrl({ ...options, prompt: 'none' }); - - const { serverConfig } = Config.get(options); - - return new Promise((resolve, reject) => { - const iframe = document.createElement('iframe'); - - // Define these here to avoid linter warnings - const noop: Noop = () => { - return; - }; - let onLoad: Noop = noop; - let cleanUp: Noop = noop; - let timeout: number | ReturnType = 0; - - cleanUp = (): void => { - clearTimeout(timeout); - iframe.removeEventListener('load', onLoad); - iframe.remove(); - }; - - onLoad = (): void => { - if (iframe.contentWindow) { - const newHref = iframe.contentWindow.location.href; - if (this.containsAuthCode(newHref)) { - cleanUp(); - resolve(newHref); - } else if (this.containsAuthError(newHref)) { - cleanUp(); - resolve(newHref); - } - } - }; - - timeout = setTimeout(() => { - cleanUp(); - reject(new Error(allowedErrors.AuthorizationTimeout)); - }, serverConfig.timeout); - - iframe.style.display = 'none'; - iframe.addEventListener('load', onLoad); - document.body.appendChild(iframe); - iframe.src = url; - }); - } - - /** - * Exchanges an authorization code for OAuth tokens. - */ - public static async getOAuth2Tokens(options: GetOAuth2TokensOptions): Promise { - const { clientId, redirectUri } = Config.get(options); - - const requestParams: StringDict = { - client_id: clientId, - code: options.authorizationCode, - grant_type: 'authorization_code', - redirect_uri: redirectUri, - }; - - if (options.verifier) { - requestParams.code_verifier = options.verifier; - } - - const body = stringify(requestParams); - const init = { - body, - headers: new Headers({ - 'Content-Length': body.length.toString(), - 'Content-Type': 'application/x-www-form-urlencoded', - }), - method: 'POST', - }; - - const response = await this.request('accessToken', undefined, false, init, options); - const responseBody = await this.getBody(response); - - if (response.status !== 200) { - const message = - typeof responseBody === 'string' - ? `Expected 200, received ${response.status}` - : this.parseError(responseBody as StringDict); - throw new Error(message); - } - - const responseObject = responseBody as AccessTokenResponse; - if (!responseObject.access_token) { - throw new Error('Access token not found in response'); - } - - let tokenExpiry: number | undefined = undefined; - if (responseObject.expires_in) { - tokenExpiry = Date.now() + responseObject.expires_in * 1000; - } - - return { - accessToken: responseObject.access_token, - idToken: responseObject.id_token, - refreshToken: responseObject.refresh_token, - tokenExpiry: tokenExpiry, - }; - } - - /** - * Gets OIDC user information. - */ - public static async getUserInfo(options?: ConfigOptions): Promise { - const response = await this.request('userInfo', undefined, true, undefined, options); - if (response.status !== 200) { - throw new Error(`Failed to get user info; received ${response.status}`); - } - - const json = await response.json(); - return json; - } - - /** - * Invokes the OIDC end session endpoint. - * Can result in a redirect to `/signoff` if using PingOne - * It's best to explicitly provide the logout redirect URL in options - * - * @function endSession - call authorization server to end associated session - * @param options {LogoutOptions} - an extension of ConfigOptions, but with two additional props - * @param options.logoutRedirectUri {string} - the URL you want the AS to redirect to after signout - * @param options.redirect {boolean} - to explicitly deactivate redirect, pass `false` - */ - public static async endSession( - options?: LogoutOptions | EndSessionOptions, - ): Promise { - // Shallow copy options to delete redirect props - const configOptions: LogoutOptions | EndSessionOptions = { ...options }; - - delete configOptions.redirect; - - delete configOptions.logoutRedirectUri; - - const query: StringDict = {}; - - const tokens = await TokenStorage.get(); - query.id_token_hint = - (tokens && tokens.idToken) || (options && 'idToken' in options ? options.idToken : ''); - - const response = await this.request('endSession', query, true, undefined, configOptions, { - redirect: options?.redirect, - logoutRedirectUri: options?.logoutRedirectUri, - }); - if (!isOkOr4xx(response)) { - throw new Error(`Failed to end session; received ${response.status}`); - } - return response; - } - - /** - * Immediately revokes the stored access token. - */ - public static async revokeToken(options?: ConfigOptions): Promise { - const { clientId } = Config.get(options); - const tokens = await TokenStorage.get(); - const accessToken = tokens && tokens.accessToken; - - const body: StringDict = { - client_id: clientId, - }; - // This is needed to support Token Vault; the SDK may not have the token locally - if (accessToken) { - body.token = accessToken; - } - const init: RequestInit = { - body: stringify(body), - credentials: 'include', - headers: new Headers({ - 'Content-Type': 'application/x-www-form-urlencoded', - }), - method: 'POST', - }; - const response = await this.request('revoke', undefined, false, init, options); - if (!isOkOr4xx(response)) { - throw new Error(`Failed to revoke token; received ${response.status}`); - } - return response; - } - - private static async request( - endpoint: ConfigurablePaths, - query?: StringDict, - includeToken?: boolean, - init?: RequestInit, - options?: ConfigOptions, - logoutOptions?: { redirect?: boolean; logoutRedirectUri?: string }, - ): Promise { - const { redirectUri, middleware, serverConfig } = Config.get(options); - const endSessionRedirectUrl = logoutOptions?.logoutRedirectUri - ? logoutOptions.logoutRedirectUri - : redirectUri; - const url = this.getUrl(endpoint, query, options); - - const getActionType = (endpoint: ConfigurablePaths): ActionTypes => { - switch (endpoint) { - case 'accessToken': - return ActionTypes.ExchangeToken; - case 'endSession': - return ActionTypes.EndSession; - case 'revoke': - return ActionTypes.RevokeToken; - default: - return ActionTypes.UserInfo; - } - }; - - init = init || ({} as RequestInit); - - if (includeToken) { - const tokens = await TokenStorage.get(); - const accessToken = tokens && tokens.accessToken; - init.credentials = 'include'; - init.headers = (init.headers || new Headers()) as Headers; - init.headers.set('Authorization', `Bearer ${accessToken}`); - } - const runMiddleware = middlewareWrapper( - { url: new URL(url), init }, - { type: getActionType(endpoint) }, - ); - const req = runMiddleware(middleware); - - /* - * Check for PingOne related end session redirection requirement for third-party cookie support - */ - if ( - getActionType(endpoint) === ActionTypes.EndSession && // endSession action only - logoutOptions?.redirect === true // If redirect is explicitly `true`, do it! - ) { - // Add PingOne's redirect URL for signout before redirecting - // Intentionally NOT using `window.location.href` for security just using empty string for fallback. - req.url.searchParams.append('post_logout_redirect_uri', endSessionRedirectUrl || ''); - window.location.assign(req.url.toString()); - - return new Response(); // Just return an empty response to keep the types the same. - } else if ( - getActionType(endpoint) === ActionTypes.EndSession && // endSession action only - logoutOptions?.redirect !== false && // Only `false` explicitly disables this behavior for rare edge cases - // If we explicitly get a logout redirect URL, then that's enough of a hint to redirect - // If we don't have that, let's see if they are calling the typical PingOne `/signoff` endpoint - (logoutOptions?.logoutRedirectUri || this.getUrl('endSession').includes('/as/signoff')) - ) { - // Same as above - req.url.searchParams.append('post_logout_redirect_uri', endSessionRedirectUrl || ''); - window.location.assign(req.url.toString()); - - return new Response(); // Just return an empty response to keep the types the same. - } else { - return await withTimeout(fetch(req.url.toString(), req.init), serverConfig.timeout); - } - } - - private static containsAuthCode(url: string | null): boolean { - return !!url && /code=([^&]+)/.test(url); - } - - private static containsAuthError(url: string | null): boolean { - return !!url && /error=([^&]+)/.test(url); - } - - private static async getBody(response: Response): Promise { - const contentType = response.headers.get('Content-Type'); - if (contentType && contentType.indexOf('application/json') > -1) { - return await response.json(); - } - return await response.text(); - } - - private static parseError(json: StringDict): string | undefined { - if (json) { - if (json.error && json.error_description) { - return `${json.error}: ${json.error_description}`; - } - if (json.code && json.message) { - return `${json.code}: ${json.message}`; - } - } - return undefined; - } - - private static getUrl( - endpoint: ConfigurablePaths, - query?: StringDict, - options?: ConfigOptions, - ): string { - const { realmPath, serverConfig } = Config.get(options); - const path = getEndpointPath(endpoint, realmPath, serverConfig.paths); - let url = resolve(serverConfig.baseUrl, path); - if (query) { - url += `?${stringify(query)}`; - } - return url; - } -} - -export default OAuth2Client; -export type { GetAuthorizationUrlOptions, GetOAuth2TokensOptions, OAuth2Tokens }; -export { allowedErrors, ResponseType }; diff --git a/packages/javascript-sdk/src/oauth2-client/interfaces.ts b/packages/javascript-sdk/src/oauth2-client/interfaces.ts deleted file mode 100644 index 7f080a4fb..000000000 --- a/packages/javascript-sdk/src/oauth2-client/interfaces.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * interfaces.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { StringDict } from '../shared/interfaces'; -import type { ConfigOptions } from '../config'; -import type { ResponseType } from './enums'; - -/** - * Tokens returned after successful authentication. - */ -interface OAuth2Tokens { - accessToken: string; - idToken?: string; - refreshToken?: string; - tokenExpiry?: number; -} - -/** - * Response from access_token endpoint. - */ -interface AccessTokenResponse { - access_token: string; - id_token: string; - refresh_token: string; - expires_in: number; -} - -/** - * Options used when requesting the authorization URL. - */ -interface GetAuthorizationUrlOptions extends ConfigOptions { - responseType: ResponseType; - state?: string; - verifier?: string; - query?: StringDict; - prompt?: 'none' | 'login' | 'consent'; -} - -/** - * Options used when requesting OAuth tokens. - */ -interface GetOAuth2TokensOptions extends ConfigOptions { - authorizationCode: string; - verifier?: string; -} - -interface LogoutOptions extends ConfigOptions { - redirect?: boolean; - logoutRedirectUri?: string; -} - -interface EndSessionOptions extends LogoutOptions { - idToken: string; -} -export type { - AccessTokenResponse, - EndSessionOptions, - GetAuthorizationUrlOptions, - GetOAuth2TokensOptions, - LogoutOptions, - OAuth2Tokens, -}; diff --git a/packages/javascript-sdk/src/oauth2-client/state-pkce.ts b/packages/javascript-sdk/src/oauth2-client/state-pkce.ts deleted file mode 100644 index bbb681047..000000000 --- a/packages/javascript-sdk/src/oauth2-client/state-pkce.ts +++ /dev/null @@ -1,55 +0,0 @@ -import PKCE from '../util/pkce'; -import { GetAuthorizationUrlOptions } from './interfaces'; - -function getStorageKey(clientId: string, prefix?: string) { - return `${prefix || 'FR-SDK'}-authflow-${clientId}`; -} - -/** - * Generate and store PKCE values for later use - * @param { string } storageKey - Key to store authorization options in sessionStorage - * @param {GenerateAndStoreAuthUrlValues} options - Options for generating PKCE values - * @returns { state: string, verifier: string, GetAuthorizationUrlOptions } - */ -interface GenerateAndStoreAuthUrlValues extends GetAuthorizationUrlOptions { - clientId: string; - login?: 'redirect' | 'embedded'; - prefix?: string; -} - -export function generateAndStoreAuthUrlValues(options: GenerateAndStoreAuthUrlValues) { - const verifier = PKCE.createVerifier(); - const state = PKCE.createState(); - const storageKey = getStorageKey(options.clientId, options.prefix); - - const authorizeUrlOptions = { - ...options, - state, - verifier, - }; - - return [ - authorizeUrlOptions, - () => sessionStorage.setItem(storageKey, JSON.stringify(authorizeUrlOptions)), - ] as const; -} - -/** - * @function getStoredAuthUrlValues - Retrieve stored authorization options from sessionStorage - * @param { string } storageKey - Key to retrieve stored values from sessionStorage - * @returns { GetAuthorizationUrlOptions } - */ -export function getStoredAuthUrlValues( - clientId: string, - prefix?: string, -): GetAuthorizationUrlOptions { - const storageKey = getStorageKey(clientId, prefix); - const storedString = sessionStorage.getItem(storageKey); - sessionStorage.removeItem(storageKey); - - try { - return JSON.parse(storedString as string); - } catch (error) { - throw new Error('Stored values for Auth URL could not be parsed'); - } -} diff --git a/packages/javascript-sdk/src/session-manager/index.ts b/packages/javascript-sdk/src/session-manager/index.ts deleted file mode 100644 index 8a65903a7..000000000 --- a/packages/javascript-sdk/src/session-manager/index.ts +++ /dev/null @@ -1,74 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { ConfigOptions } from '../config/index'; -import Config from '../config/index'; -import { REQUESTED_WITH, X_REQUESTED_PLATFORM } from '../shared/constants'; -import { isOkOr4xx } from '../util/http'; -import { withTimeout } from '../util/timeout'; -import { ActionTypes } from '../config/enums'; -import middlewareWrapper from '../util/middleware'; -import { getEndpointPath, resolve } from '../util/url'; - -/** - * Provides access to the session management API. - */ -abstract class SessionManager { - /** - * Ends the current session. - */ - public static async logout(options?: ConfigOptions): Promise { - const { middleware, platformHeader, realmPath, serverConfig } = Config.get(options); - const init: RequestInit = { - credentials: 'include', - headers: new Headers({ - 'Accept-API-Version': 'protocol=1.0,resource=2.0', - 'X-Requested-With': REQUESTED_WITH, - }), - method: 'POST', - }; - - const path = `${getEndpointPath('sessions', realmPath, serverConfig.paths)}?_action=logout`; - const url = resolve(serverConfig.baseUrl, path); - - const runMiddleware = middlewareWrapper( - { url: new URL(url), init }, - { type: ActionTypes.Logout }, - ); - const req = runMiddleware(middleware); - - /** - * Run after as to now allow mutation by user - * Since the init headers can be an array, object or Headers class, - * we need to handle all types. - */ - if (platformHeader) { - if (req.init.headers instanceof Headers) { - req.init.headers.set('X-Requested-Platform', X_REQUESTED_PLATFORM); - } else if (Array.isArray(req.init.headers)) { - req.init.headers.push(['X-Requested-Platform', X_REQUESTED_PLATFORM]); - } else if (req.init.headers) { - req.init.headers['X-Requested-Platform'] = X_REQUESTED_PLATFORM; - } else { - req.init.headers = { - 'X-Requested-Platform': X_REQUESTED_PLATFORM, - }; - } - } - - const response = await withTimeout(fetch(req.url.toString(), req.init), serverConfig.timeout); - if (!isOkOr4xx(response)) { - throw new Error(`Failed to log out; received ${response.status}`); - } - return response; - } -} - -export default SessionManager; diff --git a/packages/javascript-sdk/src/shared/constants.ts b/packages/javascript-sdk/src/shared/constants.ts deleted file mode 100644 index e0d617f1e..000000000 --- a/packages/javascript-sdk/src/shared/constants.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * constants.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * @module - * @ignore - * These are private constants - */ -const REQUESTED_WITH = 'forgerock-sdk'; -const X_REQUESTED_PLATFORM = 'javascript'; - -export { REQUESTED_WITH, X_REQUESTED_PLATFORM }; diff --git a/packages/javascript-sdk/src/shared/interfaces.ts b/packages/javascript-sdk/src/shared/interfaces.ts deleted file mode 100644 index d8a5e8139..000000000 --- a/packages/javascript-sdk/src/shared/interfaces.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * interfaces.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -interface StringDict { - [name: string]: T; -} - -interface Tokens { - accessToken: string; - idToken?: string; - refreshToken?: string; - tokenExpiry?: number; -} - -export type { StringDict, Tokens }; diff --git a/packages/javascript-sdk/src/shared/types.ts b/packages/javascript-sdk/src/shared/types.ts deleted file mode 100644 index 2728a5353..000000000 --- a/packages/javascript-sdk/src/shared/types.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * types.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * @module - * @ignore - * These are private utility functions - */ -type Noop = () => void; - -export type { Noop }; diff --git a/packages/javascript-sdk/src/token-manager/helpers.test.ts b/packages/javascript-sdk/src/token-manager/helpers.test.ts deleted file mode 100644 index e09c21b92..000000000 --- a/packages/javascript-sdk/src/token-manager/helpers.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * helpers.test.ts - * - * Copyright (c) 2022 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import { vi, afterAll, expect, describe, it, beforeAll } from 'vitest'; -import { tokensWillExpireWithinThreshold } from './helpers'; -import { - oauthThreshold, - tokenExpiryWithinThreshold, - tokenExpiryOutsideThreshold, - tokenExpiryNotSet, -} from './token-manager.mock.data'; - -describe('Test Token Manager utils', () => { - // We want to avoid race conditions between expected and actual date values - beforeAll(() => { - // Override date functions to return a static date temporarily - vi.useFakeTimers(); - vi.setSystemTime(new Date('25 Mar 2022 16:50:00 GMT').getTime()); - }); - - it('Should return true if tokens expire within configured threshold', () => { - const expiresSoon = tokensWillExpireWithinThreshold( - oauthThreshold, - Date.now() + tokenExpiryWithinThreshold, - ); - expect(expiresSoon).toBe(true); - }); - - it('Should return false if tokens expire outside configured threshold', () => { - const expiresSoon = tokensWillExpireWithinThreshold( - oauthThreshold, - Date.now() + tokenExpiryOutsideThreshold, - ); - expect(expiresSoon).toBe(false); - }); - - it('Should return false if token expiry is not set', () => { - const expiresSoon = tokensWillExpireWithinThreshold( - oauthThreshold, - Date.now() + tokenExpiryNotSet, - ); - expect(expiresSoon).toBe(false); - }); - - afterAll(() => { - // Reset timers - vi.useRealTimers(); - }); -}); diff --git a/packages/javascript-sdk/src/token-manager/helpers.ts b/packages/javascript-sdk/src/token-manager/helpers.ts deleted file mode 100644 index 1756d5ac9..000000000 --- a/packages/javascript-sdk/src/token-manager/helpers.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * helpers.ts - * - * Copyright (c) 2022 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * @module - * @ignore - * These are private utility functions for Token Manager - */ - -export function tokensWillExpireWithinThreshold( - oauthThreshold?: number, - tokenExpiry?: number, -): boolean { - if (oauthThreshold && tokenExpiry) { - return tokenExpiry - oauthThreshold < Date.now(); - } - return false; -} diff --git a/packages/javascript-sdk/src/token-manager/index.test.ts b/packages/javascript-sdk/src/token-manager/index.test.ts deleted file mode 100644 index 0e8595339..000000000 --- a/packages/javascript-sdk/src/token-manager/index.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { vi, describe, it, expect } from 'vitest'; -import TokenManager from '.'; -import Config from '../config'; -import OAuth2Client from '../oauth2-client'; - -vi.spyOn(OAuth2Client, 'getAuthCodeByIframe').mockImplementation(() => { - return Promise.resolve('http://myapi.com?code=123&state=123'); -}); -// TokenManager.tokenExchange is private -// so cast as any so typescript lets us spy. -vi.spyOn(TokenManager as any, 'tokenExchange').mockImplementation(() => { - return Promise.resolve('abctoken'); -}); -describe('TokenManager', () => { - describe('getTokens', () => { - it('should ensure if no options are passed in, tokens call can proceed', async () => { - Config.set({ - clientId: '123', - redirectUri: 'http://localhost:3000', - scope: 'openid', - serverConfig: { - baseUrl: 'http://localhost:8080/am', - timeout: 5000, - }, - }); - const tokens = await TokenManager.getTokens(); - expect(tokens).toBe('abctoken'); - }); - }); -}); diff --git a/packages/javascript-sdk/src/token-manager/index.ts b/packages/javascript-sdk/src/token-manager/index.ts deleted file mode 100644 index 3d553b78f..000000000 --- a/packages/javascript-sdk/src/token-manager/index.ts +++ /dev/null @@ -1,240 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020-2021 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { ConfigOptions } from '../config'; -import Config from '../config'; -import { FRLogger } from '../util/logger'; -import type { OAuth2Tokens } from '../oauth2-client'; -import OAuth2Client, { allowedErrors, ResponseType } from '../oauth2-client'; -import type { StringDict, Tokens } from '../shared/interfaces'; -import TokenStorage from '../token-storage'; -import { generateAndStoreAuthUrlValues, getStoredAuthUrlValues } from '../oauth2-client/state-pkce'; -import { parseQuery } from '../util/url'; -import { tokensWillExpireWithinThreshold } from './helpers'; - -interface GetTokensOptions extends ConfigOptions { - forceRenew?: boolean; - login?: 'embedded' | 'redirect' | undefined; - query?: StringDict; -} - -abstract class TokenManager { - /** - * Token Manager class that provides high-level abstraction for Authorization Code flow, - * PKCE value generation, token exchange and token storage. - * - * Supports both embedded authentication as well as external authentication via redirects - * - Example 1: - - ```js - const tokens = forgerock.TokenManager.getTokens({ - forceRenew: true, // If you want to get new tokens, despite existing ones - login: 'embedded', // If user authentication is handled in-app - serverConfig: { - timeout: 5000, - }, - }); - ``` - - Example 2: - - ```js - const tokens = forgerock.TokenManager.getTokens({ - forceRenew: false, // Will immediately return stored tokens, if they exist - login: 'redirect', // If user authentication is handled in external Web app - }); - ``` - - Example 3: - - ```js - const tokens = forgerock.TokenManager.getTokens({ - query: { - code: 'lFJQYdoQG1u7nUm8 ... ', // Authorization code from redirect URL - state: 'MTY2NDkxNTQ2Nde3D ... ', // State from redirect URL - }, - }); - ``` - */ - public static async getTokens(options?: GetTokensOptions): Promise { - const { clientId, oauthThreshold, prefix } = Config.get(options as ConfigOptions); - - if (!clientId) { - throw new Error('Client ID is required'); - } - - /** - * First, let's see if tokens exist locally - */ - const tokens = await TokenStorage.get(); - - /** - * If tokens are stored, no option for `forceRenew` or `query` object with `code`, and do not expire within the configured threshold, - * immediately return the stored tokens - */ - if ( - tokens && - !options?.forceRenew && - !options?.query?.code && - !tokensWillExpireWithinThreshold(oauthThreshold, tokens.tokenExpiry) - ) { - return tokens; - } - - /** - * If we are still here because of forceRenew or we have an authorization code, or the tokens expire within the configured threshold, - * revoke and delete existing tokens to prepare for the new ones - */ - if (tokens) { - try { - await OAuth2Client.revokeToken(options); - await TokenManager.deleteTokens(); - } catch (error) { - FRLogger.warn('Existing tokens could not be revoked or deleted', error); - } - } - - /** - * If authorization code and state are passed in, call token exchange - * and return acquired tokens - */ - if (options?.query?.code && options?.query?.state) { - const { state, verifier } = getStoredAuthUrlValues(clientId, prefix); - - if (state === undefined || verifier === undefined) { - throw new Error( - '`state` and/or `verifier` not found in sessionStorage. Debugging: sessionStorage is not accessible in separate tabs.', - ); - } - return await this.tokenExchange(options, { state, verifier }); - } - - // so to not change the type of the above function - // we assign it here if its undefined or null. - const config = Object.assign({}, options); - delete config.forceRenew; - - /** - * Generate state and verifier for PKCE - */ - const [pkceValues, storePkceValues] = generateAndStoreAuthUrlValues({ - ...config, - clientId, - prefix, - responseType: ResponseType.Code, - }); - - /** - * Attempt to call the authorize URL to retrieve authorization code - */ - try { - // Check expected browser support - // To support legacy browsers, iframe works best with short timeout - const parsedUrl = new URL(await OAuth2Client.getAuthCodeByIframe(pkceValues)); - - // Throw if we have an error param or have no authorization code - if (parsedUrl.searchParams.get('error')) { - throw Error(`${parsedUrl.searchParams.get('error_description')}`); - } else if (!parsedUrl.searchParams.get('code')) { - throw Error(allowedErrors.AuthenticationConsentRequired); - } - - const parsedQuery = parseQuery(parsedUrl.toString()); - - if (!options) { - options = {}; - } - options.query = parsedQuery; - } catch (err) { - // If authorize request fails, handle according to `login` type - if (!(err instanceof Error) || options?.login !== 'redirect') { - // Throw for any error if login is NOT of type "redirect" - throw err; - } - - // Check if error is not one of our allowed errors - if ( - allowedErrors.AuthenticationIsRequired !== err.message && - allowedErrors.AuthenticationConsentRequired !== err.message && - allowedErrors.AuthorizationTimeout !== err.message && - allowedErrors.FailedToFetch !== err.message && - allowedErrors.NetworkError !== err.message && - allowedErrors.InteractionNotAllowed !== err.message && - allowedErrors.RequestRequiresConsent !== err.message && - // Check for Ping Identity Login Required error - // Long message, so just check substring - !err.message.includes(allowedErrors.LoginRequired) && - // Safari has a very long error message, so we check for a substring - !err.message.includes(allowedErrors.CORSError) - ) { - // Throw if the error is NOT an explicitly allowed error along with redirect of true - // as that is a normal response and just requires a redirect - throw err; - } - - const authorizeUrl = await OAuth2Client.createAuthorizeUrl(pkceValues); - - // Before redirecting, store PKCE values - storePkceValues(); - - return location.assign(authorizeUrl); - } - /** - * Exchange authorization code for tokens - */ - return await this.tokenExchange(options, { - state: pkceValues.state, - verifier: pkceValues.verifier, - }); - } - - public static async deleteTokens(): Promise { - await TokenStorage.remove(); - } - - private static async tokenExchange( - options: GetTokensOptions, - stored: { state: string; verifier: string }, - ): Promise { - /** - * Ensure incoming state and stored state are equal and authorization code exists - */ - if (options.query?.state !== stored.state) { - throw new Error('State mismatch'); - } - if (!options.query?.code || Array.isArray(options.query?.code)) { - throw new Error('Failed to acquire authorization code'); - } - - /** - * Generate token exchange options - */ - const authorizationCode = options.query?.code; - const verifier = stored.verifier; - const getTokensOptions = { ...options, authorizationCode, verifier }; - const tokens = await OAuth2Client.getOAuth2Tokens(getTokensOptions); - - if (!tokens || !tokens.accessToken) { - throw new Error('Unable to exchange authorization for tokens'); - } - - try { - await TokenStorage.set(tokens); - } catch (error) { - FRLogger.error('Failed to store tokens', error); - } - - return tokens; - } -} - -export default TokenManager; -export type { GetTokensOptions }; diff --git a/packages/javascript-sdk/src/token-manager/token-manager.mock.data.ts b/packages/javascript-sdk/src/token-manager/token-manager.mock.data.ts deleted file mode 100644 index d0814e9f2..000000000 --- a/packages/javascript-sdk/src/token-manager/token-manager.mock.data.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * token-manager.mock.data.ts - * - * Copyright (c) 2022 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -export const oauthThreshold = 120000; -export const tokenExpiryWithinThreshold = 60000; -export const tokenExpiryOutsideThreshold = 180000; -export const tokenExpiryNotSet = undefined; diff --git a/packages/javascript-sdk/src/token-storage/constants.ts b/packages/javascript-sdk/src/token-storage/constants.ts deleted file mode 100644 index 7a8000740..000000000 --- a/packages/javascript-sdk/src/token-storage/constants.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * constants.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * @module - * @ignore - * These are private constants for TokenStorage - */ - -/** @hidden */ -const TOKEN_KEY = 'tokens'; - -export { TOKEN_KEY }; diff --git a/packages/javascript-sdk/src/token-storage/index.ts b/packages/javascript-sdk/src/token-storage/index.ts deleted file mode 100644 index e9f085724..000000000 --- a/packages/javascript-sdk/src/token-storage/index.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020-2021 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import Config from '../config/index'; -import { FRLogger } from '../util/logger'; -import type { TokenStoreObject } from '../config/interfaces'; -import LocalStorageWrapper from './local-storage'; -import SessionStorageWrapper from './session-storage'; -import type { Tokens } from '../shared/interfaces'; - -/** - * Provides access to the token storage API. - * The type of storage (localStorage, sessionStorage, etc) can be configured - * through `tokenStore` object on the SDK configuration. - */ -abstract class TokenStorage { - /** - * Gets stored tokens. - */ - public static async get(): Promise { - const { clientId, tokenStore } = this.getClientConfig(); - - if (tokenStore === 'sessionStorage') { - return await SessionStorageWrapper.get(clientId); - } else if (tokenStore === 'localStorage') { - return await LocalStorageWrapper.get(clientId); - - // Preserving this condition for communicating its removal - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - } else if (tokenStore === 'indexedDB') { - FRLogger.warn('IndexedDB is not supported in this version.'); - } else if (tokenStore && tokenStore.get) { - // User supplied token store - return await tokenStore.get(clientId); - } - return await LocalStorageWrapper.get(clientId); - } - - /** - * Saves tokens. - */ - public static async set(tokens: Tokens): Promise { - const { clientId, tokenStore } = this.getClientConfig(); - - if (tokenStore === 'sessionStorage') { - return await SessionStorageWrapper.set(clientId, tokens); - } else if (tokenStore === 'localStorage') { - return await LocalStorageWrapper.set(clientId, tokens); - - // Preserving this condition for communicating its removal - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - } else if (tokenStore === 'indexedDB') { - FRLogger.warn('IndexedDB is not supported in this version.'); - } else if (tokenStore && tokenStore.set) { - // User supplied token store - return await tokenStore.set(clientId, tokens); - } - return await LocalStorageWrapper.set(clientId, tokens); - } - - /** - * Removes stored tokens. - */ - public static async remove(): Promise { - const { clientId, tokenStore } = this.getClientConfig(); - - if (tokenStore === 'sessionStorage') { - return await SessionStorageWrapper.remove(clientId); - } else if (tokenStore === 'localStorage') { - return await LocalStorageWrapper.remove(clientId); - - // Preserving this condition for communicating its removal - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - } else if (tokenStore === 'indexedDB') { - FRLogger.warn('IndexedDB is not supported in this version.'); - } else if (tokenStore && tokenStore.remove) { - // User supplied token store - return await tokenStore.remove(clientId); - } - return await LocalStorageWrapper.remove(clientId); - } - - private static getClientConfig(): { - clientId: string; - tokenStore: TokenStoreObject | 'sessionStorage' | 'localStorage' | undefined; - } { - const { clientId = 'unconfiguredClient', tokenStore = 'localStorage' } = Config.get(); - - return { clientId, tokenStore }; - } -} - -export default TokenStorage; diff --git a/packages/javascript-sdk/src/token-storage/interfaces.ts b/packages/javascript-sdk/src/token-storage/interfaces.ts deleted file mode 100644 index 0a69cff8d..000000000 --- a/packages/javascript-sdk/src/token-storage/interfaces.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * interfaces.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { Tokens } from '../shared/interfaces'; - -/** @hidden */ -interface TokenDbEventTarget extends EventTarget { - result?: Tokens; -} - -/** @hidden */ -interface TokenDbEvent extends Event { - target: TokenDbEventTarget | null; -} - -export type { TokenDbEvent, TokenDbEventTarget }; diff --git a/packages/javascript-sdk/src/token-storage/local-storage.ts b/packages/javascript-sdk/src/token-storage/local-storage.ts deleted file mode 100644 index 4c8106ace..000000000 --- a/packages/javascript-sdk/src/token-storage/local-storage.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * local-storage.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { Tokens } from '../shared/interfaces'; -import Config from '../config'; - -/** - * Provides wrapper for tokens with localStorage. - */ -abstract class LocalStorageWrapper { - /** - * Retrieve tokens. - */ - public static async get(clientId: string): Promise { - const tokenString = localStorage.getItem(`${Config.get().prefix}-${clientId}`); - - // If there is no stored token, or the token is not an object, return null - if (!tokenString) { - // This is a normal state, so resolve with undefined - return; - } - - try { - return JSON.parse(tokenString || ''); - } catch (err) { - // This is an error state, so reject - throw new Error('Could not parse token object from localStorage'); - } - } - - /** - * Saves tokens. - */ - public static async set(clientId: string, tokens: Tokens): Promise { - const tokenString = JSON.stringify(tokens); - localStorage.setItem(`${Config.get().prefix}-${clientId}`, tokenString); - } - - /** - * Removes stored tokens. - */ - public static async remove(clientId: string): Promise { - localStorage.removeItem(`${Config.get().prefix}-${clientId}`); - } -} - -export default LocalStorageWrapper; diff --git a/packages/javascript-sdk/src/token-storage/session-storage.ts b/packages/javascript-sdk/src/token-storage/session-storage.ts deleted file mode 100644 index f6417d002..000000000 --- a/packages/javascript-sdk/src/token-storage/session-storage.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * session-storage.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { Tokens } from '../shared/interfaces'; -import Config from '../config'; - -/** - * Provides wrapper for tokens with sessionStorage. - */ -abstract class SessionStorageWrapper { - /** - * Retrieve tokens. - */ - public static async get(clientId: string): Promise { - const tokenString = sessionStorage.getItem(`${Config.get().prefix}-${clientId}`); - - // If there is no stored token, or the token is not an object, return null - if (!tokenString) { - // This is a normal state, so resolve with undefined - return; - } - - try { - return JSON.parse(tokenString || ''); - } catch (err) { - // This is an error state, so reject - throw new Error('Could not parse token from sessionStorage'); - } - } - - /** - * Saves tokens. - */ - public static async set(clientId: string, tokens: Tokens): Promise { - const tokenString = JSON.stringify(tokens); - sessionStorage.setItem(`${Config.get().prefix}-${clientId}`, tokenString); - } - - /** - * Removes stored tokens. - */ - public static async remove(clientId: string): Promise { - sessionStorage.removeItem(`${Config.get().prefix}-${clientId}`); - } -} - -export default SessionStorageWrapper; diff --git a/packages/javascript-sdk/src/typings.d.ts b/packages/javascript-sdk/src/typings.d.ts deleted file mode 100644 index b0daa25c8..000000000 --- a/packages/javascript-sdk/src/typings.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * typings.d.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -interface Window { - PublicKeyCredential: unknown; -} diff --git a/packages/javascript-sdk/src/typings.test.d.ts b/packages/javascript-sdk/src/typings.test.d.ts deleted file mode 100644 index bd6f546bc..000000000 --- a/packages/javascript-sdk/src/typings.test.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * typings.test.d.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -declare module 'fake-indexeddb/auto'; diff --git a/packages/javascript-sdk/src/user-manager/index.ts b/packages/javascript-sdk/src/user-manager/index.ts deleted file mode 100644 index 79b8b98fb..000000000 --- a/packages/javascript-sdk/src/user-manager/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { ConfigOptions } from '../config/interfaces'; -import OAuth2Client from '../oauth2-client'; - -/** - * Provides access to the current user's profile. - */ -abstract class UserManager { - /** - * Gets the current user's profile. - */ - public static getCurrentUser(options?: ConfigOptions): Promise { - return OAuth2Client.getUserInfo(options); - } -} - -export default UserManager; diff --git a/packages/javascript-sdk/src/util/deferred.ts b/packages/javascript-sdk/src/util/deferred.ts deleted file mode 100644 index d5f7201fe..000000000 --- a/packages/javascript-sdk/src/util/deferred.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * deferred.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * Implementation of the Deferred API to simplify handling of Promises. - */ -class Deferred { - public promise: Promise; - public resolve!: (value: T) => void; - public reject!: (reason: unknown) => void; - - constructor() { - this.promise = new Promise((resolve, reject) => { - this.reject = reject; - this.resolve = resolve; - }); - } -} - -export default Deferred; diff --git a/packages/javascript-sdk/src/util/http.ts b/packages/javascript-sdk/src/util/http.ts deleted file mode 100644 index 8e437111e..000000000 --- a/packages/javascript-sdk/src/util/http.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * http.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * @module - * @ignore - * These are private utility functions - */ -function isOkOr4xx(response: Response): boolean { - return response.ok || Math.floor(response.status / 100) === 4; -} - -export { isOkOr4xx }; diff --git a/packages/javascript-sdk/src/util/logger.test.ts b/packages/javascript-sdk/src/util/logger.test.ts deleted file mode 100644 index 4844984f3..000000000 --- a/packages/javascript-sdk/src/util/logger.test.ts +++ /dev/null @@ -1,322 +0,0 @@ -import { vi, describe, it, expect } from 'vitest'; -import { FRLogger } from './logger'; -import Config from '../config'; -import { LoggerFunctions } from '../config/interfaces'; - -describe('Logger Class', () => { - it('should instantiate with default log level when one is not passed in', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - }); - expect(FRLogger.enabled()).toEqual(0); - }); - it('should instantiate with the log level that is passed in and verify if it should log', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'info', - }); - expect(FRLogger.enabled()).toEqual(75); - }); - it('should call error method if logLevel allows it', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'info', - }); - const spy = vi.spyOn(FRLogger, 'error').mockImplementation(); - FRLogger.error('test'); - expect(spy).toHaveBeenCalled(); - spy.mockRestore(); - }); - it('should call warn if logLevel allows it', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'info', - }); - const spy = vi.spyOn(FRLogger, 'warn').mockImplementation(); - FRLogger.warn('test'); - expect(spy).toHaveBeenCalled(); - spy.mockRestore(); - }); - it('should call log if logLevel allows it', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'info', - }); - const spy = vi.spyOn(FRLogger, 'log').mockImplementation(); - FRLogger.log('test'); - expect(spy).toHaveBeenCalled(); - spy.mockRestore(); - }); - it('should not call error if logLevel does not allow it', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'none', - }); - const spy = vi.spyOn(console, 'error').mockImplementation(); - FRLogger.error('test'); - expect(spy).not.toHaveBeenCalled(); - spy.mockRestore(); - }); - it('should only call error when set to error', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'error', - }); - const spyError = vi.spyOn(console, 'error').mockImplementation(); - const spyWarn = vi.spyOn(console, 'warn').mockImplementation(); - const spyInfo = vi.spyOn(console, 'info').mockImplementation(); - FRLogger.log('info'); - expect(spyInfo).not.toHaveBeenCalled(); - FRLogger.warn('test'); - FRLogger.error('error'); - expect(spyWarn).not.toHaveBeenCalled(); - expect(spyError).toHaveBeenCalled(); - spyInfo.mockRestore(); - spyError.mockRestore(); - spyWarn.mockRestore(); - }); - it('should not call warn if logLevel does not allow it', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'none', - }); - const spy = vi.spyOn(console, 'warn').mockImplementation(); - FRLogger.warn('test'); - expect(spy).not.toHaveBeenCalled(); - spy.mockRestore(); - }); - it('should not call log if logLevel does not allow it', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'none', - }); - const spy = vi.spyOn(console, 'log').mockImplementation(); - FRLogger.log('test'); - - expect(spy).not.toHaveBeenCalled(); - spy.mockRestore(); - }); - it('should allow a custom logger', () => { - const myloggerFn: LoggerFunctions = { - warn: vi.fn(), - error: vi.fn(), - log: vi.fn(), - }; - - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'debug', - logger: myloggerFn, - }); - - FRLogger.warn('test'); - expect(myloggerFn.warn).toHaveBeenCalled(); - - FRLogger.log('test'); - expect(myloggerFn.log).toHaveBeenCalled(); - - FRLogger.error('test'); - expect(myloggerFn.error).toHaveBeenCalled(); - }); - it('should allow a custom logger but not call methods that arent allowed', () => { - const myloggerFn: LoggerFunctions = { - warn: vi.fn(), - error: vi.fn(), - log: vi.fn(), - }; - - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'error', - logger: myloggerFn, - }); - - FRLogger.warn('test'); - expect(myloggerFn.warn).not.toHaveBeenCalled(); - - FRLogger.log('test'); - expect(myloggerFn.log).not.toHaveBeenCalled(); - - FRLogger.error('test'); - expect(myloggerFn.error).toHaveBeenCalled(); - }); - it('should use the hierarchy of log levels appropriately for warn', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'warn', - }); - const spyWarn = vi.spyOn(console, 'warn').mockImplementation(); - const spyError = vi.spyOn(console, 'error').mockImplementation(); - const spyLog = vi.spyOn(console, 'log').mockImplementation(); - - FRLogger.warn('test'); - expect(console.warn).toHaveBeenCalled(); - - FRLogger.log('test'); - expect(console.log).not.toHaveBeenCalled(); - - FRLogger.error('test'); - expect(console.error).toHaveBeenCalled(); - - spyWarn.mockReset(); - spyError.mockReset(); - spyLog.mockReset(); - }); - it('should use the hierarchy of log levels appropriately for info', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'info', - }); - const spyWarn = vi.spyOn(console, 'warn').mockImplementation(); - const spyError = vi.spyOn(console, 'error').mockImplementation(); - const spyLog = vi.spyOn(console, 'log').mockImplementation(); - - FRLogger.warn('test'); - expect(console.warn).toHaveBeenCalled(); - - FRLogger.log('test'); - expect(console.log).toHaveBeenCalled(); - - FRLogger.error('test'); - expect(console.error).toHaveBeenCalled(); - - spyWarn.mockReset(); - spyError.mockReset(); - spyLog.mockReset(); - }); - it('should use the hierarchy of log levels appropriately for debug', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'debug', - }); - const spyWarn = vi.spyOn(console, 'warn').mockImplementation(); - const spyError = vi.spyOn(console, 'error').mockImplementation(); - const spyLog = vi.spyOn(console, 'log').mockImplementation(); - - FRLogger.warn('test'); - expect(console.warn).toHaveBeenCalled(); - - FRLogger.log('test'); - expect(console.log).toHaveBeenCalled(); - - FRLogger.error('test'); - expect(console.error).toHaveBeenCalled(); - - spyWarn.mockReset(); - spyError.mockReset(); - spyLog.mockReset(); - }); - it('should use the hierarchy of log levels appropriately for error', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'error', - }); - const spyWarn = vi.spyOn(console, 'warn').mockImplementation(); - const spyError = vi.spyOn(console, 'error').mockImplementation(); - const spyLog = vi.spyOn(console, 'log').mockImplementation(); - - FRLogger.warn('test'); - expect(console.warn).not.toHaveBeenCalled(); - - FRLogger.log('test'); - expect(console.log).not.toHaveBeenCalled(); - - FRLogger.error('test'); - expect(console.error).toHaveBeenCalled(); - - spyWarn.mockReset(); - spyError.mockReset(); - spyLog.mockReset(); - }); - it('should use the hierarchy of log levels appropriately for info', () => { - Config.set({ - serverConfig: { - baseUrl: 'http://localhost:8080', - }, - clientId: 'test', - realmPath: 'alpha', - logLevel: 'info', - }); - const spyWarn = vi.spyOn(console, 'warn').mockImplementation(); - const spyError = vi.spyOn(console, 'error').mockImplementation(); - const spyLog = vi.spyOn(console, 'log').mockImplementation(); - const spyInfo = vi.spyOn(console, 'info').mockImplementation(); - - FRLogger.warn('test'); - expect(console.warn).toHaveBeenCalled(); - - FRLogger.log('test'); - expect(console.log).toHaveBeenCalled(); - - FRLogger.info('info'); - expect(console.info).toHaveBeenCalled(); - - FRLogger.error('test'); - expect(console.error).toHaveBeenCalled(); - - spyInfo.mockReset(); - spyWarn.mockReset(); - spyError.mockReset(); - spyLog.mockReset(); - }); -}); diff --git a/packages/javascript-sdk/src/util/logger.ts b/packages/javascript-sdk/src/util/logger.ts deleted file mode 100644 index a837d9402..000000000 --- a/packages/javascript-sdk/src/util/logger.ts +++ /dev/null @@ -1,81 +0,0 @@ -import Config from '../config/index'; -import { LogLevel } from '../config/interfaces'; - -/* - * Log “levels” are inclusive of its level and the level above. - * error will log only error() - * warn will log warn(), plus everything in error level - * info will log info(), plus everything from warn level - * debug will log everything - * none will log nothing - */ -type LogLevelRating = { - ['none']: 0; - ['error']: 25; - ['warn']: 50; - ['info']: 75; - ['debug']: 100; -}; - -abstract class FRLogger { - public static enabled(): LogLevelRating[LogLevel] { - const { logLevel } = Config.get(); - /* - * Return an object - * which satisfies the LogLevelRating type - * and has a key of the current log level - * and a value of the log level rating - */ - const logLevels = { - none: 0, - error: 25, - warn: 50, - info: 75, - debug: 100, - } satisfies LogLevelRating; - - return logLevels[logLevel]; - } - static info(...msgs: unknown[]) { - const { logger } = Config.get(); - if (this.enabled() >= 50) { - if (logger && logger.info) { - logger.info(...msgs); - } else { - console.info(...msgs); - } - } - } - static warn(...msgs: unknown[]) { - const { logger } = Config.get(); - if (this.enabled() >= 50) { - if (logger && logger.warn) { - logger.warn(...msgs); - } else { - console.warn(...msgs); - } - } - } - static error(...msgs: unknown[]) { - const { logger } = Config.get(); - if (this.enabled() >= 25) { - if (logger && logger.error) { - logger.error(...msgs); - } else { - console.error(...msgs); - } - } - } - static log(...msgs: unknown[]) { - const { logger } = Config.get(); - if (this.enabled() >= 75) { - if (logger && logger.log) { - logger.log(...msgs); - } else { - console.log(...msgs); - } - } - } -} - -export { FRLogger }; diff --git a/packages/javascript-sdk/src/util/middleware.mock.data.ts b/packages/javascript-sdk/src/util/middleware.mock.data.ts deleted file mode 100644 index 47aabd816..000000000 --- a/packages/javascript-sdk/src/util/middleware.mock.data.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * middleware.mock.data.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { Action, RequestMiddleware, RequestObj } from '../config/interfaces'; -import type { ActionTypes } from '../config/enums'; - -type NextFn = () => RequestObj; - -const a = 'a' as ActionTypes; -const b = 'b' as ActionTypes; -const one = '1' as ActionTypes; -const two = '2' as ActionTypes; -const add = 'ADD' as ActionTypes; -const reassignment = 'REASSIGNMENT' as ActionTypes; -const mutateAction = 'MUTATE-ACTION' as ActionTypes; - -const middleware: RequestMiddleware[] = [ - (req: RequestObj, action: Action, next: NextFn): void => { - switch (action.type) { - case a: - case b: - req.url.searchParams.set('letter', 'true'); - req.init.headers = { ...{ 'x-letter': 'true' }, ...req.init.headers }; - break; - case one: - case two: - req.url.searchParams.set('letter', 'false'); - req.init.headers = { ...{ 'x-letter': 'false' }, ...req.init.headers }; - break; - } - next(); - }, - (req: RequestObj, action: Action, next: NextFn): void => { - switch (action.type) { - case a: - req.url.searchParams.set('char', 'a'); - req.init.headers = { ...{ 'x-char': 'a' }, ...req.init.headers }; - break; - case b: - req.url.searchParams.set('char', 'b'); - req.init.headers = { ...{ 'x-char': 'b' }, ...req.init.headers }; - break; - } - next(); - }, - (req: RequestObj, action: Action, next: NextFn): void => { - switch (action.type) { - case one: - req.url.searchParams.set('char', '1'); - req.init.headers = { ...{ 'x-char': '1' }, ...req.init.headers }; - break; - case two: - req.url.searchParams.set('char', '2'); - req.init.headers = { ...{ 'x-char': '2' }, ...req.init.headers }; - break; - } - next(); - }, - (req: RequestObj, action: Action, next: NextFn): void => { - switch (action.type) { - case add: - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - req.init.headers = { - ...{ 'x-char': 'a,' + action.payload }, - ...req.init.headers, - }; - break; - } - next(); - }, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - (req: RequestObj, action: Action, next: NextFn): void => { - switch (action.type) { - case reassignment: - req = { - url: new URL('https://bad.com'), - init: { headers: { 'x-bad': 'true' } }, - }; - break; - } - next(); - }, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - (req: RequestObj, action: Action, next: NextFn): void => { - switch (action.type) { - case mutateAction: - action.type = 'hello' as ActionTypes; - break; - } - next(); - }, -]; - -export default middleware; diff --git a/packages/javascript-sdk/src/util/middleware.test.ts b/packages/javascript-sdk/src/util/middleware.test.ts deleted file mode 100644 index 41d6511e3..000000000 --- a/packages/javascript-sdk/src/util/middleware.test.ts +++ /dev/null @@ -1,93 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * middleware.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import middlewareWrapper from './middleware'; -import middleware from './middleware.mock.data'; -import type { ActionTypes } from '../config/enums'; - -describe('Middleware should be called with an action', () => { - it('should run all middleware testing action for letter and "a"', () => { - const runMiddleware = middlewareWrapper( - { url: new URL('https://www.example.com'), init: {} }, - { - type: 'a' as ActionTypes, - }, - ); - const newReq = runMiddleware(middleware); - expect(newReq.init).toStrictEqual({ - headers: { 'x-letter': 'true', 'x-char': 'a' }, - }); - expect(newReq.url.toString()).toBe('https://www.example.com/?letter=true&char=a'); - }); - it('should run all middleware testing action for number and "1"', () => { - const runMiddleware = middlewareWrapper( - { url: new URL('https://www.example.com'), init: {} }, - { - type: '1' as ActionTypes, - }, - ); - const newReq = runMiddleware(middleware); - expect(newReq.init).toStrictEqual({ - headers: { 'x-letter': 'false', 'x-char': '1' }, - }); - expect(newReq.url.toString()).toBe('https://www.example.com/?letter=false&char=1'); - }); - it('should run all middleware testing action for no match', () => { - const runMiddleware = middlewareWrapper( - { url: new URL('https://www.example.com'), init: {} }, - { - type: 'z' as ActionTypes, - }, - ); - const newReq = runMiddleware(middleware); - expect(newReq.init).toStrictEqual({}); - expect(newReq.url.toString()).toBe('https://www.example.com/'); - }); - it('should run all middleware testing add action with payload', () => { - const runMiddleware = middlewareWrapper( - { - url: new URL('https://www.example.com'), - init: { headers: { 'x-number': '3' } }, - }, - { - type: 'ADD' as ActionTypes, - payload: 'b', - }, - ); - const newReq = runMiddleware(middleware); - expect(newReq.init).toStrictEqual({ - headers: { 'x-number': '3', 'x-char': 'a,b' }, - }); - }); - it('should not allow middleware to reassign `req`', () => { - const runMiddleware = middlewareWrapper( - { url: new URL('https://www.example.com'), init: {} }, - { - type: 'REASSIGNMENT' as ActionTypes, - }, - ); - const newReq = runMiddleware(middleware); - expect(newReq.init).toStrictEqual({}); - expect(newReq.url.toString()).toBe('https://www.example.com/'); - }); - it('should not allow middleware to mutate `action`', () => { - try { - const runMiddleware = middlewareWrapper( - { url: new URL('https://www.example.com'), init: {} }, - { - type: 'MUTATE-ACTION' as ActionTypes, - }, - ); - runMiddleware(middleware); - } catch (err) { - expect(err.message).toBe(`Cannot assign to read only property 'type' of object '#'`); - } - }); -}); diff --git a/packages/javascript-sdk/src/util/middleware.ts b/packages/javascript-sdk/src/util/middleware.ts deleted file mode 100644 index 9d5f1686c..000000000 --- a/packages/javascript-sdk/src/util/middleware.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * middleware.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { RequestMiddleware, RequestObj } from '../config/interfaces'; -import type { ActionTypes } from '../config/enums'; - -/** - * @function middlewareWrapper - A "Node" and "Redux" style middleware that is called just before - * the request is made from the SDK. This allows you access to the request for modification. - * @param request - A request object container of the URL and the Request Init object - * @param action - The action object that is passed into the middleware communicating intent - * @param action.type - A "Redux" style type that contains the serialized action - * @param action.payload - The payload of the action that can contain metadata - * @returns {function} - Function that takes middleware parameter & runs middleware against request - */ -function middlewareWrapper( - request: RequestObj, - // eslint-disable-next-line - { type, payload }: { type: ActionTypes; payload?: any }, -): (middleware: RequestMiddleware[] | undefined) => RequestObj { - // no mutation and no reassignment - const actionCopy = Object.freeze({ type, payload }); - - return (middleware: RequestMiddleware[] | undefined) => { - if (!Array.isArray(middleware)) { - return request; - } - - // Copy middleware so the `shift` below doesn't mutate source - const mwareCopy = middleware.map((fn) => fn); - - function iterator(): RequestObj { - const nextMiddlewareToBeCalled = mwareCopy.shift(); - nextMiddlewareToBeCalled && nextMiddlewareToBeCalled(request, actionCopy, iterator); - return request; - } - - return iterator(); - }; -} - -export default middlewareWrapper; diff --git a/packages/javascript-sdk/src/util/pkce.test.ts b/packages/javascript-sdk/src/util/pkce.test.ts deleted file mode 100644 index 4a1ffbc92..000000000 --- a/packages/javascript-sdk/src/util/pkce.test.ts +++ /dev/null @@ -1,51 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * pkce.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * @jest-environment jsdom - */ -import { expect, describe, it } from 'vitest'; -import * as crypto from 'crypto'; -import { TextEncoder } from 'util'; -import PKCE from './pkce'; - -declare let window: unknown; - -Object.defineProperty(window, 'crypto', { - value: { - getRandomValues: (array: Buffer): Buffer => crypto.randomFillSync(array), - subtle: { - digest: (alg: string, array: Uint8Array): Buffer => { - if (alg === 'SHA-256') { - return crypto.createHash('sha256').update(array).digest(); - } - throw new Error(`Unsupported algorithm "${alg}"`); - }, - }, - }, -}); - -Object.defineProperty(global, 'TextEncoder', { - value: TextEncoder, -}); - -describe('The PKCE module', () => { - it('creates verifiers and challenges in the correct format', async () => { - const validChars = /[a-z0-9-_]/i; - for (let i = 0; i < 100; i++) { - const verifier = PKCE.createVerifier(); - expect(verifier).toMatch(validChars); - expect(verifier.length).toBeGreaterThan(89); - - const challenge = await PKCE.createChallenge(verifier); - expect(challenge).toMatch(validChars); - } - }); -}); diff --git a/packages/javascript-sdk/src/util/pkce.ts b/packages/javascript-sdk/src/util/pkce.ts deleted file mode 100644 index c0b6f50de..000000000 --- a/packages/javascript-sdk/src/util/pkce.ts +++ /dev/null @@ -1,76 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * pkce.ts - * - * Copyright (c) 2020-2021 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * Helper class for generating verifier, challenge and state strings used for - * Proof Key for Code Exchange (PKCE). - */ -abstract class PKCE { - /** - * Creates a random state. - */ - public static createState(): string { - return this.createRandomString(16); - } - - /** - * Creates a random verifier. - */ - public static createVerifier(): string { - return this.createRandomString(32); - } - - /** - * Creates a SHA-256 hash of the verifier. - * - * @param verifier The verifier to hash - */ - public static async createChallenge(verifier: string): Promise { - const sha256 = await this.sha256(verifier); - const challenge = this.base64UrlEncode(sha256); - return challenge; - } - - /** - * Creates a base64 encoded, URL-friendly version of the specified array. - * - * @param array The array of numbers to encode - */ - public static base64UrlEncode(array: Uint8Array): string { - const numbers = Array.prototype.slice.call(array); - const ascii = btoa(String.fromCharCode.apply(null, numbers)); - const urlEncoded = ascii.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); - return urlEncoded; - } - - /** - * Creates a SHA-256 hash of the specified string. - * - * @param value The string to hash - */ - public static async sha256(value: string): Promise { - const uint8Array = new TextEncoder().encode(value); - const hashBuffer = await crypto.subtle.digest('SHA-256', uint8Array); - const hashArray = new Uint8Array(hashBuffer); - return hashArray; - } - /** - * Creates a random string. - * - * @param size The number for entropy (default: 32) - */ - private static createRandomString(num = 32): string { - const random = new Uint8Array(num); - crypto.getRandomValues(random); - return btoa(random.join('')).replace(/[^a-zA-Z0-9]+/, ''); - } -} - -export default PKCE; diff --git a/packages/javascript-sdk/src/util/realm.test.ts b/packages/javascript-sdk/src/util/realm.test.ts deleted file mode 100644 index 288925159..000000000 --- a/packages/javascript-sdk/src/util/realm.test.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * realm.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { getRealmUrlPath } from './realm'; -import { describe, it, expect } from 'vitest'; - -describe('The realm utility', () => { - it('creates the correct paths', () => { - const tests = [ - [undefined, 'realms/root'], - ['', 'realms/root'], - ['root', 'realms/root'], - ['foo', 'realms/root/realms/foo'], - ['root/foo', 'realms/root/realms/foo'], - ['foo/bar', 'realms/root/realms/foo/realms/bar'], - ['foo/Bar', 'realms/root/realms/foo/realms/Bar'], - ['/foo/baz/', 'realms/root/realms/foo/realms/baz'], - [' /foo/baz ', 'realms/root/realms/foo/realms/baz'], - [' foo / baz ', 'realms/root/realms/foo/realms/baz'], - [' / foo / baz / ', 'realms/root/realms/foo/realms/baz'], - ]; - - tests.forEach((x) => { - const urlPath = getRealmUrlPath(x[0]); - expect(urlPath).toBe(x[1]); - }); - }); -}); diff --git a/packages/javascript-sdk/src/util/realm.ts b/packages/javascript-sdk/src/util/realm.ts deleted file mode 100644 index fbc128cb2..000000000 --- a/packages/javascript-sdk/src/util/realm.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * realm.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** @hidden */ -function getRealmUrlPath(realmPath?: string): string { - // Split the path and scrub segments - const names = (realmPath || '') - .split('/') - .map((x) => x.trim()) - .filter((x) => x !== ''); - - // Ensure 'root' is the first realm - if (names[0] !== 'root') { - names.unshift('root'); - } - - // Concatenate into a URL path - const urlPath = names.map((x) => `realms/${x}`).join('/'); - return urlPath; -} - -export { getRealmUrlPath }; diff --git a/packages/javascript-sdk/src/util/storage.ts b/packages/javascript-sdk/src/util/storage.ts deleted file mode 100644 index a91f868ff..000000000 --- a/packages/javascript-sdk/src/util/storage.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * storage.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** @hidden */ -class LocalStorage { - private storage: Storage; - constructor(persist = false) { - this.storage = persist ? localStorage : sessionStorage; - } - - public get(key: string): T | undefined { - const value = this.storage.getItem(key); - if (!value) { - return undefined; - } - - return JSON.parse(value); - } - - public set(key: string, value: T): void { - this.storage.setItem(key, JSON.stringify(value)); - } - - public remove(key: string): void { - this.storage.removeItem(key); - } -} - -export default LocalStorage; diff --git a/packages/javascript-sdk/src/util/strings.ts b/packages/javascript-sdk/src/util/strings.ts deleted file mode 100644 index 045f8b0b6..000000000 --- a/packages/javascript-sdk/src/util/strings.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * strings.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -/** - * @module - * @ignore - * These are private utility functions - */ -export function plural(n: number, singularText: string, pluralText?: string): string { - if (n === 1) { - return singularText; - } - return pluralText !== undefined ? pluralText : singularText + 's'; -} diff --git a/packages/javascript-sdk/src/util/timeout.test.ts b/packages/javascript-sdk/src/util/timeout.test.ts deleted file mode 100644 index 4b2b503ea..000000000 --- a/packages/javascript-sdk/src/util/timeout.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * timeout.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { withTimeout } from './timeout'; - -describe('withTimeout function', () => { - it('should return the promise passed', async () => { - const promise = new Promise((res) => res('ok')); - const result = await withTimeout(promise, 500); - expect(result).toBe('ok'); - }); - it('should return the promise passed if it rejects', async () => { - const promise = new Promise((_, rej) => rej('rejected')); - expect(withTimeout(promise, 500)).rejects.toBe('rejected'); - }); - it('should return the window timeout', async () => { - const promise = new Promise(() => 'ok'); - await withTimeout(promise, 1).catch((res) => expect(res).toEqual(new Error('Timeout'))); - }); -}); diff --git a/packages/javascript-sdk/src/util/timeout.ts b/packages/javascript-sdk/src/util/timeout.ts deleted file mode 100644 index 60871cfc8..000000000 --- a/packages/javascript-sdk/src/util/timeout.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * timeout.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { DEFAULT_TIMEOUT } from '../config/constants'; - -/** - * @module - * @ignore - * These are private utility functions - */ -function withTimeout(promise: Promise, timeout: number = DEFAULT_TIMEOUT): Promise { - const effectiveTimeout = timeout || DEFAULT_TIMEOUT; - const timeoutP = new Promise((_, reject) => - setTimeout(() => reject(new Error('Timeout')), effectiveTimeout), - ); - - return Promise.race([promise, timeoutP]); -} - -export { withTimeout }; diff --git a/packages/javascript-sdk/src/util/url.test.ts b/packages/javascript-sdk/src/util/url.test.ts deleted file mode 100644 index 6375a55b8..000000000 --- a/packages/javascript-sdk/src/util/url.test.ts +++ /dev/null @@ -1,86 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * url.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { describe, it, expect } from 'vitest'; -import { getBaseUrl, parseQuery, resolve, stringify } from './url'; - -describe('The URL utility', () => { - const querystrings = { - '': {}, - 'foo=bar': { foo: 'bar' }, - 'foo=bar&goo=baz': { foo: 'bar', goo: 'baz' }, - 'foo=b%20r': { foo: 'b r' }, - }; - - it('correctly determines base URL', () => { - const tests = [ - ['http://domain.com', 'http://domain.com'], - ['http://domain.com/', 'http://domain.com'], - ['http://domain.com:80', 'http://domain.com'], - ['http://domain.com:80/', 'http://domain.com'], - ['http://domain.com:81', 'http://domain.com:81'], - ['http://domain.com:81/', 'http://domain.com:81'], - ['https://domain.com', 'https://domain.com'], - ['https://domain.com/', 'https://domain.com'], - ['https://domain.com:443', 'https://domain.com'], - ['https://domain.com:443/', 'https://domain.com'], - ['https://domain.com:8443', 'https://domain.com:8443'], - ['https://domain.com:8443/', 'https://domain.com:8443'], - ]; - - tests.forEach((x) => { - const url = new URL(x[0]); - const actual = getBaseUrl(url); - expect(actual).toBe(x[1]); - }); - }); - - it('correctly resolves paths', () => { - const baseUrls = [ - 'http://domain.com', - 'http://domain.com/', - 'https://domain.com:8443', - 'https://domain.com:8443/', - ]; - const basePath = '/a/b/c'; - - baseUrls.forEach((baseUrl) => { - const baseUrlWithoutSlash = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl; - - const tests = [ - ['', `${baseUrlWithoutSlash}/a/b`], - ['foo', `${baseUrlWithoutSlash}/a/b/foo`], - ['/foo', `${baseUrlWithoutSlash}/foo`], - ['foo/baz', `${baseUrlWithoutSlash}/a/b/foo/baz`], - ['/foo/baz', `${baseUrlWithoutSlash}/foo/baz`], - ]; - - tests.forEach((x) => { - const actual = resolve(baseUrlWithoutSlash + basePath, x[0]); - expect(actual).toBe(x[1]); - }); - }); - }); - - it('correctly parses a querystring', () => { - const baseUrl = 'http://domain.com?'; - for (const t in querystrings) { - const actual = parseQuery(baseUrl + t); - expect(actual).toStrictEqual(querystrings[t]); - } - }); - - it('correctly serializes a querystring', () => { - for (const t in querystrings) { - const actual = stringify(querystrings[t]); - expect(actual).toStrictEqual(t); - } - }); -}); diff --git a/packages/javascript-sdk/src/util/url.ts b/packages/javascript-sdk/src/util/url.ts deleted file mode 100644 index d70896ffb..000000000 --- a/packages/javascript-sdk/src/util/url.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * url.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { ConfigurablePaths, CustomPathConfig } from '../config/interfaces'; -import type { StringDict } from '../shared/interfaces'; -import { getRealmUrlPath } from '../util/realm'; - -/** - * Returns the base URL including protocol, hostname and any non-standard port. - * The returned URL does not include a trailing slash. - */ -function getBaseUrl(url: URL): string { - const isNonStandardPort = - (url.protocol === 'http:' && ['', '80'].indexOf(url.port) === -1) || - (url.protocol === 'https:' && ['', '443'].indexOf(url.port) === -1); - const port = isNonStandardPort ? `:${url.port}` : ''; - const baseUrl = `${url.protocol}//${url.hostname}${port}`; - return baseUrl; -} - -function getEndpointPath( - endpoint: ConfigurablePaths, - realmPath?: string, - customPaths?: CustomPathConfig, -): string { - const realmUrlPath = getRealmUrlPath(realmPath); - const defaultPaths = { - authenticate: `json/${realmUrlPath}/authenticate`, - authorize: `oauth2/${realmUrlPath}/authorize`, - accessToken: `oauth2/${realmUrlPath}/access_token`, - endSession: `oauth2/${realmUrlPath}/connect/endSession`, - userInfo: `oauth2/${realmUrlPath}/userinfo`, - revoke: `oauth2/${realmUrlPath}/token/revoke`, - sessions: `json/${realmUrlPath}/sessions/`, - }; - if (customPaths && customPaths[endpoint]) { - // TypeScript is not correctly reading the condition above - // It's thinking that customPaths[endpoint] may result in undefined - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - return customPaths[endpoint]; - } else { - return defaultPaths[endpoint]; - } -} - -function resolve(baseUrl: string, path: string): string { - const url = new URL(baseUrl); - - if (path.startsWith('/')) { - return `${getBaseUrl(url)}${path}`; - } - - const basePath = url.pathname.split('/'); - const destPath = path.split('/').filter((x) => !!x); - const newPath = [...basePath.slice(0, -1), ...destPath].join('/'); - - return `${getBaseUrl(url)}${newPath}`; -} - -function parseQuery(fullUrl: string): StringDict { - const url = new URL(fullUrl); - const query: StringDict = {}; - url.searchParams.forEach((v, k) => (query[k] = v)); - return query; -} - -function stringify(data: StringDict): string { - const pairs: string[] = []; - for (const k in data) { - if (data[k]) { - pairs.push(k + '=' + encodeURIComponent(data[k] as string)); - } - } - return pairs.join('&'); -} - -export { getBaseUrl, getEndpointPath, parseQuery, resolve, stringify }; diff --git a/packages/javascript-sdk/tests/integration/fr-auth.mock.data.ts b/packages/javascript-sdk/tests/integration/fr-auth.mock.data.ts deleted file mode 100644 index 8e2065aa3..000000000 --- a/packages/javascript-sdk/tests/integration/fr-auth.mock.data.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * fr-auth.mock.data.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { CallbackType } from '../../src/auth/enums'; -import type { Step } from '../../src/auth/interfaces'; - -export const jsonResponse: Step = { - authId: 'unused', - callbacks: [ - { - type: CallbackType.NameCallback, - output: [{ name: 'prompt', value: 'User Name' }], - input: [{ name: 'IDToken1', value: '' }], - _id: 0, - }, - { - type: CallbackType.PasswordCallback, - output: [{ name: 'prompt', value: 'Password' }], - input: [{ name: 'IDToken2', value: '' }], - _id: 1, - }, - ], - stage: 'UsernamePassword', -}; - -export const rawResponse = { - body: {}, - bodyUsed: true, - headers: { - get(): string { - return 'application/json'; - }, - }, - json(): Step { - return jsonResponse; - }, - ok: true, - redirected: false, - status: 200, - statusText: '', - type: 'cors', - url: - // eslint-disable-next-line max-len - 'https://openam-devjustin2.forgeblocks.com/am/json/realms/root/authenticate?authIndexType=service&authIndexValue=UsernamePassword', -}; - -export const loginSubmission = { - payload: { - authId: 'unused', - callbacks: [ - { - type: 'NameCallback', - output: [{ name: 'prompt', value: 'User Name' }], - input: [{ name: 'IDToken1', value: 'jsmith' }], - _id: 0, - }, - { - type: 'PasswordCallback', - output: [{ name: 'prompt', value: 'Password' }], - input: [{ name: 'IDToken2', value: 'Password1!' }], - _id: 1, - }, - ], - stage: 'UsernamePassword', - }, - callbacks: [ - { - payload: { - type: 'NameCallback', - output: [{ name: 'prompt', value: 'User Name' }], - input: [{ name: 'IDToken1', value: 'jsmith' }], - _id: 0, - }, - }, - { - payload: { - type: 'PasswordCallback', - output: [{ name: 'prompt', value: 'Password' }], - input: [{ name: 'IDToken2', value: 'Password1!' }], - _id: 1, - }, - }, - ], -}; diff --git a/packages/javascript-sdk/tests/integration/fr-auth.test.ts b/packages/javascript-sdk/tests/integration/fr-auth.test.ts deleted file mode 100644 index 5ff76d65d..000000000 --- a/packages/javascript-sdk/tests/integration/fr-auth.test.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * fr-auth.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { vi, expect, describe, it, afterAll } from 'vitest'; -import type PasswordCallback from '../../src/fr-auth/callbacks/password-callback'; -import { CallbackType } from '../../src/auth/enums'; -import Config from '../../src/config/index'; -import FRAuth from '../../src/fr-auth/index'; -import type NameCallback from '../../src/fr-auth/callbacks/name-callback'; -import type FRStep from '../../src/fr-auth/fr-step'; -import { rawResponse } from './fr-auth.mock.data'; - -vi.mock('../../src/config/index', () => { - return { - default: { - set: (conf) => conf, - // eslint-disable-next-line @typescript-eslint/explicit-function-return-type - get() { - return { - serverConfig: { - baseUrl: 'https://openam.example.com/am/', - timeout: 0, - }, - }; - }, - }, - }; -}); - -afterAll(() => { - vi.clearAllMocks(); - vi.resetModules(); -}); -describe('Test FRAuth.next functionality', () => { - it('should be able to make initial next step', async () => { - global.fetch = vi.fn().mockImplementation(() => rawResponse); - console.log(JSON.stringify(Config.set)); - Config.set({ - serverConfig: { - baseUrl: 'http://am.example.com', - timeout: 3000, - }, - }); - - const step = await FRAuth.next(); - const stage = (step as FRStep).getStage(); - ((step as FRStep).getCallbackOfType(CallbackType.NameCallback) as NameCallback).setName( - 'jsmith', - ); - ( - (step as FRStep).getCallbackOfType(CallbackType.PasswordCallback) as PasswordCallback - ).setPassword('Password1!'); - - expect(stage).toBe('UsernamePassword'); - expect(step.payload.callbacks![0].input![0].name).toBe('IDToken1'); - expect(step.payload.callbacks![0].input![0].value).toBe('jsmith'); - expect(step.payload.callbacks![1].input![0].name).toBe('IDToken2'); - expect(step.payload.callbacks![1].input![0].value).toBe('Password1!'); - }); -}); diff --git a/packages/javascript-sdk/tests/integration/http-client.mock.data.ts b/packages/javascript-sdk/tests/integration/http-client.mock.data.ts deleted file mode 100644 index ad41883b7..000000000 --- a/packages/javascript-sdk/tests/integration/http-client.mock.data.ts +++ /dev/null @@ -1,102 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * http-client.mock.data.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { HandleStep } from '../../src/http-client/interfaces'; - -export const authzByTreeReqOptionsForIG = { - init: { - credentials: 'include' as const, - method: 'POST', - }, - authorization: { - handleStep: {} as HandleStep, - config: { - serverConfig: { - baseUrl: 'https://openam.example.com/am/', - timeout: 0, - }, - }, - }, - timeout: 0, - url: 'https://request-auth-by-txn.com/ig', -}; - -export const authzByTreeReqOptionsForREST = { - init: { - credentials: 'include' as const, - method: 'POST', - }, - authorization: { - handleStep: {} as HandleStep, - config: { - serverConfig: { - baseUrl: 'https://openam.example.com/am/', - timeout: 0, - }, - }, - }, - timeout: 0, - url: 'https://request-auth-by-txn.com/rest', -}; - -export const authzByTxnReqOptionsForIG = { - init: { - credentials: 'include' as const, - method: 'POST', - }, - authorization: { - handleStep: {} as HandleStep, - config: { - serverConfig: { - baseUrl: 'https://openam.example.com/am/', - timeout: 0, - }, - }, - }, - timeout: 0, - url: 'https://request-auth-by-txn.com/ig', -}; - -export const authzByTxnReqOptionsForREST = { - init: { - credentials: 'include' as const, - method: 'POST', - }, - authorization: { - handleStep: {} as HandleStep, - config: { - serverConfig: { - baseUrl: 'https://openam.example.com/am/', - timeout: 0, - }, - }, - }, - timeout: 0, - url: 'https://request-auth-by-txn.com/rest', -}; - -export const responseFromAM = { - clone() { - return { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - json(): any { - return Promise.resolve({ - callbacks: {}, - }); - }, - }; - }, - json() { - return Promise.resolve({ - callbacks: {}, - }); - }, - // eslint-disable-next-line @typescript-eslint/no-explicit-any -} as any; diff --git a/packages/javascript-sdk/tests/integration/http-client.test.ts b/packages/javascript-sdk/tests/integration/http-client.test.ts deleted file mode 100644 index f09c5957f..000000000 --- a/packages/javascript-sdk/tests/integration/http-client.test.ts +++ /dev/null @@ -1,139 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * http-client.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import { vi, expect, describe, it, afterAll, beforeEach } from 'vitest'; -import HttpClient from '../../src/http-client/index'; -import TokenStorage from '../../src/token-storage/index'; -import { - authzByTreeReqOptionsForREST, - authzByTreeReqOptionsForIG, - authzByTxnReqOptionsForREST, - authzByTxnReqOptionsForIG, - responseFromAM as mockResponseFromAM, -} from './http-client.mock.data'; -import { - /* jest requires mock variables guaranteed to be initialized out of scope of the mock - * to be prefixed with mock - * see: The module factory of `jest.mock()` is not allowed to reference any out-of-scope variables. - * Note: This is a precaution to guard against uninitialized mock variables. - * If it is ensured that the mock is required lazily, variable names prefixed with `mock`(case insensitive) are permitted. - */ - authzByTreeResFromIG as mockAuthzByTreeResFromIG, - authzByTreeResFromREST as mockAuthzByTreeResFromREST, - authzByTxnResFromIG as mockAuthzByTxnResFromIG, - authzByTxnResFromREST as mockAuthzByTxnResFromREST, -} from '../../src/http-client/http-client.mock.data'; - -// TODO: figure out how to move these mock functions in separate file -// Because Jest hoists mocks above the imports, importing doesn't work :( -vi.mock('../../src/token-storage/index'); -vi.mock('../../src/config/index', () => { - return { - default: { - // eslint-disable-next-line @typescript-eslint/explicit-function-return-type - get() { - return { - serverConfig: { - baseUrl: 'https://openam.example.com/am/', - timeout: 0, - }, - }; - }, - }, - }; -}); - -vi.mock('../../src/http-client/index', async () => { - const originalHttpClient = await vi.importActual('../../src/http-client/index'); - const mockResponse = vi.fn(function (options: any): Promise { - if (options.url === 'https://request-auth-by-tree.com/ig') { - return Promise.resolve(mockAuthzByTreeResFromIG); - } else if (options.url === 'https://request-auth-by-tree.com/rest') { - return Promise.resolve(mockAuthzByTreeResFromREST); - } else if (options.url === 'https://request-auth-by-txn.com/ig') { - return Promise.resolve(mockAuthzByTxnResFromIG); - } else if (options.url === 'https://request-auth-by-txn.com/rest') { - return Promise.resolve(mockAuthzByTxnResFromREST); - } - { - return Promise.resolve(mockResponseFromAM); - } - }); - return { - default: { - request: (originalHttpClient.default as typeof HttpClient).request, - stepIterator: vi.fn().mockResolvedValue({}), - // eslint-disable-next-line @typescript-eslint/no-explicit-any - _request: mockResponse, - }, - }; -}); - -describe('Test HttpClient request for txn auth', () => { - const expectedTxnReq = { - init: { - credentials: 'include' as const, - headers: { - 'Accept-API-Version': 'resource=2.0, protocol=1.0', - }, - method: 'POST', - }, - timeout: 0, - // eslint-disable-next-line max-len, prettier/prettier - url: 'https://openam.example.com/am/json/realms/root/authenticate?authIndexType=composite_advice&authIndexValue=%3CAdvices%3E%3CAttributeValuePair%3E%3CAttribute%20name%3D%22TransactionConditionAdvice%22%2F%3E%3CValue%3Eabc%3C%2FValue%3E%3C%2FAttributeValuePair%3E%3C%2FAdvices%3E', - }; - - afterAll(() => { - vi.clearAllMocks(); - }); - beforeEach(() => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const mockedHttpClientRequest = HttpClient['_request'] as any; - mockedHttpClientRequest.mockClear(); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - TokenStorage.get.mockResolvedValue({ - accessToken: 'abcd', - idToken: '1234', - refreshToken: 'xyz', - }); - }); - - it('should construct proper authz by tree request from IG response', async () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const mockedHttpClientRequest = HttpClient['_request'] as any; - await HttpClient.request(authzByTreeReqOptionsForIG); - expect(mockedHttpClientRequest).toBeCalledTimes(3); - expect(mockedHttpClientRequest.mock.calls[1][0].url).toStrictEqual(expectedTxnReq.url); - }); - - it('should construct proper authz by tree request from REST response', async () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const mockedHttpClientRequest = HttpClient['_request'] as any; - await HttpClient.request(authzByTreeReqOptionsForREST); - expect(mockedHttpClientRequest).toBeCalledTimes(3); - expect(mockedHttpClientRequest.mock.calls[1][0].url).toStrictEqual(expectedTxnReq.url); - }); - - it('should construct proper authz by txn request from IG response', async () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const mockedHttpClientRequest = HttpClient['_request'] as any; - await HttpClient.request(authzByTxnReqOptionsForIG); - expect(mockedHttpClientRequest).toBeCalledTimes(3); - expect(mockedHttpClientRequest.mock.calls[1][0].url).toStrictEqual(expectedTxnReq.url); - }); - - it('should construct proper authz by txn request from REST response', async () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const mockedHttpClientRequest = HttpClient['_request'] as any; - await HttpClient.request(authzByTxnReqOptionsForREST); - expect(mockedHttpClientRequest).toBeCalledTimes(3); - expect(mockedHttpClientRequest.mock.calls[1][0].url).toStrictEqual(expectedTxnReq.url); - }); -}); diff --git a/packages/javascript-sdk/tests/integration/oauth2-client.test.ts b/packages/javascript-sdk/tests/integration/oauth2-client.test.ts deleted file mode 100644 index 18c1c14be..000000000 --- a/packages/javascript-sdk/tests/integration/oauth2-client.test.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { vi, afterAll, describe, it, expect } from 'vitest'; -import OAuth2Client from '../../src/oauth2-client/index'; -import PKCE from '../../src/util/pkce'; -import { ResponseType } from '../../src/oauth2-client/index'; -import { FRLogger } from '../../src/util/logger'; - -vi.mock('../../src/config/index', () => { - return { - default: { - // eslint-disable-next-line @typescript-eslint/explicit-function-return-type - get() { - return { - redirectUrl: 'https://sdkapp.example.com/', - clientId: 'OAuth2ClientID', - scope: 'openid email profile', - serverConfig: { - baseUrl: 'https://openam.example.com/am/', - timeout: '3000', - }, - realmPath: '/alpha', - }; - }, - }, - }; -}); - -vi.mock('../../src/util/pkce', () => { - return { - default: { - createVerifier(): string { - return 'abcd'; - }, - createState(): string { - return '1234'; - }, - createChallenge(): string { - return 'wxyz'; - }, - }, - }; -}); - -afterAll(() => { - vi.clearAllMocks(); -}); - -describe('Test OAuth2Client methods', () => { - it('should construct proper authorization URL', async () => { - const verifier = PKCE.createVerifier(); - const state = PKCE.createState(); - const authorizeUrlOptions = { - responseType: ResponseType.Code, - state, - verifier, - }; - const authorizeUrl = await OAuth2Client.createAuthorizeUrl(authorizeUrlOptions); - FRLogger.log(authorizeUrl); - // eslint-disable-next-line - expect(authorizeUrl).toBe( - 'https://openam.example.com/am/oauth2/realms/root/realms/alpha/authorize?client_id=OAuth2ClientID&response_type=code&scope=openid%20email%20profile&state=1234&code_challenge=wxyz&code_challenge_method=S256', - ); - }); -}); diff --git a/packages/javascript-sdk/tsconfig.json b/packages/javascript-sdk/tsconfig.json deleted file mode 100644 index 51449353a..000000000 --- a/packages/javascript-sdk/tsconfig.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "module": "ES2020", - "forceConsistentCasingInFileNames": true, - "strict": true, - "noImplicitOverride": false, - "noPropertyAccessFromIndexSignature": false, - "skipLibCheck": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true - }, - "references": [ - { - "path": "./tsconfig.spec.json" - }, - { - "path": "./tsconfig.lib.json" - } - ] -} diff --git a/packages/javascript-sdk/tsconfig.lib.json b/packages/javascript-sdk/tsconfig.lib.json deleted file mode 100644 index e4307b479..000000000 --- a/packages/javascript-sdk/tsconfig.lib.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "sourceMap": true, - "noPropertyAccessFromIndexSignature": false, - "lib": ["DOM", "DOM.Iterable", "es2023"], - "module": "ES2020", - "target": "ES2020", - "composite": true, - "declaration": true, - "declarationMap": true, - "strict": true, - "esModuleInterop": true, - "skipLibCheck": true, - "moduleResolution": "Bundler" - }, - "include": ["src/**/*.ts", "typedoc.json"], - "exclude": [ - "**/*.spec.ts", - "**/*.test.ts", - "**/*.mock.ts", - "tests/*", - "**/*.mock.data.ts" - ] -} diff --git a/packages/javascript-sdk/tsconfig.spec.json b/packages/javascript-sdk/tsconfig.spec.json deleted file mode 100644 index eea2762b1..000000000 --- a/packages/javascript-sdk/tsconfig.spec.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "target": "ES2020", - "composite": true, - "esModuleInterop": true, - "moduleResolution": "Bundler", - "lib": ["DOM", "DOM.Iterable", "es2023"] - }, - "include": [ - "vite.config.ts", - "src/**/*.mock*.ts", - "vitest.config.ts", - "src/**/*.test.ts", - "src/**/*.spec.ts", - "src/**/*.test.tsx", - "src/**/*.spec.tsx", - "src/**/*.test.js", - "src/**/*.spec.js", - "src/**/*.test.jsx", - "src/**/*.spec.jsx", - "src/**/*.d.ts", - "src/**/*.mock.*", - "tests/**/*.test.ts", - "tests/**/*.spec.ts", - "tests/**/*.mock*.ts" - ] -} diff --git a/packages/javascript-sdk/typedoc.json b/packages/javascript-sdk/typedoc.json deleted file mode 100644 index 9aaab9e85..000000000 --- a/packages/javascript-sdk/typedoc.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "entryPointStrategy": "expand", - "entryPoints": ["./src/"], - "tsconfig": "tsconfig.lib.json", - "compilerOptions": {}, - "exclude": [ - "**/*.(spec|test|e2e).ts", - "**/*.mock.*", - "**/*.data.*", - "docs/**", - "tests/**", - "specs/**", - "spec/**", - "test/**" - ], - "externalPattern": ["**/node_modules/**"], - "excludeExternals": true, - "excludeInternal": false, - "excludePrivate": false, - "excludeProtected": false, - "excludeNotDocumented": false, - "externalSymbolLinkMappings": {}, - "out": "./docs", - "emit": "docs", - "theme": "typedoc-github-theme", - "name": "javascript-sdk", - "includeVersion": true, - "readme": "./README.md", - "disableSources": false, - "excludeTags": [], - "cname": "", - "sourceLinkTemplate": "", - "gitRevision": "master", - "gitRemote": "origin", - "lang": "en", - "githubPages": true, - "hideGenerator": true, - "searchInComments": false, - "cleanOutputDir": true, - "titleLink": "", - "navigationLinks": {}, - "sidebarLinks": {}, - "commentStyle": "all", - "categorizeByGroup": true, - "defaultCategory": "Other", - "categoryOrder": [], - "sort": ["visibility", "required-first", "source-order"], - "visibilityFilters": { - "protected": true, - "private": true, - "inherited": true, - "external": true - }, - "searchCategoryBoosts": {}, - "searchGroupBoosts": {}, - "preserveWatchOutput": false, - "skipErrorChecking": false, - "validation": { - "notExported": true, - "invalidLink": true, - "notDocumented": true - }, - "requiredToBeDocumented": [], - "treatWarningsAsErrors": false, - "intentionallyNotExported": [], - "logLevel": "Verbose", - "plugin": ["typedoc-plugin-rename-defaults", "typedoc-github-theme"] -} diff --git a/packages/javascript-sdk/vite.config.ts b/packages/javascript-sdk/vite.config.ts deleted file mode 100644 index e0aedebcb..000000000 --- a/packages/javascript-sdk/vite.config.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; -import { copyFileSync } from 'fs'; - -export default defineConfig({ - root: __dirname, - cacheDir: '../../node_modules/.vite/', - build: { - outDir: './dist', - target: ['esnext', 'es2020'], - lib: { - entry: 'src/index.ts', - name: 'javascript-sdk', - formats: ['es', 'cjs'], - fileName: (format, fileName) => { - const extension = format === 'es' ? 'js' : 'cjs'; - return `${fileName}.${extension}`; - }, - }, - rollupOptions: { - output: { - dir: './dist', - preserveModulesRoot: './src', - preserveModules: true, - }, - }, - }, - plugins: [ - dts({ - declarationOnly: false, - entryRoot: 'src', - rollupTypes: false, - insertTypesEntry: true, - tsconfigPath: './tsconfig.lib.json', - afterBuild: (file) => { - file.forEach((v, k) => { - copyFileSync(k, k.replace('.d.ts', '.d.cts')); - }); - }, - }), - ], - test: { - globals: true, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}', 'tests/**/*.test.ts'], - watch: !process.env['CI'], - reporters: ['default'], - setupFiles: ['./vitest.setup.ts'], - coverage: { - enabled: Boolean(process.env['CI']), - reporter: ['text', 'json', 'html'], - reportsDirectory: './coverage', - provider: 'v8', - }, - deps: { - optimizer: { - web: { - include: ['vitest-canvas-mock'], - }, - }, - }, - }, -}); diff --git a/packages/javascript-sdk/vitest.setup.ts b/packages/javascript-sdk/vitest.setup.ts deleted file mode 100644 index 644736e02..000000000 --- a/packages/javascript-sdk/vitest.setup.ts +++ /dev/null @@ -1 +0,0 @@ -import 'vitest-canvas-mock'; diff --git a/packages/ping-protect/package.json b/packages/ping-protect/package.json index 84427fff1..bba813255 100644 --- a/packages/ping-protect/package.json +++ b/packages/ping-protect/package.json @@ -20,7 +20,7 @@ }, "types": "./dist/index.ts.d.ts", "dependencies": { - "@forgerock/javascript-sdk": "workspace:*" + "@forgerock/javascript-sdk": "4.6.0" }, "scripts": { "build": "vite build", diff --git a/packages/token-vault/package.json b/packages/token-vault/package.json index 72d6dc543..59e8079f9 100644 --- a/packages/token-vault/package.json +++ b/packages/token-vault/package.json @@ -21,7 +21,7 @@ } }, "dependencies": { - "@forgerock/javascript-sdk": "workspace:*" + "@forgerock/javascript-sdk": "4.6.0" }, "scripts": { "build": "vite build", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e72d8208..448a3286a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -276,8 +276,8 @@ importers: specifier: workspace:* version: link:../../packages/device-client '@forgerock/javascript-sdk': - specifier: workspace:* - version: link:../../packages/javascript-sdk + specifier: 4.6.0 + version: 4.6.0 '@forgerock/ping-protect': specifier: workspace:* version: link:../../packages/ping-protect @@ -293,8 +293,8 @@ importers: specifier: workspace:* version: link:../../packages/davinci-client '@forgerock/javascript-sdk': - specifier: workspace:* - version: link:../../packages/javascript-sdk + specifier: 4.6.0 + version: 4.6.0 e2e/davinci-suites: {} @@ -321,8 +321,8 @@ importers: e2e/token-vault-app: dependencies: '@forgerock/javascript-sdk': - specifier: workspace:* - version: link:../../packages/javascript-sdk + specifier: 4.6.0 + version: 4.6.0 '@forgerock/token-vault': specifier: workspace:* version: link:../../packages/token-vault @@ -339,8 +339,8 @@ importers: e2e/token-vault-proxy: dependencies: '@forgerock/javascript-sdk': - specifier: workspace:* - version: link:../../packages/javascript-sdk + specifier: 4.6.0 + version: 4.6.0 '@forgerock/token-vault': specifier: workspace:* version: link:../../packages/token-vault @@ -350,8 +350,8 @@ importers: packages/davinci-client: dependencies: '@forgerock/javascript-sdk': - specifier: workspace:* - version: link:../javascript-sdk + specifier: 4.6.0 + version: 4.6.0 '@reduxjs/toolkit': specifier: 2.3.0 version: 2.3.0(react@18.3.1) @@ -367,7 +367,7 @@ importers: dependencies: '@forgerock/javascript-sdk': specifier: 4.6.0 - version: link:../javascript-sdk + version: 4.6.0 '@reduxjs/toolkit': specifier: 2.3.0 version: 2.3.0(react@18.3.1) @@ -382,23 +382,17 @@ importers: specifier: ^1.4.0 version: 1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) - packages/javascript-sdk: - devDependencies: - vitest: - specifier: ^1.4.0 - version: 1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) - packages/ping-protect: dependencies: '@forgerock/javascript-sdk': - specifier: workspace:* - version: link:../javascript-sdk + specifier: 4.6.0 + version: 4.6.0 packages/token-vault: dependencies: '@forgerock/javascript-sdk': - specifier: workspace:* - version: link:../javascript-sdk + specifier: 4.6.0 + version: 4.6.0 packages: '@aashutoshrathi/word-wrap@1.2.6': @@ -2212,6 +2206,12 @@ packages: } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + '@forgerock/javascript-sdk@4.6.0': + resolution: + { + integrity: sha512-4Ss/CIz3pc0LVuAl1iKVwdqX13zznmqw/bRaGH0jafv8WPnP3Mcl4K2lGdp9UoI3cVrCZMqbcjjgv1Ofs1VrQg==, + } + '@gerrit0/mini-shiki@1.24.4': resolution: { @@ -15970,6 +15970,8 @@ snapshots: '@eslint/js@8.57.0': {} + '@forgerock/javascript-sdk@4.6.0': {} + '@gerrit0/mini-shiki@1.24.4': dependencies: '@shikijs/engine-oniguruma': 1.24.2 From d3a1f5454f3419f4da58e137a50bf0afff2ab8ad Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Mon, 16 Dec 2024 15:20:39 -0700 Subject: [PATCH 09/14] chore: remove-token-vault --- .changeset/config.json | 6 +- .eslintrc.json | 14 +- .github/labeler.yml | 3 - .gitignore | 3 - CHANGELOG.md | 4 - e2e/token-vault-app/.babelrc | 3 - e2e/token-vault-app/.env.preview | 2 - e2e/token-vault-app/.eslintignore | 9 - e2e/token-vault-app/.eslintrc.json | 18 - e2e/token-vault-app/index.html | 69 --- e2e/token-vault-app/package.json | 19 - e2e/token-vault-app/public/favicon.ico | Bin 15086 -> 0 bytes e2e/token-vault-app/src/main.ts | 209 -------- e2e/token-vault-app/tsconfig.app.json | 13 - e2e/token-vault-app/tsconfig.json | 22 - e2e/token-vault-app/tsconfig.spec.json | 22 - e2e/token-vault-app/vite.config.ts | 31 -- .../vite.interceptor.config.ts | 19 - e2e/token-vault-interceptor/.eslintignore | 10 - e2e/token-vault-interceptor/.eslintrc.json | 33 -- e2e/token-vault-interceptor/README.md | 11 - e2e/token-vault-interceptor/package.json | 17 - .../src/interceptor.ts | 15 - e2e/token-vault-interceptor/tsconfig.json | 22 - e2e/token-vault-interceptor/tsconfig.lib.json | 16 - .../tsconfig.spec.json | 26 - e2e/token-vault-interceptor/vite.config.ts | 42 -- e2e/token-vault-proxy/.babelrc | 3 - e2e/token-vault-proxy/.env.build-interceptor | 2 - e2e/token-vault-proxy/.env.preview | 2 - e2e/token-vault-proxy/.eslintignore | 10 - e2e/token-vault-proxy/.eslintrc.json | 18 - e2e/token-vault-proxy/favicon.ico | Bin 1372 -> 0 bytes e2e/token-vault-proxy/index.html | 14 - e2e/token-vault-proxy/package.json | 19 - e2e/token-vault-proxy/public/favicon.ico | Bin 15086 -> 0 bytes e2e/token-vault-proxy/src/main.ts | 22 - e2e/token-vault-proxy/tsconfig.app.json | 10 - e2e/token-vault-proxy/tsconfig.json | 28 - e2e/token-vault-proxy/tsconfig.spec.json | 19 - e2e/token-vault-proxy/vite.config.ts | 13 - e2e/token-vault-suites/.env.e2e | 2 - e2e/token-vault-suites/.eslintignore | 9 - e2e/token-vault-suites/.eslintrc.json | 18 - e2e/token-vault-suites/package.json | 30 -- e2e/token-vault-suites/playwright.config.ts | 52 -- e2e/token-vault-suites/src/basic.test.ts | 115 ---- .../src/utils/async-events.ts | 72 --- e2e/token-vault-suites/teardown.ts | 3 - e2e/token-vault-suites/tsconfig.e2e.json | 11 - e2e/token-vault-suites/tsconfig.json | 10 - nx.json | 12 - package.json | 1 - packages/token-vault/.babelrc | 10 - packages/token-vault/.eslintignore | 11 - packages/token-vault/.eslintrc.json | 18 - packages/token-vault/CHANGELOG.md | 12 - packages/token-vault/LICENSE | 21 - packages/token-vault/README.md | 471 ----------------- packages/token-vault/package.json | 32 -- packages/token-vault/src/index.ts | 7 - packages/token-vault/src/lib/client.ts | 201 ------- packages/token-vault/src/lib/network/index.ts | 1 - .../src/lib/network/network.utilities.test.ts | 209 -------- .../src/lib/network/network.utilities.ts | 330 ------------ packages/token-vault/src/lib/proxy.ts | 495 ------------------ .../token-vault/src/lib/token.utils.test.ts | 39 -- packages/token-vault/src/lib/token.utils.ts | 93 ---- .../token-vault/src/lib/types/client.types.ts | 16 - .../token-vault/src/lib/types/config.types.ts | 111 ---- packages/token-vault/src/lib/types/index.ts | 5 - .../src/lib/types/network.types.ts | 14 - .../token-vault/src/lib/types/tokens.types.ts | 25 - .../token-vault/src/lib/types/worker.types.ts | 9 - packages/token-vault/src/lib/worker/index.ts | 2 - .../src/lib/worker/interceptor.test.ts | 7 - .../token-vault/src/lib/worker/interceptor.ts | 97 ---- .../src/lib/worker/worker.utilities.test.ts | 53 -- .../src/lib/worker/worker.utilities.ts | 49 -- packages/token-vault/tsconfig.json | 22 - packages/token-vault/tsconfig.lib.json | 19 - packages/token-vault/tsconfig.spec.json | 22 - packages/token-vault/typedoc.json | 68 --- packages/token-vault/vite.config.ts | 48 -- pnpm-lock.yaml | 35 -- 85 files changed, 2 insertions(+), 3703 deletions(-) delete mode 100644 e2e/token-vault-app/.babelrc delete mode 100644 e2e/token-vault-app/.env.preview delete mode 100644 e2e/token-vault-app/.eslintignore delete mode 100644 e2e/token-vault-app/.eslintrc.json delete mode 100644 e2e/token-vault-app/index.html delete mode 100644 e2e/token-vault-app/package.json delete mode 100644 e2e/token-vault-app/public/favicon.ico delete mode 100644 e2e/token-vault-app/src/main.ts delete mode 100644 e2e/token-vault-app/tsconfig.app.json delete mode 100644 e2e/token-vault-app/tsconfig.json delete mode 100644 e2e/token-vault-app/tsconfig.spec.json delete mode 100644 e2e/token-vault-app/vite.config.ts delete mode 100644 e2e/token-vault-app/vite.interceptor.config.ts delete mode 100644 e2e/token-vault-interceptor/.eslintignore delete mode 100644 e2e/token-vault-interceptor/.eslintrc.json delete mode 100644 e2e/token-vault-interceptor/README.md delete mode 100644 e2e/token-vault-interceptor/package.json delete mode 100644 e2e/token-vault-interceptor/src/interceptor.ts delete mode 100644 e2e/token-vault-interceptor/tsconfig.json delete mode 100644 e2e/token-vault-interceptor/tsconfig.lib.json delete mode 100644 e2e/token-vault-interceptor/tsconfig.spec.json delete mode 100644 e2e/token-vault-interceptor/vite.config.ts delete mode 100644 e2e/token-vault-proxy/.babelrc delete mode 100644 e2e/token-vault-proxy/.env.build-interceptor delete mode 100644 e2e/token-vault-proxy/.env.preview delete mode 100644 e2e/token-vault-proxy/.eslintignore delete mode 100644 e2e/token-vault-proxy/.eslintrc.json delete mode 100644 e2e/token-vault-proxy/favicon.ico delete mode 100644 e2e/token-vault-proxy/index.html delete mode 100644 e2e/token-vault-proxy/package.json delete mode 100644 e2e/token-vault-proxy/public/favicon.ico delete mode 100644 e2e/token-vault-proxy/src/main.ts delete mode 100644 e2e/token-vault-proxy/tsconfig.app.json delete mode 100644 e2e/token-vault-proxy/tsconfig.json delete mode 100644 e2e/token-vault-proxy/tsconfig.spec.json delete mode 100644 e2e/token-vault-proxy/vite.config.ts delete mode 100644 e2e/token-vault-suites/.env.e2e delete mode 100644 e2e/token-vault-suites/.eslintignore delete mode 100644 e2e/token-vault-suites/.eslintrc.json delete mode 100644 e2e/token-vault-suites/package.json delete mode 100644 e2e/token-vault-suites/playwright.config.ts delete mode 100644 e2e/token-vault-suites/src/basic.test.ts delete mode 100644 e2e/token-vault-suites/src/utils/async-events.ts delete mode 100644 e2e/token-vault-suites/teardown.ts delete mode 100644 e2e/token-vault-suites/tsconfig.e2e.json delete mode 100644 e2e/token-vault-suites/tsconfig.json delete mode 100644 packages/token-vault/.babelrc delete mode 100644 packages/token-vault/.eslintignore delete mode 100644 packages/token-vault/.eslintrc.json delete mode 100644 packages/token-vault/CHANGELOG.md delete mode 100644 packages/token-vault/LICENSE delete mode 100644 packages/token-vault/README.md delete mode 100644 packages/token-vault/package.json delete mode 100644 packages/token-vault/src/index.ts delete mode 100644 packages/token-vault/src/lib/client.ts delete mode 100644 packages/token-vault/src/lib/network/index.ts delete mode 100644 packages/token-vault/src/lib/network/network.utilities.test.ts delete mode 100644 packages/token-vault/src/lib/network/network.utilities.ts delete mode 100644 packages/token-vault/src/lib/proxy.ts delete mode 100644 packages/token-vault/src/lib/token.utils.test.ts delete mode 100644 packages/token-vault/src/lib/token.utils.ts delete mode 100644 packages/token-vault/src/lib/types/client.types.ts delete mode 100644 packages/token-vault/src/lib/types/config.types.ts delete mode 100644 packages/token-vault/src/lib/types/index.ts delete mode 100644 packages/token-vault/src/lib/types/network.types.ts delete mode 100644 packages/token-vault/src/lib/types/tokens.types.ts delete mode 100644 packages/token-vault/src/lib/types/worker.types.ts delete mode 100644 packages/token-vault/src/lib/worker/index.ts delete mode 100644 packages/token-vault/src/lib/worker/interceptor.test.ts delete mode 100644 packages/token-vault/src/lib/worker/interceptor.ts delete mode 100644 packages/token-vault/src/lib/worker/worker.utilities.test.ts delete mode 100644 packages/token-vault/src/lib/worker/worker.utilities.ts delete mode 100644 packages/token-vault/tsconfig.json delete mode 100644 packages/token-vault/tsconfig.lib.json delete mode 100644 packages/token-vault/tsconfig.spec.json delete mode 100644 packages/token-vault/typedoc.json delete mode 100644 packages/token-vault/vite.config.ts diff --git a/.changeset/config.json b/.changeset/config.json index fcc6d5afb..7a1ecdd3d 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -17,10 +17,6 @@ "@forgerock/autoscript-apps", "@forgerock/autoscript-suites", "@forgerock/davinci-app", - "@forgerock/mock-api", - "@forgerock/token-vault-app", - "@forgerock/token-vault-interceptor", - "@forgerock/token-vault-proxy", - "@forgerock/token-vault-suites" + "@forgerock/mock-api" ] } diff --git a/.eslintrc.json b/.eslintrc.json index d56654ad3..e85d9a830 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -17,11 +17,7 @@ "depConstraints": [ { "sourceTag": "scope:app", - "onlyDependOnLibsWithTags": [ - "scope:sdk", - "scope:package", - "scope:token-vault" - ] + "onlyDependOnLibsWithTags": ["scope:sdk", "scope:package"] }, { "sourceTag": "scope:e2e", @@ -35,14 +31,6 @@ "sourceTag": "scope:package", "onlyDependOnLibsWithTags": ["scope:sdk"] }, - { - "sourceTag": "scope:token-vault", - "onlyDependOnLibsWithTags": [ - "scope:sdk", - "scope:lib", - "scope:types" - ] - }, { "sourceTag": "scope:types", "onlyDependOnLibsWithTags": ["scope:sdk"] diff --git a/.github/labeler.yml b/.github/labeler.yml index 826b81b5f..da8a2a899 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -19,9 +19,6 @@ davinci-client: device-client: - packages/device-client/* -token-vault: - - packages/token-vault/* - javascript-sdk: - packages/javascript-sdk/* - packages/javascript-sdk/**/* diff --git a/.gitignore b/.gitignore index ada70396e..b765258c1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,9 +12,6 @@ packages/*/dist/ packages/javascript-sdk/lib-esm packages/javascript-sdk/lib packages/javascript-sdk/bundle/ -e2e/token-vault-app/public/*.js -e2e/token-vault-app/public/*.json -e2e/token-vault-app/public/assets/ bundles/ docs/ coverage/ diff --git a/CHANGELOG.md b/CHANGELOG.md index bf1f4aca5..a74820bca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,5 @@ # ForgeRock Javascript SDK Changelogs -[ForgeRock Javascript SDK package](./packages/javascript-sdk/CHANGELOG.md) - -[ForgeRock Token Vault package](./packages/token-vault/CHANGELOG.md) - [ForgeRock Ping Protect package](./packages/ping-protect/CHANGELOG.md) [ForgeRock DaVinci Client package](./packages/davinci-client/CHANGELOG.md) diff --git a/e2e/token-vault-app/.babelrc b/e2e/token-vault-app/.babelrc deleted file mode 100644 index f2f380674..000000000 --- a/e2e/token-vault-app/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["@nx/js/babel"] -} diff --git a/e2e/token-vault-app/.env.preview b/e2e/token-vault-app/.env.preview deleted file mode 100644 index 9189bc43c..000000000 --- a/e2e/token-vault-app/.env.preview +++ /dev/null @@ -1,2 +0,0 @@ -VITE_AM_URL=http://localhost:9443/am -VITE_AM_REALM=root \ No newline at end of file diff --git a/e2e/token-vault-app/.eslintignore b/e2e/token-vault-app/.eslintignore deleted file mode 100644 index 7eb3b6427..000000000 --- a/e2e/token-vault-app/.eslintignore +++ /dev/null @@ -1,9 +0,0 @@ -node_modules -*.md -LICENSE -.babelrc -.env* -.bin -dist -.eslintignore -*.html \ No newline at end of file diff --git a/e2e/token-vault-app/.eslintrc.json b/e2e/token-vault-app/.eslintrc.json deleted file mode 100644 index ba8f68df1..000000000 --- a/e2e/token-vault-app/.eslintrc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*", "public"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": {} - }, - { - "files": ["*.ts", "*.tsx"], - "rules": {} - }, - { - "files": ["*.js", "*.jsx"], - "rules": {} - } - ] -} diff --git a/e2e/token-vault-app/index.html b/e2e/token-vault-app/index.html deleted file mode 100644 index 322bbfb61..000000000 --- a/e2e/token-vault-app/index.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - Token Vault App - - - - - - - - - - - - - - - - - - - -
-
User Logged In:
-
false
-
User info:
-
n/a
-
User has tokens:
-
false
-
Tokens refreshed:
-
false
-
- -
- - - diff --git a/e2e/token-vault-app/package.json b/e2e/token-vault-app/package.json deleted file mode 100644 index 6fb33e351..000000000 --- a/e2e/token-vault-app/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@forgerock/token-vault-app", - "description": "ForgeRock Token Vault Test App", - "private": true, - "type": "module", - "dependencies": { - "@forgerock/javascript-sdk": "4.6.0", - "@forgerock/token-vault": "workspace:*", - "@forgerock/token-vault-interceptor": "workspace:*" - }, - "version": "0.0.0", - "scripts": { - "build": "vite build --emptyOutDir false --watch false", - "build:dev": "vite build --mode development --emptyOutDir false", - "dev": "vite --host localhost --port 5823", - "preview": "vite preview --host localhost --port 5823", - "lint": "eslint --fix --ignore-path .eslintignore \"**/*.ts\"" - } -} diff --git a/e2e/token-vault-app/public/favicon.ico b/e2e/token-vault-app/public/favicon.ico deleted file mode 100644 index 317ebcb2336e0833a22dddf0ab287849f26fda57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 { - return await tokenStore.has(); -})(); -if (res.hasTokens) { - loggedInEl.innerText = 'true'; -} - -/** **************************************************** - * ATTACH USER EVENT LISTENERS - */ -fetchProtectedMockBtn.addEventListener('click', async (event) => { - await fetch('https://jsonplaceholder.typicode.com/todos'); -}); - -fetchUnprotectedMockBtn.addEventListener('click', async (event) => { - await fetch('https://thecocktaildb.com/api/json/v1/1/search.php?s=margarita'); -}); - -fetchUserBtn.addEventListener('click', async (event) => { - const user = (await UserManager.getCurrentUser()) as any; - - userInfoEl.innerText = user?.name; - console.log(user); -}); - -hasTokensBtn.addEventListener('click', async (event) => { - const res = await tokenStore.has(); - - hasTokensEl.innerText = String(res.hasTokens); - console.log(res); -}); - -refreshTokensBtn.addEventListener('click', async (event) => { - const res = await tokenStore.refresh(); - - refreshTokensEl.innerText = String(res.refreshTokens); - console.log(res); -}); - -hackerEl.addEventListener('click', async () => { - console.log('in hacker function!'); - const proxyChannel = new MessageChannel(); - const proxyOrigin = 'http://localhost:5833'; - - // Create a request to a URL that is not allow-listed - const request = { url: 'https://reqres.in/api/users/2' }; - - const type = 'TVP_FETCH_RESOURCE'; - - // Grab the Proxy's iframe and post message to it - (document?.getElementById('token-vault-iframe') as HTMLIFrameElement)?.contentWindow?.postMessage( - { type, request }, - proxyOrigin, - [proxyChannel.port2], - ); - - // This is how you listen for the response from the Proxy - proxyChannel.port1.onmessage = (event) => { - console.log(event.data); // This should return error - }; -}); - -loginBtn.addEventListener('click', async (event) => { - console.log('Logging in...'); - await TokenManager.getTokens({ - login: 'redirect', - forceRenew: true, - query: { acr_values: 'SpecificTree' }, - }); -}); - -logoutBtn.addEventListener('click', async (event) => { - // Not all endpoints are supported and will fail - await FRUser.logout(); - - loggedInEl.innerText = 'false'; - hasTokensEl.innerText = 'false'; - refreshTokensEl.innerText = 'false'; - userInfoEl.innerText = 'n/a'; - console.log('Logged out'); -}); - -unregisterInterceptorBtn.addEventListener('click', async (event) => { - await interceptor?.unregister(); - console.log('Interceptor unregistered'); -}); - -destroyProxyBtn.addEventListener('click', async (event) => { - (document.getElementById('token-vault') as HTMLDivElement).removeChild(proxy as Node); - console.log('Proxy destroyed'); -}); diff --git a/e2e/token-vault-app/tsconfig.app.json b/e2e/token-vault-app/tsconfig.app.json deleted file mode 100644 index b52b97526..000000000 --- a/e2e/token-vault-app/tsconfig.app.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "dist", - "composite": true, - "moduleResolution": "Bundler", - "target": "ESNext", - "module": "ESNext", - "moduleDetection": "force" - }, - "exclude": ["src/**/*.spec.ts", "src/**/*.test.ts"], - "include": ["src/**/*.ts"] -} diff --git a/e2e/token-vault-app/tsconfig.json b/e2e/token-vault-app/tsconfig.json deleted file mode 100644 index 856153538..000000000 --- a/e2e/token-vault-app/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "files": [], - "compilerOptions": { - "useDefineForClassFields": true, - "lib": ["ESNext", "DOM", "WebWorker", "Webworker.Iterable"], - "resolveJsonModule": true, - "isolatedModules": true, - "noUnusedLocals": true, - "noUnusedParameters": false, - "noImplicitReturns": true, - "skipLibCheck": true - }, - "references": [ - { - "path": "./tsconfig.spec.json" - }, - { - "path": "./tsconfig.app.json" - } - ] -} diff --git a/e2e/token-vault-app/tsconfig.spec.json b/e2e/token-vault-app/tsconfig.spec.json deleted file mode 100644 index 19f4eefeb..000000000 --- a/e2e/token-vault-app/tsconfig.spec.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "composite": true, - "outDir": "../../dist/out-tsc", - "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node"], - "moduleResolution": "Node16", - "module": "Node16" - }, - "include": [ - "vite.config.ts", - "src/**/*.test.ts", - "src/**/*.spec.ts", - "src/**/*.test.tsx", - "src/**/*.spec.tsx", - "src/**/*.test.js", - "src/**/*.spec.js", - "src/**/*.test.jsx", - "src/**/*.spec.jsx", - "src/**/*.d.ts" - ] -} diff --git a/e2e/token-vault-app/vite.config.ts b/e2e/token-vault-app/vite.config.ts deleted file mode 100644 index d0da4a164..000000000 --- a/e2e/token-vault-app/vite.config.ts +++ /dev/null @@ -1,31 +0,0 @@ -import * as path from 'path'; -import { defineConfig } from 'vite'; - -export default defineConfig({ - root: __dirname, - cacheDir: '../../node_modules/.vite/e2e/token-vault-app', - build: { - outDir: './dist', - reportCompressedSize: true, - target: 'esnext', - rollupOptions: { - input: { - main: path.resolve(__dirname, 'index.html'), - }, - output: { - entryFileNames: 'main.js', - }, - }, - }, - preview: { - port: 5823, - }, - server: { - port: 5823, - headers: { - 'Service-Worker-Allowed': '/', - 'Service-Worker': 'script', - }, - strictPort: true, - }, -}); diff --git a/e2e/token-vault-app/vite.interceptor.config.ts b/e2e/token-vault-app/vite.interceptor.config.ts deleted file mode 100644 index 52c6638e4..000000000 --- a/e2e/token-vault-app/vite.interceptor.config.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { defineConfig } from 'vite'; - -export default defineConfig({ - root: __dirname, - build: { - outDir: './public', - reportCompressedSize: true, - minify: false, - emptyOutDir: false, - rollupOptions: { - input: './src/interceptor.ts', - output: { - entryFileNames: 'interceptor.js', - format: 'iife', - esModule: false, - }, - }, - }, -}); diff --git a/e2e/token-vault-interceptor/.eslintignore b/e2e/token-vault-interceptor/.eslintignore deleted file mode 100644 index 678435cc7..000000000 --- a/e2e/token-vault-interceptor/.eslintignore +++ /dev/null @@ -1,10 +0,0 @@ -node_modules -*.md -LICENSE -.babelrc -.env* -.bin -dist -favicon.ico -*.html -.eslintignore diff --git a/e2e/token-vault-interceptor/.eslintrc.json b/e2e/token-vault-interceptor/.eslintrc.json deleted file mode 100644 index 3fc5707da..000000000 --- a/e2e/token-vault-interceptor/.eslintrc.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": {} - }, - { - "files": ["*.ts", "*.tsx"], - "rules": {} - }, - { - "files": ["*.js", "*.jsx"], - "rules": {} - }, - { - "files": ["*.json"], - "parser": "jsonc-eslint-parser", - "rules": { - "@nx/dependency-checks": [ - "error", - { - "ignoredFiles": [ - "{projectRoot}/eslint.config.{js,cjs,mjs}", - "{projectRoot}/vite.config.{js,ts,mjs,mts}" - ] - } - ] - } - } - ] -} diff --git a/e2e/token-vault-interceptor/README.md b/e2e/token-vault-interceptor/README.md deleted file mode 100644 index 61c5d239f..000000000 --- a/e2e/token-vault-interceptor/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# token-vault-interceptor - -This library was generated with [Nx](https://nx.dev). - -## Building - -Run `nx build token-vault-interceptor` to build the library. - -## Running unit tests - -Run `nx test token-vault-interceptor` to execute the unit tests via [Vitest](https://vitest.dev/). diff --git a/e2e/token-vault-interceptor/package.json b/e2e/token-vault-interceptor/package.json deleted file mode 100644 index 3fe66dec3..000000000 --- a/e2e/token-vault-interceptor/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@forgerock/token-vault-interceptor", - "version": "0.0.1", - "dependencies": { - "@forgerock/token-vault": "workspace:*" - }, - "main": "./dist/index.iife.js", - "module": "./dist/index.iife.js", - "exports": "./dist/index.iife.js", - "typings": "./dist/index.d.ts", - "private": true, - "scripts": { - "build": "vite build --mode production --emptyOutDir false", - "build:dev": "vite build --mode development --emptyOutDir false", - "lint": "eslint --fix --ignore-path .eslintignore \"**/*.ts\"" - } -} diff --git a/e2e/token-vault-interceptor/src/interceptor.ts b/e2e/token-vault-interceptor/src/interceptor.ts deleted file mode 100644 index 4f18458b1..000000000 --- a/e2e/token-vault-interceptor/src/interceptor.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { interceptor } from '@forgerock/token-vault'; - -// Initialize the token vault interceptor -interceptor({ - interceptor: { - urls: ['https://jsonplaceholder.typicode.com/*'], - }, - forgerock: { - serverConfig: { - baseUrl: import.meta.env.VITE_AM_URL || 'http://localhost:9443/am', - timeout: 5000, - }, - realmPath: import.meta.env.VITE_AM_REALM || 'root', - }, -}); diff --git a/e2e/token-vault-interceptor/tsconfig.json b/e2e/token-vault-interceptor/tsconfig.json deleted file mode 100644 index 3ea81ac38..000000000 --- a/e2e/token-vault-interceptor/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "module": "commonjs", - "forceConsistentCasingInFileNames": true, - "strict": true, - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": false, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true - }, - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.lib.json" - }, - { - "path": "./tsconfig.spec.json" - } - ] -} diff --git a/e2e/token-vault-interceptor/tsconfig.lib.json b/e2e/token-vault-interceptor/tsconfig.lib.json deleted file mode 100644 index 7e2b97c21..000000000 --- a/e2e/token-vault-interceptor/tsconfig.lib.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "declaration": true, - "composite": true, - "target": "ESNext", - "module": "ESNext", - "moduleResolution": "Bundler", - "moduleDetection": "force", - "lib": ["ESNext", "DOM", "WebWorker", "Webworker.Iterable"], - "types": ["vite/client"] - }, - "include": ["src/**/*.ts"], - "exclude": ["vite.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"] -} diff --git a/e2e/token-vault-interceptor/tsconfig.spec.json b/e2e/token-vault-interceptor/tsconfig.spec.json deleted file mode 100644 index 3c002c215..000000000 --- a/e2e/token-vault-interceptor/tsconfig.spec.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "types": [ - "vitest/globals", - "vitest/importMeta", - "vite/client", - "node", - "vitest" - ] - }, - "include": [ - "vite.config.ts", - "vitest.config.ts", - "src/**/*.test.ts", - "src/**/*.spec.ts", - "src/**/*.test.tsx", - "src/**/*.spec.tsx", - "src/**/*.test.js", - "src/**/*.spec.js", - "src/**/*.test.jsx", - "src/**/*.spec.jsx", - "src/**/*.d.ts" - ] -} diff --git a/e2e/token-vault-interceptor/vite.config.ts b/e2e/token-vault-interceptor/vite.config.ts deleted file mode 100644 index 1bdee6d2a..000000000 --- a/e2e/token-vault-interceptor/vite.config.ts +++ /dev/null @@ -1,42 +0,0 @@ -/// -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; - -export default defineConfig({ - root: __dirname, - cacheDir: '../../node_modules/.vite/e2e/token-vault-interceptor', - - build: { - outDir: './dist', - emptyOutDir: true, - reportCompressedSize: true, - lib: { - entry: 'src/interceptor.ts', - name: 'tokenvaultinterceptor', - fileName: 'index', - formats: ['iife'], - }, - }, - plugins: [ - dts({ - declarationOnly: false, - rollupTypes: true, - entryRoot: 'src', - tsconfigPath: './tsconfig.lib.json', - }), - ], - - test: { - watch: false, - globals: true, - environment: 'node', - passWithNoTests: true, - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - - reporters: ['default', 'json', 'html'], - coverage: { - reportsDirectory: './coverage', - provider: 'v8', - }, - }, -}); diff --git a/e2e/token-vault-proxy/.babelrc b/e2e/token-vault-proxy/.babelrc deleted file mode 100644 index f2f380674..000000000 --- a/e2e/token-vault-proxy/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["@nx/js/babel"] -} diff --git a/e2e/token-vault-proxy/.env.build-interceptor b/e2e/token-vault-proxy/.env.build-interceptor deleted file mode 100644 index 9189bc43c..000000000 --- a/e2e/token-vault-proxy/.env.build-interceptor +++ /dev/null @@ -1,2 +0,0 @@ -VITE_AM_URL=http://localhost:9443/am -VITE_AM_REALM=root \ No newline at end of file diff --git a/e2e/token-vault-proxy/.env.preview b/e2e/token-vault-proxy/.env.preview deleted file mode 100644 index 9189bc43c..000000000 --- a/e2e/token-vault-proxy/.env.preview +++ /dev/null @@ -1,2 +0,0 @@ -VITE_AM_URL=http://localhost:9443/am -VITE_AM_REALM=root \ No newline at end of file diff --git a/e2e/token-vault-proxy/.eslintignore b/e2e/token-vault-proxy/.eslintignore deleted file mode 100644 index 25b05a282..000000000 --- a/e2e/token-vault-proxy/.eslintignore +++ /dev/null @@ -1,10 +0,0 @@ -node_modules -*.md -LICENSE -.babelrc -.env* -.bin -dist -favicon.ico -*.html -.eslintignore \ No newline at end of file diff --git a/e2e/token-vault-proxy/.eslintrc.json b/e2e/token-vault-proxy/.eslintrc.json deleted file mode 100644 index 9d9c0db55..000000000 --- a/e2e/token-vault-proxy/.eslintrc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": {} - }, - { - "files": ["*.ts", "*.tsx"], - "rules": {} - }, - { - "files": ["*.js", "*.jsx"], - "rules": {} - } - ] -} diff --git a/e2e/token-vault-proxy/favicon.ico b/e2e/token-vault-proxy/favicon.ico deleted file mode 100644 index 305b5bd2b1b444e5ed261fccd2e08d7d295bd8a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1372 zcmV-i1*7_jP)Y%REfvB}&*0s{ju_Cq~M(JR5 zbgbIZ)!5Fiu9nWxV(sdfbqcQ9;icYU6{(501Qd<8WFKU%(U`oMIi7*<@8fx%=j8wX zlXKp49>REdNKDwlIMEhB8_odQ0%*e-KwAK9I0I-4pbcjLZ2`3544^H5Hk<*p1<=NM zyFXAM5FjWh5E6+eB$C&#xVVIwnHi|nYD`Q_Y`2{4F~H5u4Ov-PNJ&XXT-+WAg~GL% zUayBWpfo@V29 zb#*8$EyLj8AOJup6e20<9h^UZ4#mZ%ar<@+E?@oz3WWj!0iT#YhEzj@VHjMv@C9;m zayG;sK5Rfn#(Ng)1Ofq6s!F7!B(II#yZ1A)va(6YB)18kJgKz!@Bnb};+LD&Ei5b` zJNrXCecEm|MhYSZNF)*{mC8-y&!6{Lt)H8lgHrhsj7B2>U}U1riW3K(E(ZjfaJWp`xN3e7^P9o5^HCOG^t(CUTv7 zA_fc%4cW{|P2G<>cWU76?QJ!0U|@i#0YuILp`oE@ZT$lb!`RFnA0J0S!3jKi^sB|V zOeTX^EJjC1hofZz0C+;7sMOJuPESumE|()DB-m!ItE(&0)6?PM;en>6CakQOZ+JSL z4jPTd(Gu4nb`tdU^~IAXze6ICu&(Lp=|OI8J~}%)Nl3B?v6G-iqruUmnV6lOWnB{< z9*%~FdgSHhl9IInV!wcYh>eX!RaGT?e0=PxtE>A3$B!4-W#E5-ctfPEtqlnYiD+(a zwyW;IfmGDjKY&#FIw57NY)eN-tJUJ*!9yr3JBP)^Mb>rU;o-P@w-&p1dlAz{d4 zIywqhu6&EIurSs&)~?T6g~)5Ly80&i`}?8QYB$8R+Hu^taT8*(7%?$1tj-F-!7_Ar zccZVb&(TuJECDYsFG!{So5l?W1J0cJ1i88Sn4h0#HD`8qwu97}L&N}vVOVWmH8nNJ z%zPgPgTZEQLc-e+2n3FhX9l57kU?bRo2)V)KW;=x$!9k6csw5b{QR~mYy(6LaB^ZG zm&;k_U%U1_+S_fP_1RpZ?S+s5PKb<*gj6bJU87Q|tj3K-Bdc4cy$~{h2ZmvA`0ydt zHQn9T`-CGSBdqocdm&-~kGDE)ette&TwGYy*g7DUmsf0AmnDc8;OxBm(Ek2X6c(Of zRTCW@wP{SPR^#f`?;N6SJwy!P^Z)(UOG-XPa&nT@e0O(u6crU&jH%UX966FktTj%^ z06rQT8cgpeG_Uz{tZ-nvj@u;o+2{PFmX5%K43HR?mz`lL^F+4m>LM8x0 zcYzl#)JREr7ybPM@bU3MTABhG8R>|Kh(K>|FJ8VJ!>(O!2nq_?@NU=XbZBh+4VNx` zO{@*}DntxOOiV;$W8;Qqrc5S7R8$m#gID`}B9RCN!#t*^b(or(!n0?8p{uKlXd8Sz z+kPATzp>;0A;K9zTL5i11857N4QBvt0kq)^pe=wloB^~2&}PRQ!2J1DFn1Z+$#4eH e7C@UFZ@}NNhlqnP^3BWu0000 - - - - Token Vault Proxy - - - - - - - - - diff --git a/e2e/token-vault-proxy/package.json b/e2e/token-vault-proxy/package.json deleted file mode 100644 index 7eaed8d45..000000000 --- a/e2e/token-vault-proxy/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@forgerock/token-vault-proxy", - "version": "0.0.0", - "description": "ForgeRock Token Vault Test Proxy", - "private": true, - "type": "module", - "dependencies": { - "@forgerock/javascript-sdk": "4.6.0", - "@forgerock/token-vault": "workspace:*" - }, - "devDependencies": {}, - "scripts": { - "build": "vite build --mode production", - "build:dev": "vite build --mode development", - "start": "vite --host localhost --port 5833", - "preview": "vite preview --host localhost --port 5833", - "lint": "eslint --fix --ignore-path .eslintignore \"src/**/*.ts\"" - } -} diff --git a/e2e/token-vault-proxy/public/favicon.ico b/e2e/token-vault-proxy/public/favicon.ico deleted file mode 100644 index 317ebcb2336e0833a22dddf0ab287849f26fda57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 { - const { clickButton, getTokens, navigate } = asyncEvents(page); - await navigate('/'); - - expect(page.url()).toBe('http://localhost:5823/'); - - const userLoggedIn = await page.$('#loggedInDef'); - expect(await userLoggedIn.innerText()).toBe('false'); - - // Click the login button, but wait for a FULL page load of the app - // That's why we aren't using the `navigate` function from 'async-events.ts' - await Promise.all([ - page.waitForURL('http://localhost:5823'), - page.getByRole('button', { name: 'Login' }).click(), - ]); - - // The app should have reloaded and tokens should be present - // But, it takes a bit for the app to make the call to the iframe to check - await page.waitForSelector('#loggedInDef:has-text("true")'); - const loggedInDef = await page.$('#loggedInDef'); - expect(await loggedInDef.innerText()).toBe('true'); - - // Check if tokens are stored in the main app's local storage - // There should be no tokens as they are in the proxy app's local storage - const mainAppTokens = await getTokens('http://localhost:5823', 'CentralLoginOAuthClient'); - expect(mainAppTokens).toBeFalsy(); - - // Check if tokens are stored in the proxy app's local storage - // They should be present here - const proxyAppTokens = await getTokens('http://localhost:5833', 'CentralLoginOAuthClient'); - expect(proxyAppTokens.accessToken).toBeTruthy(); - - // Before we click the "Check for Tokens" button, the app should say "false" - const hasTokensDef = await page.$('#hasTokensDef'); - expect(await hasTokensDef.innerText()).toBe('false'); - - // Click the "Check for Tokens" button and wait a bit for the proxy to respond - // Unfortunately, I don't know how to wait for an iframe to respond on a MessageChannel - await page.getByRole('button', { name: 'Check for Tokens' }).click(); - await page.waitForTimeout(500); - - expect(await hasTokensDef.innerText()).toBe('true'); - - await clickButton('Refresh Tokens', '/access_token'); - - // Grab tokens from the proxy app - const refreshedTokens = await getTokens('http://localhost:5833', 'CentralLoginOAuthClient'); - - // The refreshed Access Token should be different from the original Access Token - expect(refreshedTokens.accessToken).not.toBe(proxyAppTokens.accessToken); - - await clickButton('Fetch Real User', '/userinfo'); - - const userInfoDef = await page.$('#userInfoDef'); - expect(await userInfoDef.innerText()).toBe('Bob Tester'); - - let authorizationHeader = ''; - page.on('request', (request) => { - if (request.url().includes('jsonplaceholder.typicode.com')) { - authorizationHeader = request.headers()['authorization']; - } else if (request.url().includes('thecocktaildb.com')) { - authorizationHeader = request.headers()['authorization']; - } - }); - - await clickButton('Fetch Protected Mock Todos', '/todos'); - - // The authorization header should be present and have the refreshed Access Token - expect(authorizationHeader).toBe(`Bearer ${refreshedTokens.accessToken}`); - - // Make unprotected request to cocktail API that is not in urls allowed list - await clickButton('Fetch Unprotected Mock Data', '/api/json/v1/1/search.php'); - - // The authorization header should be empty - expect(authorizationHeader).toBeFalsy(); - - // Since logout requires multiple requests to complete, we use Promise.all - await Promise.all([ - page.waitForResponse((response) => response.url().includes('/sessions')), - page.waitForResponse((response) => response.url().includes('/endSession')), - page.waitForResponse((response) => response.url().includes('/revoke')), - page.getByRole('button', { name: 'Logout' }).click(), - ]); - - // Make sure tokens stored on proxy are removed - const revokedTokens = await getTokens('http://localhost:5833', 'CentralLoginOAuthClient'); - expect(revokedTokens).toBeFalsy(); -}); -/* - * ensure the proxy is not called when the url is not in the allow list - * and that the proxy responds with an error - */ -test('Ensure someone cannot try to call their own url!', async ({ page }) => { - const { navigate } = asyncEvents(page); - await navigate('/'); - - expect(page.url()).toBe('http://localhost:5823/'); - - const messageArray = []; - page.on('console', (message) => messageArray.push(message.text())); - - await page.click('#hacker'); - expect( - messageArray.includes('Received TVP_FETCH_RESOURCE event from http://localhost:5823'), - ).toBe(true); - expect(messageArray.includes('Proxying https://reqres.in/api/users/2')).toBe(true); - expect( - messageArray.includes( - '{error: unrecognized_origin, message: Unrecognized origin: https://reqres.in. Please configure URLs in Proxy.}', - ), - ).toBe(true); -}); diff --git a/e2e/token-vault-suites/src/utils/async-events.ts b/e2e/token-vault-suites/src/utils/async-events.ts deleted file mode 100644 index d601fcea9..000000000 --- a/e2e/token-vault-suites/src/utils/async-events.ts +++ /dev/null @@ -1,72 +0,0 @@ -export function asyncEvents(page) { - return { - async clickButton(text, endpoint) { - if (!endpoint) - throw new Error('Must provide endpoint argument, type string, e.g. "/authenticate"'); - await Promise.all([ - page.waitForResponse((response) => response.url().includes(endpoint)), - page.getByRole('button', { name: text }).click(), - ]); - }, - async clickLink(text, endpoint) { - if (!endpoint) - throw new Error('Must provide endpoint argument, type string, e.g. "/authenticate"'); - await Promise.all([ - page.waitForResponse((response) => response.url().includes(endpoint)), - page.getByRole('link', { name: text }).click(), - ]); - }, - async getTokens(origin, clientId) { - const webStorage = await page.context().storageState(); - - const originStorage = webStorage.origins.find((item) => item.origin === origin); - // Storage may not have any items - if (!originStorage) { - return null; - } - const clientIdStorage = originStorage?.localStorage.find((item) => item.name === clientId); - - if (clientIdStorage && typeof clientIdStorage.value !== 'string' && !clientIdStorage.value) { - return null; - } - try { - return JSON.parse(clientIdStorage.value); - } catch (e) { - return null; - } - }, - async navigate(route) { - await page.goto(route, { waitUntil: 'networkidle' }); - }, - async pressEnter(endpoint) { - if (!endpoint) - throw new Error('Must provide endpoint argument, type string, e.g. "/authenticate"'); - await Promise.all([ - page.waitForResponse((response) => response.url().includes(endpoint)), - page.keyboard.press('Enter'), - ]); - }, - async pressSpacebar(endpoint) { - if (!endpoint) - throw new Error('Must provide endpoint argument, type string, e.g. "/authenticate"'); - await Promise.all([ - page.waitForResponse((response) => response.url().includes(endpoint)), - page.keyboard.press(' '), - ]); - }, - }; -} - -export async function verifyUserInfo(page, expect, type) { - const emailString = type === 'register' ? 'Email: test@auto.com' : 'Email: demo@user.com'; - const nameString = 'Full name: Demo User'; - - const name = page.getByText(nameString); - const email = page.getByText(emailString); - - // Just wait for one of them to be visible - await name.waitFor(); - - expect(await name.textContent()).toBe(nameString); - expect(await email.textContent()).toBe(emailString); -} diff --git a/e2e/token-vault-suites/teardown.ts b/e2e/token-vault-suites/teardown.ts deleted file mode 100644 index 09b49e70b..000000000 --- a/e2e/token-vault-suites/teardown.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default () => { - console.log('tests finished'); -}; diff --git a/e2e/token-vault-suites/tsconfig.e2e.json b/e2e/token-vault-suites/tsconfig.e2e.json deleted file mode 100644 index cf968ee5a..000000000 --- a/e2e/token-vault-suites/tsconfig.e2e.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "composite": true, - "sourceMap": false, - "outDir": "../../dist/out-tsc", - "allowJs": true, - "module": "Node16" - }, - "include": ["**/*.ts", "**/*.js"] -} diff --git a/e2e/token-vault-suites/tsconfig.json b/e2e/token-vault-suites/tsconfig.json deleted file mode 100644 index 08841a7f5..000000000 --- a/e2e/token-vault-suites/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.e2e.json" - } - ] -} diff --git a/nx.json b/nx.json index 106a79ded..45e772d34 100644 --- a/nx.json +++ b/nx.json @@ -81,18 +81,6 @@ }, "include": ["e2e/**/*", "packages/**/*"] }, - { - "plugin": "@nx/vite/plugin", - "options": { - "buildTargetName": "build-interceptor", - "serveTargetName": "serve", - "previewTargetName": "preview", - "testTargetName": "test", - "serveStaticTargetName": "serve-static", - "typecheckTargetName": "typecheck" - }, - "include": ["e2e/token-vault-app/**/*"] - }, { "plugin": "@nx/vite/plugin", "options": { diff --git a/package.json b/package.json index d2ebab5a5..6f882dae1 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ "prepare": "node .husky/install.mjs", "publish:local": "node ./tools/release/local.mjs", "publish:dev": "node ./tools/release/dev.mjs", - "start:token-vault": "nx run-many --target=serve --projects=token-vault-app,token-vault-proxy,mock-api", "test": "CI=true nx affected:test", "verdaccio": "nx local-registry", "commitlint": "commitlint --edit" diff --git a/packages/token-vault/.babelrc b/packages/token-vault/.babelrc deleted file mode 100644 index fd4cbcdef..000000000 --- a/packages/token-vault/.babelrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "presets": [ - [ - "@nx/js/babel", - { - "useBuiltIns": "usage" - } - ] - ] -} diff --git a/packages/token-vault/.eslintignore b/packages/token-vault/.eslintignore deleted file mode 100644 index ce44fc6eb..000000000 --- a/packages/token-vault/.eslintignore +++ /dev/null @@ -1,11 +0,0 @@ -node_modules -.eslintignore -*.md -LICENSE -.babelrc -.env* -.bin -dist -docs -coverage -vite.config.*.timestamp* diff --git a/packages/token-vault/.eslintrc.json b/packages/token-vault/.eslintrc.json deleted file mode 100644 index 9d9c0db55..000000000 --- a/packages/token-vault/.eslintrc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": {} - }, - { - "files": ["*.ts", "*.tsx"], - "rules": {} - }, - { - "files": ["*.js", "*.jsx"], - "rules": {} - } - ] -} diff --git a/packages/token-vault/CHANGELOG.md b/packages/token-vault/CHANGELOG.md deleted file mode 100644 index 4d69ea8d0..000000000 --- a/packages/token-vault/CHANGELOG.md +++ /dev/null @@ -1,12 +0,0 @@ -### [4.2.0] - 2023-09-11 - -Security: - Proxy config declaring URLs is now required and will be used to generate an allow list of origins to check again prior to fowarding a request. - -## [4.1.2] - 2023-07-24 - -Features: - -- Initial release of Token Vault -- Initial NPM deployment for latest version (4.1.2) -- Token vault is sync'd to the same version of the SDK. -- @forgerock/javascript-sdk is a peer dependency of Token vault, meaning the application must install it independently. diff --git a/packages/token-vault/LICENSE b/packages/token-vault/LICENSE deleted file mode 100644 index a1e82df86..000000000 --- a/packages/token-vault/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 ForgeRock - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages/token-vault/README.md b/packages/token-vault/README.md deleted file mode 100644 index 720283794..000000000 --- a/packages/token-vault/README.md +++ /dev/null @@ -1,471 +0,0 @@ -# Token Vault - -Token Vault is a feature by ForgeRock that provides an additional layer of security for storing OAuth/OIDC tokens in a JavaScript application (SPA). This is useful for applications that need a higher level of security or have third-party code execution in their application that is not fully trusted. Once configured and setup, you can build your app, [use the ForgeRock SDK](https://backstage.forgerock.com/docs/sdks/latest/whatsnew/index.html), and interact with protected resources as you normally would. Token Vault is entirely framework and library agnostic. - -Token Vault is a plugin to our [JavaScript SDK](https://www.npmjs.com/package/@forgerock/javascript-sdk). It is developed around the idea of "Origin Isolation", which you can [read more about in this article](https://github.com/ForgeRock/appAuthHelper/blob/master/origin_isolation.md). To accomplish this, it uses both a Service Worker to intercept allowlisted URLs from emitted `fetch` requests (what we will call an Interceptor) and an `iframe` hosted on a different origin that acts as a proxy and OAuth/OIDC token management layer (what we'll call the Proxy. - -It's important to note that we consider this an _advanced_ usage of the ForgeRock JavaScript SDK and not a standard use case. Implementing this feature into your web application is inherently complicated, so we don't recommend this during the prototyping or proof-of-concept stage of development. Only implement this when you have established a core understanding of the ForgeRock system and the ForgeRock JavaScript SDK. - -## Overall Design - -There are three main entities involved in a normal implementation of a ForgeRock SDK protected web application (JavaScript, Single-Page Application or SPA to be precise): - -1. Your JavaScript application (a SPA) -2. The ForgeRock JavaScript SDK (an npm package) -3. The ForgeRock server (Identity Cloud or a stand-alone Access Manager) - -To implement the Token Vault into your application for increased token security, you'll need one more npm package: the Token Vault. This new package provides a few more items to your overall system: - -1. The Token Vault Client, a JavaScript SDK plugin -2. The Token Vault Interceptor (the Service Worker) -3. The Token Vault Proxy (the iframe) - -It's not important to know exactly how all of these are wired together, but loosely understanding the major components is important. The JavaScript SDK and the Token Vault are both npm packages and are designed to work together to provide a seamless developer experience. - -## How it Works - -We won't go into too much detail here, so let's start with the basics. The end result of implementing the Token Vault plugin is a system that resembles this: - -1. **Main App**: JavaScript SPA using the ForgeRock SDK and the Token Vault Client, running on `https://app.example.com` -2. **Token Vault Interceptor**: a Service Worker registered on Main App, running on `https://app.example.com` -3. **Token Vault Proxy**: an `iframe` app injected into Main App, running on `https://proxy.example.com` - -### Browser Storage - -Whether it's Web Storage API or IndexedDB, any data stored within the browser is restricted by the web app's origin (aka. scheme, domain and port), which is [known as the Same-Origin Policy](https://www.w3.org/Security/wiki/Same_Origin_Policy). We will be leveraging this "same-origin" restriction to store the OAuth/OIDC Tokens (just "tokens" from here on out) we collect using the [Authorization Code Flow](https://backstage.forgerock.com/docs/am/7/oauth2-guide/oauth2-authz-grant-pkce.html) and keep them out of reach from malicious actors. - -### Iframe (aka the Proxy) - -Though rarely used in modern web applications, we will be taking advantage of the fact that [iframes (aka inline frames)](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) can be embedded within web applications and form a parent-child relationship. As long as the two frames (main app and the child iframe) share the same parent domain, what's called a first-party context, they can communicate with one another without restriction. - -As you'll see shortly, it will be important for the two frames to differ by origin _but_ share a parent domain. This special relationship will allow us to store tokens out of reach from code running in the main app, but allow the main app to "proxy" requests through this iframe in order for the Access Token to be attached to the outbound call. This allows tokens to go into the Proxy, but not come out. - -### Service Worker (aka the Interceptor) - -[Service workers are a complex feature provided by modern browsers](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers), but our use of them is quite simple: to intercept a restricted list of URL when a `fetch` request is emitted from the main app. This request is then forwarded to the iframe acting as the proxy. - -This restricted list of URLs are the configured endpoints that need _interception_ as they require authorization to succeed. Since the main application does not have access to the stored tokens, they must be "proxied" through the iframe in order for the Access Token to be attached to the outbound call. - -### The Sequence, Simplified - -When your application requests tokens from the ForgeRock server (Authorization Server) using the SDK, it will use the [Authorization Code Flow with PKCE](https://backstage.forgerock.com/docs/am/7/oauth2-guide/oauth2-authz-grant-pkce.html). The last request in this flow is a call to the `/access_token` endpoint. This request is intercepted and forwarded to the Proxy. When the Proxy receives the tokens in the response, it will store them within its origin, which should be different than the main app. - -Before it returns the response to the main app, it redacts the token values from the response body. This ensures the main app never receives or stores the tokens. The Proxy then stores the tokens on behalf of the main app and will be available as a proxy to be used for any future "protected calls" that require the Access Token to be attached to the request. - -When any request is made by the main app that is configured for authorization the Interceptor will forward it to the Proxy. This includes the usual requests made from the SDK, like requesting user info or revoking tokens. The Proxy will attach the Access Token to the outbound request, and then return the response to the main app with it resolves. If the tokens have expired or become invalid, the main app will receive a 400 response from the proxy. - -## ForgeRock Server Setup - -Configuration is the key to success with this setup, so take extra care to ensure it's correct and consistent throughout your setup. - -### CORS - -First, configure your [ForgeRock server's CORS settings](https://backstage.forgerock.com/docs/idcloud/latest/tenants/configure-cors.html) (if using ForgeRock's Identity Cloud product, there's a [preset JavaScript SDK CORS configuration](https://backstage.forgerock.com/docs/sdks/latest/serverconfiguration/cloud/allow-am-resource-requests-trusted-domains.html) that can be used as a starter): - -1. **Accepted origins**: these should be the origins (scheme, domain and port) for your app AND proxy -2. **Accepted methods**: `GET` and `POST` are enough -3. **Accepted headers**: `authorization` `accept-api-version` `x-requested-with` `content-type` `accept` -4. **Allow credentials**: checked/enabled - -An example or your origins can be `http://localhost:5173` and `http://localhost:5174` for your local development computer or `https://app.example.com` and `https://proxy.example.com` for production. - -### OAuth - -Configure your [OAuth client within the ForgeRock server](https://backstage.forgerock.com/docs/sdks/latest/serverconfiguration/cloud/create-oauth2-client.html): - -1. **Client ID**: Any alphanumeric string can be used here to identity this client -2. **Client secret**: keep this blank -3. **Sign-in URLs**: This URLs should be fully qualified URLs that you want ForgeRock to redirect to provide the Authorization Code for you to collect tokens; if you're using a dynamic value like `location.href`, make sure to pay close attention to trailing slashes -4. **Grant types**: `Authorization Code` and `Refresh Token` -5. **Scopes**: `openid` `email` `profile` and any others you need for your app -6. **Response types**: `code` `token` `id_token` `refresh_token` -7. **Token endpoint authentication method**: `none` -8. **Client type**: `Public` -9. **Implied consent**: this needs to be _enabled_ if you are using Embedded Login (if you are using Centralized Login, you can leave this disabled) - -#### Refresh Tokens - -In a typical web application using the ForgeRock SDK, we would _not_ recommend the use of Refresh Tokens. But, Token Vault increases the level of token security to allow its use for automatically refreshing Access Tokens without any intervention. To enable this, ensure the use of `Refresh Token` grant is set in the OAuth client and `refresh_token` as a response type within your ForgeRock server. - -## Application Setup - -In a "normal" setup, a web app usually requires a few things: - -1. A dependency/package manager (npm, Yarn, etc) -2. An application framework (React, Angular, etc) -3. Some kind of module bundler (Webpack, Vite, etc) -4. Some kind of web server (Node, Nginx, Apache, etc) - -In the most modern web applications, the last two are often the same technology. For Angular, it can often be the last three. Vite can be both the module bundler/resolver and the web server. Webpack, another bundler, has the `webpack-dev-server`. - -To build an app that implements Token Vault, we will need to adjust the last two in the list above: module bundler and web server. Because of this, you'll want to be familiar with configuring these two layers of technology. - -### Module Bundler - -The change involved with your module bundler is required because the Interceptor, a Service Worker, needs to be built differently from your main application's bundle. This is due to browser inconsistency with supported language features, and therefore we recommend the Interceptor be unified and "down-leveled" into a single output file for cross-browser compatibility. - -You'll want to create a separate bundler config file dedicated to your interceptor. It should be configured to produce a single file without ES Module syntax. Webpack (v5 or earlier), will do this be default. The configuration file dedicated to your main application can be the default configuration or your own, preferred configuration. - -Finally, the Proxy should also have its own module bundler as it's technically a different application from your main app. Though, for this, the default configuration should work without issue. - -### Web Server - -The change involved with your web server is due to the Proxy, an "iframed" application, that needs to be served from a different origin from your main application. This is what necessitates the need for a dedicated server for just the Proxy itself. - -The important thing to note here is that the server for the Proxy needs to be running on a different port for `localhost` or a different sub-domain for production. - -Lastly, the web server for the main application needs to avoid rewriting incoming URLs as there's a redirection back to your application from the ForgeRock server, and its query parameters need to be preserved and read by the SDK. If you're seeing timeout issues related to the `/authorize` request, even thought it succeeds and redirects back to your app with the `code` and `state` query parameters (and the request to `/access_token` isn't made). This is likely your server rewriting the URL to `/`, stripping the query parameters from the request and not allowing it to resolve correctly. - -### Codebase Structure (recommended) - -You are free to structure your code in whatever way makes sense to you and for your application, but here's a recommendation that helps us manage the different pieces. If you use Vite, this structure may look familiar. - -```txt ---root - |--.env <-- store the shared config here - |--package.json <-- We use npm workspaces - |--app/ <-- Directory for your main application - |--public/ - |-- - |--src/ - |--main.js - |-- - |--interceptor/ <-- Interceptor should be separate from app code - |--interceptor.js - |--index.html - |--package.json - |--vite.config.js <-- Builds the main app - |--vite.interceptor.config.js <-- Dedicated build for Interceptor - |--proxy/ <-- Dedicated directory for the Proxy - |--src/ - |--proxy.js - |--index.html - |--package.json - |--vite.config.js <-- Builds the Proxy app -``` - -Let's take a look at some of the more important files. - -First, `app/src/index.html`: - -```html - - - - - - -
- - -
- - - - - -``` - -Next, `app/src/main.js`: - -```js -import { Config, TokenManager } from '@forgerock/javascript-sdk'; -import { client } from '@forgerock/token-vault'; - -const register = client({ - /* global config */ -}); - -register.interceptor(); -register.proxy(document.getElementById('token-vault')); - -const tokenVaultStore = register.store(); - -Config.set({ - /* ForgeRock SDK config */ -}); -``` - -Now, let's look at `app/interceptor/interceptor.js`: - -```js -import { interceptor } from '@forgerock/token-vault'; - -interceptor({ - /* config */ -}); -``` - -Lastly, let's look at `proxy/src/proxy.js`: - -```js -import { proxy } from '@forgerock/token-vault'; - -proxy({ - /* config */ -}); -``` - -### Application Configuration - -As you can see in the above example files, there's a good amount of duplicated configuration that needs to happen within all these entities at build-time, so we recommend having a central, single place for this configuration to be stored in your codebase. Each entity being configured independently is to ensure the highest level of security. Passing around configuration at runtime between entities in the system could be a potential vector, so we don't have a mechanism to do this. - -We frequently make use of `.env` files, which can be picked up by module bundlers like Vite or dedicated npm modules like `dotenv`. The example code below will uses literal values for clarity, but this increases human error as it's too easy to make a typo, so we don't recommend this in your actual implementation. - -There are three locations that need to be properly configured: - -#### The Main App - -This configuration should be within your app's `index` or `main` file. First, let's initialize the Token Vault Client as you saw above: - -```js -// app/src/main.js -import { Config, TokenManager } from '@forgerock/javascript-sdk'; -import { client } from '@forgerock/token-vault'; - -/** - * This factory function takes in a config object and returns - * the necessary methods to setup the iframe ("proxy"), the - * service worker ("interceptor"), and the token store replacement - * API ("store"). - */ -const register = client({ - app: { - origin: 'http://localhost:5173', - }, - interceptor: { - file: '/interceptor.js', - }, - proxy: { - origin: 'http://localhost:5175', - }, -}); - -/** - * Sets up the service worker for intercepting fetch requests - */ -register.interceptor({ - /* optional interceptor worker config */ -}); - -/** - * Injects the iframe into the DOM to setup the proxy - * Make sure to pass in the required, real DOM element as the zeroeth argument - */ -register.proxy(document.getElementById('token-vault'), { - /* optional proxy config */ -}); - -/** - * Creates the store replacement for the SDK - */ -const tokenVaultStore = register.store({ - /* optional store config */ -}); -``` - -Then, within the same file, you must configure the SDK. Here's the minimum configuration for the SDK: - -```js -// app/src/main.js -// ... -// Configuring the SDK (values should be your own) -Config.set({ - clientId: 'WebOAuthClient', - redirectUri: location.href, - scope: 'openid email profile', - serverConfig: { - baseUrl: 'https//auth.example.com/am/', - timeout: 5000, - }, - realmPath: 'alpha', - // Replace the default token store with Token Vault's store - tokenStore: tokenVaultStore, -}); -``` - -#### The Interceptor - -This configuration should be within the Service Worker's entry file, which is separate from your main application code. This is also the file to which your `client()` method config object property of `interceptor.file` method references. The minimum configuration is the following: - -```js -// app/interceptor/inteceptor.js -import { interceptor } from '@forgerock/token-vault'; - -interceptor({ - interceptor: { - // Only fully qualified URLs can be used here, or - // a single, ending glob can be used - urls: [ - /* Your protected endpoint URLs */ - ], - }, - forgerock: { - // The below MUST match what you configured in your main app - serverConfig: { - baseUrl: 'https//auth.example.com/am/', - timeout: 5000, - }, - realmPath: 'alpha', - }, -}); -``` - -Note: The `interceptor.urls` array is a required property and will also be shared with the upcoming Proxy configuration, so it's best to store this array as a global, build-time value in the project. If not provided, your Interceptor will throw an error of "Config: `config.interceptor.urls` is required". - -These urls can accept a `/*` ending to match any request from a particular root domain and path without having to declare each and every unique endpoint that's used in your app. Please note that this isn't a full glob-pattern feature, but just a single ending `*` (wildcard). - -#### The Proxy - -This configuration should be within your Proxy's entry file. The minimum configuration is the following: - -```js -// proxy/src/proxy.js -import { proxy } from '@forgerock/token-vault'; - -proxy({ - app: { - // This MUST match the origin on which your main app runs - origin: 'https://app.example.com', - }, - forgerock: { - // The below MUST match what you configured in your main app and interceptor - clientId: 'WebOAuthClient', - redirectUri: location.href, - scope: 'openid email profile', - serverConfig: { - baseUrl: 'https//auth.example.com/am/', - timeout: 5000, - }, - realmPath: 'alpha', - }, - proxy: { - urls: [ - /* Your protected endpoints; should be identical to `interceptor.urls` */ - ], - }, -}); -``` - -Note: the `proxy.urls`, which is shared with `interceptor.urls` from the Interceptor configuration, is a required property for security. If not provided, your Proxy will `throw` an error or "Config: `config.proxy.urls` is required". - -## Building the Code - -Token Vault requires a bit more building/bundling configuration than a "normal" JavaScript app with the SDK. This is because Token Vault requires 3 different bundles: - -1. Your main application -2. Your Token Vault Interceptor (Service Worker) -3. Your Token Vault Proxy (`iframe`) - -The configuration for the main application and the Proxy can usually be left as default using any of the popular bundlers (Webpack, Vite, etc.), or any configuration you deem best for you and your project. The Interceptor, on the other hand, does require a specific configuration for bundling, which we'll cover next. - -### Bundling the Interceptor - -To provide the best cross-browser support, the Interceptor requires a dedicated bundle configuration to ensure it results in a _single-file_ output, down-leveled to at least ES2020 without _any_ ES Module syntax. We recommend using a separate `vite.interceptor.config.js` or `webpack.interceptor.config.js` for the Interceptor, and a separate command that consumes this separate configuration file. - -Note: for Vite users, we've had the best results with bundling into an IIFE. Webpack's defaults, on the other hand, tend to work quite well. - -## Using the Token Vault - -Once the Token Vault is properly setup, you can use the JavaScript SDK and any HTTP/fetch library to request protected resources. With the exception of using Refresh Tokens and the token storage mechanism, the remainder of the [documentation for the ForgeRock JavaScript SDK](https://backstage.forgerock.com/docs/sdks/latest/whatsnew/index.html) will remain consistent. The Token Vault will manage your token's lifecycle automatically and, if Refresh Token is enabled in your OAuth client, automatic Access Token refreshing will be handled by the Token Vault as well. - -### Requesting & Using Tokens - -You can request tokens and have them safely stored within the Token Vault Proxy using the usual `TokenManager` class from the SDK: - -```js -import { TokenManager } from '@forgerock/javascript-sdk'; - -const tokens = TokenManager.getTokens(); - -console.log(tokens); // Refresh & Access Token values will be redacted -``` - -After successfully requesting tokens, you should notice within your browser's developer tools that the tokens are stored under the proxy's origin, not your app's origin. You may also notice that the response your app, and therefore the SDK itself, contains redacted values. This is expected behavior and for additional security. - -For example: - -```json -{ - "accessToken": "REDACTED", - "idToken": "eyJ0eXAiOiJKV1QiLCJra…7r8soMCk8A7QdQpg", - "refreshToken": "REDACTED", - "tokenExpiry": 1690712227226 -} -``` - -### Revoking Tokens - -To remove tokens and log the user out, use the `FRUser` class: - -```js -import { FRUser } from '@forgerock/javascript-sdk'; - -FRUser.logout(); -``` - -This will destroy the user's session, revoke tokens on the server and remove tokens from the browser. - -### Validating Tokens - -### Convenience Methods - -There are a few convenience functions that can be found on the `tokenVaultStore`. These methods are introduced since the main application will not have direct access to the tokens. - -#### The `has` Method - -This is a way of asking the Token Vault if it has the tokens. It only returns an object with a `hasTokens` prop and a boolean value. It does _not_ return the tokens. - -```js -const tokenVaultStore = register.store(); - -const { hasTokens } = tokenVaultStore.has(); - -console.log(hasTokens); // logs `true` or `false` -``` - -It's worth noting that this method doesn't validate the tokens, but just reflects the presence of tokens. If you want to validate the tokens, it's best to use the `UserManager.getCurrentUser` method. If that method returns user data, then the tokens are validated by the Authorization Server. - -#### The `refresh` Method - -This is a method to manually ask the Token Vault to refresh its tokens. The Token Vault will attempt to refresh tokens automatically for you, but this will force a refresh of the tokens, if needed. This method will return an object with a `refreshTokens` property with a boolean value. - -```js -const tokenVaultStore = register.store(); - -const { refreshTokens } = tokenVaultStore.refresh(); - -console.log(refreshTokens); // logs `true` or `false` -``` - -#### Making Requests - -You are free to use the native `fetch` API or any any HTTP request library that emits a `fetch` event. There's also the `HttpClient` module that is available for use from the JavaScript SDK. - -## FAQs - -### Q: How Do I Fix CORS Errors? - -Make sure your CORS configuration in your ForgeRock server allows/accepts origins from both the origin of your app, but also your Token Vault Proxy. These two origins should be unique from one another, and there both need to be configured in your ForgeRock server. - -### Q: Why Am I Getting an Iframe Error? - -This is likely an error coming from the `/authorize` request to collect OAuth/OIDC tokens. First, make sure you're using version 4 of the SDK. If you are using version 4, then the quickest way to diagnose the issue is to copy the full URL from the network tab in your dev tools and paste it into your browser's URL field to directly visit it. - -A `400` error coming from the `/authorize` endpoint is likely a misconfiguration. If a consent page is rendering, then ensure you enable implied consent both within your OAuth Provider and OAuth client. - -Lastly, make sure you don't have third-party cookies disabled. Chromium browser's Incognito/Private mode as well as Safari disable third-party cookies by default. - -### Q: Why Are the Tokens Not Being Stored? - -If you are receiving tokens from the `/access_token` endpoint, but they are not getting stored, this is likely to happen if you've setup Token Vault within your application, but the Interceptor is not catching your request and forwarding it to the Proxy. Only the Proxy can store tokens when Token Vault is enabled. - -To fix this, ensure your config is identical between your main app's SDK config found in `Config.set()` and the config found in your Interceptor file. This is why we recommend using using environment variables, rather than hardcoding the values directly in all the modules. - -### Q: Why Does the Interceptor (Service Worker) Not work/error in Firefox or Safari? - -You're Interceptor bundler is likely not bundling to a single file, and language features are present in the bundle that the browser doesn't support in a Service Worker context. Ensure that your bundler (eg. Vite or Webpack) configuration is creating a single file output and down-leveled to `ES2020`. This is why we recommend a dedicated bundle config for your Interceptor file/module, separate from your application bundle. - -### Q: Why Am I Getting `400 Proxy Error`? - -These errors often occur when the Proxy itself is encountering an error, and not an HTTP error response from the server. If you inspect the network tab in your dev tools, there should be an error message in the response to help further debug the issue. diff --git a/packages/token-vault/package.json b/packages/token-vault/package.json deleted file mode 100644 index 59e8079f9..000000000 --- a/packages/token-vault/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "@forgerock/token-vault", - "version": "4.2.0", - "private": false, - "type": "module", - "files": ["dist/*"], - "repository": { - "type": "git", - "url": "git+https://github.com:ForgeRock/forgerock-javascript-sdk.git", - "directory": "packages/token-vault" - }, - "main": "./dist/index.js", - "module": "./dist/index.js", - "types": "./dist/index.d.ts", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js", - "require": "./dist/index.js", - "default": "./dist/index.js" - } - }, - "dependencies": { - "@forgerock/javascript-sdk": "4.6.0" - }, - "scripts": { - "build": "vite build", - "test": "vitest", - "test:coverage": "vitest --coverage", - "lint": "eslint **/*.ts --fix" - } -} diff --git a/packages/token-vault/src/index.ts b/packages/token-vault/src/index.ts deleted file mode 100644 index d04b151d3..000000000 --- a/packages/token-vault/src/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { interceptor as interceptorModule } from './lib/worker/index.js'; -import { client as clientModule } from './lib/client.js'; -import { proxy as proxyModule } from './lib/proxy.js'; - -export const client = clientModule; -export const interceptor = interceptorModule; -export const proxy = proxyModule; diff --git a/packages/token-vault/src/lib/client.ts b/packages/token-vault/src/lib/client.ts deleted file mode 100644 index 9c5bf8708..000000000 --- a/packages/token-vault/src/lib/client.ts +++ /dev/null @@ -1,201 +0,0 @@ -import type { Tokens } from '@forgerock/javascript-sdk'; -import type { BaseConfig } from './types/index.js'; -import { ClientInit } from './types/client.types.js'; - -type ClientConfigInit = Partial; -interface ClientConfig extends ClientConfigInit { - app: BaseConfig['app']; - forgerock?: BaseConfig['forgerock']; - interceptor: BaseConfig['interceptor']; - proxy: BaseConfig['proxy']; -} - -/** **************************************************************** - * @function client - Initialize the Token Vault Client - * @param {Object} config - The configuration object for the client - * @returns {} - * @example const register = client({ - * app: { - * origin: 'http://app.example.com', - * url: 'http://app.example.com/path', - * }, - * forgerock: { - * serverConfig: { - * baseUrl: 'https://openam.forgerock.com/am', - * }] - * }, - * interceptor: { - * file: 'http://app.example.com/path/interceptor.js', - * scope: '/', - * }, - * proxy: { - * origin: 'http://proxy.example.com', - * url: 'http://proxy.example.com/path', - * }, - * }); - */ -export function client(config: ClientConfig): ClientInit { - let tokenVaultProxyEl: HTMLIFrameElement; - - return { - /** **************************************************** - * @method interceptor - Register the Token Vault Interceptor - * @param {BaseConfig['interceptor']} options - The configuration object for the interceptor - * @returns {Promise} - The Service Worker registration - * @example register.interceptor(); - */ - interceptor: async function (options?: BaseConfig['interceptor']) { - const filename = options?.file || config.interceptor.file; - const moduleType = options?.type || config?.interceptor?.type || 'module'; - const scope = options?.scope || config?.interceptor?.scope || '/'; - - const registerServiceWorker = () => { - if ('serviceWorker' in navigator) { - try { - return navigator.serviceWorker.register(filename, { - type: moduleType, - scope: scope, - }); - } catch (error) { - console.error( - `Token Vault Interceptor (Service Worker) registration failed with ${error}`, - ); - } - } - return; - }; - - return registerServiceWorker(); - }, - - /** **************************************************** - * @method proxy - Register the Token Vault Proxy - * @param {HTMLElement} target - The target element to append the proxy iframe to - * @param {BaseConfig['proxy']} options - The configuration object for the proxy - * @returns {Promise} - * @example register.proxy(document.getElementById('token-vault')); - */ - proxy: function (target: HTMLElement, options?: BaseConfig): Promise { - const fetchEventName = config?.events?.fetch || 'TVP_FETCH_RESOURCE'; - const frameId = options?.proxy?.id || config?.proxy?.id || 'token-vault-iframe'; - const proxyOrigin = options?.proxy?.origin || config?.proxy.origin || 'http://localhost:9000'; - const proxyUrl = options?.proxy?.path ? `${proxyOrigin}/${config?.proxy?.path}` : proxyOrigin; - - const fragment = document.createElement('iframe'); - fragment.setAttribute('id', frameId); - fragment.setAttribute('src', proxyUrl); - fragment.setAttribute('style', 'display: none'); - - tokenVaultProxyEl = target.appendChild(fragment); - - console.log(`App origin: ${window.location.origin}`); - console.log(`Proxy origin: ${proxyOrigin}`); - console.log(`iframe URL: ${tokenVaultProxyEl.contentWindow?.location.href}`); - - navigator.serviceWorker.addEventListener('message', (event) => { - if (event.data?.type === fetchEventName) { - tokenVaultProxyEl.contentWindow?.postMessage( - { type: fetchEventName, request: event.data.request }, - proxyOrigin, - [event.ports[0]], - ); - } - }); - - return new Promise((resolve) => { - tokenVaultProxyEl.onload = () => { - resolve(tokenVaultProxyEl); - }; - }); - }, - - /** **************************************************** - * @method store - Register the Token Vault Store - * @returns {Promise} - The Token Vault token store object - * @example const tokenStore = register.store(); - */ - store: function () { - const clientId = config?.forgerock?.clientId || 'WebOAuthClient'; - const hasTokenEventName = config?.events?.has || 'TVP_HAS_TOKENS'; - const refreshTokenEventName = config?.events?.refresh || 'TVP_REFRESH_TOKENS'; - const removeTokenEventName = config?.events?.remove || 'TVP_REMOVE_TOKENS'; - - return { - /** - * @method get - A noop method that replaces the default get method - * @returns {Promise} - */ - get(): Promise { - // Tokens are not retrievable from the iframe - return Promise.resolve(null as unknown as Tokens); - }, - - /** - * @method has - Check if tokens exist in the Token Vault - * @returns {Promise<{ hasTokens: boolean }>} - True if tokens exist, false if not - */ - has(): Promise<{ hasTokens: boolean }> { - const proxyChannel = new MessageChannel(); - - return new Promise((resolve) => { - tokenVaultProxyEl.contentWindow?.postMessage( - { type: hasTokenEventName, clientId }, - config.proxy.origin, - [proxyChannel.port2], - ); - proxyChannel.port1.onmessage = (event) => { - resolve(event.data); - }; - }); - }, - - /** - * @method refresh - Refresh tokens in the Token Vault - * @returns {Promise<{ refreshTokens: boolean }>} - */ - refresh(): Promise<{ refreshTokens: boolean }> { - const proxyChannel = new MessageChannel(); - - return new Promise((resolve) => { - tokenVaultProxyEl.contentWindow?.postMessage( - { type: refreshTokenEventName, clientId }, - config.proxy.origin, - [proxyChannel.port2], - ); - proxyChannel.port1.onmessage = (event) => { - resolve(event.data); - }; - }); - }, - - /** - * @method remove - Remove tokens from the Token Vault - * @returns {Promise} - */ - remove(clientId: string): Promise { - const proxyChannel = new MessageChannel(); - - return new Promise((resolve) => { - tokenVaultProxyEl.contentWindow?.postMessage( - { type: removeTokenEventName, clientId }, - config.proxy.origin, - [proxyChannel.port2], - ); - proxyChannel.port1.onmessage = () => { - resolve(undefined); - }; - }); - }, - - /** - * @method set - A noop method that replaces the default set method - * @param {Tokens} _ - The tokens to store - * @returns {Promise} - */ - set(): Promise { - return Promise.resolve(undefined); - }, - }; - }, - }; -} diff --git a/packages/token-vault/src/lib/network/index.ts b/packages/token-vault/src/lib/network/index.ts deleted file mode 100644 index 76e93c039..000000000 --- a/packages/token-vault/src/lib/network/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './network.utilities.js'; diff --git a/packages/token-vault/src/lib/network/network.utilities.test.ts b/packages/token-vault/src/lib/network/network.utilities.test.ts deleted file mode 100644 index aec219f28..000000000 --- a/packages/token-vault/src/lib/network/network.utilities.test.ts +++ /dev/null @@ -1,209 +0,0 @@ -import { - createErrorResponse, - evaluateUrlForInterception, - extractOrigins, - generateAmUrls, - getBaseUrl, - getEndpointPath, - getRealmUrlPath, - parseQuery, - resolveUrl, - stringifyQueryParams, -} from './network.utilities.js'; - -describe('Test network utility functions', () => { - // Test evaluateUrlForInterception with matching URL - it('evaluateUrlForInterception should return true for matching URLs', () => { - const urls = ['https://example.com', 'https://example.com/*']; - const url = 'https://example.com'; - expect(evaluateUrlForInterception(url, urls)).toBe(true); - }); - - // Test evaluateUrlForInterception with non-matching URL - it('evaluateUrlForInterception should return false for non-matching URLs', () => { - const urls = ['https://example.com', 'https://example.com/*']; - const url = 'https://example.org'; - expect(evaluateUrlForInterception(url, urls)).toBe(false); - }); - - // Test evaluateUrlForInterception with matching URL containing blob - it('evaluateUrlForInterception should return true for matching URLs with blob', () => { - const urls = ['https://example.com', 'https://example.com/*']; - const url = 'blob:https://example.com/1234'; - expect(evaluateUrlForInterception(url, urls)).toBe(true); - }); - - // Test extractOrigins - it('extractOrigins should return an array of unique origins from array of URLs', () => { - const expected = [ - 'https://example.com', - 'http://example.com', - 'https://example.com:8443', - 'https://my.forgeblocks.com', - ]; - const urls = [ - 'https://example.com/a', - 'http://example.com/b', - 'https://example.com:8443/c', - 'https://example.com/d', - 'http://example.com/e', - 'https://my.forgeblocks.com/am', - ]; - expect(extractOrigins(urls)).toStrictEqual(expected); - }); - - // Test createErrorResponse with `fetch_error` type - it('createErrorResponse should return error response', () => { - const error = new Error('Test error'); - const response = createErrorResponse('fetch_error', error); - expect(response).toEqual({ - body: { - error: 'fetch_error', - message: 'Test error', - }, - headers: { 'content-type': 'application/json' }, - ok: false, - redirected: false, - type: 'error', - status: 400, - statusText: 'Token Vault Proxy Error', - }); - }); - // Test createErrorResponse with `no_tokens` type - it('createErrorResponse should return error response', () => { - const response = createErrorResponse('no_tokens', null); - expect(response).toEqual({ - body: { - error: 'no_tokens', - message: 'Unknown error', - }, - headers: { 'content-type': 'application/json' }, - ok: false, - redirected: false, - type: 'error', - status: 400, - statusText: 'Token Vault Proxy Error', - }); - }); - - // Test generateUrls with missing slash - it('generateUrls should return URLs with missing slash', () => { - const forgerockConfig = { - serverConfig: { - baseUrl: 'https://example.com/am', - }, - realmPath: 'root', - }; - const urls = generateAmUrls(forgerockConfig); - expect(urls).toEqual({ - accessToken: 'https://example.com/am/oauth2/realms/root/access_token', - revoke: 'https://example.com/am/oauth2/realms/root/token/revoke', - session: 'https://example.com/am/oauth2/realms/root/connect/endSession?', - userInfo: 'https://example.com/am/oauth2/realms/root/userinfo', - }); - }); - // Test generateUrls with ending slash and /alpha realm - it('generateUrls should return URLs with ending slash and /alpha realm', () => { - const forgerockConfig = { - serverConfig: { - baseUrl: 'https://example.com/am/', - }, - realmPath: 'alpha', - }; - const urls = generateAmUrls(forgerockConfig); - expect(urls).toEqual({ - accessToken: 'https://example.com/am/oauth2/realms/root/realms/alpha/access_token', - revoke: 'https://example.com/am/oauth2/realms/root/realms/alpha/token/revoke', - session: 'https://example.com/am/oauth2/realms/root/realms/alpha/connect/endSession?', - userInfo: 'https://example.com/am/oauth2/realms/root/realms/alpha/userinfo', - }); - }); - - // Test getBaseUrl - it('getBaseUrl should return base URL', () => { - const url = new URL('https://example.com'); - - const baseUrl = getBaseUrl(url); - expect(baseUrl).toBe('https://example.com'); - }); - - // Test getEndpointPath - it('getEndpointPath should return endpoint path', () => { - const endpointPath = getEndpointPath('authenticate'); - expect(endpointPath).toBe('json/realms/root/authenticate'); - }); - // Test getEndpointPath with /alpha realm - it('getEndpointPath should return endpoint path with alpha realm', () => { - const endpointPath = getEndpointPath('authenticate', 'alpha'); - expect(endpointPath).toBe('json/realms/root/realms/alpha/authenticate'); - }); - // Test getEndpointPath with /alpha realm starting with slash - it('getEndpointPath should return endpoint path with /alpha realm', () => { - const endpointPath = getEndpointPath('authenticate', '/alpha'); - expect(endpointPath).toBe('json/realms/root/realms/alpha/authenticate'); - }); - // Test getEndpointPath with /alpha for authorize endpoint - it('getEndpointPath should return endpoint path with /alpha for authorize endpoint', () => { - const endpointPath = getEndpointPath('authorize', '/alpha'); - expect(endpointPath).toBe('oauth2/realms/root/realms/alpha/authorize'); - }); - - // Test getRealmUrlPath - it('getRealmUrlPath should return realm URL path', () => { - const realmUrlPath = getRealmUrlPath('root'); - expect(realmUrlPath).toBe('realms/root'); - }); - // Test getRealmUrlPath with /alpha realm - it('getRealmUrlPath should return realm URL path with alpha realm', () => { - const realmUrlPath = getRealmUrlPath('alpha'); - expect(realmUrlPath).toBe('realms/root/realms/alpha'); - }); - // test getRealmUrlPath with /alpha realm starting with slash - it('getRealmUrlPath should return realm URL path with /alpha realm', () => { - const realmUrlPath = getRealmUrlPath('/alpha'); - expect(realmUrlPath).toBe('realms/root/realms/alpha'); - }); - // Test getRealmUrlPath with /alpha with trailing slash - it('getRealmUrlPath should return realm URL path w/o being affected by trailing slash', () => { - const realmUrlPath = getRealmUrlPath('alpha/'); - expect(realmUrlPath).toBe('realms/root/realms/alpha'); - }); - - // Test parseQuery - it('parseQuery should return query object', () => { - const query = parseQuery('https://example.com?test=1&test2=2'); - expect(query).toEqual({ test: '1', test2: '2' }); - }); - // Test parseQuery with empty query - it('parseQuery should return empty object', () => { - const query = parseQuery('https://example.com'); - expect(query).toEqual({}); - }); - - // Test resolve function - it('resolveUrl should return a full URL with path', () => { - const url = resolveUrl('https://example.com', 'test'); - expect(url).toBe('https://example.com/test'); - }); - // Test resolve function with path starting with slash - it('resolveUrl should return a full URL with path starting with slash', () => { - const url = resolveUrl('https://example.com', '/test'); - expect(url).toBe('https://example.com/test'); - }); - // Test resolve function with path starting with slash and base URL ending with slash - it('resolveUrl should return a full URL with path starting and ending with slashes', () => { - const url = resolveUrl('https://example.com/', '/test/'); - expect(url).toBe('https://example.com/test/'); - }); - - // Test stringifyQueryParams with basic record - it('stringifyQueryParams should return query string', () => { - const query = stringifyQueryParams({ test: '1', test2: '2' }); - expect(query).toBe('test=1&test2=2'); - }); - // Test stringifyQueryParams with empty record - it('stringifyQueryParams should return empty string', () => { - const query = stringifyQueryParams({}); - expect(query).toBe(''); - }); -}); diff --git a/packages/token-vault/src/lib/network/network.utilities.ts b/packages/token-vault/src/lib/network/network.utilities.ts deleted file mode 100644 index e1a4eca96..000000000 --- a/packages/token-vault/src/lib/network/network.utilities.ts +++ /dev/null @@ -1,330 +0,0 @@ -/// reference libs="WebWorker" -import type { ConfigOptions } from '@forgerock/javascript-sdk'; -import type { - ConfigurablePaths, - CustomPathConfig, - RequestHeaders, - ResponseClone, - ResponseHeaders, -} from '../types/index.js'; - -/** **************************************************************** - * @function checkForMissingSlash - * @param {string} url - The URL to check for a missing slash - * @returns {string} - The URL with a slash appended to the end if it was missing - */ -export function checkForMissingSlash(url: string) { - if (url && url.charAt(url.length - 1) !== '/') { - return url + '/'; - } - return url; -} - -/** **************************************************************** - * @function cloneResponse - Clone a response - * @param {Response} response - The response to clone - * @returns {Promise} - The cloned response - */ -export async function cloneResponse(response: Response): Promise { - // Clone and redact the response - const clone = response.clone(); - - let body; - try { - body = await getBodyJsonOrText(clone); - } catch (error) { - // Leave body undefined - } - - return { - // Conditionally set the body property - ...(body && { body }), - headers: getResponseHeaders(clone), - ok: clone.ok, - redirected: clone.redirected, - status: clone.status, - statusText: clone.statusText, - type: clone.type, - url: clone.url, - }; -} - -/** **************************************************************** - * @function createErrorResponse - Create an error response - * @param {string} type - The type of error - * @param {Error} error - The error object - * @returns {Object} - An error response object - */ -export function createErrorResponse( - type: 'fetch_error' | 'no_tokens' | 'refresh_error', - error: unknown, -) { - const message = error instanceof Error ? error.message : 'Unknown error'; - - return { - body: { - error: type, - message: message, - }, - headers: { 'content-type': 'application/json' }, - ok: false, - redirected: false, - type: 'error', - /** - * Using the status code of 0 to indicate an opaque network error - * error without a server response. - * - * https://fetch.spec.whatwg.org/#concept-network-error - */ - status: 400, - statusText: 'Token Vault Proxy Error', - }; -} - -/** **************************************************************** - * @function evaluateUrlForInterception - Evaluate a URL to see if it should be intercepted - * @param {string} url - The URL to evaluate - * @param {string[]} urls - The URLs to check against - * @returns {boolean} - Whether or not the URL should be intercepted - */ -export function evaluateUrlForInterception(url: string, urls: string[]) { - // Loop through the urls and check if the url matches - for (const u of urls) { - // If the url ends with a * then check if the url starts with the prefix - if (u.endsWith('*')) { - // Remove the * from the end of the url - const prefix = u.slice(0, -1); - // Check if the url starts with the prefix - if (url.startsWith(prefix)) { - return true; - } - } - // Do full URL matching - if (url.includes(u)) { - return true; - } - } - // No match - return false; -} - -/** **************************************************************** - * @function extractOrigins - Extract a set of origins from URLs - * @param {string[]} urls - array of urls - * @returns {string[]} - array of origins - */ -export function extractOrigins(urls: string[]): string[] { - const origins: Set = new Set(); - - urls.forEach((url) => { - const { origin } = new URL(url); - origins.add(origin); - }); - - return Array.from(origins); -} - -/** **************************************************************** - * @function generateAmUrls - Generate the URLs for interception - * @param forgerockConfig - The ForgeRock config object - * @returns {Object} - An object containing the URLs for interception - */ -export function generateAmUrls(forgerockConfig: ConfigOptions) { - const baseUrl = checkForMissingSlash(forgerockConfig?.serverConfig?.baseUrl || ''); - const realmPath = forgerockConfig?.realmPath || 'root'; - - return { - accessToken: `${resolveUrl(baseUrl, getEndpointPath('accessToken', realmPath))}`, - revoke: `${resolveUrl(baseUrl, getEndpointPath('revoke', realmPath))}`, - session: `${resolveUrl(baseUrl, getEndpointPath('endSession', realmPath))}?`, - userInfo: `${resolveUrl(baseUrl, getEndpointPath('userInfo', realmPath))}`, - }; -} - -/** **************************************************************** - * @function getBaseUrl - Get the base URL from a URL - * Returns the base URL including protocol, hostname and any non-standard port. - * The returned URL does not include a trailing slash. - * @param {string} url - The URL to get the base URL from - * @returns {string} - The base URL - */ -export function getBaseUrl(url: URL) { - const isNonStandardPort = - (url.protocol === 'http:' && ['', '80'].indexOf(url.port) === -1) || - (url.protocol === 'https:' && ['', '443'].indexOf(url.port) === -1); - const port = isNonStandardPort ? `:${url.port}` : ''; - const baseUrl = `${url.protocol}//${url.hostname}${port}`; - return baseUrl; -} - -/** - * @function getResponseBodyBlob - Get the response's body blob - * @param {Response} response - The response to get the body - * @returns {Promise} - The response body blob - */ -export async function getResponseBodyBlob(response: Response) { - const blob = await response.clone().blob(); - - if (blob && blob.size) { - return blob; - } - return; -} - -/** - * @function getRequestBodyBlob - Get the request's body blob - * @param {Request} request - The request to get the body blob from - * @returns {Promise} - The request body blob - */ -export async function getRequestBodyBlob(request: Request): Promise { - // Return undefined early if GET or HEAD - if (['GET', 'HEAD'].includes(request.method)) { - return; - } - - const blob = await request.clone().blob(); - - if (blob && blob.size) { - return blob; - } - return; -} - -/** **************************************************************** - * @function getResponseHeaders - Get the response headers - * @param {Response} response - The response to get the headers from - * @returns {ResponseHeaders} - The response headers - */ -export function getResponseHeaders(response: Response) { - return Array.from(response.headers.keys()).reduce((acc, key: string) => { - acc[key] = response.headers.get(key); - return acc; - }, {}); -} - -/** - * @function getRequestHeaders - Get the request headers - * @param {Request} request - The request to get the headers from - * @returns {RequestHeaders} - The request headers - */ -export function getRequestHeaders(request: Request) { - return Array.from(request.headers.keys()).reduce((acc, key) => { - acc[key] = request.headers.get(key); - return acc; - }, {}); -} - -/** **************************************************************** - * @function getBodyJsonOrText - Get the response body as JSON or text - * @param {Response} response - The response to get the body from - * @returns {Promise} - The response body as JSON or text - */ -export async function getBodyJsonOrText(response: Response) { - const contentType = response.headers.get('Content-Type'); - if (contentType && contentType.indexOf('application/json') > -1) { - return await response.json(); - } - return await response.text(); -} - -/** **************************************************************** - * @function getEndpointPath - Get the endpoint path - * @param {ConfigurablePaths} endpoint - The endpoint to get the path for - * @param {string} realmPath - The realm path - * @param {CustomPathConfig} customPaths - The custom paths - * @returns {string} - The endpoint path - */ -export function getEndpointPath( - endpoint: ConfigurablePaths, - realmPath?: string, - customPaths?: CustomPathConfig, -): string { - const realmUrlPath = getRealmUrlPath(realmPath); - const defaultPaths = { - authenticate: `json/${realmUrlPath}/authenticate`, - authorize: `oauth2/${realmUrlPath}/authorize`, - accessToken: `oauth2/${realmUrlPath}/access_token`, - endSession: `oauth2/${realmUrlPath}/connect/endSession`, - userInfo: `oauth2/${realmUrlPath}/userinfo`, - revoke: `oauth2/${realmUrlPath}/token/revoke`, - sessions: `json/${realmUrlPath}/sessions/`, - }; - if (customPaths && customPaths[endpoint]) { - // TypeScript is not correctly reading the condition above - // It's thinking that customPaths[endpoint] may result in undefined - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - return customPaths[endpoint]; - } else { - return defaultPaths[endpoint]; - } -} - -/** **************************************************************** - * @function getRealmUrlPath - Get the realm URL path - * @param {string} realmPath - The realm path - * @returns {string} - The realm URL path - */ -export function getRealmUrlPath(realmPath?: string) { - // Split the path and scrub segments - const names = (realmPath || '') - .split('/') - .map((x) => x.trim()) - .filter((x) => x !== ''); - - // Ensure 'root' is the first realm - if (names[0] !== 'root') { - names.unshift('root'); - } - - // Concatenate into a URL path - const urlPath = names.map((x) => `realms/${x}`).join('/'); - return urlPath; -} - -/** **************************************************************** - * @function parseQuery - Parse a query string into an object - * @param {string} fullUrl - The full URL to parse - * @returns {Record} - The parsed query string - */ -export function parseQuery(fullUrl: string) { - const url = new URL(fullUrl); - const query: Record = {}; - url.searchParams.forEach((v, k) => (query[k] = v)); - return query; -} - -/** **************************************************************** - * @function resolveUrl - Resolve a URL - * @param {string} baseUrl - The base URL - * @param {string} path - The path to resolve - * @returns {string} - The resolved URL - */ -export function resolveUrl(baseUrl: string, path: string) { - const url = new URL(baseUrl); - - if (path.startsWith('/')) { - return `${getBaseUrl(url)}${path}`; - } - - const basePath = url.pathname.split('/'); - const destPath = path.split('/').filter((x) => !!x); - const newPath = [...basePath.slice(0, -1), ...destPath].join('/'); - - return `${getBaseUrl(url)}${newPath}`; -} - -/** **************************************************************** - * @function stringifyQueryParams - Stringify query parameters - * @param {Record} data - The query parameters to stringify - * @returns {string} - The stringified query parameters - */ -export function stringifyQueryParams(data: Record) { - const pairs: string[] = []; - for (const k in data) { - if (data[k]) { - pairs.push(k + '=' + encodeURIComponent(data[k])); - } - } - return pairs.join('&'); -} diff --git a/packages/token-vault/src/lib/proxy.ts b/packages/token-vault/src/lib/proxy.ts deleted file mode 100644 index ca7d45904..000000000 --- a/packages/token-vault/src/lib/proxy.ts +++ /dev/null @@ -1,495 +0,0 @@ -import { - cloneResponse, - createErrorResponse, - extractOrigins, - generateAmUrls, -} from './network/index.js'; -import { EventsConfig, ProxyConfig, ServerTokens } from './types/index.js'; -import { - refreshTokens, - storeTokens, - getTokens, - tokenExpiryWithinThreshold, -} from './token.utils.js'; - -/** **************************************************************** - * @function proxy - Initialize the Token Vault Proxy - * @param {ProxyConfig} config - The configuration object for the proxy - * @returns {void} - * @example proxy({ - * forgerock: { ... }, - * app: { ... }, - * proxy: { ... } - * }); - */ -export function proxy(config: ProxyConfig) { - if (!config.proxy.origin) { - throw new Error('Config: `config.proxy.origin` is required'); - } - /** - * Client default configuration - */ - const clientId = config.forgerock?.clientId || 'WebOAuthClient'; - const clientOrigin = config.app.origin || 'http://localhost:8000'; - const oauthThreshold = config.forgerock?.oauthThreshold || 30 * 1000; - const scope = config.forgerock?.scope || 'openid email'; - const redactedTokens = config.proxy?.redact || ['access_token', 'refresh_token']; - - /** - * Default event names - * These can be overridden in the config - */ - const eventDefaults = [ - { name: 'TVP_FETCH_RESOURCE', type: 'fetch' }, - { name: 'TVP_HAS_TOKENS', type: 'has' }, - { name: 'TVP_REFRESH_TOKENS', type: 'refresh' }, - { name: 'TVP_REMOVE_TOKENS', type: 'remove' }, - ] as const; - - /** - * Generate the event names provided in the config or use the defaults - */ - const eventsObj = eventDefaults.reduce((acc, event) => { - const eventName = config.events?.[event.type] || event.name; - acc[event.type] = eventName; - return acc; - }, {} as EventsConfig); - - function objectKeys(obj: Obj): (keyof Obj)[] { - return Object.keys(obj) as (keyof Obj)[]; - } - /** - * Generate AM URLs - */ - const amUrlObj = generateAmUrls(config?.forgerock); - const amUrlArray = objectKeys(amUrlObj).map((key) => { - return amUrlObj[key]; - }); - - /** - * Generate origins from URLs - */ - // Throw if URLs are not declared - if (!config.proxy.urls) { - throw new Error('Config: `config.proxy.urls` is required'); - } - const allowedOrigins = extractOrigins([...config.proxy.urls, ...amUrlArray]); - - /** - * Create the proxy iframe - */ - window.addEventListener('message', async (event) => { - const requestType = event.data?.type || ''; - const responseChannel = event.ports[0]; - - console.log(`Received ${requestType} event from ${event.origin}`); - - /** **************************************************** - * FILTER OUT ALL UNRECOGNIZED OR ERROR PRONE EVENTS - *******************************************************/ - - // Ignore all messages that don't come from the registered client - if (event.origin !== clientOrigin) { - return; - } - - // Ignore all messages that don't have a response channel - if (!responseChannel) { - return; - } - - // Ignore all message with event types that are unrecognized - if (!eventDefaults.find((item) => item.name === requestType)) { - responseChannel.postMessage({ - error: 'unrecognized_event', - message: `Unrecognized event type: ${requestType}`, - }); - return; - } - - /** **************************************************** - * HAS TOKEN - * DO NOT RETURN THE TOKEN! - *******************************************************/ - if (requestType === eventsObj.has) { - const tokens = getTokens(clientId); - - // Check if the Access Token exists - // DO NOT RETURN THE TOKEN ITSELF! ONLY RETURN TRUE/FALSE! - const hasTokens = Boolean(tokens?.accessToken); - responseChannel.postMessage({ hasTokens }); - - return; - } - - /** **************************************************** - * REFRESH TOKEN - *******************************************************/ - if (requestType === eventsObj.refresh) { - const tokens = getTokens(clientId); - - if (!tokens?.refreshToken) { - responseChannel.postMessage({ - error: 'no_tokens', - message: 'No OAuth/OIDC tokens to refresh', - }); - - return; - } - - try { - const response = await refreshTokens({ - clientId, - refreshToken: tokens.refreshToken, - scope, - url: amUrlObj.accessToken, - }); - - // Check for error and build error message - if (!response.ok) { - // Only read json on response if not ok - const errorResponse = await response.json(); - let errorMessage; - if (errorResponse?.error === 'invalid_grant') { - // "invalid_grant" usually means expired or invalid refresh token - errorMessage = 'Invalid or expired refresh token'; - } else { - errorMessage = errorResponse?.error; - } - throw new Error(errorMessage); - } - storeTokens(response, clientId); - - responseChannel.postMessage({ refreshTokens: true }); - - return; - } catch (error) { - // Something went wrong, remove tokens and return error - localStorage.removeItem(clientId); - responseChannel.postMessage({ - error: 'refresh_error', - message: error instanceof Error ? error.message : 'Error refreshing tokens', - }); - - return; - } - } - - /** **************************************************** - * REMOVE TOKENS - *******************************************************/ - if (requestType === eventsObj.remove) { - localStorage.removeItem(clientId); - responseChannel.postMessage({ removeToken: true }); - - return; - } - - /** **************************************************** - * CATCH ALL UNRECOGNIZED EVENTS - *******************************************************/ - if (requestType !== eventsObj.fetch) { - responseChannel.postMessage({ - error: 'unrecognized_event', - message: `Unrecognized event: ${requestType}`, - }); - return; - } - - /** **************************************************** - * FETCH PROTECTED RESOURCE - *******************************************************/ - console.log(`Proxying ${event.data?.request?.url}`); - - const request = event.data?.request || {}; - const requestUrl = request?.url || ''; - const requestOrigin = new URL(requestUrl)?.origin; - const tokens = getTokens(clientId); - - /** **************************************************** - * IGNORE ALL REQUESTS TO UNRECOGNIZED ORIGINS - * Ensure request origin is allow listed; if not return early - */ - if (!requestUrl || !allowedOrigins.includes(requestOrigin)) { - responseChannel.postMessage({ - error: 'unrecognized_origin', - message: `Unrecognized origin: ${requestOrigin}. Please configure URLs in Proxy.`, - }); - return; - } - - /** **************************************************** - * ACCESS TOKEN ENDPOINT - */ - if (request.url?.includes('access_token')) { - let response; - try { - response = await fetch(request.url, { - ...request.options, - headers: new Headers({ - ...request.options.headers, - }), - }); - } catch (error) { - const errorResponse = createErrorResponse('fetch_error', error); - responseChannel.postMessage(errorResponse); - return; - } - - const clonedResponse = await cloneResponse(response); - // Redact configured tokens from response body - if (clonedResponse.body) { - const body = clonedResponse.body as ServerTokens; - clonedResponse.body = redactedTokens.reduce((acc, token) => { - if (body[token]) { - acc[token] = 'REDACTED'; - } else { - acc[token] = body[token]; - } - return acc; - }, {} as ServerTokens); - } - - // Store tokens in local storage - storeTokens(response, clientId); - responseChannel.postMessage(clonedResponse); - - return; - } - - // The remainder of events require tokens to be present - if (!tokens) { - const errorResponse = createErrorResponse( - 'no_tokens', - new Error('No OAuth/OIDC tokens found'), - ); - responseChannel.postMessage(errorResponse); - return; - } - - /** **************************************************** - * TOKEN REVOCATION ENDPOINT - * Requires the token to be sent in the body - */ - if (request.url?.includes('token/revoke')) { - const bodyString = await request.options?.body?.text(); - const body = new URLSearchParams(bodyString); - body.append('token', tokens.accessToken); - - let response; - try { - response = await fetch(request.url, { - ...request.options, - body, - }); - } catch (error) { - const errorResponse = createErrorResponse('fetch_error', error); - responseChannel.postMessage(errorResponse); - return; - } - - const clonedResponse = await cloneResponse(response); - responseChannel.postMessage(clonedResponse); - return; - } - - /** **************************************************** - * END SESSION ENDPOINT - * requires the id_token_hint to be sent as a query parameter - */ - if (request.url?.includes('connect/endSession')) { - const url = new URL(request.url); - url.searchParams.append('id_token_hint', tokens?.idToken); - console.log(url.toString()); - - let response; - try { - response = await fetch(url.toString(), request.options); - } catch (error) { - const errorResponse = createErrorResponse('fetch_error', error); - responseChannel.postMessage(errorResponse); - return; - } - - const clonedResponse = await cloneResponse(response); - responseChannel.postMessage(clonedResponse); - return; - } - - /** **************************************************** - * NON-UNIQUE ENDPOINTS - * All other requests require the access token to be sent - * in the Authorization header - */ - let response; - - /** - * CHECK ACCESS TOKEN THRESHOLD - * If Access Token is within threshold, skip to auto token refresh - */ - if (!tokenExpiryWithinThreshold(oauthThreshold, tokens.tokenExpiry)) { - // Access token is outside threshold - try { - response = await fetch(request.url, { - ...request.options, - headers: new Headers({ - ...request.options.headers, - authorization: `Bearer ${tokens ? tokens?.accessToken : ''}`, - }), - }); - } catch (error) { - const errorResponse = createErrorResponse('fetch_error', error); - responseChannel.postMessage(errorResponse); - return; - } - - /** - * SUCCESSFUL RESPONSE - * If the response is ok, just return the response - */ - if (response.ok) { - const clonedResponse = await cloneResponse(response); - responseChannel.postMessage(clonedResponse); - return; - } - - /** - * NON-401 ERROR RESPONSE - * If the response is NOT a 401, just return the response - */ - if (response.status !== 401) { - const clonedResponse = await cloneResponse(response); - responseChannel.postMessage(clonedResponse); - return; - } - } - - /** - * ACCESS TOKEN WITHIN EXPIRY THRESHOLD OR 401 UNAUTHORIZED RESPONSE - * At this point, the response is both NOT OK and status code is 401. - * Because of this 401, try to refresh the Access Token. - * If a new Access Token is received, use it to make the request again. - * If the refresh fails, return the original response - */ - let newTokenResponse: Response; - try { - newTokenResponse = await refreshTokens({ - clientId, - refreshToken: tokens.refreshToken, - scope, - url: amUrlObj.accessToken, - }); - } catch (error) { - // Remove the tokens from localStorage and return error - localStorage.removeItem(clientId); - - /** - * Clone the original response if it exists - * Otherwise, create a new error response - */ - const errorResponse = response - ? await cloneResponse(response) - : createErrorResponse('refresh_error', error); - - const clonedResponse = errorResponse; - responseChannel.postMessage(clonedResponse); - return; - } - - /** - * FAILED REFRESH RESPONSE - * If the refresh token request fails, remove the tokens from localStorage - * and return the original response. - */ - if (!newTokenResponse.ok) { - localStorage.removeItem(clientId); - - /** - * Clone the original response if it exists - * Otherwise, create a new error response - */ - const errorResponse = response - ? await cloneResponse(response) - : createErrorResponse('fetch_error', new Error('Unable to refresh token')); - - const clonedResponse = errorResponse; - responseChannel.postMessage(clonedResponse); - return; - } - - let newTokens: ServerTokens | undefined; - - try { - // Parse the response for the new Access Token - newTokens = await newTokenResponse.clone().json(); - } catch (error) { - // leave newTokens undefined - } - - /** - * ACCESS TOKEN NOT FOUND - * If a new Access Token is NOT received, remove the tokens from - * localStorage and return the original response. - */ - if (!newTokens || !newTokens.access_token) { - // Remove the tokens from localStorage - localStorage.removeItem(clientId); - - /** - * Clone the original response if it exists - * Otherwise, create a new error response - */ - const errorResponse = response - ? await cloneResponse(response) - : createErrorResponse('fetch_error', new Error('Unable to refresh token')); - responseChannel.postMessage(errorResponse); - return; - } - - /** - * SUCCESSFUL REFRESH RESPONSE - * If a new Access Token is received, store it in localStorage - */ - storeTokens(newTokenResponse, clientId); - - // Recall the request with the new Access Token - let newResponse: Response; - try { - // Replace the initial `response` - newResponse = await fetch(request.url, { - ...request.options, - headers: new Headers({ - ...request.options.headers, - /** - * To avoid re-parsing JSON or re-reading from localStorage, - * we use the new Access Token directly from the response body. - * So, use snake_case as it's the server's format. - */ - authorization: `Bearer ${newTokens.access_token}`, - }), - }); - } catch (error) { - /** - * Clone the original response if it exists - * Otherwise, create a new error response - */ - const errorResponse = response - ? await cloneResponse(response) - : createErrorResponse( - 'fetch_error', - new Error('Unable to re-request resourse with refreshed token'), - ); - - responseChannel.postMessage(errorResponse); - return; - } - - /** - * RE-REQUEST RESPONSE - * At this point, regardless of the response status, return the it. - */ - const clonedResponse = await cloneResponse(newResponse); - responseChannel.postMessage(clonedResponse); - return; - }); -} diff --git a/packages/token-vault/src/lib/token.utils.test.ts b/packages/token-vault/src/lib/token.utils.test.ts deleted file mode 100644 index 93562bb7a..000000000 --- a/packages/token-vault/src/lib/token.utils.test.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { tokenExpiryWithinThreshold } from './token.utils.js'; -import { vi } from 'vitest'; - -const oauthThreshold = 120000; -const aboutToExpire = 60000; -const notAboutToExpire = 180000; -const tokenExpiryNotSet = undefined; - -describe('Test Token Manager utils', () => { - // We want to avoid race conditions between expected and actual date values - beforeAll(() => { - // Override date functions to return a static date temporarily - vi.useFakeTimers(); - vi.setSystemTime(new Date('25 Mar 2022 16:50:00 GMT').getTime()); - }); - - it('Should return true if tokens expire within configured threshold', () => { - const expiresSoon = tokenExpiryWithinThreshold(oauthThreshold, Date.now() + aboutToExpire); - expect(expiresSoon).toBe(true); - }); - - it('Should return false if tokens expire outside configured threshold', () => { - const expiresSoon = tokenExpiryWithinThreshold(oauthThreshold, Date.now() + notAboutToExpire); - expect(expiresSoon).toBe(false); - }); - - it('Should return false if token expiry is not set', () => { - const expiresSoon = tokenExpiryWithinThreshold( - tokenExpiryNotSet, - Date.now() + notAboutToExpire, - ); - expect(expiresSoon).toBe(false); - }); - - afterAll(() => { - // Reset timers - vi.useRealTimers(); - }); -}); diff --git a/packages/token-vault/src/lib/token.utils.ts b/packages/token-vault/src/lib/token.utils.ts deleted file mode 100644 index dbd1f8e79..000000000 --- a/packages/token-vault/src/lib/token.utils.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { ClientTokens, RefreshOAuth2TokensOptions, ServerTokens } from './types/index.js'; -import { stringifyQueryParams } from './network/index.js'; - -/** **************************************************************** - * @function getTokens - Get the tokens for a client from local storage - * @param {string} clientId - The client ID - * @returns {ClientTokens | undefined} - The tokens for the client - */ -export function getTokens(clientId: string): ClientTokens | undefined { - const tokensString = localStorage.getItem(clientId); - let tokens; - - if (tokensString) { - try { - tokens = JSON.parse(tokensString) || undefined; - } catch (error) { - // TODO: Handle error more intelligently - } - } - - return tokens; -} - -/** **************************************************************** - * @function refreshTokens - Refresh the OAuth2 tokens for a client - * @param {RefreshOAuth2TokensOptions} config - The configuration object for the refresh request - * @returns {Promise} - The response from the refresh request - */ -export async function refreshTokens(config: RefreshOAuth2TokensOptions): Promise { - const requestParams = { - client_id: config.clientId || '', - grant_type: 'refresh_token', - refresh_token: config.refreshToken || '', - scope: config.scope || 'openid', - }; - - const body = stringifyQueryParams(requestParams); - const init = { - body, - headers: new Headers({ - 'Content-Length': body.length.toString(), - 'Content-Type': 'application/x-www-form-urlencoded', - }), - method: 'POST', - }; - - const response = await fetch(config.url, init); - - return response; -} - -/** **************************************************************** - * @function storeTokens - Store the tokens for a client in local storage - * @param {Response} response - The response from the refresh request - * @param {string} clientId - The client ID - * @returns {Promise} - A promise that resolves when the tokens are stored - */ -export async function storeTokens(response: Response, clientId: string) { - const newTokens: ServerTokens | undefined = await response.json(); - - if (!newTokens) { - throw new Error('No tokens found in response'); - } - - let tokenExpiry: number | undefined; - if (newTokens.expires_in) { - tokenExpiry = Date.now() + newTokens.expires_in * 1000; - } - - const clientTokens: ClientTokens = { - accessToken: newTokens.access_token, - idToken: newTokens.id_token, - refreshToken: newTokens.refresh_token, - scope: newTokens.scope, - tokenExpiry, - }; - localStorage.setItem(clientId, JSON.stringify(clientTokens)); -} - -/** **************************************************************** - * @function tokenExpiryWithinThreshold - Check if the token expiry is within the threshold - * @param {number | undefined} oauthThreshold - The threshold for token expiry - * @param {number | undefined} tokenExpiry - The expiry time for the token - * @returns {boolean} - Whether the token expiry is within the threshold - */ -export function tokenExpiryWithinThreshold(oauthThreshold?: number, tokenExpiry?: number): boolean { - console.log(oauthThreshold); - console.log(tokenExpiry); - if (oauthThreshold && tokenExpiry) { - return tokenExpiry - oauthThreshold < Date.now(); - } - return false; -} diff --git a/packages/token-vault/src/lib/types/client.types.ts b/packages/token-vault/src/lib/types/client.types.ts deleted file mode 100644 index 1b0301017..000000000 --- a/packages/token-vault/src/lib/types/client.types.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { Tokens } from '@forgerock/javascript-sdk'; -import type { BaseConfig } from './config.types.js'; - -export type ClientInit = { - interceptor: ( - options?: BaseConfig['interceptor'], - ) => Promise; - proxy: (target: HTMLElement, options?: BaseConfig) => Promise; - store: () => { - get: (clientId: string) => Promise; - set: (clientId: string, token: Tokens) => Promise; - remove: (clientId: string) => Promise; - has: () => Promise<{ hasTokens: boolean }>; - refresh: () => Promise<{ refreshTokens: boolean }>; - }; -}; diff --git a/packages/token-vault/src/lib/types/config.types.ts b/packages/token-vault/src/lib/types/config.types.ts deleted file mode 100644 index f05835e4c..000000000 --- a/packages/token-vault/src/lib/types/config.types.ts +++ /dev/null @@ -1,111 +0,0 @@ -/** **************************************************************** - * This contains a few types pulled from the JavaScript SDK - * TODO: Refactor the SDK to use these shared types instead of the internal ones - */ -import type { ConfigOptions } from '@forgerock/javascript-sdk'; - -/** **************************************************************** - * NOTE: Pulled out of the SDK's /config/enums.ts file - */ -export enum ActionTypes { - Authenticate = 'AUTHENTICATE', - Authorize = 'AUTHORIZE', - EndSession = 'END_SESSION', - Logout = 'LOGOUT', - ExchangeToken = 'EXCHANGE_TOKEN', - RefreshToken = 'REFRESH_TOKEN', - ResumeAuthenticate = 'RESUME_AUTHENTICATE', - RevokeToken = 'REVOKE_TOKEN', - StartAuthenticate = 'START_AUTHENTICATE', - UserInfo = 'USER_INFO', -} - -/** **************************************************************** - * NOTE: Pulled out of the SDK's /config/interfaces.ts file - */ -export type ConfigurablePaths = keyof CustomPathConfig; - -/** **************************************************************** - * NOTE: Pulled out of the SDK's /config/interfaces.ts file - * Optional configuration for custom paths for actions - */ -export interface CustomPathConfig { - authenticate?: string; - authorize?: string; - accessToken?: string; - endSession?: string; - userInfo?: string; - revoke?: string; - sessions?: string; -} - -/** **************************************************************** - * This is the foundational config type for the Token Vault overall - */ -export type BaseConfig = { - app: { - origin: string; - }; - events?: Partial; - forgerock: ForgeRockConfig; - interceptor: { - file: string; - type?: 'classic' | 'module'; - scope?: string; - }; - proxy: { - id?: string; - origin: string; - path?: string; - redact?: ('access_token' | 'refresh_token' | 'id_token')[]; - urls?: string[]; - }; -}; - -/** **************************************************************** - * The events configuration object - * We're going to make all props required, but allow call-sites to - * use Partial to make props optional - */ -export type EventsConfig = { - fetch: string; - has: string; - refresh: string; - remove: string; - set: string; -}; - -/** **************************************************************** - * Overriding the serverConfig prop to make it & baseUrl required, - * rather than optional - * - * Use type intersection to make the serverConfig prop required - */ -interface FRConfig { - serverConfig: { - baseUrl: string; - }; -} -export type ForgeRockConfig = FRConfig & ConfigOptions; - -/** **************************************************************** - * Convert the BaseConfig to all optional. Then, modify the result - * specifically for the Proxy's config needs. - * - * TODO: The below could use some work; just trying to reuse as much as possible - */ -type AppConfigInit = BaseConfig['app']; -type ForgeRockConfigInit = BaseConfig['forgerock']; -// Pluck out the irrelevant props for Proxy configuration -type ProxyConfigBase = Omit; -// Make only the `urls` property required. -interface ProxyConfigBaseRequired extends ProxyConfigBase { - urls: ProxyConfigBase['urls']; -} -// Rebuild config specifically for Proxy configuration -export type ProxyConfig = { - app: AppConfigInit; - events?: Partial; - forgerock: ForgeRockConfigInit; - proxy: ProxyConfigBaseRequired; -}; diff --git a/packages/token-vault/src/lib/types/index.ts b/packages/token-vault/src/lib/types/index.ts deleted file mode 100644 index 913fe6398..000000000 --- a/packages/token-vault/src/lib/types/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './client.types.js'; -export * from './config.types.js'; -export * from './network.types.js'; -export * from './tokens.types.js'; -export * from './worker.types.js'; diff --git a/packages/token-vault/src/lib/types/network.types.ts b/packages/token-vault/src/lib/types/network.types.ts deleted file mode 100644 index 569164298..000000000 --- a/packages/token-vault/src/lib/types/network.types.ts +++ /dev/null @@ -1,14 +0,0 @@ -export type ResponseClone = { - body: unknown; - headers: Record; - ok: boolean; - redirected: boolean; - status: number; - statusText: string; - type: string; - url: string; -}; - -export type ResponseHeaders = Record; - -export type RequestHeaders = Record; diff --git a/packages/token-vault/src/lib/types/tokens.types.ts b/packages/token-vault/src/lib/types/tokens.types.ts deleted file mode 100644 index a2de2987d..000000000 --- a/packages/token-vault/src/lib/types/tokens.types.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { GetOAuth2TokensOptions } from '@forgerock/javascript-sdk'; - -export type RefreshOAuth2TokensOptionsInit = Omit; - -export type RefreshOAuth2TokensOptions = RefreshOAuth2TokensOptionsInit & { - refreshToken: string; - url: string; -}; - -export type ServerTokens = { - access_token: string; - expires_in: number; - id_token: string; - refresh_token: string; - scope: string; - token_type: string; -}; - -export type ClientTokens = { - accessToken: string; - idToken: string; - refreshToken: string; - scope: string; - tokenExpiry: number | undefined; -}; diff --git a/packages/token-vault/src/lib/types/worker.types.ts b/packages/token-vault/src/lib/types/worker.types.ts deleted file mode 100644 index b48b08164..000000000 --- a/packages/token-vault/src/lib/types/worker.types.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { BaseConfig, ForgeRockConfig } from './config.types.js'; - -export interface InterceptorConfig { - events?: BaseConfig['events']; - forgerock: ForgeRockConfig; - interceptor: { - urls: string[]; - }; -} diff --git a/packages/token-vault/src/lib/worker/index.ts b/packages/token-vault/src/lib/worker/index.ts deleted file mode 100644 index 1b48bf146..000000000 --- a/packages/token-vault/src/lib/worker/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './interceptor.js'; -export * from './worker.utilities.js'; diff --git a/packages/token-vault/src/lib/worker/interceptor.test.ts b/packages/token-vault/src/lib/worker/interceptor.test.ts deleted file mode 100644 index 43bc01b58..000000000 --- a/packages/token-vault/src/lib/worker/interceptor.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { interceptor } from './interceptor.js'; - -describe('interceptor', () => { - it('should error when no urls are passed in', () => { - expect(() => interceptor({} as any)).toThrow('Config: `config.interceptor.urls` is required'); - }); -}); diff --git a/packages/token-vault/src/lib/worker/interceptor.ts b/packages/token-vault/src/lib/worker/interceptor.ts deleted file mode 100644 index 33b1a7875..000000000 --- a/packages/token-vault/src/lib/worker/interceptor.ts +++ /dev/null @@ -1,97 +0,0 @@ -/// - -import { evaluateUrlForInterception } from '../network/index.js'; -import type { InterceptorConfig } from '../types/worker.types.js'; -import { generateUrlsToIntercept, generateOptions } from './worker.utilities.js'; - -declare const self: ServiceWorkerGlobalScope; - -/** **************************************************************** - * @function interceptor - Sets up the Token Vault Intercept to intercept configured fetch requests - * and send them to the Token Vault Proxy for adding the access token to the request. - * @param {InterceptorConfig} config - The configuration object for the interceptor - * @returns {void} - * @example interceptor({ - * forgerock: { - * serverConfig: { - * baseUrl: 'https://openam.forgerock.com/am', - * }, - * }, - * interceptor: { - * urls: ['https://example.com/path', 'https://alt.example.com/*'], - * }, - * }); - */ -export function interceptor(config: InterceptorConfig) { - // Report back if no additional URLs are provided - if (!config.interceptor?.urls?.length) { - throw new Error('Config: `config.interceptor.urls` is required'); - } - const fetchEventName = config?.events?.fetch || 'TVP_FETCH_RESOURCE'; - const urls = generateUrlsToIntercept(config); - - self.addEventListener('install', () => { - self.skipWaiting(); - }); - self.addEventListener('activate', (event) => { - event.waitUntil(self.clients.claim()); - }); - - /** - * Intercept fetch requests and send them to the Token Vault Proxy - * IMPORTANT: event.respondWith must be called synchronously from this listener - */ - self.addEventListener('fetch', (event) => { - const proxyChannel = new MessageChannel(); - const request = event.request; - const url = event.request.url; - - /** - * If the URL matches one of the URLs to intercept, send it to the Token Vault Proxy - */ - if (evaluateUrlForInterception(url, urls)) { - console.log(`Intercepting ${url}`); - - event.respondWith( - // eslint-disable-next-line no-async-promise-executor - new Promise(async (resolve, reject) => { - // Async code can go in here - let app; - try { - app = await self.clients.get(event.clientId); - } catch (error) { - return reject( - `Error finding client in Token Vault Interceptor (Service Worker): ${error}`, - ); - } - // If no app is found, reject the promise - if (!app) { - return reject('Error finding client in Token Vault Interceptor (Service Worker)'); - } - const requestCopy = { - url: request.url, - options: await generateOptions(request), - }; - - app.postMessage({ type: fetchEventName, request: requestCopy }, [proxyChannel.port2]); - proxyChannel.port1.onmessage = (messageEvent) => { - console.log(`Returning ${url}`); - const response = messageEvent?.data || {}; - - /** - * Create a new response from the response body and headers - * The body, first argument, needs to be converted back to string - */ - resolve( - new Response(JSON.stringify(response?.body), { - headers: response?.headers, - status: response?.status, - statusText: response?.statusText, - }), - ); - }; - }), - ); - } - }); -} diff --git a/packages/token-vault/src/lib/worker/worker.utilities.test.ts b/packages/token-vault/src/lib/worker/worker.utilities.test.ts deleted file mode 100644 index 48879228a..000000000 --- a/packages/token-vault/src/lib/worker/worker.utilities.test.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { generateUrlsToIntercept } from './worker.utilities.js'; - -// Test that the generateUrlsToIntercept function returns the expected array of URLs -test('generateUrlsToIntercept returns the expected array of URLs', () => { - const config = { - forgerock: { - serverConfig: { - baseUrl: 'https://openam.forgerock.com/am', - }, - realmPath: 'root', - }, - interceptor: { - urls: ['https://example.com/path', 'https://alt.example.com/*'], - scope: '/', - }, - }; - const expectedUrls = [ - 'https://example.com/path', - 'https://alt.example.com/*', - 'https://openam.forgerock.com/am/oauth2/realms/root/access_token', - 'https://openam.forgerock.com/am/oauth2/realms/root/connect/endSession?', - 'https://openam.forgerock.com/am/oauth2/realms/root/token/revoke', - 'https://openam.forgerock.com/am/oauth2/realms/root/userinfo', - ]; - - expect(generateUrlsToIntercept(config)).toEqual(expectedUrls); -}); - -// Test generateUrlsToIntercept with /alpha as the realmPath -test('generateUrlsToIntercept returns the expected array of URLs with /alpha as the realmPath', () => { - const config = { - forgerock: { - serverConfig: { - baseUrl: 'https://openam.forgerock.com/am', - }, - realmPath: '/alpha', - }, - interceptor: { - urls: ['https://example.com/path', 'https://alt.example.com/*'], - scope: '/', - }, - }; - const expectedUrls = [ - 'https://example.com/path', - 'https://alt.example.com/*', - 'https://openam.forgerock.com/am/oauth2/realms/root/realms/alpha/access_token', - 'https://openam.forgerock.com/am/oauth2/realms/root/realms/alpha/connect/endSession?', - 'https://openam.forgerock.com/am/oauth2/realms/root/realms/alpha/token/revoke', - 'https://openam.forgerock.com/am/oauth2/realms/root/realms/alpha/userinfo', - ]; - - expect(generateUrlsToIntercept(config)).toEqual(expectedUrls); -}); diff --git a/packages/token-vault/src/lib/worker/worker.utilities.ts b/packages/token-vault/src/lib/worker/worker.utilities.ts deleted file mode 100644 index 8621ac1a7..000000000 --- a/packages/token-vault/src/lib/worker/worker.utilities.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { - checkForMissingSlash, - getEndpointPath, - getRequestHeaders, - getRequestBodyBlob, - resolveUrl, -} from '../network/index.js'; -import { InterceptorConfig } from '../types/worker.types.js'; - -/** **************************************************************** - * @function generateUrlsToIntercept - Generate the URLs for interception - * @param {InterceptorConfig} config - The interceptor config object - * @returns {string[]} - An array of URLs to intercept - */ -export function generateUrlsToIntercept(config: InterceptorConfig) { - const forgerockBaseUrl = checkForMissingSlash(config.forgerock.serverConfig.baseUrl); - const realmPath = config.forgerock?.realmPath || 'root'; - const urls = [ - ...config.interceptor.urls, - `${resolveUrl(forgerockBaseUrl, getEndpointPath('accessToken', realmPath))}`, - `${resolveUrl(forgerockBaseUrl, getEndpointPath('endSession', realmPath))}?`, - `${resolveUrl(forgerockBaseUrl, getEndpointPath('revoke', realmPath))}`, - `${resolveUrl(forgerockBaseUrl, getEndpointPath('userInfo', realmPath))}`, - ]; - return urls; -} - -/** **************************************************************** - * @function generateOptions - Generate the options for a fetch request - * Unit testing this can't currently be done without adding `Request` to Jest's globals. - * It may not be worth the effort to do so, as this function is very simple. - * Plus, getRequestBodyBlob is already tested in shared/network/src/utilities.test.ts, and - * getRequestHeaders is already tested in shared/network/src/utilities.test.ts. - * @param {Request} request - The request object - * @returns {RequestInit} - The options object for the request - */ -export async function generateOptions(request: Request) { - return { - method: request.method, - headers: getRequestHeaders(request), - body: await getRequestBodyBlob(request), - mode: request.mode, - credentials: request.credentials, - cache: request.cache, - redirect: request.redirect, - referrer: request.referrer, - integrity: request.integrity, - }; -} diff --git a/packages/token-vault/tsconfig.json b/packages/token-vault/tsconfig.json deleted file mode 100644 index 84eef4b56..000000000 --- a/packages/token-vault/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "forceConsistentCasingInFileNames": true, - "strict": true, - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "lib": ["DOM", "WebWorker", "Webworker.Iterable", "ES2020"] - }, - "references": [ - { - "path": "./tsconfig.spec.json" - }, - { - "path": "./tsconfig.lib.json" - } - ], - "files": [], - "include": ["vite.config.ts"] -} diff --git a/packages/token-vault/tsconfig.lib.json b/packages/token-vault/tsconfig.lib.json deleted file mode 100644 index e27075fa5..000000000 --- a/packages/token-vault/tsconfig.lib.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "target": "ES2020", - "module": "ES2020", - "moduleResolution": "Bundler", - "composite": true, - "declaration": true, - "declarationMap": true, - "noImplicitOverride": false, - "noImplicitAny": false, - "noPropertyAccessFromIndexSignature": false, - "skipLibCheck": true, - "lib": ["DOM", "WebWorker", "Webworker.Iterable", "ES2020"] - }, - "include": ["src/**/*.ts"], - "exclude": ["vite.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"] -} diff --git a/packages/token-vault/tsconfig.spec.json b/packages/token-vault/tsconfig.spec.json deleted file mode 100644 index fc9070e96..000000000 --- a/packages/token-vault/tsconfig.spec.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "composite": true, - "moduleResolution": "Node16", - "module": "Node16", - "types": [ - "vitest/globals", - "vitest/importMeta", - "vite/client", - "node", - "vitest" - ] - }, - "include": [ - "vite.config.ts", - "vitest.config.ts", - "src/**/*.test.ts", - "src/**/*.spec.ts" - ] -} diff --git a/packages/token-vault/typedoc.json b/packages/token-vault/typedoc.json deleted file mode 100644 index f6e124591..000000000 --- a/packages/token-vault/typedoc.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "entryPointStrategy": "expand", - "entryPoints": ["./src/"], - "tsconfig": "tsconfig.lib.json", - "compilerOptions": {}, - "exclude": [ - "**/*.(spec|test|e2e).ts", - "**/*.mock.*", - "**/*.data.*", - "docs/**", - "tests/**", - "specs/**", - "spec/**", - "test/**" - ], - "externalPattern": ["**/node_modules/**"], - "excludeExternals": true, - "excludeInternal": false, - "excludePrivate": false, - "excludeProtected": false, - "excludeNotDocumented": false, - "externalSymbolLinkMappings": {}, - "out": "./docs", - "emit": "docs", - "theme": "typedoc-github-theme", - "name": "token-vault", - "includeVersion": true, - "readme": "./README.md", - "disableSources": false, - "excludeTags": [], - "cname": "", - "sourceLinkTemplate": "", - "gitRevision": "master", - "gitRemote": "origin", - "lang": "en", - "githubPages": true, - "hideGenerator": true, - "searchInComments": false, - "cleanOutputDir": true, - "titleLink": "", - "navigationLinks": {}, - "sidebarLinks": {}, - "commentStyle": "all", - "categorizeByGroup": true, - "defaultCategory": "Other", - "categoryOrder": [], - "sort": ["visibility", "required-first", "source-order"], - "visibilityFilters": { - "protected": true, - "private": true, - "inherited": true, - "external": true - }, - "searchCategoryBoosts": {}, - "searchGroupBoosts": {}, - "preserveWatchOutput": false, - "skipErrorChecking": false, - "validation": { - "notExported": true, - "invalidLink": true, - "notDocumented": true - }, - "requiredToBeDocumented": [], - "treatWarningsAsErrors": false, - "intentionallyNotExported": [], - "logLevel": "Verbose", - "plugin": ["typedoc-plugin-rename-defaults", "typedoc-github-theme"] -} diff --git a/packages/token-vault/vite.config.ts b/packages/token-vault/vite.config.ts deleted file mode 100644 index 975f39c1d..000000000 --- a/packages/token-vault/vite.config.ts +++ /dev/null @@ -1,48 +0,0 @@ -/// -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; - -export default defineConfig({ - root: __dirname, - cacheDir: '../../node_modules/.vite/packages/token-vault', - - build: { - lib: { - entry: 'src/index.ts', - name: 'token-vault', - formats: ['es'], - fileName(format, name) { - return `${name}.js`; - }, - }, - rollupOptions: { - output: { - dir: './dist', - preserveModules: true, - preserveModulesRoot: 'src', - }, - }, - }, - plugins: [ - dts({ - declarationOnly: false, - entryRoot: 'src', - tsconfigPath: './tsconfig.lib.json', - }), - ], - - test: { - globals: true, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - pool: 'forks', - reporters: ['default'], - watch: !process.env['CI'], - coverage: { - enabled: Boolean(process.env['CI']), - reporter: ['text', 'json', 'html'], - reportsDirectory: './coverage', - provider: 'v8', - }, - }, -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 448a3286a..2092bad50 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -318,35 +318,6 @@ importers: specifier: ^0.14.10 version: 0.14.54 - e2e/token-vault-app: - dependencies: - '@forgerock/javascript-sdk': - specifier: 4.6.0 - version: 4.6.0 - '@forgerock/token-vault': - specifier: workspace:* - version: link:../../packages/token-vault - '@forgerock/token-vault-interceptor': - specifier: workspace:* - version: link:../token-vault-interceptor - - e2e/token-vault-interceptor: - dependencies: - '@forgerock/token-vault': - specifier: workspace:* - version: link:../../packages/token-vault - - e2e/token-vault-proxy: - dependencies: - '@forgerock/javascript-sdk': - specifier: 4.6.0 - version: 4.6.0 - '@forgerock/token-vault': - specifier: workspace:* - version: link:../../packages/token-vault - - e2e/token-vault-suites: {} - packages/davinci-client: dependencies: '@forgerock/javascript-sdk': @@ -388,12 +359,6 @@ importers: specifier: 4.6.0 version: 4.6.0 - packages/token-vault: - dependencies: - '@forgerock/javascript-sdk': - specifier: 4.6.0 - version: 4.6.0 - packages: '@aashutoshrathi/word-wrap@1.2.6': resolution: From 5b8114add11897cf7e73b35879aa8bb04a3c8b2f Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Mon, 16 Dec 2024 15:24:34 -0700 Subject: [PATCH 10/14] chore: remove-sdk-reminants --- .changeset/config.json | 2 +- .eslintrc.json | 12 ++++-------- .github/labeler.yml | 4 ---- .gitignore | 3 --- nx.json | 1 - 5 files changed, 5 insertions(+), 17 deletions(-) diff --git a/.changeset/config.json b/.changeset/config.json index 7a1ecdd3d..71e3542de 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -7,7 +7,7 @@ } ], "commit": false, - "fixed": [["@forgerock/javascript-sdk", "@forgerock/ping-protect"]], + "fixed": [["@forgerock/ping-protect"]], "linked": [], "access": "public", "baseBranch": "master", diff --git a/.eslintrc.json b/.eslintrc.json index e85d9a830..8400f59bd 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -17,23 +17,19 @@ "depConstraints": [ { "sourceTag": "scope:app", - "onlyDependOnLibsWithTags": ["scope:sdk", "scope:package"] + "onlyDependOnLibsWithTags": ["scope:package"] }, { "sourceTag": "scope:e2e", - "onlyDependOnLibsWithTags": ["scope:sdk, scope:app"] - }, - { - "sourceTag": "scope:sdk", - "onlyDependOnLibsWithTags": [] + "onlyDependOnLibsWithTags": ["scope:app"] }, { "sourceTag": "scope:package", - "onlyDependOnLibsWithTags": ["scope:sdk"] + "onlyDependOnLibsWithTags": [] }, { "sourceTag": "scope:types", - "onlyDependOnLibsWithTags": ["scope:sdk"] + "onlyDependOnLibsWithTags": [] } ] } diff --git a/.github/labeler.yml b/.github/labeler.yml index da8a2a899..4bf2813f8 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -19,10 +19,6 @@ davinci-client: device-client: - packages/device-client/* -javascript-sdk: - - packages/javascript-sdk/* - - packages/javascript-sdk/**/* - ping-protect: -packages/ping-protect/* test: - e2e/**/* diff --git a/.gitignore b/.gitignore index b765258c1..1bf650934 100644 --- a/.gitignore +++ b/.gitignore @@ -9,9 +9,6 @@ e2e/**/dist */dist/* dist/* packages/*/dist/ -packages/javascript-sdk/lib-esm -packages/javascript-sdk/lib -packages/javascript-sdk/bundle/ bundles/ docs/ coverage/ diff --git a/nx.json b/nx.json index 45e772d34..2d0de4444 100644 --- a/nx.json +++ b/nx.json @@ -93,7 +93,6 @@ } } ], - "defaultProject": "javascript-sdk", "useDaemonProcess": true, "useInferencePlugins": true, "defaultBase": "develop", From 92878439e4fce0bd9223a45ace4fbfcb6ce446ae Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Mon, 16 Dec 2024 15:44:13 -0700 Subject: [PATCH 11/14] chore: remove-ping-protect-and-e2es --- e2e/autoscript-apps/.babelrc | 3 - e2e/autoscript-apps/.eslintignore | 11 - e2e/autoscript-apps/.eslintrc.json | 4 - e2e/autoscript-apps/browserslist | 13 - e2e/autoscript-apps/index.html | 75 - e2e/autoscript-apps/package.json | 28 - e2e/autoscript-apps/src/_callback/index.html | 9 - .../src/_polyfills/fast-text-encoder.js | 285 - .../authn-basic-self-service/autoscript.ts | 181 - .../src/authn-basic-self-service/index.html | 33 - .../src/authn-basic/UsernamePassword.png | Bin 110822 -> 0 bytes .../src/authn-basic/autoscript.ts | 111 - .../src/authn-basic/index.html | 33 - .../autoscript.ts | 133 - .../authn-central-login-wellknown/index.html | 33 - .../src/authn-central-login/autoscript.ts | 145 - .../src/authn-central-login/index.html | 33 - .../src/authn-central-logout/autoscript.ts | 108 - .../src/authn-central-logout/callback.html | 11 - .../src/authn-central-logout/index.html | 37 - .../src/authn-device-profile/autoscript.ts | 115 - .../src/authn-device-profile/index.html | 51 - .../authn-email-suspend/LoginWithEmail.png | Bin 178174 -> 0 bytes .../src/authn-email-suspend/autoscript.ts | 122 - .../src/authn-email-suspend/index.html | 15 - .../src/authn-no-session/UsernamePassword.png | Bin 110822 -> 0 bytes .../src/authn-no-session/autoscript.ts | 88 - .../src/authn-no-session/index.html | 33 - .../src/authn-oauth/UsernamePassword.png | Bin 110822 -> 0 bytes .../src/authn-oauth/autoscript.ts | 154 - .../src/authn-oauth/index.html | 35 - .../src/authn-otp-reg/autoscript.ts | 114 - .../src/authn-otp-reg/index.html | 33 - .../PlatformUsernamePassword.png | Bin 245873 -> 0 bytes .../src/authn-platform/autoscript.ts | 113 - .../src/authn-platform/index.html | 33 - .../src/authn-protect-metadata/autoscript.ts | 107 - .../src/authn-protect-metadata/index.html | 33 - .../src/authn-protect/autoscript.ts | 142 - .../src/authn-protect/index.html | 33 - .../authn-recaptcha-enterprise/autoscript.ts | 87 - .../src/authn-recaptcha-enterprise/index.html | 33 - .../src/authn-saml/autoscript.ts | 104 - e2e/autoscript-apps/src/authn-saml/index.html | 35 - .../src/authn-second-factor/autoscript.ts | 105 - .../src/authn-second-factor/index.html | 33 - .../authn-social-login-am/AMSocialLogin.png | Bin 212310 -> 0 bytes .../src/authn-social-login-am/autoscript.ts | 125 - .../src/authn-social-login-am/index.html | 33 - .../authn-social-login-idm/IDMSocialLogin.png | Bin 232434 -> 0 bytes .../src/authn-social-login-idm/autoscript.ts | 129 - .../src/authn-social-login-idm/index.html | 33 - .../autoscript.ts | 113 - .../index.html | 36 - .../src/authn-webauthn/autoscript.ts | 205 - .../src/authn-webauthn/index.html | 36 - .../src/authn-wellknown/UsernamePassword.png | Bin 110822 -> 0 bytes .../src/authn-wellknown/autoscript.ts | 156 - .../src/authn-wellknown/index.html | 35 - .../src/authz-token/UsernamePassword.png | Bin 110822 -> 0 bytes .../src/authz-token/autoscript.ts | 170 - .../src/authz-token/index.html | 35 - .../UsernamePassword.png | Bin 110822 -> 0 bytes .../src/authz-tree-basic-json/autoscript.ts | 138 - .../src/authz-tree-basic-json/index.html | 33 - .../UsernamePassword.png | Bin 110822 -> 0 bytes .../authz-tree-basic-redirect/autoscript.ts | 182 - .../src/authz-tree-basic-redirect/index.html | 33 - .../src/authz-tree-oauth/UsernamePassword.png | Bin 110822 -> 0 bytes .../src/authz-tree-oauth/autoscript.ts | 163 - .../src/authz-tree-oauth/index.html | 35 - .../authz-txn-basic-json/UsernamePassword.png | Bin 110822 -> 0 bytes .../src/authz-txn-basic-json/autoscript.ts | 138 - .../src/authz-txn-basic-json/index.html | 33 - .../UsernamePassword.png | Bin 110822 -> 0 bytes .../authz-txn-basic-redirect/autoscript.ts | 166 - .../src/authz-txn-basic-redirect/index.html | 33 - .../src/authz-txn-oauth/UsernamePassword.png | Bin 110822 -> 0 bytes .../src/authz-txn-oauth/autoscript.ts | 166 - .../src/authz-txn-oauth/index.html | 35 - .../config-custom-paths/UsernamePassword.png | Bin 110822 -> 0 bytes .../src/config-custom-paths/autoscript.ts | 135 - .../src/config-custom-paths/index.html | 35 - .../UsernamePassword.png | Bin 110822 -> 0 bytes .../config-request-middleware/autoscript.ts | 179 - .../src/config-request-middleware/index.html | 33 - .../config-token-storage/UsernamePassword.png | Bin 110822 -> 0 bytes .../src/config-token-storage/autoscript.ts | 137 - .../src/config-token-storage/index.html | 35 - e2e/autoscript-apps/src/fr-ico.png | Bin 2648 -> 0 bytes e2e/autoscript-apps/src/index.ts | 2 - .../src/misc-callbacks/MiscCallbacks.png | Bin 158897 -> 0 bytes .../src/misc-callbacks/autoscript.ts | 141 - .../src/misc-callbacks/index.html | 33 - .../src/register-basic/Registration.png | Bin 169927 -> 0 bytes .../src/register-basic/autoscript.ts | 149 - .../src/register-basic/index.html | 33 - e2e/autoscript-apps/tsconfig.app.json | 13 - e2e/autoscript-apps/tsconfig.json | 18 - e2e/autoscript-apps/vite.config.ts | 75 - e2e/autoscript-suites/.eslintignore | 10 - e2e/autoscript-suites/.eslintrc.json | 14 - e2e/autoscript-suites/config.ts | 39 - e2e/autoscript-suites/package.json | 31 - e2e/autoscript-suites/playwright.config.ts | 65 - e2e/autoscript-suites/src/env.config.ts | 74 - .../src/suites/authn-basic.lc.neg.test.ts | 22 - .../src/suites/authn-basic.lc.test.ts | 25 - .../authn-central-login-wellknown.test.ts | 39 - .../src/suites/authn-central-login.test.ts | 77 - .../src/suites/authn-central-logout.test.ts | 22 - .../suites/authn-device-profile.lc.test.ts | 23 - .../src/suites/authn-email-suspend.test.ts | 26 - .../src/suites/authn-no-session.lc.test.ts | 22 - .../src/suites/authn-oauth.lc.test.ts | 34 - .../src/suites/authn-otp-reg.test.ts | 31 - .../src/suites/authn-ping-marketplace.test.ts | 23 - .../src/suites/authn-platform.lc.test.ts | 22 - .../src/suites/authn-protect.test.ts | 54 - .../src/suites/authn-saml.test.ts | 36 - .../src/suites/authn-second-factor.test.ts | 25 - .../src/suites/authn-social-login-am.test.ts | 27 - .../src/suites/authn-social-login-idm.test.ts | 26 - .../src/suites/authz-token.test.ts | 99 - .../src/suites/authz-tree-basic-json.test.ts | 24 - .../suites/authz-tree-basic-redirect.test.ts | 27 - .../src/suites/authz-txn-basic-json.test.ts | 24 - .../suites/authz-txn-basic-redirect.test.ts | 26 - .../src/suites/config-custom-paths.test.ts | 22 - .../suites/config-request-middleware.test.ts | 52 - .../src/suites/config-token-storage.test.ts | 37 - .../src/suites/misc-callbacks.lc.test.ts | 30 - .../src/suites/register-basic.lc.test.ts | 44 - .../src/suites/send-request-header.test.ts | 24 - .../src/utilities/setup-and-go.ts | 110 - e2e/autoscript-suites/tsconfig.json | 18 - e2e/autoscript-suites/tsconfig.spec.json | 25 - e2e/davinci-app/package.json | 1 + e2e/davinci-suites/package.json | 5 +- e2e/davinci-suites/playwright.config.ts | 19 +- e2e/mock-api-v2/package.json | 3 +- e2e/mock-api/.babelrc | 3 - e2e/mock-api/.eslintignore | 8 - e2e/mock-api/.eslintrc.json | 18 - e2e/mock-api/package.json | 17 - e2e/mock-api/src/app/.gitkeep | 0 e2e/mock-api/src/app/app.auth.js | 36 - e2e/mock-api/src/app/constants.js | 65 - e2e/mock-api/src/app/env.config.js | 71 - e2e/mock-api/src/app/response.registration.js | 224 - e2e/mock-api/src/app/responses.js | 1267 -- e2e/mock-api/src/app/routes.auth.js | 641 - e2e/mock-api/src/app/routes.resource.js | 191 - e2e/mock-api/src/app/wait.js | 15 - e2e/mock-api/src/assets/.gitkeep | 0 .../src/environments/environment.prod.ts | 3 - e2e/mock-api/src/environments/environment.ts | 9 - e2e/mock-api/src/index.js | 57 - e2e/mock-api/tsconfig.app.json | 12 - e2e/mock-api/tsconfig.json | 13 - e2e/mock-api/tsconfig.spec.json | 9 - nx.json | 38 - package.json | 16 +- packages/ping-protect/.eslintignore | 12 - packages/ping-protect/.eslintrc.json | 18 - packages/ping-protect/CHANGELOG.md | 23 - packages/ping-protect/README.md | 138 - packages/ping-protect/package.json | 31 - packages/ping-protect/src/index.test.ts | 7 - packages/ping-protect/src/index.ts | 1 - .../src/lib/ping-protect.mock.data.ts | 150 - .../ping-protect/src/lib/ping-protect.test.ts | 97 - packages/ping-protect/src/lib/ping-protect.ts | 270 - .../src/lib/ping-protect.types.ts | 21 - .../ping-protect/src/lib/ping-signals-sdk.js | 14434 ---------------- packages/ping-protect/tsconfig.json | 30 - packages/ping-protect/tsconfig.lib.json | 27 - packages/ping-protect/tsconfig.spec.json | 30 - packages/ping-protect/typedoc.json | 68 - packages/ping-protect/vite.config.ts | 52 - packages/ping-protect/vitest.setup.ts | 1 - pnpm-lock.yaml | 5218 +----- 182 files changed, 330 insertions(+), 30551 deletions(-) delete mode 100644 e2e/autoscript-apps/.babelrc delete mode 100644 e2e/autoscript-apps/.eslintignore delete mode 100644 e2e/autoscript-apps/.eslintrc.json delete mode 100644 e2e/autoscript-apps/browserslist delete mode 100644 e2e/autoscript-apps/index.html delete mode 100644 e2e/autoscript-apps/package.json delete mode 100644 e2e/autoscript-apps/src/_callback/index.html delete mode 100644 e2e/autoscript-apps/src/_polyfills/fast-text-encoder.js delete mode 100644 e2e/autoscript-apps/src/authn-basic-self-service/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-basic-self-service/index.html delete mode 100644 e2e/autoscript-apps/src/authn-basic/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authn-basic/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-basic/index.html delete mode 100644 e2e/autoscript-apps/src/authn-central-login-wellknown/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-central-login-wellknown/index.html delete mode 100644 e2e/autoscript-apps/src/authn-central-login/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-central-login/index.html delete mode 100644 e2e/autoscript-apps/src/authn-central-logout/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-central-logout/callback.html delete mode 100644 e2e/autoscript-apps/src/authn-central-logout/index.html delete mode 100644 e2e/autoscript-apps/src/authn-device-profile/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-device-profile/index.html delete mode 100644 e2e/autoscript-apps/src/authn-email-suspend/LoginWithEmail.png delete mode 100644 e2e/autoscript-apps/src/authn-email-suspend/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-email-suspend/index.html delete mode 100644 e2e/autoscript-apps/src/authn-no-session/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authn-no-session/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-no-session/index.html delete mode 100644 e2e/autoscript-apps/src/authn-oauth/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authn-oauth/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-oauth/index.html delete mode 100644 e2e/autoscript-apps/src/authn-otp-reg/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-otp-reg/index.html delete mode 100644 e2e/autoscript-apps/src/authn-platform/PlatformUsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authn-platform/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-platform/index.html delete mode 100644 e2e/autoscript-apps/src/authn-protect-metadata/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-protect-metadata/index.html delete mode 100644 e2e/autoscript-apps/src/authn-protect/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-protect/index.html delete mode 100644 e2e/autoscript-apps/src/authn-recaptcha-enterprise/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-recaptcha-enterprise/index.html delete mode 100644 e2e/autoscript-apps/src/authn-saml/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-saml/index.html delete mode 100644 e2e/autoscript-apps/src/authn-second-factor/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-second-factor/index.html delete mode 100644 e2e/autoscript-apps/src/authn-social-login-am/AMSocialLogin.png delete mode 100644 e2e/autoscript-apps/src/authn-social-login-am/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-social-login-am/index.html delete mode 100644 e2e/autoscript-apps/src/authn-social-login-idm/IDMSocialLogin.png delete mode 100644 e2e/autoscript-apps/src/authn-social-login-idm/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-social-login-idm/index.html delete mode 100644 e2e/autoscript-apps/src/authn-webauthn-device-registration/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-webauthn-device-registration/index.html delete mode 100644 e2e/autoscript-apps/src/authn-webauthn/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-webauthn/index.html delete mode 100644 e2e/autoscript-apps/src/authn-wellknown/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authn-wellknown/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authn-wellknown/index.html delete mode 100644 e2e/autoscript-apps/src/authz-token/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authz-token/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authz-token/index.html delete mode 100644 e2e/autoscript-apps/src/authz-tree-basic-json/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authz-tree-basic-json/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authz-tree-basic-json/index.html delete mode 100644 e2e/autoscript-apps/src/authz-tree-basic-redirect/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authz-tree-basic-redirect/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authz-tree-basic-redirect/index.html delete mode 100644 e2e/autoscript-apps/src/authz-tree-oauth/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authz-tree-oauth/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authz-tree-oauth/index.html delete mode 100644 e2e/autoscript-apps/src/authz-txn-basic-json/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authz-txn-basic-json/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authz-txn-basic-json/index.html delete mode 100644 e2e/autoscript-apps/src/authz-txn-basic-redirect/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authz-txn-basic-redirect/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authz-txn-basic-redirect/index.html delete mode 100644 e2e/autoscript-apps/src/authz-txn-oauth/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/authz-txn-oauth/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/authz-txn-oauth/index.html delete mode 100644 e2e/autoscript-apps/src/config-custom-paths/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/config-custom-paths/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/config-custom-paths/index.html delete mode 100644 e2e/autoscript-apps/src/config-request-middleware/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/config-request-middleware/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/config-request-middleware/index.html delete mode 100644 e2e/autoscript-apps/src/config-token-storage/UsernamePassword.png delete mode 100644 e2e/autoscript-apps/src/config-token-storage/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/config-token-storage/index.html delete mode 100644 e2e/autoscript-apps/src/fr-ico.png delete mode 100644 e2e/autoscript-apps/src/index.ts delete mode 100644 e2e/autoscript-apps/src/misc-callbacks/MiscCallbacks.png delete mode 100644 e2e/autoscript-apps/src/misc-callbacks/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/misc-callbacks/index.html delete mode 100644 e2e/autoscript-apps/src/register-basic/Registration.png delete mode 100644 e2e/autoscript-apps/src/register-basic/autoscript.ts delete mode 100644 e2e/autoscript-apps/src/register-basic/index.html delete mode 100644 e2e/autoscript-apps/tsconfig.app.json delete mode 100644 e2e/autoscript-apps/tsconfig.json delete mode 100644 e2e/autoscript-apps/vite.config.ts delete mode 100644 e2e/autoscript-suites/.eslintignore delete mode 100644 e2e/autoscript-suites/.eslintrc.json delete mode 100644 e2e/autoscript-suites/config.ts delete mode 100644 e2e/autoscript-suites/package.json delete mode 100644 e2e/autoscript-suites/playwright.config.ts delete mode 100644 e2e/autoscript-suites/src/env.config.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-basic.lc.neg.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-basic.lc.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-central-login-wellknown.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-central-login.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-central-logout.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-device-profile.lc.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-email-suspend.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-no-session.lc.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-oauth.lc.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-otp-reg.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-ping-marketplace.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-platform.lc.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-protect.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-saml.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-second-factor.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-social-login-am.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authn-social-login-idm.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authz-token.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authz-tree-basic-json.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authz-tree-basic-redirect.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authz-txn-basic-json.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/authz-txn-basic-redirect.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/config-custom-paths.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/config-request-middleware.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/config-token-storage.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/misc-callbacks.lc.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/register-basic.lc.test.ts delete mode 100644 e2e/autoscript-suites/src/suites/send-request-header.test.ts delete mode 100644 e2e/autoscript-suites/src/utilities/setup-and-go.ts delete mode 100644 e2e/autoscript-suites/tsconfig.json delete mode 100644 e2e/autoscript-suites/tsconfig.spec.json delete mode 100644 e2e/mock-api/.babelrc delete mode 100644 e2e/mock-api/.eslintignore delete mode 100644 e2e/mock-api/.eslintrc.json delete mode 100644 e2e/mock-api/package.json delete mode 100644 e2e/mock-api/src/app/.gitkeep delete mode 100644 e2e/mock-api/src/app/app.auth.js delete mode 100644 e2e/mock-api/src/app/constants.js delete mode 100644 e2e/mock-api/src/app/env.config.js delete mode 100644 e2e/mock-api/src/app/response.registration.js delete mode 100644 e2e/mock-api/src/app/responses.js delete mode 100644 e2e/mock-api/src/app/routes.auth.js delete mode 100644 e2e/mock-api/src/app/routes.resource.js delete mode 100644 e2e/mock-api/src/app/wait.js delete mode 100644 e2e/mock-api/src/assets/.gitkeep delete mode 100644 e2e/mock-api/src/environments/environment.prod.ts delete mode 100644 e2e/mock-api/src/environments/environment.ts delete mode 100644 e2e/mock-api/src/index.js delete mode 100644 e2e/mock-api/tsconfig.app.json delete mode 100644 e2e/mock-api/tsconfig.json delete mode 100644 e2e/mock-api/tsconfig.spec.json delete mode 100644 packages/ping-protect/.eslintignore delete mode 100644 packages/ping-protect/.eslintrc.json delete mode 100644 packages/ping-protect/CHANGELOG.md delete mode 100644 packages/ping-protect/README.md delete mode 100644 packages/ping-protect/package.json delete mode 100644 packages/ping-protect/src/index.test.ts delete mode 100644 packages/ping-protect/src/index.ts delete mode 100644 packages/ping-protect/src/lib/ping-protect.mock.data.ts delete mode 100644 packages/ping-protect/src/lib/ping-protect.test.ts delete mode 100644 packages/ping-protect/src/lib/ping-protect.ts delete mode 100644 packages/ping-protect/src/lib/ping-protect.types.ts delete mode 100644 packages/ping-protect/src/lib/ping-signals-sdk.js delete mode 100644 packages/ping-protect/tsconfig.json delete mode 100644 packages/ping-protect/tsconfig.lib.json delete mode 100644 packages/ping-protect/tsconfig.spec.json delete mode 100644 packages/ping-protect/typedoc.json delete mode 100644 packages/ping-protect/vite.config.ts delete mode 100644 packages/ping-protect/vitest.setup.ts diff --git a/e2e/autoscript-apps/.babelrc b/e2e/autoscript-apps/.babelrc deleted file mode 100644 index aed1b9711..000000000 --- a/e2e/autoscript-apps/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": [["@nx/js/babel", { "useBuiltIns": "entry" }]] -} diff --git a/e2e/autoscript-apps/.eslintignore b/e2e/autoscript-apps/.eslintignore deleted file mode 100644 index b7dc1d3a2..000000000 --- a/e2e/autoscript-apps/.eslintignore +++ /dev/null @@ -1,11 +0,0 @@ -node_modules -*.md -LICENSE -.babelrc -.env* -.bin -dist -*.html -browserslist -.eslintignore -.eslintrc.json \ No newline at end of file diff --git a/e2e/autoscript-apps/.eslintrc.json b/e2e/autoscript-apps/.eslintrc.json deleted file mode 100644 index d4a111816..000000000 --- a/e2e/autoscript-apps/.eslintrc.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["**/*"] -} diff --git a/e2e/autoscript-apps/browserslist b/e2e/autoscript-apps/browserslist deleted file mode 100644 index 8d6179367..000000000 --- a/e2e/autoscript-apps/browserslist +++ /dev/null @@ -1,13 +0,0 @@ -# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers -# For additional information regarding the format and rule options, please see: -# https://github.com/browserslist/browserslist#queries -# -# If you need to support different browsers in production, you may tweak the list below. - -last 1 Chrome version -last 1 Firefox version -last 2 Edge major versions -last 2 Safari major version -last 2 iOS major versions -Firefox ESR -not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/e2e/autoscript-apps/index.html b/e2e/autoscript-apps/index.html deleted file mode 100644 index 1a85e6f0e..000000000 --- a/e2e/autoscript-apps/index.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - E2E Test Index | ForgeRock JavaScript SDK - - - - - - AuthN: Basic
- AuthN: Self Service
- AuthN: Central Login
- AuthN: Central Logout Ping
- AuthN: Device Profile
- AuthN: Ping Protect
- AuthN: Email Suspend
- AuthN: Recaptcha Enterprise
- AuthN: No Session
- AuthN: OAuth
- AuthN: WellKnown
- AuthN: Platform Login
- AuthN: Second Factor
- AuthN: SAML
- AuthN: Social Login AM
- AuthN: Protect Metadata AM
- AuthN: Social Login IDM
- AuthN: WebAuthn
- - AuthN: WebAuthN Device Registration - -
- AuthN: OTP Registration (QR Code)
- AuthZ: Token
- - AuthZ: Tree-based with Basic Login and Redirect response - -
- - AuthZ: Tree-based with Basic Login and JSON response - -
- AuthZ: Tree-based with OAuth
- AuthZ: Txn-based with Basic Login and Redirect response - -
- AuthZ: Txn-based with Basic Login and JSON response - -
- AuthZ: Txn-based with OAuth
- Config: Custom Path
- Config: Request Middleware
- Config: Token Storage
- Misc Callbacks
- Registration
- UMD Bundle Check
- - diff --git a/e2e/autoscript-apps/package.json b/e2e/autoscript-apps/package.json deleted file mode 100644 index 48feafa67..000000000 --- a/e2e/autoscript-apps/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "@forgerock/autoscript-apps", - "version": "0.0.0", - "private": true, - "type": "module", - "dependencies": { - "@forgerock/javascript-sdk": "4.6.0", - "@forgerock/device-client": "workspace:*", - "@forgerock/ping-protect": "workspace:*", - "rxjs": "^7.4.0" - }, - "description": "apps for e2e on js sdk", - "license": "ISC", - "repository": { - "type": "git", - "url": "git+https://github.com/ForgeRock/forgerock-javascript-sdk.git" - }, - "bugs": { - "url": "https://github.com/ForgeRock/forgerock-javascript-sdk/issues" - }, - "homepage": "https://github.com/ForgeRock/forgerock-javascript-sdk#readme", - "scripts": { - "build": "vite build --watch false", - "build:watch": "vite --watch", - "serve": "vite dev", - "preview": "vite preview" - } -} diff --git a/e2e/autoscript-apps/src/_callback/index.html b/e2e/autoscript-apps/src/_callback/index.html deleted file mode 100644 index f106e0a38..000000000 --- a/e2e/autoscript-apps/src/_callback/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - - Logged In | E2E Test | ForgeRock JavaScript SDK Samples - - - - diff --git a/e2e/autoscript-apps/src/_polyfills/fast-text-encoder.js b/e2e/autoscript-apps/src/_polyfills/fast-text-encoder.js deleted file mode 100644 index 2cb076e6b..000000000 --- a/e2e/autoscript-apps/src/_polyfills/fast-text-encoder.js +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Copyright 2017 Sam Thorogood. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -/** - * @fileoverview Polyfill for TextEncoder and TextDecoder. - * - * You probably want `text.min.js`, and not this file directly. - */ - -(function (scope) { - 'use strict'; - - // fail early - if (scope['TextEncoder'] && scope['TextDecoder']) { - return false; - } - - // used for FastTextDecoder - const validUtfLabels = ['utf-8', 'utf8', 'unicode-1-1-utf-8']; - - /** - * @constructor - */ - function FastTextEncoder() { - // This does not accept an encoding, and always uses UTF-8: - // https://www.w3.org/TR/encoding/#dom-textencoder - } - - Object.defineProperty(FastTextEncoder.prototype, 'encoding', { value: 'utf-8' }); - - /** - * @param {string} string - * @param {{stream: boolean}=} options - * @return {!Uint8Array} - */ - FastTextEncoder.prototype['encode'] = function (string, options = { stream: false }) { - if (options.stream) { - throw new Error(`Failed to encode: the 'stream' option is unsupported.`); - } - - let pos = 0; - const len = string.length; - - let at = 0; // output position - let tlen = Math.max(32, len + (len >>> 1) + 7); // 1.5x size - let target = new Uint8Array((tlen >>> 3) << 3); // ... but at 8 byte offset - - while (pos < len) { - let value = string.charCodeAt(pos++); - if (value >= 0xd800 && value <= 0xdbff) { - // high surrogate - if (pos < len) { - const extra = string.charCodeAt(pos); - if ((extra & 0xfc00) === 0xdc00) { - ++pos; - value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000; - } - } - if (value >= 0xd800 && value <= 0xdbff) { - continue; // drop lone surrogate - } - } - - // expand the buffer if we couldn't write 4 bytes - if (at + 4 > target.length) { - tlen += 8; // minimum extra - tlen *= 1.0 + (pos / string.length) * 2; // take 2x the remaining - tlen = (tlen >>> 3) << 3; // 8 byte offset - - const update = new Uint8Array(tlen); - update.set(target); - target = update; - } - - if ((value & 0xffffff80) === 0) { - // 1-byte - target[at++] = value; // ASCII - continue; - } else if ((value & 0xfffff800) === 0) { - // 2-byte - target[at++] = ((value >>> 6) & 0x1f) | 0xc0; - } else if ((value & 0xffff0000) === 0) { - // 3-byte - target[at++] = ((value >>> 12) & 0x0f) | 0xe0; - target[at++] = ((value >>> 6) & 0x3f) | 0x80; - } else if ((value & 0xffe00000) === 0) { - // 4-byte - target[at++] = ((value >>> 18) & 0x07) | 0xf0; - target[at++] = ((value >>> 12) & 0x3f) | 0x80; - target[at++] = ((value >>> 6) & 0x3f) | 0x80; - } else { - continue; // out of range - } - - target[at++] = (value & 0x3f) | 0x80; - } - - // Use subarray if slice isn't supported (IE11). This will use more memory - // because the original array still exists. - return target.slice ? target.slice(0, at) : target.subarray(0, at); - }; - - /** - * @constructor - * @param {string=} utfLabel - * @param {{fatal: boolean}=} options - */ - function FastTextDecoder(utfLabel = 'utf-8', options = { fatal: false }) { - if (validUtfLabels.indexOf(utfLabel.toLowerCase()) === -1) { - throw new RangeError( - `Failed to construct 'TextDecoder': The encoding label provided ('${utfLabel}') is invalid.`, - ); - } - if (options.fatal) { - throw new Error(`Failed to construct 'TextDecoder': the 'fatal' option is unsupported.`); - } - } - - Object.defineProperty(FastTextDecoder.prototype, 'encoding', { value: 'utf-8' }); - - Object.defineProperty(FastTextDecoder.prototype, 'fatal', { value: false }); - - Object.defineProperty(FastTextDecoder.prototype, 'ignoreBOM', { value: false }); - - /** - * @param {!Uint8Array} bytes - * @return {string} - */ - function decodeBuffer(bytes) { - return Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('utf-8'); - } - - /** - * @param {!Uint8Array} bytes - * @return {string} - */ - function decodeSyncXHR(bytes) { - const b = new Blob([bytes], { type: 'text/plain;charset=UTF-8' }); - const u = URL.createObjectURL(b); - - // This hack will fail in non-Edgium Edge because sync XHRs are disabled (and - // possibly in other places), so ensure there's a fallback call. - try { - const x = new XMLHttpRequest(); - x.open('GET', u, false); - x.send(); - return x.responseText; - } catch (e) { - return decodeFallback(bytes); - } finally { - URL.revokeObjectURL(u); - } - } - - /** - * @param {!Uint8Array} bytes - * @return {string} - */ - function decodeFallback(bytes) { - let inputIndex = 0; - - // Create a working buffer for UTF-16 code points, but don't generate one - // which is too large for small input sizes. UTF-8 to UCS-16 conversion is - // going to be at most 1:1, if all code points are ASCII. The other extreme - // is 4-byte UTF-8, which results in two UCS-16 points, but this is still 50% - // fewer entries in the output. - const pendingSize = Math.min(256 * 256, bytes.length + 1); - const pending = new Uint16Array(pendingSize); - const chunks = []; - let pendingIndex = 0; - - for (;;) { - const more = inputIndex < bytes.length; - - // If there's no more data or there'd be no room for two UTF-16 values, - // create a chunk. This isn't done at the end by simply slicing the data - // into equal sized chunks as we might hit a surrogate pair. - if (!more || pendingIndex >= pendingSize - 1) { - // nb. .apply and friends are *really slow*. Low-hanging fruit is to - // expand this to literally pass pending[0], pending[1], ... etc, but - // the output code expands pretty fast in this case. - chunks.push(String.fromCharCode.apply(null, pending.subarray(0, pendingIndex))); - - if (!more) { - return chunks.join(''); - } - - // Move the buffer forward and create another chunk. - bytes = bytes.subarray(inputIndex); - inputIndex = 0; - pendingIndex = 0; - } - - // The native TextDecoder will generate "REPLACEMENT CHARACTER" where the - // input data is invalid. Here, we blindly parse the data even if it's - // wrong: e.g., if a 3-byte sequence doesn't have two valid continuations. - - const byte1 = bytes[inputIndex++]; - if ((byte1 & 0x80) === 0) { - // 1-byte or null - pending[pendingIndex++] = byte1; - } else if ((byte1 & 0xe0) === 0xc0) { - // 2-byte - const byte2 = bytes[inputIndex++] & 0x3f; - pending[pendingIndex++] = ((byte1 & 0x1f) << 6) | byte2; - } else if ((byte1 & 0xf0) === 0xe0) { - // 3-byte - const byte2 = bytes[inputIndex++] & 0x3f; - const byte3 = bytes[inputIndex++] & 0x3f; - pending[pendingIndex++] = ((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3; - } else if ((byte1 & 0xf8) === 0xf0) { - // 4-byte - const byte2 = bytes[inputIndex++] & 0x3f; - const byte3 = bytes[inputIndex++] & 0x3f; - const byte4 = bytes[inputIndex++] & 0x3f; - - // this can be > 0xffff, so possibly generate surrogates - let codepoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4; - if (codepoint > 0xffff) { - // codepoint &= ~0x10000; - codepoint -= 0x10000; - pending[pendingIndex++] = ((codepoint >>> 10) & 0x3ff) | 0xd800; - codepoint = 0xdc00 | (codepoint & 0x3ff); - } - pending[pendingIndex++] = codepoint; - } else { - // invalid initial byte - } - } - } - - // Decoding a string is pretty slow, but use alternative options where possible. - let decodeImpl = decodeFallback; - if (typeof Buffer === 'function' && Buffer.from) { - // Buffer.from was added in Node v5.10.0 (2015-11-17). - decodeImpl = decodeBuffer; - } else if ( - typeof Blob === 'function' && - typeof URL === 'function' && - typeof URL.createObjectURL === 'function' - ) { - // Blob and URL.createObjectURL are available from IE10, Safari 6, Chrome 19 - // (all released in 2012), Firefox 19 (2013), ... - decodeImpl = decodeSyncXHR; - } - - /** - * @param {(!ArrayBuffer|!ArrayBufferView)} buffer - * @param {{stream: boolean}=} options - * @return {string} - */ - FastTextDecoder.prototype['decode'] = function (buffer, options = { stream: false }) { - if (options['stream']) { - throw new Error(`Failed to decode: the 'stream' option is unsupported.`); - } - - // Accept Uint8Array instances as-is. - let bytes = buffer; - - // Look for ArrayBufferView, which isn't a real type, but basically represents - // all the valid TypedArray types plus DataView. They all have ".buffer" as - // an instance of ArrayBuffer. - if (!(bytes instanceof Uint8Array) && bytes.buffer instanceof ArrayBuffer) { - bytes = new Uint8Array(buffer.buffer); - } - - return decodeImpl(/** @type {!Uint8Array} */ (bytes)); - }; - - scope['TextEncoder'] = FastTextEncoder; - scope['TextDecoder'] = FastTextDecoder; -})(typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : this); diff --git a/e2e/autoscript-apps/src/authn-basic-self-service/autoscript.ts b/e2e/autoscript-apps/src/authn-basic-self-service/autoscript.ts deleted file mode 100644 index 06d97773d..000000000 --- a/e2e/autoscript-apps/src/authn-basic-self-service/autoscript.ts +++ /dev/null @@ -1,181 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { deviceClient } from '@forgerock/device-client'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'https://openam-sdks.forgeblocks.com/am'; - const realmPath = url.searchParams.get('realmPath') || 'alpha'; - const un = url.searchParams.get('un') || 'demo'; - const platformHeader = url.searchParams.get('platformHeader') === 'true' ? true : false; - const pw = url.searchParams.get('pw') || 'Demo1234!'; - const tree = url.searchParams.get('tree') || 'selfservice'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - middleware: [ - (req, action, next) => { - switch (action.type) { - case 'START_AUTHENTICATE': - if (action.payload.type === 'service' && typeof action.payload.tree === 'string') { - console.log('Starting authentication with service'); - } - break; - case 'AUTHENTICATE': - if (action.payload.type === 'service' && typeof action.payload.tree === 'string') { - console.log('Continuing authentication with service'); - } - break; - } - next(); - }, - ], - platformHeader, - realmPath, - tree, - clientId: 'WebOAuthClient', - scope: 'profile email me.read openid', - redirectUri: `${window.location.origin}/src/_callback/index.html`, - serverConfig: { - baseUrl: amUrl, - timeout: 3000, - }, - }); - - console.log(`${window.location.origin}/_callback/index.html`); - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - from(forgerock.FRAuth.start()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap(async (step) => { - try { - const tokens = await forgerock.TokenManager.getTokens(); - console.log('here', tokens); - return tokens; - } catch (err) { - console.log(err); - } - return false; - }), - rxDelay(delay), - mergeMap(async () => { - const client = deviceClient({ - realmPath, - tree, - clientId: 'WebOAuthClient', - scope: 'profile email me.read openid', - serverConfig: { - baseUrl: amUrl, - timeout: 3000, - }, - }); - - try { - const user = await forgerock.UserManager.getCurrentUser(); - - //const { result: deviceArr } = await client.oath.get({ - // userId: user.sub, - // realm: 'alpha', - //}); - // - //console.log('retrieveOathDevices', deviceArr); - // - //const [{ _id: id, _rev, deviceManagementStatus, ...device }] = deviceArr; - - //const oathDeviceDeleted = await client.oath.delete({ userId: user.sub, id, ...device }); - - //console.log(oathDeviceDeleted); - - //const { result: pushDevices } = await client.push.get({ - // userId: user.sub, - // realm: 'alpha', - //}); - // - const bindingDevices = await client.boundDevices.get({ - userId: user.sub, - realm: 'alpha', - }); - //console.log('bindingDevices', bindingDevices); - // - //const webauthnDevices = await client.webauthn.get({ - // userId: user.sub, - // realm: 'alpha', - //}); - //console.log('webauthn devices', webauthnDevices); - //const { - // _id: userId, - // _rev: ignoreThis, - // deviceManagementStatus: ignoreDeviceManagementStatus, - // ...rest - //} = webauthnDevices.result[0]; - // - //const updatedDevice = await client.webauthn.update({ - // userId: user.sub, - // realm: 'alpha', - // ...rest, - // deviceName: 'RyansDeviceUpdated!!', - //}); - //console.log('updatedDevice', updatedDevice); - // - const bindingDeviceNameUpdated = await client.boundDevices.update({ - userId: user.sub, - realm: 'alpha', - ...bindingDevices.result[0], - deviceName: 'RyanDevice', - }); - - console.log('bindingDeviceNameUpdated', bindingDeviceNameUpdated); - - const removedDevice = await client.boundDevices.delete({ - realm: 'alpha', - userId: user.sub, - ...bindingDeviceNameUpdated, - }); - //console.log('removeDevice', removedDevice); - } catch (err) { - console.log('failed', err); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - }, 250); -} -autoscript(); - -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-basic-self-service/index.html b/e2e/autoscript-apps/src/authn-basic-self-service/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authn-basic-self-service/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-basic/UsernamePassword.png b/e2e/autoscript-apps/src/authn-basic/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY z@7!RizKxEJRV|ZK{^MTbhtx?P>ead%&8J*{IK0o5xUYL9Lq3%vTmD~00p|7Xx<`-F z-xnlaa(K~kD=MiiZTA8w+;03o;Rh2rqZ-+(97F*9qvPm<;8O}Eh{Z6;`kOKj@0%1)oE$#4)!`Lp=Y$~I!5 zL#6uaQ98@Pc{$%fZQp9x1zN zXR@zoU1YGh8mldN_%02-q}8G>bJ(f9GJB%=NHjmPXG(U)$i5YGa%kC>)6w|b`IfeO z7b#GqPU!qjV!Y)AlK#)|zbk4p^7#YbB})vUxiXZn{;LsE7|IV{qH#wD^W4O2Un|@| zj>uS~8Xbjm{-M1^64aq#x%J{B=&rB3gJ3bGp@g{%sT>cK4SoHO15KCZII6cWetH&*ShSzp+Tl3mvK z`praQJRTMclvE9@B@Ou1t!=-}=$SV^QKCiXW2FDSXqJBO!5WbR@twW@QJR&bFG!F7 z8t-Jp|Cy=>&jH3&>=ywW4;daqLL;(pHC1)z#Ty%XU)Y^lpaR3rr@~Rx`)r{T;uR`!LIzA=@K9x4LBHa8g&{pX^R;mBW8s&3v38(&y?bcR zhmb^%_vpB{jXHc~Dg&JQRtxC6oDVnREt-W4#gZOPcNYlus7Uo2eyTyfD!gJkMSSJ4 zMG(|gz^xpFgIwsRoOPxbfCpe-vBibx+tQqhwd+!Y!?)Q)LvH`yHU9zs$!{Kd5%oH- zu+@~)!v_uRoW$U+c^|!wX6Ce24ub{D1J%nIgd5@^_yx~S9AZXMUJQNWpB-QR-NLok zuC$O*Ib|W42KUUZS6ci<4wOpW7DSI`*uTQ=w~7g*Q@hZCl4B~~B5|ywsd!|mw?9Fm zT<_WII`3N+KF5bUvKR*QSne8eupHlTeeBP8j>4)>E7S3FPWQ1-yH*G0&$+k$NE}?t zdF(5dDJ6K%$}oyw(m8uH;ipbzSiV$|BRSx{3dPc{6+pTD^3saT`b0(6tN{jVQQNgs zRllI0v2P?4{}idO)omYyF~s(P^jj)V7fMv{`T*0rU#3r*jKS`7=&>&UiQFalZW(Gi zvVc(KEH9u~86z9eBy&B6bjnqAB{*}sK{1f&tZ(6-j&KG@(|jx%7r>#Likz8^noRF_ zQf1`2k?Ks!*Yo=eI{ZN^EVB{k=XRL1V`hkUm6icS005f))hI24MzeOQ>cM|gI<$QE zFP7#FT_$n;-QtBVShDjy0wX|f44@pOGT5+L^l|T^n%ETY$*Fbqg`IPugS{Y5rNL(R ziv#ZR95BgnaL{tIAhX~X-#v;7?x?)zaTp3-_MF?EMh~r)e34tgo+bMx)dnULv!)+3 zMbu_@v;tutY_;aE3k)_))mFw)cD}s67jQ&a%mw;;%Ui9oVNT4BmJq9LcWt3OC)*6y zwnzo9UmqY32VU8htNG^l2iM=Vpyo3hTh5q;Hy*SKFFxR5IPv>*a|U=&4xe9hX^mGt zaSqV7z)1ZleE(4YS^0qbM!T0pgV*c2+f>6(o~92FX2V}m2AZrK_GHjh}PVC%frJ%(%jn5n(w4+{t|Nu^LYY1 zNC_A{c0>^liURs27X(x;!%CMlzF^5x5XLM#XAKO%HVm=|xY_ak1L}6LiV->d??P`> zRu{&U&^+%@Lq%$XQjend^@&tfDm_YN^&)=b-ABYsieSg`PAFeWX>H8KoFRf8yT^~7 z2!iAbWxM}vUmr0^B_O_opU)(RmUybDwGC;&{+tvdBj64*O8!afN{Db1{%zG=`;Hx! zCfOz?QMv>jP0@|LV0;wR6Vgcj_<10~#R48AC4j>7s{x~g8x}jdr3U5^e;rfJBISZO zEuDK&%xmCUk`xW`~qb&ob%-or}7Y;?w z2TqTc9IYuyASmzFXDgo1V^nUm%SIC3FrFfJ4Ner4_j4P+5dRMCkX9|z)Q|PQkWqQu zt~EzDb-779zg8Qcav83TH!P*!c=hwEJ24FXRl#=ev15-wiN9XQX?yyUm$rJ5>=AA4 z8IfPTXueI?O|NbX>)K8FzA)rXlB;=ZM$fR<2Ap7i{tQC|JbB~i2h$b0wkkuwpK+xA zJB2(4p_^?2T>|Nq3?2yXEV;U)hd;h!>z=?#rQ))D0(Nb?I`Ahnv1jiM)0T-=n9w*h zdu)gJ>B;LJ-*KcwJFfM=Gon95COj@_S&m4S<)`rLNCl!%zSJ_4*;?n_S{X}})Pw#T z(qgRKLSdUS6MutT&~L$Xf(yl{g28A;0XZ(+OT<_-~8WTmR>LB ztxh7?#71_WlcZ6-dCinob@B2PRQu1JW3ckw#O0rNIM+&chug3IywmC^E~gjM`wC0l z^;vrjjd;KyRlM|(PBgjdzbS9qfx~#^>75@;n#n*9cc(}04_6h&$5AdNS==Y#dh7=j z$?J0eCY0P~bxq-g4z24HGyV+On$X9T&oY)6D~xx?z`?n+RqMpFk~PB(kLpK4w{Y1X zGZLK&jmsWyt*x~^-Kd+ZaJy3xs$)Q1z#U0yZA|y9W<|9H+*dx0KcBr{Zq3$})MCdO3Zo(z`Y2U|9|( zCGGA2v_3O>U~QoQs0e_n&Y9#rRn}H)+)3*={Of4Es3iBA<99^)hmM|SHUb$B6sj`0 zPM7m$l3()W;Y(i~NP7@Oo;&+T=d%-*f=ViweZ-V#tF8H3IS^Si@j?K^XFp!ZtKlAO zIR<%N3(aKr#MRHmL2$BD`Ly>69eREJq_X6xd6PleHTkFczw3*WsIf^LwtsLt$_3SX ziO|;CxAl*NpihK4ulVvQ7AQJwWne%1Y`?oE9$sOY+A3`4Q`8hMkJ4t_;gfaI$&WOJ zM=m`WH{(i@aef*f06uxzkoEo2uqI%8PY}0}r1@PBLhyksIbuRTV`9Yj5(gAFfqE?< z^l}MTDkx^N_9j+^2(B-zOFgbbH}2aq%4Ie0fcSd_y7iv4%N3_w)GU`ud_0j+gL0TQ^?qkZa*OJAkpIGs@0C}frg&r zGXrj#ucwi%+|$p38ARAXv=+g`05mU~Am@QecoiZ}B1t6^(qh=*QxAi=K+*{Q;cpVj zv}gZ?6XYPyn4u`?G%l{s)YASaA=leo;4eO^$8m}}%H4SQ(GwFmEZ71tv;KC=rA%3a(f1JP1#*)bp9yCQ z;RBe~UF5JKV5NRIR$z*I;~%e?nrm8h@>)in`U_mbn^s^?o_1|i5)u;n?p4m$pjJ1n z*)&wOA-oXXH-Pxqenxcmx5jt?ESP~)Jh-&G_kf~ci3VqL9S82somMT(!0t0@bLwm{ zLoUXpHh2MR@3S&))<|79wfmf>|9(=venanUf{3bB=k4{=y*3h@?kqZ1IO(6Avvp!Ld-A;IXLNzhEn^tQ(BS3#tCyAmFLP@9 z<-HUepBWwK0KsWI$y8IJi|OR=pO(_Lv)1AY&+EGBFI_Z0_O zmyhl!RrCT@7fUsL`FU`b{i&O(L!;Azp!aalNb9-vtz=F8Y#ZGpIZXC1%1d5uG@+4+ z^LcSiO!)2y)KX4iC!1$ys0zT)R4KugTD5(pV0kJ|ffl4FHDt=|m@0A9!BzMvo_qg8 zJk*4T$gd7D$g|1?%v7bU*bs;Q+25g7=xps=v_L|@$WQn%i7e=vgLT^N62S(qP;Z&5|4#BYTlH;1skE#D$NnbzgM`W@$kwZvq zV&XkiU?_^>O#}l@SPt(E*HY;7zwm(NOYd6})j^3(#hzwvsy!oo&+=F~{5)mHRu6puj zmq-5LVw>zbwDskVH?t;L1WEc0X{Z=rkYa5{QR*PewyEN`Aq}ac1-mAz>Nm9^Fng;I z26Na0bItm2dpC&ek+mNbp4BqD)jv5_B}`mM)5{f0WHVDCY5=%#%Aby{aSd(q=v^H! zK+NcP){mkt66gM?f*V@V8--EK>HqgMw(iU1kS#)lf9HF@vMN z%!!an88T=pu??0^&&Rx$UgV(^(4(=yfO8zh;D;?xesw9R97PqRc|8U1!3%%4E*|H@ z7)%-OJ6d3YvzR4BooOloz$Zl%X$LYMeEPj;43#wAQR_t-mcp!uPmD+RbUb`9b!?3# zIVLSDE|~FblXsSmggtmofi)2Xg>^*?M;|x^^{yjg)!S!%BHDXsa@k55w}pSir0Cyx z-+yYxr!z!f*=V}zo-TxueGyMTm@ujDQ!4ejwYNUU6;LmV`H&6%n!Wpih1u)SK*;Yb zYYsRr5(0l_`GIPDGL&g;N*kf}OoRKSiN3`fKK^WnZ97G6rLOM%8Od{85ckyg*Mah4 z`cM~`jfC8_VnB*s;<+e~jnjp|WpyAoY*ixOT2fO8Gjex;_WdT~#+KHvnD?nSm1RU! zPm0~%J=bWgb#0!uOD7hykmd)k*jOJ@(n0MH=pX2J(|xF$a>_4@xBvah1wtpfW_ zTPaTmSwDOd*xa!x5u75?Z~yVtP!3r1n+pk~c`^l#@^Q1QaYC}1L-+=xEz92P`W;6@ zuVW2?{To3bfUQyuYIsG7pK=I?S4Pm5yqM*BcN0q0g>AZRBgr=KAWM_i4KX%u&xZeYFi{F% ztTkAbX3y7L7%tMGAsYX#V)36$tWS);fU(rR4qTY&ovm7*F~QaSGre+_KkT3&H4I|q zr~P=y^f*cf2ssEdAHcHPl}AeeUJKh-)pO}XRL8vR-|mTiOi_s@OpG%Us`&UTZ}o3D z@?C5JqXS}HlecEeWd9j&U;C49(Ae|IwV|9RXE6G621IElGVn-$K} zz66J4;R8E|QNto`cSBVVTQy_!>SvURZ#z4_tbKb6jrS?u6J0Xpe$7t5vZ~l!nR=`G z0v7;mGW< z%5g-bnRwl^?Fpk?U}>Bt$R0mwzvL|}*||7B)^RGhXd`nPb16;aR4t3uJD7Wz+yL}| z`xHrf)(d{jY(eN6!oycS@0(K+yaDJteglIQOGtZP-_aliy>GnV==Bh|I$^&{Xwd|$ zC?QYDi{I430|6dC*5V7&E}DUe+V{n!7oHJDI(Emj!#8K*764TnPjGj~H+%$49!wbt z8@b5S|K#HwxTY3NsAe28nt%{W%JP{g6erHcd z?B3j3Xa=eboLcMZkdDH&W_%I^6fwV64G5QoGCCxbL?j_62OT+KBS(n!+U4q-0Zzt2 zCEbf_bN*Wqx=Auwz^I!0E6S=78`_jy`h%VFB6{|~IE^-&dA(>YS##wU?T2y+Kde`ON~Rw- zNLI9`{OZB81Z4Q#2u(o@?`e$BOClI4LY0BcZNYf+4S@g{Y({Rj-9pflr@f^KVo824 zl)XIYT6LD(J<1dRo~@g9ibpbv9o_q_d20()*jZW6HX2Ik35&4Sd%8)cBR=$z7Mgpa z?}Dkxn#6%y>}m0*; zlPFuwGbew2nh>^;<&4cIDdZpQ9)%Be=hEDL*Y z@420xZgSQOrvdw5X+t3F?E&mZi1+Z$74P!}U}d`{tqj5Or0(&5=s|NH!U#)pGi_V_ zKv8eucC{IKny0fRuy`BNGS(hJ~#QdS})v2Nhn1 zJtquG|i;w)697??~gS9#jQ}YxdK?E6JMO>L3X`oB5BoP+@RHX}STEza8r>@Ea_- z@J|2=#W0(8cwZEBRHj@M(RP9jXn2?o!{NLOZ;|dh*+@Xjb|Sde)sfd0F=dT#8(d>+ zX^GaGb+(qis-fS&r zLs*?!o^JfDvRjV!FjLtDz~L=GW)xl>n1%q&DUNUyI|(r|?hwCI5H^q8D+5U58h+F5__!EWRxI3%$d3 z1Y(}en7G^$_k|tkLG!?w!*H8HXCKI6Y7X(1Rze1|et6Y% z3C{q6?!>jOM(3csj0_Q<#OSx$5j{`dK!dP!ko@}D$kJJ!?GI8azCC64iEAzb7tn#c zTZrfcnz}mZ+a;2E{oI zW4XDkNl<3aJDp=Y+J_fH^5ILbJIc)L!ykJx?zYIdAx6K`UYtbb{0V*P!?=syUF~*= z=YXXAux4!fFMdEdP36d~K2Nm=*#s@~v@TVA)7f9x1H5%(fhg+5g9na4QxiPbs|JE|58EM#9S71 zL&QPik<4A6d_!Nr+$WywmWdN{vNg31#WDu%??qLKyO!bLX z@305gIWDM&j>~{t0|xJe0>HcLZ$fMvGL;sNtp9ot01LpV9KEFo&&0~-V5^=akg?mK z8LJ#&#VeW4R3fhHrXk5{p3_uF1ns(hW#@J7o?bYm}2yYo*ib; z@3#I=0?1>MiD4c`PehR_*riF!R!fS`p_r5_z~!0(i12nb#8c9lWt&imBHaK>Qw3Cp z<7DS{TB0M(OU`{0Lp*e_EVZuN$t~D`7OsK*Z0FYhjiop{0wB}lw86JZgR_n8T>k&Q zDDR7xcuf@kVBr)v-TmQnWb(NEJoo$fOUmN>L%=3bwOBvb>KfJp!qqvM6D6za0};qH z58RClp2xBc{i{%vKz!IBNTx4S9~AX4J>_pwRzR-DjG+QHMAPowvL81;6G*3inZ3CyuR;^^(bF0{)?z9&5HJGpj2}#Sr#R z;f9%iJm31SXY*6I3>tj2JJqWUsySP?5ijtIHB6FI?(;Sb*VL(orUm_mtBWc@_6I+J zC>xmK0fxNdK6gw~EWzzrT7kOvKXKIWIa>jYeZw~Bt?lY%CmF(P38SYB#GeF(_Pe|k z)92l;{-DQOf4Yep!c!l2gF~g3rCWWh_R@>MOL`r)535jczi+e>Y?zFokoZr@Jn>`tNbFEazVpPSveTQo7Hj|D zkk19qV6r@`>+~uzQz68LKWSc>WlmX*w@KfulIq^W%a2icccVqZXlY2DJrWN2({j9_ zX!A@6ampTufKTKUh_AW_6o~KGDy%K_xtbq-n1Pvt#|I<}*^r$ziraCwy;HA3C0hLe7K{n%#htz6*mY6b{YoXPk(4eIT)+2U=-BKVkSHjGS^*fE9Xid&(f3%QNB7 zrl}U$!REf1{xz!C7eY5fi@;a1z%Frrj_4HJj znV7!MuIR1#uBsD7Wi=J4!)X*l?{ewxWzQ_pry@>+l`MOox%!$lB6n%0L@Qvr=P zJIl@@dgM;rvg-N@8=0lh#5sizWv*|u#m|@A2>2qpz!G(1sqV+%jBM)<8-Ysexxj@% z77YE`Y+MDFbe`i{WZB;V?~SS0r6XO(rEP)sv-SYvc-_?9XfFlkTimItuAHObY}^w9 zvMp95*Y)JAn?Ytz!<&G8&AW;nVHPBB`K279ffhFccNb_}C6Gu}_oV-O_<5Jv>acG^ zSU+f`);Lb4f9OGj4rsnhebPmW!aw+Y5Y0g!)MTy$yZ}{R>DuCpQmP42ZXOEzRzpg1 zcVc$G{FGL@5t5XTA+|56&i)<`W;U;~&G5svrKPE{7z$gwEt)%hw=&iw2@zDzF!R721oq&G*PY_ z4;&gT&?=I-X$mGhEmi00=_ZVM)f&zVNYqHTSNwdwW&qW3TvcNWCh&e+S$EUvxm-57 z;ZP?gCYApPw=_EXWoY;{oHS-rz_d>%K8U?-9^3W1H&Vm;z5S26s;9-4p(VMSx|3Df z8~=rgKmPT6STsefYwf1AR7TeeKI1Z4gNy!4p6Z1&F}Ze;9FJ-OHNzcuCK61pgqX+t za(byfu8{$|w(N%?7HM>adrPTdRP%oqOkFH=5kH;(|5yNHp&5oNY&<6G`tHauC(GF@ z)UX?)=?d>16n^C>{#IVYU9*J+mgJSb!<9NIDN9|-+PpF(9GDO{n^*fRE^jvXMEj}Z z`8W#!dBGY63s+%4!tr~L{Wg9mIkW%MRo*v>9tRvd&B~-yMwFW;->o_{v!lK5vKr9U*f60-3fqyljeHKU_v^2 zZ$l`nvPY~F7_LHORaLl1n0TMQr(PCNa&E6pnIc@-ps?+9;c$0qu~^kPJ>Hh|>jNk?J+m5a3S}g2{EeA8N%D^=csC!5x8ax04({ zEnyo#r$m)E4Z{G!ZX9A({!2Ym;atonO*|{`+fYNlEEnnXl=A7wv{q!xdxDi99F!wk zDNf669C6e;)`B_jlJmArik1;NA0^l^Kx&TJDLIOuW+F^AhqD}POoPILEC@>*f)MMK zV2flRVrg8MB5)tWz=@m<5jH4fY*ybIJr0q&f5F{unAuR~&0PY>77FJ4zk~h5Pbue8 z+0(6kRMlm7qHk+dg0L{nsytQR6_n?}W9@m*z{tHo9L7@&eIfW6ht;;iK+fHB<*wM}El)m7g6! z>5p`KDEHa(a~Zi3ir>f1{~0N7!kzi8SGOZC`WkV;GF73V?UB~E=I`559J)_zcJv5p z1~_$w?ncvQL5GrQwpCwE$cuad5$=ex#jP>U)+b6bP7R{oE|?$42d|2Zd2*7m|7B-W z3+xVktY3ZmCnjoPIGcFDCzV&$J%!kMM@b#NvcENRxjw-0mur}qv;)e3hr3|g@F^Pg zk96;v1CahBk+b3e_cz4-cDt5t;qCg^9<_=w98cd*Epv)rM*i3pYl9exJ9WAd;~B1L z3dFpga_*{83sLC`xsGb=kMxbddynq2`L6BP{zxM|orhul#v%38p485X$$ZCO1+q6F- z82F5YNC$DohgkH~nOQCM=`-$v)7W>zZ;yBFhCK|_gTuUc%s%NBgXPxk6=3aS*)7_E z*=`vuyW~GbUnNZMU3@ z#faJggVDrn;u4$`luG=4=B^~c;mT)U$M9;#LX21&c~m@h)Z*Z8(s;DF+4L#pc-Q2O zsY#XXTE@r#GBf&2QxlBctM zd2Z~{pYx83W07abX>${Q?2SC0ep4%mFE7sPuv51!etFw)$o5)AwcUulU7+1YmTtRJ zBD;Tu9e;T4IZ<-?frw*BiP@N%_P190=ImwHzz!okFpze1mFPHYlH?rOHc?o=6Bs~= z*@N0jt2@ zH0;FS{_xcU5FHD5m@z`Yqd+5@GB%Y^U>gQwhHM$-eoyGnvJHL z82(Y#^hzbvJ7Iu%&Ejk2w9>Gx29ihpHU=Yud{#S?s;DjQ^Mxt&JMr%F*~<(m8JRd2 zb4EQL_`DOl9LT!m;_w6{_^aAd&Ct;QwP#uKI}KS%Wl z*Mlo;O~A~=ciV5^;SW_xN%73fb9pEy$AwjU1=q+PTxgP>fTGs-_s@KrUKE1DNUDda z0Pf{v&HjRW8)30MdS9#R=@BKhJ~!KQG#43|<3~uw%2t~-bm#x$=qwzXYX3G468kB_ zRFsgIii$pzNRPo#9z-OjBGRDL2fQ7H z3+KMiIp4Uh&sA$5E@$QE=o%jB8u?9Zq%GW~f%dABs3^@(+?o+MF}Y21oEwoD3y&F? zn&=wRGu7hG=J`CFdUMKqSai9~^!l5cbbeDW<$OzE+1j+bPJ~{&O$pCSgW)Vye&wxZ z%M%%X^&Z$rao#)qX?|{Mte2RLYa3EsnFn2*2NvFsaE`e1kB^4!=}V!nvCgvS-WrB_J4)#MJO z<@#im#A~jU%j&IFV+9Hj*VEIDGSr^^5WCmS0v#MVb!RM}I8?Ftq)^yQm<2PjGN?z& zR!ykZ{N?Otwb6Z3;$B_EuN0QZj{}^$KX~FMoBSV?&LBm>X%vYt(0Ivz%NaJ<_JS)Y zm_2P}Nkdd|H$`z-sj*SjjHrvzE5OS?&9-@t3b(}vS&j96D)x+dFJsx zQ(n|yG00&JPek4tEMs{9Z?1MO6_Z`J78s{#-AHVft9cLeGwC%=vt@ju%;rhb@$yEZ zkTEDDafP&E>1JB}PD`pw+_YMpT6g&TdF8q-Elc7#5+3Id}K3b0W0rMyUo4ZKwgEkiDL2DbzuZ_?F&J2`5HCB5H#v~fz+z(?P`C_&M)^l=H7{ih7RZ0|?G zfCh@@Os(*n<^wYo^3z96`yFk$N2I9f;}DZ|w~HO`%#I28(6e2!gpOs^ERAL8>DfU4 zyvOUc*3rh(AK%9h7%&CPI%SJ9+Gty6u`g-$7xYp|106`(SuTpiV|HDw9I5>7I|O0g zEnl3k)fP=cTDnOgo>NtN`eaU_V>5=q!g5m0*I4Nzr=@;YXr80)Y_3g%pc550KlNm} zdwboW8#aOMs#adPhCeZ=`PT8I24~nr8Ai4KPs`XN@wu6tJ5y6ScV_w381z^ExIq`|B&;tB;uSGQrZSnlFRSdY~hbWE<>S3h1*! z<6iK9Op}-@Wv)4_VVIVhQ?WycY81EF*%h15-8%K1^drO{EEUzX=irfO>_V{A=Wp6a zmAOmZVgdc^mgac7_^Lp^pMhr+QG!yp!_LGPd^*)Cnhp_O^M9M4qeg7&7cnur?Yyca zux&IO{D!U?PpRHuE`NyLsJp7rQV4!=8LjsUEYD=$>`br-!jJP|k8bRIVHQ+RcA;Jioa( zX{Q|Bl_Jv3Q@!eoBa0F|-YMI&BGQS`HSLO4NY3mcQQYDRqyM#jE4`tgymxPHB1Q%E zc6&18zxhk%fAbgBpuR=l^dA5Sb{pmK6wkJTYQ;vzi>li6bIqEs`Ls#Q%m^mYUBV>x zT_PFq3W1&Z1dGf2uE$N@opz+C8LtRh^L6*$2F3%gIh-D=-s@8&6;{j}G}AtPAJCf% zDLMJ~UBlV&0e$pL$$xKn>oWnbB-Vr>?$3un>qY%HKgi7Ytu^yeV+O{sbJO3aRfK#d z>!tgK9&dIe`3p+Xi}Ko_4A5ug19R>GN(OW&?16~;37}ap?RboLzC58YTsgq(i{a_& z9w`xudE&QIa{79?I^{aZcgr`+31RI=3u*=_uN~8eH6D?kMX9g6_RtFJ%~xEB)A!P@ zqbA!K>H~i{W%yNl3+-=CWwlR+kiPb$@+VlHPL7o=0vKEY%tL>-t`%uWt%+0xc^oWp zqX7Y`*WO(_Yc6RwJli;n@M+p&8Ib7*r5%!IaJ;Jfqwc5rdQk!NRUqkP^ti^T%uma2 zlVBOS<#+T6xfgJfb#OAuux8TZM{!@|^mk^a8HEFKPKGokg^Kq!-}=1Yv`4RXK0!@9 zDr#$<^6#~ceT|7o6&r}%9aO%@E1`pcOp-URgQvb~UuUG`@0x)D-yeO3G(CNHr0i|H=}QR; zazVLmTDoQXY))Q2IXRJj@E{sN7?o@Vf99mYDCcMbHSMQty^xf}tQjxH6ntTdeRLR| zp6CKqkNS<+?YvaTavhc6%ui%iMKWSUYP!%re%P2PEFjHpKzaJW{XycW8bZA|1N6}k zyB^3DD1!9=z}1V`%NngWhb?fRdr~zgR6VDk!e{@7;QQtl5*@-m+s3*)RoBN$VW|Mh zQ*U&{k4b^HXWyME2{`RA^=o!6v0TRFVj`0RcYy|)B6>T-adtg*dq z5wMsvU!G?!80A0o6*&-QacSmsBw}YL$`Z6c+3*6t+}oB2Pv-Y2ZWf!~{-l7bX*!9h z-Bs{sNYhk|Yd+$`&UO;cL{xWUqE>FH@WC(>)`+nBD{CV~pCh16BAa#A7|7W;K5T0W zXX9hXI11*IFlDov5jt1g88{vEqk5uTQJ8+eIZ9FFl99y@F!Sm-Qy zY4$OjwuXfNrgtT|{5a}BjWQN5vFv}>=!%y8QK=Ym5Q6xFRp@=Ibmy`BtJS)7U`hxJ z4`qbtm+0_v_su#f^um#~DG*I>3u0aLM5u_70bMa{K#;ABQ4D@@7yKtl9j=;JHK_Ph zPS2zcVzD=2`PsJ7H|wQkF|3qIE}HGCr8-%LJ3+BGEvOArp_;06LrOR)ZI!cwS>mc; zTZk&c{N0o+|IBG$0!e5K?S$RfXuj4=>z)bkN>Sg*iZGqeN;_UtT%6eo^=aH3*a<&7 zrW`Ddo~b;kaS1oXuD9>F&YU18{d$Dl=VT-a+P59kERqui6EGB7uMWzrqXpn~J2Dj- zp8r-THj9_*SukEJzKv@o|<%Q_U7Dr)is;0{s&Exv9;9{e9|6{qcyZcTHqltPZ#fVpUr0 zmck>m`eUwv8}7YM^Yefl8RLh=^LUXomw_FPhWWnBy4ej0*$N-wa5%y=AS#t}xZO#K z_x*Y5HRUUVB_h6*@;aVUu!1&5Sw$%mJZ$yY)9tL>fbJ4XN1$JZIiIBKgZARlQQmt0 zT**{O0+v(lLBAFFh&1k_6q=yEq3?VMR|JRuZWc{$oRPOQ%a(xY<^AI4|Db45yQtk- zPa%~L)jg{i_mAsJ%}E;iQaVe$S?_=uU^`b|fpP<;+@j1VL;)Tr3lcCLwHo)_ik>vm zyH@T*J!09N6FX%-z_i2qrwwPQ{ifkN-I;#ZkCSJUu+Gb~B)T=R6__qyft);BDDw34 zg9vex61?saaNP^w{wS`sOhG0=+u7#B&C0`Qmh_+s*NGYNw8#R7C<(%(x6S#nJAhR{ z>UZgj=`(@CYk_))#f(kI`5|VoVo$54aA2fx4I6{+72f;PQj(#C=Sp#AisC{v09zKz zhhj9{qjTO_jYiNP;kerAr0pVT>90Ap^)Q|PgkV>nvKUI~U6N_}e#6Zr87aM@Rd@RQ z?&4*c((@Mu-8>h6xfCfRnerNXHwPLwBIYACo4EVu7~AV;CL9g3I zBpaJYhV@Ndu{>PYB>Bwj-B*b<3e!~0S3X_hD2c2PKD;dPw|*Y4db)x*wzVO z3GXtN*sXuoxN{K3XeNeA)J@#!^lE#nr|JLYA}}?CM)&gPeXX(xp&4mg!wJ$2|%1V z%wM09T=|bGy$(+v*?WVf7(=T3KhbEXm38k~iW){QSAHdv1KvYslCmb&-N-H(+(F zmXr3e%)*k-lCP2J3|v-V$~_jaCJs3nB+3awUol@?+-o&EX-^_JCy`PjF{K-@G0i=0 z*Ct<=KLJLN-)T}U(K0|)FQty>2p9TpfG_?&|^gUVWy0kfoM1LB<+*`bC276*naa*Jph={ ztY*A-Y{(}1CP1Y|3KGW|)l&hnZ2`Vv`LH<9zN1_%v`b;sLLyc+KZA(f4(xXtCvl1z zyv)W{$ov`{aPh9dOBdf`kr0am&Y^&eLzdJJ{tFwiSYFXGnbMTEdEU6ogmDBo=woF{ zQf)d2i{Tp!+<>LZw!E=<^VXXFQ5InpXfCqb|5y8+d8&A{k6NUvj(fw_OS>lM1ZK_D z!{b#*wS%Y>LOkm3mrpz+a>E(Z+-rR($4Q!kW$3SB`i7!b!&@hqg^=apuHk&Q;YqId z?GnN*@;?%#^$Y+r8UdLLg$HXwNo+jRH}VR$l9F>!rsqCEZ}4PSK;$@hR0a0jnfRC z%!xY-&a11twUj~2aM0A={?5eANyA&HU&rIIDru?1PfHl67 zY8{%VJ3+4mOnW6n!UQ8_@Tiwq`mkX~fq}}-k6#u7TNpfUezFOprcl$^3xjF@usl!2y_y7M)6)Ym(`hEPnr}5 zgac)mv_=bxQY35!;KUcu)j3aga~~p$(6*=E&BXFMN({xPI$(C16Icy)kFkZ+ojo17*%LaS!Mh3A+)9fqlKYlC3cG6jb ze@5?s6H;KB(w%-cwNetj9tZ_{4!p?DVA*W>;BQaM03G*;*GS3RMK9Ctz#eS>ir^4y zzQX^L!imwqzHR-4{A(>7dspM^-0^Rq|0P~?#EW@G=3ls+5`I10+*(~)agtjOW00He z$u26&P6>Ne^C)*SvNx*-K{VpkVXt3(AfxonLNIYeihTLxS&`%K@jN)2l3H?>{g~2^ z{xYzE!~$A2W}joGaEdoezlSn>eS^~xUNJa!C6@Y4T1JttRi}P9Wo34qzL4&Z(d#_> zWbNi)K;IfPopB=Bq;#5(6qy%2CZIyO3p5i{H3`4!99$iYqy|a@hgJPzJNkYG>(zw2<&1E2TUL_jZciP3bvMlC^Wrm(_-O9*_hb z8{cjxqCF1}$x9+npnJTF=h}wYZd7B}*o99dSx}apjE2s^ir^^-W^x+|$n2lm3|?nZ z*}uFWwJdeSyPKUsirSPp_^Y0bk0N{5WqTgQ0`3WPKY*YV<+|PY&7eX>MX72>h zf&7Tyr1H6-yo%E$bsqn%!Huypb1YSHqmuAdb?skZbWPerCIoZt3t`#O--vD2gOMi zf!0L&j?&6KI#;rF(_l^MQceG_e@gLwJP+AmP9*J8=5l48^C5))3STWw0I))`=d90Z zc?~M=Wm}`H?y|BxB%EsGICxF)|?xsu3a&A$|MuoUJ`DVG>rVRtf-&*vzcF@*iR7f z6{Y+#ur#?3+h4O!I;A8&o{Aaio2_*j<-$GRR~v#?86}PsJy5|Zjx~y->k-ONU7smW!JWT97i4-38D82>3Tsx|`% zt-Zd!F>vnJA4lVc?wWt#NI=6?1Inn2wGi`uQ|L2~q=gmrYGAh@ z`G#_kJL+w}=L4YP-Zct_NAc>B`0a-0XX|2KmKTJCTaHSL;;4vu(D%_iIy!-T!-c)z zUg7ns_c&1iHOVm4A7fzms=;~k?oi1SUC1@vR2c%qGwXb40;tl+I=cm|f@{DD;dZf5_J7<_D4O$bxfceK=!FIWps{n{k24k~K`^?y{!*T~7Wkb9}j zbY*M!<*WG+RO@NKfIx5l$&v0W%;WX8#XBc(>o9-hJfJG*|-2DX8q_cWywHNjMc^G$K3Ng|cFZ z#<+%hD*M2Hmg|#56Xb-hTYs8*?0uY^C!C!R-RN}IJTVu>v&V)&fnx*FHN1j{5Iz2r z46Go}*Q6*wGL?sM5lT6Ed;U|%l@|&nXo;oOu1AMyz*`n$nQUdAGj9t=#{qk}KLBJ9 zEV4bVc&6&T@A!>JcVVVDKWUC^3k(tU%oVb~ax`GlY5Gvbck%8Y zCX{cK5 zVQ1o1Sa94C&htg55@MCFVO}(nCj?XZS+ZqhNPT#jgXFL>&yT-fm1x@gGDo98xO#L$ zOm)~OX5$%H__MW7L3x_R^vL6QqPfXk?SK+*2#Sh+c|2wE6mRdI*vAC@crE)#c%~E- zBTx2-|JuK9n9Y0ylXMcI!4ASjs>Klt8x`9bINKx_)NWkb*44#bj)BH7Rw>)8pfN8^ z=q&nD1J^cRxTnBuMWi4AitT@Aik!R24(@?YuN+kXD<|(RI6J+wR~B&nu~Qcjn@Iz0 zZ$gph_YQ&RIop`Fyz_~?S|o+p^Ti^z$|(s^7B#=Ah(mEKla)PrqwUTo8tCZiF4My} zwpyX=UikG|K^;-~DC+|qy!&2P(4Mv9P-wk1fcRCm{D1#54=KX-Hl;Gvj_EK2S>YxrBsn&mfGkQ|VjrD^vA!XU` z5%j@Pe@5!RrFUr7yIsye;Owb8XnZNsm~|VE=(#<|c3OMJb3+vIt)ze)`!R=d*;Zn` z@-IP4rF(5$c8X<*U$H2>Qo#7X^`i>7wX~Q`l;fX~J5%T<4|Q_~3B5aD`oC{#cr0X0 z#B`==T2)XkTOFapIEXWfYI~(oa3SM>r%Ux+K+2rOxj`{abS}p~3_C;FwLRo~*P=;uyaO{#ID~ zy)xd!g_B812rK21pR*j4ks0Za8|p2+K$p*XmPxCD!Y?R_#KH zi_IJAd15#*>LxlS|6CvZrO9W&e=;$c zS(zaW27(JTRX3cyvRRb^SRAyI{;EP;Ug#-Q2U#HA4bRKJjP=Nx2GHU7!c1krhb>BT-{J4Y8!+&GfSaWC&3dYGE>|4$ zjUXw$ewf=);n8n0d7BLiQjS~EU~!<-`R%e=evX3EgT`^R_RTI;bYcWw=TS>j%u&=) zKP~&r55h0IJyH>URx55X-{OPHXb-z%v%#xXvnto>uH+1Q)=dm(sf)~Q@QV_l=#c?; z5zUIWClcc$RaJZMUJJ*};WjH5&QHc9zBV`a8RZsYMf3r-mmewtAMSPeW@wwHTZ>pR zo#jB&W7uJ)Whx#n(E1q9*+t!m>TH(l$DNsBYS#q=xsX3=R8~UFxzzJK4Sv-9*HaUNI#2u}f{%)C zg_?Txv%T&vK%>}x6twwvz8GXIHfUpnICaMt?K0mc=6;d22P!6ixkSHx{8CmqIo0PP zMn+&|{73h5AxG)4f4-j%{qcMad`csmX$JDz551f-`6iZ!UA=t`Y^%kM z{rki-wBAF5rfv^|@~>MXoA&31&-<>Mrry>YZ!}={exey%9~SCeaV#NLqW|}$DJ4RE zWr5R;!f}17AowL3^`vCr=Y}|Hp!~seF1544Wr`fP@^ZxhzCSU2hm$E8^Uqw>8_^Ds zU*s)x?YCgq9EhwYtRxxjKhk9@l0;d}d<)7^r9r#dn){WUY0hNE)Jr~{S19Cho&{sX z$`uZr2=liu7Fm25xpK@Gs3&B<{1}1IwZdS#j-t!`x-srX4Topu$^JzT(MrLZP;e{d?ULQuA)Av*A=+ zwTt_!E4i2%nrsm0kL_tjzGDyWzqZq4ny^{CT`2GK*p6zQtd(b0?0|KgyQ*JrohkCU zG*lJQ64j@rQlLM$H~y{vvCkLc`c%D4YnJlh&jhNG-w49c>XXtd&o~#q%5MGNlhSkW zhnjvnK>dJ_!YNS?ju(b5;0<>{sd7971Dak1}_SwC=E zRk*eqiW+2M=?Myl&^~Q?Rzlui7Ey1OW|(}KbyK^T!1Vr}z0i(~qn5X4VLw6&N^gj^*Faf(BMzI%U=YX8l!n1)k`nyYeSd6k_i;J+_p2qT)YS0eW*Wpy+?b3rN2} z4u*JiuD!X_6o|L``iU!APj(}9X^%zLhB+aPka4r-J7Sb*{SmU^ndEVVv}olj7I4;a zjx}cp{->d4w6chm0RQ#d0ZyPx&dpEzGN1qwlp^N=S?lZpZhJx(z>dfGTGueqZNTPZO*poK@3)7g|f>yq&FTSmh_4D{$&EaSAN==$z4zVAOeh{He6h@{cD`Jkj~f$Y+Ip`pjJt!}{SZ~jOpL`#9p{Pwj1NlrpKS# zvyMh%Q+CW0-&1s5cSM39$K+eE?OHwTE^ZPUdk!H!n>V}RIudj$q7u;0#j>~;)J46? z4ggaBuvh1xq9w>-)@hT_r#^H|y*vGXDv+W+U?Ng4ME4*)Tin zu|%G;oG7EGeCt6Adrdbvdy%-56YbQ8v+X{HMJCsLro0TnvdJvi!!piV9q;?bYUSMB zA7W1d(RZBBL?ikfBrd^o5r!dbm#sf~Hg3yFl>czlHW$^(h6}difwYke&+$BK##=6p zNSug*xa@h8yE$+nuX`Hc$ii$*SGy`YiS2i3zGUho(ycLGo`4NAOVS@Gava zLAU{LD!t43@d*Y~%BkyP8hh^KrmNt|2cbC)Ks2F?D4(xV&PKsTrE~Yk5T2Umt$k2s zLXkf2A&Ld2Kls~h#HOMu2Rz{qB)7!LO5c|v#mFIcX?jE}OQ3k3vy&Bj<;`Ul&D2@u zCE1{>$!TZCO=cmcK9pZxJUeBs%=E7uGt-T}gx^iVv6OsQEuZQ?C(bi!9kB}7>^Wv& z6rqh(svvzlEjlPZXzg4iWguPOuqL8XDtRbnww;4&4M`kD)!+_4Oq(c<35Pg>_F1Y$ zok0~Pj6csiGYh*^i_dy#(oe{~JRjkyD7#5U?1DR9Wj|Z0r8LPN`o`j8RIoTT!z{!s z;Frb3eS%d4>_B(*Kmyxb$OtWsrFSQ|=;yJe>3y7i{jh%`dSM8V(veQxDNHqfw~7eP zO?6(vnv#d7nKy1aLL6(#@=Xu0Pc^4Zd^k)Wn;%x<&Z@L6ill!?9vIBAR9uxw#KN75TC^pfmQqx`CF!k5mI%{u4sPaT7DY)u|J@vj35)z^h-M0Fl|9jWv)5qgO=LH?e zAD7~))TfvgRiAV$?@LKihYXCbxmJ$l>Y~AiHCE-5g*$MBNJv_{(RKSGb)?U z9;@A%HbPGn{0z;bp4Z=+-SLQ|h{aJaR-E)$%eo49_d4qeKj?GkAYQM@wH74?k5$hF zgZCCZa)b5`e9Rd};k!)z;i52pRwnG)673pA#3`-rhz0TF`o-%v5FZGLODXE%6_>C# zm_w44%hN&MF?_7TkZLJjW&e|}qI{FkZI(@LLhsgl8|+aC1hT-a3aw%=AZm9y1VGRA zZt(;N%k#8Y)^1-ODK<~yi3(Sjx}_{&byf&AkPZT94$1C^-J~`UlFN}jOz!HAQs3}_uLGH_A33_ zoz#f3(>~A|Zqgn-5X{YUfF4fqaUQbrxRttHiz^7XMc;j%U_O^ez15rMPY&8CBGzbF zyFIv09r!-7V*x{T*zORUsShz|gS?02SE1lE^Wl76aGU5UBOCdWuXj`jhsE|EWUIh5 zALyV08oH>R4O{LnUoo0*yYx?w-d*L?KQG|&oLILGuF5F+H>1HVvQ~M{J%aG0H=}JK z-6PS7`pzg3@vSnpX-M0wZpAdq#+ey#5OJy7j5fo)eHy5bXaa*JBmKsQDFir5-_g-2b0h_4cE=) zSr5fY#Apm%-^DS>!iA}nS#4@gTXq;vilR3-vtisf)X)0&mEIibDLy|-cV*re3CkGwfd6g>nAM3wZ|wZNTk6utoe?5J)uPu<~1#;nVX}L z?-C3P4=XP5d;8lRLwWP8WP=vqDW%Rzr~xCP9!n#djU2XL7L6B_m|a#jV5VSYbDjws$k>61IGbk|ogwoGuLHf8 zXv~_Rr464SidzCa=!4Hk?9i^GOOX0)>Ej^PkQvo;Tq&#_??sK*L||&{LI-!jW}wwC zf~dYZQZ0zABv`bgAz+`@v#<2tMaqkEU=r?m_kMH#j0r;JJ7!1PyFGBSc|9Qn-3Owt z1T<~hoKQGd7;pWZ<7#K(;NvS0Qjm!M*tgrg2MeZnaw1XfcQc~&fOb@qhx#_vQQl-f zZ1DE|Pd3YhrA2;BVfy$rQ}1_SD)ozy2a~^IErJKXuefYRzDQX?r@5E_N1j+8c3u%W zA$)GAKGnohivqHQdXB8#+1V!hZgS7-y4Kxla^Hh{Ir%x8?dapfr}NEUBu-vEJ3iU! zh%Cy(X{YXmlM`!2RB5y|60ZftcfhDoy7*|Ux6Em8sw`9fl9cbb7^%LwR#iS~CZpsd zCr-=)X<$Z64zqg7(fNfZ(YCR%6>wqDu$&?t!fy_Akn!YPHXQ_xwR_6QGXtWQ0p!2H zSryG3;-(4q!``v_bu}Iphv}~3fHB?__9#oMHMJ4XSC6FnP(vl@+-rh&fVbE=7zXrQ zX+HkjA3Jo`US|NVNh25dbyyFW2QU6}SM9Ft^sS+-{7Op7NY zURrul{9nya-iTeJ)br<5wh^m07#(3*7}3>N6lzb5r!_!ZxS5dWX_q$68pdywCJ+Hhd$Gjl1HxcRx_ zZeQd+_RL^sW6Mu271f3Bz+2Eij+IyNH=pGK+d64e12b8$21n*!oI03$kN18Tsw$+q8^Ol4RbOhF;7&H zG6DF_Jew>ZF-D(+w=tpf6;PxWW%GWHBSEdRH{#NxsHWBgXM>PQ(+?Z8D$)r)SwFfx~ngI^*Lg&KpJEEh(4dVU?LifQ;z|rBs{?>GXtF3``EtroWQZHe_ zAHMTKqO+U+Qm;x1L-Tsc@r=_;=$3GqlZ_5c({Z^{n*UdPGAIgi_QGUnn%ie;Z-eh} zw5*m|yoFm>7j6u%P_A}VKumQT3=p%{!fb3WW7srnKIc5TcoDCZ-sd@*M@w;jx3r_D zbM*Uisgz=r&!CcI-tVA`yMc>yQcEG$o~PoBGs>DzXL3*Ncpu?|{Z4shM8mOMxXLYv zN&xl+eL-04CwF}K02iovH~#fpbGn#`T3n?vo5W~{ndlgM3Ua|r)V^5T0!T{tS$#BO z+q&HKhg+$Z`@M_6xN0h7*$L|X*Lhx6{@2QS)X48v2<^FU%>JfKp4^R(f(zvEliZvx#4N>F)kXJn^=@MU4~g$pez<@jfd(GAdwyxS4Xa%EbG^ zRb89D4~0&#YAkZOl<_|VJyTwIp{cM~z2TFspBC$18b~Fl%a$D-N%%0afRjJS^#C*) zdtx4tt0Clb9U>pS%2bgD&b{n;og;@|m0O$mvMAju4IQ*hwaAz<*u0?g zey}d4%ur zPVA_2iS)#}4@t9`AODs{ZTBQvhCymtvvDQ%Yj*uCGH5%^Tlb9sEXlIv?0d?enl81l zOnL38DFozk-Q{ix6CLcV4<{vVRu9-Q5&LPA-g-pg?YH_i&N745GQ3LkX-xl+L~*(5 zw~=uvGIJsH+pnI~-^g9m_<}hPB&G6jx2{+ZQ!I*9FV0He63`CDnD8hHp3aqpNXf{5 z-wLm=)*>?)c18lC;$<;ZnN-aNo&+z`CrpAuqFG_q;h* zk!kv*(;{WkUr*4r28P!MuF4Q{0iw_^b%xPZ_Cp)4s>Z)~U64yH(CkmtUt zHXZbB_q^~8J!N3?+II>$n9ZK`?%kF&velmotgGiO7B!Jxt2V_^0GR$W)?qf;2essh z>BIwaMH1FL>HlU}3)Fm*rMWf9d~!LO70X@`bE$|~dVRe`?>vg08YbjmbyRKpo28AF z{^K;;Y?pkOv-zkC+qP82br3BLeVBVWNR$s=Pc;7TYv*vbot(h)VdJpZUn@LHISL*tAQr%Cm4EyDOLcOeBgG21uG$uB_itSQyAE`4b zbWA9PhlS~0VPbkyc z#$BIm#oV%j+G6^0i{QKyJ94^@CfLG9Q>?yNeXADMOM;Y-4KYA^&Q1tp*GJImb%II$ z&mcc(H@I(qbl%?Qx(AoA=}e6Ntv(%8k116S8lvH7W4vzRQ=F)YT1ak*pTH+s%tx0% z4R%yF6C6F=y#1)cOf@j0&JWh4)E6Y2+;f}rdpv0%*x!m=Y^a@SFtYQ+hbU+bq$gGr zUbm1q8q@#`cBPfi0A$*svhauFQQ4lGb|kDGU|H3JVE zdjLv9&0M9aJUCivO3f?F!i-zDc*9-fBjCc?^&h;QgqJvcBlj(jPRXmoF_0rRAfe0 z5Y1TAqJ$JPEl)B7SxKFf_qZ+)-RJBiFtJ1tZ2_|J#IS;X1&K42_;AhofEb?BCYn@2 z8Y>m>V*?f*{vLffx@fKLK5Vn!T;3reAREVP%c60p3HNt0J{zlO#$BVfrtPfpyNs`L z+L1nQw1!J`T;02W{4t-u@nUNfgtJU*z?iStr0U5`wInVJbkas1ISkK$UvolFUpDsM zr^Gw1C2DpdMky#GXR4Q+msxz%gVyIMiIQtYt2c9~uPah5i+vp26|xeLi1YTVX1Ma{ zG0Bx^$v%HaLYyWgz4c7?xX zdUQ9wa9lOkyM9lpu^^@6!QNvnx|e)i-=|5Rgf8ne>3`FEzwI{F6vSSy0-CrOuAf8t zmkL|9zBAosUAlw^=2poH`ks=|N~$qSyc3gN)M3Nsh)CTq4y8+6n;e&s=b|Mq(uZY> zwj9y3{o|iL6mu*;n!vGep!#lBVBDV&`HspeUi3v022iwDEh!|7_ZR&7{7oC>K1^e|i1ewo}r} zFtyZ-p(#Nj*+|*pd)hw6iU)&Z%fyK*{TEXir{?(q89c`wiFNB5?HuGwh=3@(6^(N5 zP-OzrWFzDUz29+2(e{qnnipe87p+R9`rm?gtY`rlXS3@`#g7qJf1NDM?si~3rNvv= z03rQ%tT*RLVNV}17y%C$=xo|Ds3I63g(OorX0g0L9lu$ogMQ}zQKl2!8SVo)&KCG# z-FX-i$tb=p+~T&t#)f?`pzckfVEf4X%?>+ZkzNZ%|f&;KzAqp##i)%aw_ddiL>J=r4!X zeg0z|-W_(qn8;~ru=M-pE9=b+N>)cCj@ieC>8N^T6SjXJq9^nEuPfG}NF&)VL*=yz zW#s#vqRYu06D$i=$jajni1-i(zBO=0K%oL>=Vt73`ME~9*K^WBzR?}3l?+y4dPag% z0T}-kjdJNK0d>Y`atWVPL~1SX0l@l+1*I!-Y@p}iQP!^h_x``xsbtdY`EXasT>x-u zKWLs%7y3&jbTRfaL>S9RFpXtiX1)OAX61N>RQVaYC;uZAXhx0$wxlJnsp@iVv~wU5 zocM`R5VUc!5m1`yrN(m-xTqtdI!&&OQ6rWDn@f8jWs-05E?r07b>s=5NYUQUs5KR& zu(8OWn+)j_VTr^NBoiJ!ZLqw@Yq6VM6jVOT2Di)-w>f`!a1+?VaU+Sq{W9PJ`fXa) zB8Y}cNQ;sV~@TOyzC9DXucbGcWJnLoB{NQtM`^_A(-1M7ynIIKK~DXnIbz# z!39M^I5baLgiD*EgVcG!>6iI_E;w_$WrwQp^ChfiD8)jUret>+z`(@8Z4+TLt$ou@ z{RB#3E;3d){{wsSJ;cN_;vp8)-#;K!?-SR;Em!Tn|*|MygRBsy(Zw_P8YSe&8=I|13u5FjkPh-2lxN0?90QF z&f32#Gg_fZQ%i;EF{53}T@jjTu}zuAamfwKObr#y4HO}D9H(5UtTZ*LtekSe%v}@B zl+fI=TvJpK+)zM8knR0C^SsydT<;(6_51Pt_i&c`-1q0+&biO%vF<4fhrj&k-Yd%C znYTVvbEsE?)aQwVrzhhWT}F#WE$nt!{eytE z>e*GVDH`j+0WR<-0uNNiiqwI1>kOT&?BwBlepUTaB!+~ExM)+wPr=CVO^I{SgIe_l z<8Q%F%(;ZNOs+U;uq556GrdADG`}!_3*>Rg#3~f`9T~X$ROpk>`}y3OkW)6iwPP1WURoIZX%fg;yXhXmx6Bh2C z1JfX=nt-A;1|V8v&7WiZ^@2IJL(Ky4BADe&YT{_Z6AxX$AGg*|pqec)0hqlxQ~y#eF*^oT&iI)Fog*9@J_ z{_Y&eCPLxYWDxT+y^3qK9C6}Yo$q@#wyw?eiH=@rHOrMQ%``$Z4xyL^AUyJ|#~i(@ zsP?J$0$dsLLXmKMEyXMYrz$5`RJoCb0S$;Ffit+Ylf8R*%pM3R+6&Y2nzxm08_7(M zM50f&1)a0zC4lku#=~M$nv6l12?vgXkE|ppnf&DTC1+BB!R?+ILEUi{X~X(By@n>X zLtDU$Ei2=LprM5}%St*3EKYJ*lhO&QwPA_878|#KYe2@9>kud4PvW+J< zXT>K%^j56wws}n_9*)!YM_l?v3pkL~61=?>dcRb)kdRS9qZDHkpAu%5%&ZFJR*6mybL3%w*TZ75&t>Eyn$d6MH%iUqL zhm8~>bO_lWY#z+Nsw4YcTpmcOoKOAZNiklrld76M)dq`H?HRHYpA^8x6|cD%HY?XN zs=O`UfJ)4e|MpU+OV062A>x`{cw8LCW&+p_$e#o`yu3x%S1& zp@P)rwQTWI9Ay+J$Bi11PZ*I0R4;Sr3O=ruqRmPk>vfghW0y`Uc&JjfEz{vBR)Z zX1yJTkRkB)1 z8}$xz{GiwQBYKvoFF1bS#-LD5uwJZs;akNS4N_1ok`UpUakYIo$)cXDn8C2*Q)qJZ zLM=-XjB-s#p7BpM0%{kyG?p%jDHf0S3z~Paxx>sTn_HO>sF!Z%ZKFyJ48Tp-Gp*LD zaZj`~>I5tD8!9sfFEF-rR6hhi8dZ28m43j<~nk}ko zUB$z~pGNeW9T_N52LgH{VrqM_O z8H1dP`}`*nhND;Y-uD%u{}?@A)AMHFM1cA8f!md+TBSqSQu}S~tevbZp}F%QI##k$ zeuzJ6ha5P~_Zb4|)-9wqr@f0U%2Hq-j*79Qitllo<&}V(WMdT5E;7eYv0udb@Pwj6 zOTF~Ug#37POd||3W0rr+17udRd9X#2=YFAzYo}H`E*0}td~6L^j(EK2R1Qy)AuA@j zvbIo)BgS#|C2x)mMs&8vIeviUv1w)xBscn$qf}>PI!{>AGrZquoAt@|TexlH!Iile zRy$l}fvUlsEtd}I?RGfrM_hkT77#Z2d5Cbw#ogm)ZQRU^&E1wTnM*l%CACf=ec{>A zNQ>R3+_*kNG%#WR9j(sLboZz3-$fHZlGN- zIjaXR@ME3TGN8{SJxO{1v7vM5)6c3j?Zv^wDcF0XO>=c(Y--SxJnS_$1*jtH^WbI}4-B@ZrM@<_N5?EAi$GjTgl(vzTG z*6WX+k$d}Rkq0mVi!Rn>2`F+1ezWvqE~9;;)#DF)oD!d1&#Ams2?G!1cSVr-m5NGC z$D8MgVYY*k2KAG9Sq1S0ja^x~B<(L#5Z9SW7iZU*jb|PPCE9kCL6r&gyPfCY%)_xS zV1mU{q*(*~TZgy}0aIQDrf5`M^$pXI&2{UbqzOpU^_N=!mHCg9R$bG+RI+->HPHhHbpS}H~bUvz0|B$*4X&v{`oj49**yok_UYtj9UptplAtOR4J5{#t}h7gGTleEegQEX zeo1x06r>4_X;Q+d3`N_qdaQ6$#1k8dOe7rn=Y89y7^%SI6 zQJe!ze}pb+HUge)m=G4-Q+rK&t*`e`Oq(}$`)*vJ;=H8KHCxtI#Mj@63h(1kFkwv= z!9^_zZjs4ANCOF^wf|puYK(36Y)(lmw$dF=NmChxZk^B z(~rWnE~)ApEloF%jFmTbo1t`8@S0@}4~jR{pLkWYRcRSwh!Qz{N(8_04q<8|6@`|> zN%am7^QTS?E>E7tp+Pp?Q)u9QlZK3N$;f?Gp{$RpNF^QRo4~wfSfZ~{0j?yXT=JOD zBM)Wl$JHx&eX=X1_*YKS1777TTu(NI_FnEMyV6>p#DD#wDW_Vf-bYV)#y>qYW90wF zrl|)e7fUgEF=cbLI2QkPc#Zk%A~x8pw704ez3pB zXy$H^$V{7bgiWtx(-+MMP;@WTA9t)Xk3Zom=A|FaANR;PH+|&mB*24_ak4#n zeyXYdin1N`o1;4rPO))EZL#lYPIT^v0}|F7)o0}y6s#02Zljgr!UK`DJfD@(8_FiT z&qvHfn0n!o1!f+@`j9Y@*S^fwsFIAw(U%%I&fg)CLzQ5gxkY}8R51Cm6HNBkw2Y0} z2pTExPu@|lGdr|Rovf|`zvi}Vfs#u%7dsUWmuFGn-?bF;*VYFY&oDG-;uJ<2>x=$F zo@u>X^NI$hLg)R2rY~xsYtNJXd!5QpNze5+?(c#Bm6D$tVA9`SG>0^+zO~g~fTl81 zaxD!#uX!xyLA2@~)lb!|8SB~WR?$T?72MH6g^g}G+t_{W!a(yx9T&@w5G+qb+atX> zMUy>_q6<-jD(SRDJKzgut+k@7He+x(GA|!R)C`M^4LleJ%9r)3J9fQLU69vzd`z;D z-t!dMb2U)78D(Sc)Rb&iH@7`6^v70Zdpk_h@`Os@0Vg-ezG{=7c_u{r%L+eGAh~}_ zU9Wsz`R*lB7MNT~#j!TTMt&R5Q&7oN5$eN&A^H5X;JZo-gv>5KD z7*DRAtUX%AWppmR9>0VA1GDV6m1PDuT3BjIPgTvH1CF4_-r~#pdpA-8K`PT#WeNvf zxs{Wrdyrl9mF`RI_{-^`_mY)v()uX-H)~#*b{q@yDC6$5%))^)*U=72iVzK>Z~o}bd0hPIUcK{s_|PbRvhO~*ru!9daR)M2xE69f_v&2O5_Lc|^A%Hp zxp-63>NmQ$v!WPpajcf+sW=1mMCl!HFlSMKDwvXB?6a|^?orl?%q<)BUa|axd!WP!3U<3sskYRC6lBqWs*iU{$>W+3B2OgQRsmyzn~} zvATUxo|9!uP0a;b^|#`ZzUUS02;zegik}je&Gha!QYX?8>B*rMddFustc3=xHCH@N zPOBT+EE>ypN%pG#2nJZb3Vy?`Jh=yCGOF@QC>b{)L-Te8DBQu`LLA9UDx5?+J%98Ahiq_u07;XgXc_Q>wQ>S{Xr zVDg1DBO@nr-z+(mIzUEdLIT>iby$2ln|Q(N(1^>x9ks!sBk1O<{WWvbo)(-+I5j@fN0#5#y{C=Em5taUZbU+MGNQ zP=v<{Q!PkiLLE7~jdyotAEEW^z^)yM*AA~}%3@pf?qHF=QIXoict81KIZyE|zWi0i7rmLOrXooj zU?Gy5`}%5@|C$s!&l--fVU!uzK%<#7!9JHUe2RifdG}!b7D;hTGXDJG$=Ru`Bl^|V z&dvG6@Ly{RtJd904v*D`c5Ch({oIWC<}zN;{#Q!B5OeVHp0;xi!cOygwEGKfv z`Qr}a?%z#D2$IThw8bgQkm#;2K`R$fZb13O_g68J{gsn2Mn@X`9i6Amf}SJ?x(~32 z9u>a{6*4m+#Qn;0h8ZcVKyX3vgdz6H8YWjV(nhc1KsM}h%UM49fCb(XQFz7ZPW5JG z(c82}>)+#|^jG+8*8W`w{WS#B;43`Gb zc818a$>&TYjC6=TV5g?5A8+Ml+TGbJ+#1YshkkQ!%{zm7IKXOZ=FP?|QOrnO)Z$y-F@%2R7kj}sm9xi! z;g?`!=GC-=&Tqute1Y(XsIh@Kg;qinPbFyG-IVH5C%ti+jxBLW`c*c#{Px~pZNI1! zmxgGR91D5itEeFpW9!ML+SFMa>8$}r#0Ls_gpNv27is>jTHxcxwI}PJ zB7RMI^P`aEh56}xiQrtn>l=`dqE|=W!%PBimc$p0+QZ^$=JJ=Z2`WvQbNP#NN&&vc2K(l_>DXMp~5XO+9p3n}+@p1*KBPgd7s@$-sIgTa4)mj2z``CY`h zikIvF1=z)Vvs-LYDI>9H2w5f=4 zO@0SX0pnW9BhaJ^mVntcI+8QHyZGe(-7y>gpeX&QIP($(B~9P7@7XWpiPx-X?je6c zP-pKZaFSox;#g|lZNKo*LlB>;Y88^Yz~B%(QZkSEbrlF{CFRtxLckfmFDOp-Ay2Ms z095-ARXw-Y6zU`#QV)+6_?H_ok-U{NbVv{@@ZwtsrEeh}I#MikPWo5T$zKy8Z?J*Q zM!6wN?Ez2xosqpxqnaRd;=@Vys?KR)+LMoP-Hqy3ZuFIkZeX}Gv?_1@7F4Y14fzl# zI=1R>hZyihsrkl18!8UoaB^;CnbjyZX)8t{`LX9j2X0mEi*;fOm(;iT3MfX@b<*kN z+T#x7cq{{j$tAy<>7H*Iu%I(3_oIT4-}Zd6)Y+{7TeUQw4MDinAMy1?IY7_OWg%GQFFM0C_7ap%?#QFH&5mZocE-i{Y$V`MPLt0{$LzVYl|Q0U z>ntVM3KpkWUxg%BG41S-Fv|S3rDLji^dsrebV7*#hh0&EFQB9-pg;ll%}#uI-ycUq zTLcBF>}0=~tN~Vi!n_27`Y7UJOy*w8tCn4(i(;G-Ib-zqEnuu8eVI zo_oDZ!|OzzgOt^m7BQAZ&s5Z9Z)mLr<~O1+_Z}R75oWZf#C;9kPvnnanUetilcBO?wZ{ zJlpyiVf<1uLK>Z^%!r7sYVn`qlzPk^B2nGQo-BcCQHbjcYkA7&E%s@4tZC?e@!&$9 zj=b$YMD0?Hon6UY_^(rHEu&N~q`GjJ42Q5k<{x>4Iix`)6Ny?Z(x2peMbk|0MesQV zULCgFK3ADhWm}OuN0U6&_KDeXj_UvQ>QN6+IkysG8lt~-DX)m$VS$$WtJ*0oIdifx zK`*U8LE5cO^PEtNJl6+3IyNJ>B7bj@Ca0~&T8}U5&T|O0Sv-ed&LSsn?==rOV=Bpi zNLfRA4QoUyx|}3H+}nomWitQx3ZV*-hH6$eS5l zD}qt3IlWrUdiF!=c=YFoaMz(Fvp!_IYCDwjRy9;cuDMh^uPG zY*4WmLhk8W9qi+PkdplL&i-ZTa3NM~CE6vGXG-?wS{c7JtmqkQy>j8slk)`4)UhtR znNeqJsBwAI$dFN5OEcfWv?|{nMBw{4)~MeZ?zeg0$<$7%j|dU`N48pswZk>Nlq-O7^T}`4 zNA5G;^pP>QX&9#0pqFc%5(he|Tc@U*Nm7T-&TTJW+L=@U#4#n=5H0Y5 zv0>PYt}+dnmkY5UrgqvlvAX*J+BqMoeO z_D!#f=*1NHO7Bk^UMOe`Z;?lDq}3I-!{nEH(MMsee|;fr*cs^5dqZcX`zuTyy9szj z2-Y%x!EY8=-K@{}jP$z1gMD)ObDKgpX~uhUd&P=v9X$9>(=B1r!K~TS&Tjz94BTWxRRn(mU1Qs5g6 zs6(yq%)|seL<@?6YM#x%gVrx8oWJ`CDt&cQE9aO;%zDQUvOS-DnUx6^aCcmaL(mhq zh4Hl&z2f*+@cZrVQd(X6Z97vws_JA&-@4v<(#8?5!tRkQ$VhYo{fJcWlAq&t-(wp# z=fBW=wDy;Ooowq*8Pg0~&1tkC=g77njapFqkQa$W!ZOI($$GL1=G@pDGx-yt-p?F8 z6#G>XrJwwAtRdOJrdte;o@ww*Yu~0tngCT6k7<|dD+|}=7xrBZeBZm3cA6GB?A?oH zW#Fr@lF1<~n`;4;_dKCbjs~^%%%K<~q#NjSeVZ+_9z+7R%)QQjhJ^7k$>1;Gp(LZY z3_LkRBVuE1Et!PQ{Wf{Fxeol3ZID`LRN1K8!`ZJMREdq| z8)>DP8@Zi5UGixV4Lf~6-za0k8{`>fZG9u_ z6%jxjZf2|Jo!Q1xAYaM%HI4VNf9ZrDP%p^EjX}YnUWCFZiOS84R|tpCwp?A zd&-bj>NI`%W#`o~ykRFodfNAy%D(YQW&g`UjFvui%||j-9W6DSWV2 z{rzZp0!;c(TTAfi=H|iMl)u}hN%n7W$YnTkvJsAubWo9Q+ovebA;@=5Xbg%1h3x_+ zucOM82y(^&66GNNkV)sX7XBneJf{(_lhggWW=x0ZZJ`+;+&>7$8H-TMmNl_iu+=0A zUi~Rk&79B>4L8i*o;gj41tt(ntU-hlFYHofAs)qs(0|Ic;e1A-k;X!?0mAnd3z6y57oG+mE$ zwE2hn@3!U1#Vmu$qLj~XNli5=-uOhsA}g}Q2TL{dxkq5C=v_9d@7wKS{lA&a%7%JH>B`q5iw;>v^eMmiF90hPX9DmP5 zVAK7AM1}Ub<-7-e?evY#k0oY8?0DZt8Y2Y*Oi+ZFTc$G8mn4MJx(j_SBm>nw`ts|2 zlnIVdbBma!zRIi zJ#%{ju~E+$3GFUckbJ9Gl>i*_D7)u|29~@E%&Qxhx(Q1L)K8M1K1?UE?vpaI`P%B2Q_uOyxzY zfMAvNw+6Txe?viC9(wY-)Ll~7um_Fm|RbHk6Ma8Aeg~ba2ugl>BWEBB;of;PD#(OaU|Hx#U5$g6)`m87}YyISG zeEe~Mi2+%;4FP*YOW%tn_*2d4#`5U&6P9N!wz6~2L}Q*tZP;i$woQrW1+LLL;zw!fY!nbf!rfX5XW4=e^GMI zW&fL#ZLjB+F?*~C);7e?3cop2CtqnofZ{AE_gz5Idy#}6;gA=7=k`H3oVXms-E`1R z)nLdRB#cb_u+Ro92)Pn*A{*hI4l0b&dbbI^;lD81HbNJ`Run3Oj7<0$m9PzK)$<=GQuI^@|f}-=4);d+cI69rg$J(g^G9RKhqi5zacpcN?X?u?fWLvb7Q+_`|GWdgB3arO7jidPr^PmPvHryT*6rRObmhX1fxkTzb_B;NTVf$3 z&ymx4j(Yf19;~kp292Qt*z2pB6By{jX diff --git a/e2e/autoscript-apps/src/authn-basic/autoscript.ts b/e2e/autoscript-apps/src/authn-basic/autoscript.ts deleted file mode 100644 index dc986031f..000000000 --- a/e2e/autoscript-apps/src/authn-basic/autoscript.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const un = url.searchParams.get('un') || 'sdkuser'; - const platformHeader = url.searchParams.get('platformHeader') === 'true' ? true : false; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - middleware: [ - (req, action, next) => { - switch (action.type) { - case 'START_AUTHENTICATE': - if (action.payload.type === 'service' && typeof action.payload.tree === 'string') { - console.log('Starting authentication with service'); - } - break; - case 'AUTHENTICATE': - if (action.payload.type === 'service' && typeof action.payload.tree === 'string') { - console.log('Continuing authentication with service'); - } - break; - } - next(); - }, - ], - platformHeader, - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - from(forgerock.FRAuth.start()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - map( - (step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }, - (step) => step, - ), - rxDelay(delay), - mergeMap(() => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - }, 250); -} -autoscript(); - -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-basic/index.html b/e2e/autoscript-apps/src/authn-basic/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authn-basic/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-central-login-wellknown/autoscript.ts b/e2e/autoscript-apps/src/authn-central-login-wellknown/autoscript.ts deleted file mode 100644 index ed26ebbd0..000000000 --- a/e2e/autoscript-apps/src/authn-central-login-wellknown/autoscript.ts +++ /dev/null @@ -1,133 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -async function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const code = url.searchParams.get('code') || ''; - const error = url.searchParams.get('error') || ''; - const state = url.searchParams.get('state') || ''; - // in central login we use an auth query param for the return of our mock 401 request - // this is to prevent the evaluation of the page before we have technically authenticated - const auth = url.searchParams.get('auth') || false; - const acr_values = url.searchParams.get('acr') || 'SpecificTree'; - - let clientId = url.searchParams.get('clientId') || 'CentralLoginOAuthClient'; - let realmPath = url.searchParams.get('realmPath') || 'root'; - // The `revoke` scope is required for PingOne support - let scope = url.searchParams.get('scope') || 'openid profile me.read revoke'; - let wellKnownUrl = - url.searchParams.get('wellKnownUrl') || - 'http://localhost:9443/am/.well-known/oidc-configuration'; - - console.log('Configure the SDK'); - - if (wellKnownUrl) { - localStorage.setItem('wellknown', wellKnownUrl); - localStorage.setItem('clientId', clientId); - localStorage.setItem('realmPath', realmPath); - localStorage.setItem('scope', scope); - } else { - wellKnownUrl = localStorage.getItem('wellknown'); - clientId = localStorage.getItem('clientId'); - realmPath = localStorage.getItem('realmPath'); - scope = localStorage.getItem('scope'); - } - await forgerock.Config.setAsync({ - clientId, - realmPath, - redirectUri: `${url.origin}/src/authn-central-login-wellknown/`, - scope, - serverConfig: { - wellknown: wellKnownUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(() => { - from([1]) - .pipe( - mergeMap(() => { - let tokens; - // detect when in iframe as to not call `/authorize` needlessly - if (window.self !== window.top) { - return; - } else if (code && state) { - tokens = forgerock.TokenManager.getTokens({ - login: 'redirect', - query: { code, state }, - }); - } else { - tokens = forgerock.TokenManager.getTokens({ - login: 'redirect', - query: { acr_values }, - }); - } - return tokens; - }), - map((tokens) => { - if (tokens.accessToken) { - console.log('OAuth authorization successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Session_Error'); - } - }), - rxDelay(delay), - mergeMap(() => { - console.log('Remove cookie'); - document.cookie = ''; - console.log('Initiate logout'); - // You have to allow specific origins to CORS for OAuth client - return forgerock.FRUser.logout(); - }), - ) - .subscribe({ - error: (err) => { - /* - * We added this because Playwright was too fast for the dom element. - * When we make a request to central login we have to force a 401 page to mimick the real life scenario of the page being requested - * If we do this, we append a query param of auth to make sure we don't complete the flow until we are redirected from that page - * By saying we have !auth query param value, we are essentially mimicking the idea that we are waiting for the central login redirect - * to complete the redirect. - */ - if (!auth) { - return; - } - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - localStorage.removeItem('wellknown'); - localStorage.removeItem('clientId'); - localStorage.removeItem('realmPath'); - localStorage.removeItem('scope'); - }, - }); - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-central-login-wellknown/index.html b/e2e/autoscript-apps/src/authn-central-login-wellknown/index.html deleted file mode 100644 index 77b3e405d..000000000 --- a/e2e/autoscript-apps/src/authn-central-login-wellknown/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-central-login/autoscript.ts b/e2e/autoscript-apps/src/authn-central-login/autoscript.ts deleted file mode 100644 index 326012fe0..000000000 --- a/e2e/autoscript-apps/src/authn-central-login/autoscript.ts +++ /dev/null @@ -1,145 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const preAuthenticated = url.searchParams.get('preAuthenticated') || 'false'; - const code = url.searchParams.get('code') || ''; - const clientId = url.searchParams.get('clientId'); - const client_id = url.searchParams.get('client_id'); - const error = url.searchParams.get('error_description') || false; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const scope = url.searchParams.get('scope') || 'openid profile me.read'; - const state = url.searchParams.get('state') || ''; - const acr_values = url.searchParams.get('acr') || 'SpecificTree'; - // in central login we use an auth query param for the return of our mock 401 request - // this is to prevent the evaluation of the page before we have technically authenticated - const auth = url.searchParams.get('auth') || false; - - let tokenStore = url.searchParams.get('tokenStore') || 'localStorage'; - - // Support full redirects by setting storage, rather than rely purely on URL - if (!localStorage.getItem('tokenStore')) { - localStorage.setItem('tokenStore', tokenStore); - } else { - tokenStore = localStorage.getItem('tokenStore'); - } - - console.log('Configure the SDK'); - forgerock.Config.set({ - clientId: clientId || client_id || 'CentralLoginOAuthClient', - realmPath, - redirectUri: `${url.origin}/src/${ - preAuthenticated === 'false' ? 'authn-central-login' : '_callback' - }/`, - scope, - serverConfig: { - baseUrl: amUrl, - }, - tokenStore, - }); - - if (!code && !state) { - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - } - - console.log('Initiate first step with `undefined`'); - - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(() => { - from([1]) - .pipe( - map(() => { - if (preAuthenticated === 'true') { - console.log('Set mock cookie to represent existing session'); - document.cookie = 'iPlanetDirectoryPro=abcd1234; domain=localhost; path=/'; - if (code && state) { - window.sessionStorage.setItem( - `FR-SDK-${clientId}`, - JSON.stringify({ responseType: 'code', state, verifier: '1234' }), - ); - } - } - return; - }), - rxDelay(delay), - mergeMap((step) => { - let tokens; - if (error) { - // Do nothing - return; - } else if (code && state) { - tokens = forgerock.TokenManager.getTokens({ - login: 'redirect', - query: { code, state, acr_values }, - }); - } else { - tokens = forgerock.TokenManager.getTokens({ - login: 'redirect', - query: { acr_values }, - }); - } - return tokens; - }), - map((tokens) => { - if (tokens.accessToken) { - console.log('OAuth authorization successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Session_Error'); - } - }), - rxDelay(delay), - mergeMap(() => { - console.log('Remove cookie'); - document.cookie = ''; - console.log('Initiate logout'); - return forgerock.FRUser.logout(); - }), - ) - .subscribe({ - error: (err) => { - /* - * We added this because Playwright was too fast for the dom element. - * When we make a request to central login we have to force a 401 page to mimick the real life scenario of the page being requested - * If we do this, we append a query param of auth to make sure we don't complete the flow until we are redirected from that page - * By saying we have !auth query param value, we are essentially mimicking the idea that we are waiting for the central login redirect - * to complete the redirect. - */ - if (!auth) { - return; - } - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - localStorage.clear(); - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - history.replaceState(null, null, window.location.origin + window.location.pathname); - localStorage.clear(); - }, - }); - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-central-login/index.html b/e2e/autoscript-apps/src/authn-central-login/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authn-central-login/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-central-logout/autoscript.ts b/e2e/autoscript-apps/src/authn-central-logout/autoscript.ts deleted file mode 100644 index e69a89cd8..000000000 --- a/e2e/autoscript-apps/src/authn-central-logout/autoscript.ts +++ /dev/null @@ -1,108 +0,0 @@ -import * as forgerock from '@forgerock/javascript-sdk'; - -/* - * @forgerock/javascript-sdk - * - * index.html - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -async function autoscript() { - // Show only the view for this handler - const showStep = (handler) => { - document.querySelectorAll('#steps > *').forEach((x) => x.classList.remove('active')); - const panel = document.getElementById(handler); - if (!panel) { - console.error(`No panel with ID "${handler}"" found`); - return false; - } - document.getElementById(handler)?.classList.add('active'); - return true; - }; - - const showUser = (user) => { - const query = document.querySelector('#User pre'); - if (query !== null) { - query.innerHTML = JSON.stringify(user, null, 2); - } - - const panel = document.querySelector('#User'); - if (panel) { - const panelBtn = panel.querySelector('.btn'); - if (panelBtn !== null) { - panelBtn.addEventListener('click', () => { - logout(); - }); - } - } - showStep('User'); - }; - - const logout = async () => { - try { - await forgerock.FRUser.logout({ - logoutRedirectUri: `${window.location.origin}${window.location.pathname}`, - }); - } catch (error) { - console.error(error); - } - }; - - const authorize = async (code, state) => { - /** - * When the user return to this app after successfully logging in, - * the URL will include code and state query parameters that need to - * be passed in to complete the OAuth flow giving the user access - */ - await forgerock.TokenManager.getTokens({ query: { code, state } }); - const user = await forgerock.UserManager.getCurrentUser(); - showUser(user); - }; - - document.getElementById('loginBtn')?.addEventListener('click', async () => { - /** - * The key-value of `login: redirect` is what allows central-login. - * Passing no arguments or a key-value of `login: 'embedded'` means - * the app handles authentication locally. - */ - await forgerock.TokenManager.getTokens({ login: 'redirect' }); - const user = await forgerock.UserManager.getCurrentUser(); - showUser(user); - }); - - document.getElementById('forceRenewBtn')?.addEventListener('click', async () => { - await forgerock.TokenManager.getTokens({ login: 'redirect', forceRenew: true }); - const user = await forgerock.UserManager.getCurrentUser(); - showUser(user); - }); - await forgerock.Config.setAsync({ - clientId: '724ec718-c41c-4d51-98b0-84a583f450f9', // e.g. 'ForgeRockSDKClient' - redirectUri: `${window.location.origin}${window.location.pathname}`, // Redirect back to your app, e.g. 'https://sdkapp.example.com:8443' - scope: 'openid profile email name revoke', // e.g. 'openid profile email address phone me.read' - serverConfig: { - wellknown: - 'https://auth.pingone.ca/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/.well-known/openid-configuration', - }, - realmPath: '', // e.g. 'alpha' or 'root' - }); - - /** - * Check URL for query parameters - */ - const url = new URL(document.location.href); - const params = url.searchParams; - const authCode = params.get('code'); - const state = params.get('state'); - - /** - * If the URL has state and authCode as query parameters, then the user - * returned back here after successfully logging, so call authorize with - * the values - */ - if (state && authCode) { - authorize(authCode, state); - } -} -autoscript(); diff --git a/e2e/autoscript-apps/src/authn-central-logout/callback.html b/e2e/autoscript-apps/src/authn-central-logout/callback.html deleted file mode 100644 index 87c88b9b0..000000000 --- a/e2e/autoscript-apps/src/authn-central-logout/callback.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - Document - - - Callback - - diff --git a/e2e/autoscript-apps/src/authn-central-logout/index.html b/e2e/autoscript-apps/src/authn-central-logout/index.html deleted file mode 100644 index 45f767ba1..000000000 --- a/e2e/autoscript-apps/src/authn-central-logout/index.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - Custom UI | ForgeRock JavaScript SDK Samples - - - - - - -
-
- - -
-
-
-

Your user information:

-

-        
- -
-
-

Error code:

-

Start over

-
-
-

Something unexpected happened. Check the console for details.

-

Start over

-
-
- - diff --git a/e2e/autoscript-apps/src/authn-device-profile/autoscript.ts b/e2e/autoscript-apps/src/authn-device-profile/autoscript.ts deleted file mode 100644 index e53b33506..000000000 --- a/e2e/autoscript-apps/src/authn-device-profile/autoscript.ts +++ /dev/null @@ -1,115 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'DeviceProfileCallbackTest'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap( - (step) => { - const deviceCollectorCb = step.getCallbackOfType('DeviceProfileCallback'); - - const message = deviceCollectorCb.getMessage(); - console.log(message); - document.body.innerHTML = `

${message}

`; - const isLocationRequired = deviceCollectorCb.isLocationRequired(); - const isMetadataRequired = deviceCollectorCb.isMetadataRequired(); - - const device = new forgerock.FRDevice(); - return device.getProfile({ - location: isLocationRequired, - metadata: isMetadataRequired, - }); - }, - (step, profile) => { - console.log(profile); - return { step, profile }; - }, - ), - rxDelay(delay), - mergeMap( - ({ step, profile }) => { - console.log('Profile collected.'); - step.getCallbackOfType('DeviceProfileCallback').setProfile(profile); - return forgerock.FRAuth.next(step); - }, - (step, response) => { - if (response.type === 'LoginFailure') { - throw new Error('No profile match.'); - } else { - console.log('Login with profile successful.'); - document.body.innerHTML = '

Login successful

'; - return step; - } - }, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-device-profile/index.html b/e2e/autoscript-apps/src/authn-device-profile/index.html deleted file mode 100644 index d88ae69ce..000000000 --- a/e2e/autoscript-apps/src/authn-device-profile/index.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-email-suspend/LoginWithEmail.png b/e2e/autoscript-apps/src/authn-email-suspend/LoginWithEmail.png deleted file mode 100644 index 10ba34067500f3659e5a299aa1260173ee71a251..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178174 zcmce8WmsEF+b$KfP%2QM6evz`Xo2Ewafje8A$Uj&MS`}aI1~@=gy0%n3&o3j0tAY+ zKycU7_dDO-?>^`Kew`oZ*SgkPGtbB~vu4(F-}i)SswEy-jm+Wm z{VkK%5AKHenm=vPn|8;VKe??6Z+v6L*hm|}qLJ<@$jr=){V^W$DuxEhFDW^XQVb{f zWK(Sq0)g~6C`v}{s83jij=bi>x^fc4#ntYH=W8(9J%2!S_x7jPe_bk~A9CfjV_koNzW>Wj+HjYUtjh6++X;D44$ zd-v@{tMDrYu76klze}i4d`OgQA9LR%gzo=n+rM5<6MW)NDI*&iRsIi)+`zjXc1C%3 zsH_P8(INk3v%Tic^N4)M09Vwb|F9TN@d@|^X_m+QKjjm8^ISr0`tF(?%U`YkJO2}| zKb^)i6?3oQ&i~zl#gyj{AZH^inhZ-S%Dh%ET_Wi`FK-?lkX7gEUrtGXra`LFHh5Wa{Txcdgy>{lW(` zCszDnw13!TIC1Fh4(qOp#PExzcI=MvmqMy&vuIiULT9}p@KCvKykE?74N-Xj7Tg=k zyC(*{bG=iu#9BzT-lVeN9juMozf9a-@i97SFenvnJ}w_`EjOM!eY0tpZ9X(*rmleT z!;00NFTxs}Tuq1NHzj+|ysy$)CyjEHeMPZe#peBf47f9O(_V2bQEt0G)#CclEyc*z za!RV@%Ve)Y_hR+NV{b*HRX+#aeX-pmn+CsfvqlF>_NVAq{xQEU7gi4sU^#H^IhI

J0z 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�*+Vk$*W(9$=jZRlT)7|4EgU7t3x0)y5Lv_%xH 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 ei8wgF(9;}+>vfG&Ji`33Yuihw&GzAHn; z&uIX96>ZjcQ$H!~eQ*=ime~K`AwhMtGh6%30z~I%Y%dkDD{fI&Zxg4g?3$U*s^3zb zEumh7(uO(F+(6&SistAeR)B;eQnI=Oo};`vHPu$unAk(rZFBz77DI^Pzi$G%>`*oo z_1yMjh{^C&5-XNJFCq6z0W!DiP%Z0(I3(;-rLPrC7@%N>0)GrJ$NBBwMZ1p?&47r+ z#!lYP4A#D#xvvi|?QQ$ceBTAEtNNNou237}&AiXdr;9f^Rt~*#;_h@4 zte3tjazA&~Pw6T9q7{&s`v3c8;K+8CuZBlxseL(+lcSLZobr;j<@BERqCb|HlY{;o zKd4Uu2-Oz(wIw1yKQC>QW_1$k%gJ-Q3RL{QjQ-Ha`_*lZS_FU9Aq881QxP4nlzQeb z^E9;H|1-jW9?6(D!m6DWpsPWUrlvX3imiNwTW{&Xh=!95+9m{2#5wzACiDHCaKQd3B;gAlK`b8f-bPf7Ek5`H77!_)_U2xZ4dAovF1?dpB7~mGaos z51@1Uqx#9)yDOZ`#hd`m!8=|81mnVv0fd(-a-CcF^R&(;ecfr8t|4NN+d-mPLJi|l zJH?zQ$I|kYY`C*H|C@l)$LKs1d-v;|c#jkf>tz=YeNZ~GaEsGsjM`EG0-QG!yMn!* zb4_$mUit4dtJfbd*8wi!o^9q8)2%WHd&tddqmK#ITu-aK%BU{#g<|L&A1>s{C_uwB zyeQ*HR@Qw4$(bo9{7C8dZI>DUCacjT1ha!b=xpr<=cuvVQ@X1JWM{2cp>uGO)0I5F za2Zwrvox-t&&_=W6BcQ07|np04+l$&9dqYFS9A!-XD`<5)#=)Rz5LXfq1s*zD=kFe zwD$NC`&drge3SXe_q_#0!g>~M$U)7$9yE4(8@NYOU5Pbyi2a@}>072T`>?Rr6h9Ya z$$+nNt}I?0ly2+)_(XPPZ>K-y>gC~`AS|_z4_r&X^IIWo1u4=oe!mZLOoyr)*fz}C za7k1Y;)A;7YjBn9_S#r;`#@C5Egfd1;+C=c|@0DOWY2%`AoO|w)NaUde~QU%D?O>I`3^z#G8z;PG8(95(6*c8&}I-Elo|McWYAxoDl-%EB-W z0v~u|eZK5$o;|O|t4a+9`m&!_!*i)aMP{6CN9A$nO`>J`X+YorV$%w{+%l7bjxXH5 zAmnYcvD8e3xo zudi~eiO&zRDy^yH0eJnG>Hj}IO*1*uA~j7}X);Zv zm8G_bngY{Udo{udjdLdws8SU0iyJhjR}1{k)%#<@vmIxQFh|uh(G^=XEnB1n1cTcB^kkF#^eQ z%jQohMAXz?5JJ|+$>6{_Vjx~ddJ&9v7U$*><8TI|Mk&#_)g(Vp&#T*LoQvLmw}cEi z7r5^m7_FlyP!V|`^11d@WBuE4-HM<7ZT1zMBxmm4&a=rt9C-YwxVfgwrueEKMO8}I z{zb1ypqKFHCb%(MyUum*4!yO}o}{K$VBWzbY)R`~$q9SjQ9BH=Ga$VKy4m{i$;SQF ztCrhS9QC#=EB8pt$9tP28-u**-hnnRwB`6g`x4gA%iSvA?Y_o9fxZuh+5e?_Jj)w- z@j_Dq^$$$gA7zA_psAE@^j8HGa=~ z{R2 zOtY8fvY1_VzeaDaZJH@HVFWU?T?~A8*Sgst$VtkbLD?15n%B#>-gHs-t=W5Xk}7>< z1y77sePL!A}^P3lEheY{q+qxx7f?;3w42(>9z57(`EpX$7 z4fVRzw^%^Vl};x9WS3a$DwxcSyNGdv&F>s*R$^^T_`rGiS1OJ=^`T=vse*#`Pi(!9}l*dqMHHID}e@6B%N+9#Qq40JHNIcZ=0GJV4e@t6tAVLK4z1gZALmXlSV3QMcNbQ`17l1 z+(NmP$x-u;A05$flURfD==SP-++<1uv3n=lX*+Lw|?WV zH}eNs$=vwZt1VP=%;%*$1d;YqEmA$^Z3XNz&RA$$3VXtzNv@?&y$+i0cCNALZE*$3< z4KTA5zK~H!=8)qX%MYckZZ@<42hKo|=7r%igKFBq=Qgk#-z`*9!w_!*!f=SXUW5;2 z1|JlN9uJ;0*o?(cOgBpsm7kIPN03*GX~L>!}0Pqpeebi=`m z&T##eLW+>*ya2u8S=iik2u+`S$cB(q%*h+9Tk&U&)xcQqqwu!()&%GJ;k$78sZ0t? z?P(E?C@zR|d_44;V#p^>wEmHm?cv;{w|8U+Y~}U#)1||m2NARXK;wFAa@OY|3K?() za#Ua52Lf-#*yq6~_zKXIG*o^~7LryQJ~<$g=y0Q5N&sJRB-Fox+_y5Eur*Yw(Am$m z)~`90Ib( zrAKN)_7k>bB}QCvfrk6DJ}A!>q74c(NyT6&NSTtQ92Xn+sW!2dX&W2L802PThWu8% zgn6A9x-7gWuWsSx6Ixqmw)@aIw@5G#>Uj4zGv0Ay3d8DVHq}AawjFW$fNlcsHC^jn ziml%gZ3LG0vcL~??K@rKw>sZ22z8gPNc^iAx>#d z)t+Q5okPts_%>?G`q!374{okcazD5Fkwo zufNP|-k&DEVTKlMJaBJmaeZIlF9ds&O^{avlK^!}ZwlB8#FB$t{mI72?1j@|3UW-f z-=a=Cjr9-hjXl_H@3TKNo4j9uGUnQt88gj;;~!ZK@2JzhezBBK4cU#dISgPh3pC(` zP>ADeM%T4vp4InZb$!yOZlgKyqsinYTB&eZ17TsP?#q*S8Aj$Rsa~Y>@H~-$Iap30tb|u50 zn^fnKW=g0er4~WZ zlMhA{Yp|0dki!vDX_XwIoL;t3yiR*}l&h=7-Q6^UeAPc+%Gy3lG%jU)rPcc0*;kSH zNONNNY&GkPU%UTja+*D%TK$tt^!<0Yi*ETySM=VwE@oYs;F;VOtq(t=$C#t&la)02 z@|3$s`Res(IdZiG|FfmRYA-s}nIOf#!1x!#;RX+%alc^wAZu?sh%3a4G)4Iu#+Mcs zJyzR>b=Iacr1r+782a)nYq~c9|4NR8&xEFUMIT2*|JB=f$uS6pENpgoSruxTCcHK8 z_`oH)vCTh^Vpm8{K#GA!RBe}MPx>wI4DJi*sl5Xyz-YzkhBIbo9C)bNa0#D^h$hFv z#wwO38zlW_+h45$Z*|h<#TmiO0aRctGqki6MpsJ8`UcLo_l?*$lhR`C;yb$6Kam&v zki$V#Qq2992ClPtWbQB^b>m3#?lT6nZmqK8uje`tx5#m2Roh=llWzgCUqAkof81)O z;Wv@+GLwq^{X9C9fql^?uZq(5H%wJ+j9W?@|0O@5>#=0xT^MQH;!gOPfQAXGv1p*L zjj}6o)gRi#s%LrCrAvzioI2^VwoR}^f;!Ou7eaIxaPhpQ^<4+tyePlePAm61pk_2PDM-(rI~(-NEcma{73>xluTd^2C($PxDa zt~H4?RN#*83xW^c^7M5YUfi#|R5Lqzdq5KpdQuv$?PHba+LJt6LSxcS)Vk!ayR~sc zVNp!@RL4qh^1gQ+4ey6P%$8W16sZQSA9{d7?t2>bS!Pl{kGv$3wzV2LBjI%)?}Jj; z-ku7xu~sj!UvSf6#|%{v+SZs&l1}0)lWj6F=~jvLZ@cS6z@MXa{Rz8gSR%4EizFMX z6}D^(Z9(SjkVEVVDR;Z$Uu{`s0D6PG@|hjt<#E#$Y)GT_ZM7@gOXs3e-@-=4jT47~ zN3Qi8{Ox?{7F4wwBT2t9P2^4&sr==F-<8v~ksQ^+9B^jnIN;U(M~{g!LU(QZCPZjf ziqq{{2r+nm5KJs)UUCch=R5N>uVS0P<$y2F1Gz!kbK?RhFmhJ$(BbW7okBq$T5SUi-CI$A`#8BwU&sfy6$uThDZgK;!)1+_BhZFH z?23IKHU<$6uR2Axp84g^jU^l-gziJ4?TI_QX^-lwgM!(=h7n`GHULjwz;!8&69<>N zw_zM_<1&I%sK+oN(3?DHV8^5=?cjc;HgG*dHGK9RIrR+Lm3 z6R7rms(rqe@X)5Ibkib-jfJg0`Ir<1=HpitTc>wwBNo&}PpV3rXR_LRP12l4;K+g2 z^hnxC6AzB%ll?)AOJ#MorDWM-7g*)G&18q61uDeLJFKqlyKHRO&#;kgc-@hW*5>Ac z>}^^&f&yGqTz}RTs(QC%dMpBg_yV*J+#wSd zCPJ8Y7Ipa0qDqnR_$;J4Lb~uvsPVW&D$3h;v;4oS5|aP#s!CaJPMUCR$X8i?l#N!_ zd0dY~d!rP&^a#hY2d167Wr8xT*xw@XGEH`i{{c<-jLPXY#2Sc0c1|!mcwB`@)!Zdsx zRC~Rho!>ukQQ`3FptQ@O6!nyJ5wP@#=Xk)RA^XLjSn@8*OI3{Cc;(1HZKKiSZ+SX7Biuz4l(;dEvO0nI#-#Vgrs?or+4k zmTgQT7d^6YAS@I8e8oRRK52FR2lI+=`+URv^8W1rV(xE?6FjKUFH1=O2#PcADcP2Y zFoo{VUoL(>>-t@q2Wr^yF>RmmMfAr%J`0%|_O_=hoT69>$lxVOU>ZiH6HBWjp z604Ln|D~rl?RUd}(abN~9(CcNyVqKRgP~%l#^F>e5@Tk87JSoX8I>jEEl+^ZMaFN% z+ci;RC6bUge|6qp(~Mx84#;!-kV;1DfXt%`%KMW?12{I`G^=b;Ekk!O60lD3K*E*g(Y1gW;zh=BL#ts@Wy$r=q-IgX}2$j;+ z!0~zh4Ay-~TeHVQFONWg>T|SvFqR`hkVoQ^d@Et}Fb)c5=-H|X(hSi_nc2l>mcE&? znEh1q<*+&G0(>Dv@t#0@w^Ocw3AF4|v&o=(SXHhm)s(mBw=2En{F}ZCD z0vN+@mR^S-Q=u24j@it2iaJ`2DSRdxuf7x8k{WU$4P# z8hslG)0W%EdQxW2!?``eQxy>35h6ZZn^(OkjR1pMyWf4Y&(CWdbHE7NR!~Nqd}$%!&#X!Wm`(mRX0o|N(KrH(hkz$mpu z+9ztw8wF}d{p?T@IG}uj=jQCm1zrl&BDm@xyw;cB>fq6;m%Kc`QmysRG{mOETVwT( zNklr~qe1(9(#GpYdWaBL^Yidu;@7t9I;Gxt4jowxF{NA|h;<2Go@L{(Dc`t4;yh&! zFDy43ACR)9bIQCJM)VjEjRtwTPuc#>jwB>S?JxW_&YyY>GcJGSflP!2Mz9KCgR&U- zF@n_-kAA!JHR%I&g2TGIFKRGZOuTSu)Fo?U?$*!(AFcB;1)e-)>S-+N&M!!%U7|hkai3~rjQ!vC`S#) z5`muiX7p3w9D1^XSPoHGV#%)xwmh@tTGiY2nF$Vd`z2`l<+$_D)!np<=@y1aCCD9I zWZMr-Kc)87e>i;SdDGAFFpR7iwuCDme zTcMyP$L^|o(9(@q{alDL4ji8h^z_vyEV)iD?Y}bU*PDjiO>i9J_+Va}paqFnj7sPI z-p%&fRV-=|u5;a!coo|MscPzLDCsgb=#>nT_WcM{6F{09XK1qxvV~0jM`V&p%-4%k z{tqdm3^QoB_ACBlq7Abo-56;qQ+q!JsRidSQ)19D3@tV{ca>;iFrq1mmU2WIOY9gZ zNhu)6Y(0%F+sdx>FC0vHl^2G{LyP}xBqr$EOu}b^tQV1~z&`zye-~F(x@_PC=1FE{ z;Qgvk^5mj6GJip;<+cy-gaJz(%u|l}o3zQfW^vQDvD7uSLZuo%3Zlc4eQB`=cuy3y zV3M!9l>WTlV<v(n65iwRz5M*;3`( zM{v|E`W5GkZQkjdwN7p;GJigB=3iJqb%}!({-i;B$4Aq_u;%dZ0S|2g-mJyPYG1%S zfG$^B8DsFDl+>;xPNs>+I%bgVa>q#2(CdFvI0IiQ&-m{+`ravfwmcZLlnszDJs#+4{He!aOX|MHQ z>mTu^Vm#QK&sVY;s@5Hv;|tS2Q*_po^8maQ%*nOJGu{En4tc%Zh(0fW{uPkhFefu1 z=L8~u^o1++@X`_ODR=p2?J1wQ*I7PwMv^YL8oq#AR8E2s3aRB703=jDgVvR%00xagPip4}hWHY$ zSdnOoV0`}oa`k9SJDjYX`kgNJ?mk4(K4>oIln!znLN&g_8&HfSYIJj0lXeX6rdjIg zewENW@AD@3o=8$?HXSCMaAf#{Z@)+p8GJP%&Zz3SQu}+eVUq$QVd$U)DB#wIbCP_v zk3RHe3m)w)g)`1gh*js@IzWW1+`1C=K56Y<+Y$LD#D2hnhqERMXYdBGS zREkqi$*nNG^RsV&Zpj-%fxnBcsEXw^0@Xd#8QZ%n#7h@ol1IS36Z9 zh!Sr-aj`XXP$x8K$xy9og#2|VjC*KPkVf37XI zo?Ljqav#FlCWc@Rjt<=u?Ji5mDxCG08>&I^dx;t1S6fcyQF;p_=h+gTR0D%4XKbT! zrX&wP-UW_=EK}r%E8x;-OoWGD$;ePma6TNwy>3`9l&WMJ(?{S)c(3MZ>`QW?n&<0l z;Y08Mp9U6jt9wxEAf`=o6#Oe?A~5qP>yo(l2?4h(Z4fffffyQfw8H#=e%s~kZNtel9QsZnqNf{5-Ye)tO#4yj- zHBLTjvAM4DB+Yni-NcWaIr5yeLyRSB5525{nH)@MbG)J)4BZOgOu@;TC69d+pjPn; z__3UxVS>`1;9xb{S>n@Rb+G~aBu(7#dSqydCRFCXDt+S9K^G;m8T}QYE~7-#a-*x2 z5|o6i!G{|)*Pl0kfz0h2Wds)}bxM(9DU4x20G~d8n0}VuedNt()9R&_dF+#bXWr}! z#OThRI{NMgnNJw+Qp2{vi00c(J1h}>iAg=-?A^GiDjYDL(v$h+8FDd2|3PYWh9u?@ z#j1>l=x;xQd0L9tb#c+su8)!>S(JaOsXA1_oqlEZrJ;B$+PdL*=swZBAL)$Tix^6e z@{vO{Fm0#n0qUGl+(5tM}mm6o* z#w+y&=Mt&SeRp7+K{`H@@t2t0Nub4_qcGJoZMN*qarc##c2|I$YEeKKGrlVK%~J2q zOvX_nq^m{+B;K{Bm)OQk#Fp#qvPR>r4A2yP# zW8X&Vz;T+**z}GOFRNZ`mJlRe{NFE>^CHjQ+8kZOdI@C&XBD!yVAUTBTPs34B{X?@ zun8F^I1U?9FCf!_4ULXILs437n%o}t34W~7r>*)-b(;?~ye1e4!1ER{cSn+*5Z_o< z%|4Og#Q4bpR*75U19lBUTZn#?kdL)H!hMYxxP;!s1L2VR)%rn=vW(fx=`$W}xa(o6 z2It1u*Fayik^3Fxd`B-EaW7QDZzh$eS%(T7L&Rg?`SuYG4FxXnKkEtSY>@{9M|c9) z*GabeMXCoBlyNdYmyF@Ayf8TAjDPVz`*!w#nRvFUodC53VD(-BHDEBMMcEKE%d+Gww+^ zjg@-$G+m8mC}DzgkMwC%PEwfsVW zrl+(W*>u4tFMImN$jNDw!gAmk;0V&*t!$g-NU2*zkZf-zG?)m48LQ%sf$YteWM-aG z{d;A-&MU0kYVrW%z8R=u0%7nN#2aW?CP>rZ1fvWM-d6&?5Y<2kpTr3c6Mmr^h)K>A z?GBKVPyFq7c*3>Dj{A+Lx=qMr#*U{(MGkv!Za;WqLBfcq@4a7sA;AH1j0a|AlaUzg*7oi1AUsP)%broz^n)91mn;)e{d=m_Eu~a09^R zhqxF%0p-3nBVdG7YHQlO+WSmH3TjE0O2C{+m;wh0ti*YV9JrzcAptqw9v93fA^98> z@`bQe8O~75CA^y(@9{r6GUvRh{)^YkMR?Aow=}}{Z`nU(5FqiQ$vHm-uy1Lxv;d3# zo=g<|rEmRo=f2eh)$Ggpz1`aR`xkZ*W5S`pqvf)53R?i&8=U^rw`s-n26x6HwMGpf z%!U!pD%tFKk>iQlsG7FE_-|Tcq(@MQxqE5e&8otNs9j`7hMy(fxj$KFF`aFgIT!9v zsqY3J**L|1xnb?4o8HUNvZXvM21B|e_o8#phqt+o=Dh#F%jNg2LHF{@+QHz{bQ*2< zWHzX8E~up7o{Et>$WD4Tbz`4Pwhw&YA#Q^@?jQ z*J=|ZK(RC++I{XbuMPLsiT*9!`DM!F`W}l%%Q21&Ny&LfA8_}=a%qk+U zq9}8(xB47yqtl+Q;ds#VPBu^uGBAZ(P68dv9xZR|Ta%brf2})FWg+DCqYN@Da&|YR zs;fDFpeOOQ&(<%j2sUgp@Yj3 z(8LK279^40{P7QNbpg&p`ERM_^TXK8scbx-1eI{Phbj<-WYDs>2x#^AgpjH|zrLpA z>^oYGdBe=#m}%dBjZvf6r#83vB;h)?+Mw-iWS>y8a@s zZa}!a7%$)KOHwDNTUcx^Y;w$LD1~{a9Mkj6N_=tx4>AJlfSU!Xs3NjBWJ95cT7+W- zM?l)BmiX|Dr06B(|FC`6%0 zF+soXv`@584fIe@VrJL)v!>!FrVe3)O4)PF8Or3Juqsw(5Esrx#{v!Q<7vGYisw4{ zd!ng6S5VT+tv@)0Zbl50t#1nLe3yN23{HuIa8GXfDuDv2HS*-V+4PJxV&QbDm1*9JkV3fuhjl*iInb6 z>9RnMSE$*?v@5;B9lUjIu*oVkA(>1khcJbWRXdry1bq2^a5>))ZaqPr=VGGj)a;f^ z5-v(5(!7G<=}K)O^30{?&sX|z<>EoC^#stubT>vZ9CM`o<@9&G&9}$o&0ih0cGQYz z;7oIR)x43cDShGwz6bsX?3!W&(Z3MWJxYw~}XX?v#8Y6Djyh zPb*@2Z8U#FO`hn3=QiMyZ`u5zdemk4B(h^>vX`WrJ3p#=Pni(fH>P^P5+~{H`(Bnh z^ty`el$&ui%*m~LsVki{Ty&|qV#h*E zaiQ+tRI+SPkd&FiM4>}TY{E=1PK{aJ8|N?KIzZQ-Z1b?osR0x7feN{uSX6{BS1o4Q zSCmG&dy8`eU?4O47&DRO=3Aju-6g!{UwGHuPc1OV{{Qm-eKctLHn2l9JnK{js_Ejt zi{HN@Lv(?DGEZ_L2lFX7yGef!3Oj}Ozk4t-E>P~eLLq;)b%Pg~xP-##N>#mBaYAGt zQC2J1cP0+sqwX2z!Msg|7DIj2o=e`iHk(>*JfZ)KZ+=u@mJdwzCQrWHNyjTh^!MoB zlvpiop&+{9NhjhtL63ynM{|OZd5#$o2Mw=+JxS^lk2x`F8c^0OtUW=1`)-|N56uY^ zd)(^aVASiO9pL>Pn-vb`sqpyEW$fLF8VF@FJ zx3`)Hsdq?jY{-BdnoQ|1YKqfogS+U%Z%#ATr152Mi=rrusH$HPeHVaVIfgP6@UO6x zl+(^P!$wx9Hq>})x9&Df|Ck!q&E2!w2eet4KOr?l@vM1me{6gaYW(`gdRU0B?_mZ2 zyQ3Wko(Yk@UZetk$jR(XN9a`6>*M_cSS=NXQH*DGwQr!CU6wfo_|nFw>)tI0)REKi zTMgZ{`Dr|duNf40x8S08UG7KbpmjF~5M&M?HmIw_krkhsvCW1L$K*sOi4wRqi^xkS zs^_na)L!mfR%}+?+&-?laE&A37_{adJ+-J@8Ajpa8(=-f`C~M>=jsaw9BHqrt^E~7Q zxd0SP=`oN*0IZC9bXgY2F~!e< zl-_^@|GRt+jPH%0g-D*rCy6ON6NTR|$+;*rjJsQ1L*`KWZuPRc%P-hpN@8Fcw;nl% z?7#3`1l=W>8FTq|dM^`qxea$@yO46y8S$Q^l0vXn68v>v`7R^9ymXE5iT;hBij|%= z2iAxjt~_XzgAu4ZO2}rU+vn*q9{2IO8-GC}@J}DfTO=jqk14orQtgO z!d;bJO(ma4zdV}AMND`Su;=rh&tm3Q(J8IhVMIfupuf(yj;TqzJ2JSKP{!n zyB^a`@re_*QfvqjcvO7z$6h&7Nx#T zU;+(vHeW@e3*x7Q^Ne;ZXLealp2PM_=(DxC|lTmYS%QCgLJ}7!Q0Q#BUNABWUgUdH>??fbK^;ohs}RQ zI551SLV4!UVK#Q^1~)mw zh{wU&IMphRAw^U0&%Mfjwjf5CJLXRmu9<)PrO|d`!E`6b9m7vgjMZdTq(~N6t2}(2 zMjob$ouGGhEu}+DK+Mp7s<$Y#aja`a%tV>;;332KEj+WKH}{$ABuo1a!L+cYwhI`o zE0jz+v@s|nRQ*+J ztd1;;+b>V$ICxg1cV_MbxfN*Wb3F(M^fcG!OI^dLKoAUU00(v=bU-Kv=BS__PX5*z z88TU5snKh=2jlo861@HJ*ZXu6vMDE?!muY08TnZd;j+ zy+9l%1pi{(Ra-ZZ>TzrRa9rVgZnC3%vgztEqhQMENem<#m zd|-sBdP8}i`8`o6?Aq&(XYxjeWbwx|P}(EdS$iDF3DLW8C<*?lXyf4GO!9xw=P?+_ITauT zjQ)I)20CfVVwM^||4V&CHOu_cV6?MwV#E{tvcHb&8NBZ>2PK&YfON?rwo8}a=jDF( z!~>hwk1fNCmc zlu14=NVPXkLVS35&gud}A)<}TZ!}(m*^Iwi7;>PIev&)Q?wH=t;g#WMip#Iqf4fG^R_XR@58H6fOrfr$Wz=@!x0O z2$fB!vyi6fw_DT=LV2@-O$sz`{b6V@qnDP!1h1~#00&WWc-R}_^p?=_mVe^GLIs+i zg*7Q*b}hExfjqhR9`d^`GNKuVM=X4e3-xx&G!;H}ZoPeg>A!BD{&0-@Sda-bD=VeD zaoZ@B-nYAa4(Da9=}d`B3OfW@ql@C+DX0O8Tv*_x9+n0h2M%yH`SpsB$2P8KymSef z0FHb3`UWlxv{GM?<2q2r)ak>amrOZO?VBGxw|1U(j}ftaHGzV|?cZ4bQPXRTNZc>? z!4Q^!)gJT9_IRsH&9+S5YcYov=sg38UE7Uqpj92Jw9d49bS>zMsnx@Yk7mn`g*7=( zP2GKWHYMuedY>c}&EtGU^y&!zKqv87mdQars}Cd-7pA}&!v?AI;5l}XE(ix=B;JH~ zQD0W9Jr5P8C~uZ9qU{JY0&QdI*2OBS)2^VF-Ii;MiAKM#f1JPOqFNN-Ki+uxxz)fU z;|xZHt#mV^j{f`eO@9+&u*(G7F*ezAvR6Jmk=1`g_K(wiU`;t&Ka2X)ZphGc1HmPR z&vwxQY(^DcWudff_=Fc(Nuo}>R__A3?_=28@B#PiGqi87S#q#T2~uiHuy02?Hlx7X z(AnM{-xhd~!c-}Yyz4*rnG{Lc7dkGb4D_XJNTZZgkJ7&zdJC!<7=w_@Y& zCY1&Med$@x%LL)tysPk{2klP0>K4#c+J_}`G$>*}0uk8e$i z+4?X6QaH8C2ZF6*F73Wlg`YCYRDDe0Sd75u-`3iecvNfK~(@F~R!_{{>U`}Rs#n*5l709%#k-H}{IXPD0 zO9GyHZ)Q}FtG*B95L!hbLw7Hp8^p`GyUc#J6d5`3CFP-K%I%G1#d-AG+8wMg|O+&-*B=~E=Y*b&i zxHZ>EXKN+oaPcE)1x}^_A^p7}U#mV-Qpu|wVL#l~bpB0hGJSM`V0K5` zaR1B7m+6a*TfWg8U&Mdxr5$g+uoykJVc*coR!%pxht^g`vI!4ZM^y!;+c^;{{x*Xl z59SwS7=81N{cp#Q9yyCtiBL%A;hE^ZU-l9+TVn*&#AHjfaF5yOg-TCbr6o@)lq1_y-FSsyY?(ijWChxnGBq;jD0*iGRxmSnzHt@`h*CSFb?F&x&n5B=YQ zoBqc9(ss3VXmDZtY*Ikldq4R>9{RxSJ`EnsI@rS8rI|8x^>mPgFCQOmpk^%Tl)`wh z?z@u@IFW>sysM}*{=c>R&Gy1S#J-K`AKT^FXk6eTRc|L$&o$jkEh4Wz?_?Tg8aMqA ziXVJeHzs$|-EQv?JmKT&WD}lV1r{$n+BnXa-?M&Oe{x0MDZ0SDu&@9&d@f9cS~-++ z_n_|Gj%-Tg{rbD*TkqFjmgj|wvzUT-1!{PXl^c2rNgfoOHuj^oi~h;EA6L^MD{wYn z^6ADRSPxN%4n=RMX>h$VkM${A-YMcf-ExkDXCpB3r{X;oaYv_bvat;`594e;7cHfl zlsKNu=0x4xmr^-U!erfhBi!^}k#-si8S?(;8Mjb;Z`pR6pJDEQWP3#E76-LgK*Gj5 z;J@WOelTnBelt}m$>XdDnOq(DDp!5#k|rj?I@nYAm+(`W&E7=Z0Uv~@+A5_Iv;FXn zpnnU(4(R;x)^cvwn{tU0*iVwHS@2YBZG|IYk%lzJWPOR*a@zuH`L-d7P7=oec) zwsCVxOmAwO&8~ggYe?ywr2yr<%EYqE^5Uu|KJ3H|{6{j~PoHrY$Fz6;}h(qOL&HSlM4*#3xm5C6>9C)M~z zq<~I)-$t`)w(#D;q4g$lTgeIKlMDEtv&&SKAoI79bLswBJ}9Tm9!viU<7#!|W?T&dC97YQel?q(X!^29ul&+3aq5ZirgT368x$PFw=Cs{A5Ec~ze~?!o+B z3+uUI1|=zi<^bPhd-bQJ2*nD7VViLEcarLb%-OVdO2nHVPyFgch(t2{aGP=)@DGx8 z6Rtcy>nBh8pN%QVTR!%~%aU~4tep)TZof{t4R2c<#8#K!nYK@Al=(QO(`S3>WFoTj@xKu8t?nwDFaVTkUDr_S#pZ-lA~Y^2b5rKR+t=zA5Lh zg@d&7$McPe`TEuq6$NOO6+`eF^nAr2D(0Su#$QY?*H1+SFb&PX6%R--eQH3T>uBGj zJvWq^TNTPA)qI_~Vd-o|e?yoL&3DGjzPu{c4La(3O>!X(HTzK=SCz~SC%cpUEs%ZU zH76k?L9N-Bt|R}Qzk|3*-4>T@lDEbH&TM%inFA7u<}oltthJ+OMl=RYDE&A>)X3Q0 z@4{C7VH$f204)oKg;7nd5d)P;+RJrI8C^4T;b?7MUpth9*K10KsE&y!dW3%K*^2PH z+ULH$s<B%Y&Z)Ya3PC_bn`&`s}?n+fUnnYP%y(8*8lMtSQ<@H~I{s z4J=sZWUQE(h+M;8>>A9I--9sF%m*gCU)Vx5eU$|Jb zTMf!_qjezm3?3O}NS5&b6$ODSsFGibvl*Zp^!|KOCciLv+u}D{l)ngDIJZVzp@bOc z54bPUF58OIE_c9J{|adxpLW>;pKEHeRTQl67a8?1DJg>zx^l!u_h7qTW+RbZnf(5! z`8u-@eC3=^y4Bp2Ygs1t!O({{z;1NiM5vI%%y*y~#~j4k{A4t8XW|NI2B8D~>tGBA zvOgzsE8;Q4h`!}*!_<2yF7avG#LlDE+*N&M3;R>^J(i-qXH`IKYH6F`uT%L3Tl}xm z%f0tgACc(fs- z2~mtL#W!gD+*d2$RxdfuFbaDQHjTLSwLqX45o-{4kAOdAf{&(MSOYeECo7e5ZZC%; z(NPQv261ZH=QaK5{mTnrGe6S_tpHRl;!l>M(^c1<~qOM;w9UR?iQJtx7>F6j&g-s(_y-*>4G}K zuj_{SBiz!I-;k9bGqBdbH_L;ekgzYtW$~HQR&#}5P%2NH?NjFj_j{+5Z^rvGE03x1 zm%P538$kR2eqOrW&9ZeUU7*|ye!VucZx4QUwe?8kf@Mybnsc~cCg%_dQ`!boMa{K)>ux}V~hR<{Z zTKh6Qyv48b#IYFBLIu7xE5$8?qAw1g2*&w0_?;T?3?n{i++ZL5W3^%RO2kymx12T9g(`bitbD#lh!23l^A}q=d`kpHeUSnOc#_cy&j%4ClCzsA}fE-K3h^W8LGsTG1(a z;$pYU#_{Fy*K}JH@4lp*j&iKDv8txL>n+A{dGP#;~gS39Rz(8i6wd+!Zvn0RMt4-3oABOcX@g2@Q*ndI4oEo#}SLH+Ls${b!M zXnPQ4TMiKqSG|Ld4W%IeTGh+^Bgy6(YbUNiKDtvT$jtN0(t2g??cz%M* zt7W!~x*XZdIJI?u)K&bH{QK)RiB(`jACZ7bhLPI3YEll;z5V|Q&0aotdNyz0O0a10 zGNT0$804JrSxvM2@`K5Lqh`my>aI`TNK`SOyW6<8Uf*ECOtJ)>4=B!wcThUlr+}u2G97B|(Y( zGTb7TC|hOPY#0!;#$nc*>a$(cn20J>L4QP6>AFrH)p6LL@4MZcE}wC7)%WrS^^efN zBPJ#Ce5l>;SzYToG(`|(Qqc<8uPG^$rIGqNc^4YN`gq=+*t_8*9u@rqg@7e8<#IPR zMMXh4@NVEOHZYPzT>_sT$vO$Fpgh_C?)nWV5=Sy52A3WWGDrMz=_&n*Sf{C$1N}u` z^EN<{*!&d&D4WJG{Tvh@WIu-vDu4%{nX!-;<_$@|EWXVi{r3}#nV`AD%xZC1yV(58 zvAJMx8U7t_ep_X~_9}AlF;)gyK%t_|YasDFbWLhCHzt+S6J)|Ur zrQ*Z>=&|g~&E)h*(`ec*j))ScSGoGha|<&t(?{+E84qHT7RU;J3LmTqdSrQ*VW@25@V798k#~J!TPlQ37`z-hw*fv6y zg*!CAyiwa=x_-07B`muf9+`Tm- zrl3gb#t<2UTUrfH`H1={XHP|`{>FpuS9iwv!eU2pdVa4-fIwtw*?a-^y*qzX-*5$9 zV1x8~z;XQ3Bu)+SC=oxGbjGRk!W@H*hO{A;kRo@mHOw^1dq-U0UWKsk{ihcmFhWxx z5jc`1l!JvqVE!2W$?U9^;uVa$lB^g4EzQM)=SnVa4@2c#`yzY!7_f-=e9a}dQSaZ(_{KTkhC$Z+eZSVt0K3`!;{8Y>V#iwK)Wj4uMPC`Qo+6$Ja*p0Xf%f#jFGe>^NF`R0+Hvl7!=hD{kg{n| zE69SF5QxQVNa_V?u8Y2}j>^e!Bg$Wd2Ra}pvP&=h0#dy+_0DXAXRGCe(Rqerudrx; za!c^A|3A;#p7I&O4&Jf^-I3{=n&Ro&{2*^}$ay!$D?q?d{9PL69Uk&MsO-;v9sM}N zrR6w7q4H*rr=95Db{Fv@0s<;Qyitj85X;6g>yL~dEMBC_4NCf~APcjhN5cc7@o z7WnAC;uSyfHpgu2ec`V;G8Ru*I{8ARgY+E5jZK|3&EAC=GJ9q_7@_{DqQI;qZS`a1 zcQ&t9eq!1cqy)qXeyjOOdxCYBiu&Q~GhxnqzhKOPIDi+&&X+-ptL$s=W2cD`XMI9F zd=UqO4@4F|m%ZoRYsqd(cQNMP;75gcvvQ(hKZC7_$H`Cl7*o%H9X1@i+?Da^Fi|B7 zF-s4fMwMwl3eZD}2f!5@qevr2x7wpE0>#Ix6eX=Od=7n+Q|X~$K6j1zyAz(9cjr1+?@AK)dh zQTXoB=9P~z&4$X{??ncw5p{v z+JwT7$;(JVCpua}$WS%RKgY_PIMZ*JF{oftq*Rm@ua)ad2+X43hHuBq1)wh1943!ioNKKPWM1yra;iW@mS%-O)Y4&l|fJY6OScY>cgP+NY&ovvF-8$Q$nTG!g zaZiT6P`p{nY9IKeu7XDXY6#JXrN6Prcj-H$3)t_2_ZAJ%j3Z~eSi)Md-pZgP)E&n2 zT5#{fe@khZU6!=A`%Y6zW?)d1}`2?56BhIxWkuOL$^BEPDETwD}3qLGejjVGSc}El>$xAEz3+Wr``Xu*xL6qYG$x#@ zw>M`5#(N1Z`kdXiM=_ z8rKI1=hu703RQ|$}f23eztf74%;IpliwisPOP+>BX0m&khcNje#tTs$S zJ3nSgI$s`ZSaEf^L@toHF{{4W*Wl@v;;5l}hIbgC2`nl}qijReaYH%mUTayM$beFV zA!=YXAXg}~d+tBt1Qb65tWCa?Y1W{srMr6^6Sxd{>8urw4CCYcSa}|X1<|8NZw3yQ ziD!-g)J(Qa`0#xI8pd=vEc&Zh-0Ld~2ra){8;E=l#7&^chAsV-1Q&?>>J2-3xBD_)=~s_O!0pFN!G>v=JY;eB_;pKJ9;1`P%}LAm#m2MJ|I0* zV|&0*;igQ~FTs%eJvkRbik&fbcY0%$pHTc?0U{C*px@d8+4oUOm_(s}8OyRLAj~d~ z?6`#s?b!NiAoQoexIy+=a;w`tdTbEaT8opS4GvGhz%p{hX--)TL*d5RS1_FV?dRjDrw+t^*~eX2CN3#4l^vArNx z0eK8{sTZi=`|J^QzZ#z=(HBHJ3wiV8ppWK@z&0%Br^=RTHl4Gt(cIG#XKb7b)4?zTL1Pto>{S34ADPPtaW-uK0JXS8*hS;DT5v!(VRL*XQC zt>jS)i0!D_E@pSiBWc$Agx@eh^6@u4p>}-OAx3=jo=l`xH@ZHau<4tLUSEobO5TX? za{-N$<#YSsN>UdAhC|G;Atv(X#+Qf6ZE6IB82oB3KI41{Tmi}hTNN`l<560q&AuqDkSh0j za3`S9!K4a&EgaN&zJO!WQ*BCsTHW(EvSE|qTbUn*0rvw+ygxCu|6Tf3=G)jaO9k4L z0d_b>B&wswrTu96*~=ixd>FAE+q&}P+aGc3@epM>k{dW7nt0-_vc4=*cjIY{0clTz znciLfqgu6R-?dj}us?_g%pfYzi?p*RKgWj5NM$N!nFIWSAlx=LwiVC!{rs9^#+-={ z4iD9bPH?S+su6|iX}gW12}Xfgrx0MJW9w)~Tj*P(F)E~HC#cygp+AY=7TnQiSK zjXAB_WR_-y_VCD+EJ5PN`E$8YY^^ix8ur>fYg>rrM0SRr#*Mgepwhg`$B6zK`I*xI zLN`+-Ku_8fG_MHI#EpvqjxqpHh9wI4F+`(+3&C`bF<3h`F`wSWo*0!(F*PX?^ zsBDFOu!f#3N!SpGjwb{MVdP5AyZ?O>Co>~m054eHH31);0}=33qhnQJx|T7a+wN3~ z4PxS>{MpT?T1kjX*JS&2e%sujU9p%}@UrXFJ3Z&BB;e`T7Pxy4nP2z7M?7eGQ-Rit zx-U9T3}7Xo?qO5*Lz1)@eId#6Ku8iX?g6`vc!K78Zl-)hUhH)F=UT?chK<_t4O!VV zK*`2^yRsixnT_wyTzz#SD7ZF?bAY%6d<9psg*5BjPy*ssR2UpW`emjCG70`2Zh(Ap zh$a;(^Zl6jfvC&h3Q}_N(tcfRdk!dC=jbPi2K}gOXGH>jD*F;#Jg;*TRg2=xUBL$# zX$!8;Ws<-XpXU)1H3SRts{h37spZr%XXS~zKu^WQ+E_U;*~*1TLG;4` zSpLJpuP^9{FcMAkPVbT{EG-3YoJU7L`7zYlKP;L>#1gB9)7$5uv0^miM@=Cue7U@9 zvZ38u2`amKMz&>VydMg45O){ag`Tz@)zz;9D$uMdK(PVhpuaRA01ojm^?zZ(YR>7Z zD4;6g{n*It6Lm$nh8kHFu2H7N^+l6!$}^69p zao)RoeL8`#K=h3IyXGIa8r+|x;oq~Y6m0p(*UBf-@Wg0OfV*9=-EF1UnM!!qx%e=4 z=_~4szb$^dm!Q`l{1$=nc9i9~jot}Z33uzcRcjK17q!Djz#i~iF=veAh3XO!vM2u5NAfsP)tZqp?Zbw3Tp zGMDr5eB?$L^oVhj=*a&Xl-@{gnE`rxVDTk>wKgUGRM;Jozas)z1=}3xA)HX+jd*aA ztek?-YsivCkv?TfD?mpWrc!W(hbZye3S>7q%;79n&W{MKBiEhfZIz%PIJcM*m|_mu zi(NzB-9B@7XsHNGTiD)cw!hV$Jhl5s^j0ma`qGb0eJ^>L;^6k0YV(50<*chc><{>T z8DCVDQ8874?F@P2xmsI1|2l$Hg%1qfR+}|kuE||thW_1>(5Nnvj2nZ>xy$*T)WZpA|3o9kbITCJ3Le>E%2pr*e+8S+VkT5EA3JJ z9Mo+&m<6$_g9c(A4NaBZxKtb8`_6*=+(M+(HeRhQ+`s6HrQJ*o%d++8 zhTX|E#Ge@gf9DTL<2<5=)nPek_8I5583>&tCkmqngZsZKzhs<4Y^KQ|{xuZQW7n~S z#5>-B+{)c4+I+1jg<-0_TT)2)bQjr@7Z3XoHfWmu<1T)wN1t$e?z)cV_W!doo#FE} z1I=ici>%4j3di*H4{9SfUv2i4T+rImsbBv@G?(qRpYO}dsdr-P`eYBCv4$)O-pOf_ z*FRcCU*LDC|KE%HKjt_)CymX&qI=@M=o1DzMky2REWy@Jghj=@Xge#IBkLNGl^($f zUPX%NNB3n_W<2n2{pu@bTJWb)H~-tPe3lSt#z^i=KxlnK98%U6-*I$*R;-EfAfVBH z<94m->x`vWPu3-*xIE1+H?R#Hz6~U=_D=&f3 zk<@A1xhS8F?FcYmGN)9A%OG+{?7Ox(dJD#S@0cUDx!c8ZMSgUH{-V+Q*actGk}+~N z$(%GsO^;p~{&dn(gLuXg-_22V86PYsWZNx`aWTfsYF2*4O~{Qf3&L|_LPA=3FclXu zo8vy$&>!mTg*3bX4Dgg!KY}=1Y~?990Eof>u$%Ya%G@3C+A`fykBp~(C2cnx7`<@8 zbA9{Qn_m_vF$ADCZvcv8r zX{B>A#6~_r>K4jjLrC|9q0~z%E0p%3gqV)y&l4SI2!|rpFH~#~BHc4}_I~y---l7s zqkIUSS@CiC;e}1RR9dMsLQ-HkGQ9RZAxB8bInr8Px{k?Wmja3hJ4}j+f|Ex)vJR3B zD<6P-G=B^v_**I4<%WI`m9Kr0{X}FbwhOv3pGS4g=(?tOz^6=7COlMWLZFh&v&2)# zu}`WyO@@G@QCJ;?=_Rf(brE89C0l@4)f?3f4O5pyn8q#Whrm_zU%&t?)29nbUi(Jq z4YMa&-$=bcRwi3{?zCCYUeNNx*+sV=r|M&UyG6BSS)6(CiU2a{Mg|#1izwTWA;M0< zJ76N4Aa{S4bYz@Jq!sop%;o&IO1IAj+aAsOS*QwN0BTYKiM7F|ZsPC=?DqC~_1V#5 zn(sq0k%I51gC0`6Ri-z_?elUC<1?I(+RZ2QI@zEF`g<$pk9l0OmGow6#Zh}481i7< zYfT-W!z?iaMXxi;mOZ4v9HCMfv~nO%x>3sq5aHG?)-iy;2L+Iyq(=u1ymhAgDeZg~ z*0Y-8;7zNs5>4X<-r9JKWNT+d%o2u=z0N=g#X>p}IT_+Q)cieE@f{wgsp+D8!l~8% zCcnxYW;Fe3bneF^D|Y9Da*$!gX6M7l8P2Dmc1KQII9Dv4w1JI|3%$Uu`7%cC3zBW3 z$S7i2Ft^uVr1+Tv`Fd5nHMvQl0T0FH@o$Zi0Kviad*ZFLkv2K-)cD39c!^?sSgE8_*4HkNeERe>IFLeaeR4uo&ca%4m0`_p69}yf^1;ui` zRuqi29{B_|b1J1VCESSBj#UT7*J|PNd*Z?^^W|@^${oArrDko%-ET5pXq%o!ePOrYrpvf9tqr*RRU>85N}QV z9cBM`^A_wsuP%xLb{ph0pw44%-AZ05S{o|1O4d7FhcZQW-2N56T^y4AR#6)3*KrLm zoqNIk5ZSI2*5xuH?jb5{xGTo%LQ{DT?vy*vyW-yYQSa5tzYPWOTCB~f&z6$D4Q zogfsD`RWEQDk)o0qr{i4QtNq8=AUcyIj42e^u((W7hv8@|5c(jsAIdD!aNBT@2v2G z>4X;&eL0@alp!=Cj;LCRx>Y@=Y<@N){Ye+nJI>*%sLzr(o#K(bV0^ zahtpDy(P#VYTWp9NOp5ptKVCBSlVOd5uw3oB#vfjBK#J{3fOlmd|k_b=9#f&so_Iu zO~xM5@Uy!)(O%CJtiZWi7dPl!=Me=yOHfW)_=EauKtk8iAPmMzK7pNletyo|fBw|{!sk!}EclEb_t{;e_B&uWDzIx;XB;UGP>6^^GpgUH zFSTa{{ixpV4jo8pc~YfNLJ3$_UR>snX61WO_n)krzhU?t>wXrj*kI21bSML#87!vS z{Xo)8^-P=1S8PO66FkphOBJfoQ-Jr_FYS-C@BBiDoLd_Rm>=Lyeq9*Cc(-T=kJPZ5 zW(U#BK3m$0Q?#ip71Re|DNAVJQRt8!ol&a^SsA`>6*>EX)r5cj*EzFh%vtha%hA=I zbd4wsPv^qNxy1V5IlE7`pH0Rx=jvVPlTeGBu&f{iRBlXN5qH8oHoGGeo2I$}9V2wM zM|Qmw<2a5%{DW3Ir|O<%2y}5>(5ng9^dDXp)pF%KS3n}0lE}8SXh#9GkIb{N)J$4w zWL2_+gU_9pBQQAFY(XEKzbF=pAgf#;M#Ng~t((&2%f7{XEYBD8Vb|yhe%&0Ey{ z69erZA<~0|O z`7aB5DA!ecOx>Kp~Xy=@2 zYJqXcyNsj3>1`@~Ei++(B-(WeZj?Gz#OWqyHnW;M(PypJtxf6Try_G!q~^}Q-;Q%5 z$|`NPMr5j}PUEANkgh!~9Or*Naq8#yAiNe4{NX9{v<$Rz4-gWckA9ICJsXJY({-X= z6_jgtnQa2MnUBm#R|`2o$c=sW-o#}X!mnP4jV#Z+i;O7kJ4f7nOYO)pG9#wXDyCo} z1~U*5HfnW)4)`;OqqgF6af;)aePMIMwkiQWDFl(zCogqo-Qxjrrjyg{h(W+j`=0Xc z4XNC^WzVVl^D(f0Qp`VE3Kj+BirRoK3z50hwNMaC`NxL)GbB7W#5L$S9%4Xh_gf&PE0cl_3GWN zc6`CA1x6hnPL#B=rP!wnG9O8^Emz`#(?=ma0nNA$twG%k+-Tz=;~a8gu`_$WN~gxE zvIDn?$n;#%?tTA4wZNu{=slzDK-H$rqB=;uoA8)BUk_NFbw=uhD5?xsvc}iwUu_1g zIlhGSX#cGpU3uIv?* zQ%g~pdTsWzVCSOapMXn?aR`ekE1Du<;K5}o)R%Xh)_^NBDKl&tx&1TYb_^ivsvYJX z*;)(F$l1B;CV;eU)Q4)HI-(1c>>PZ^=ArX`iIaJ-H~rmyO&+JSuf5HTb~QCP@C^*7Clqi7neBoC>?-*fq!az&d7 zh#^g_Y~w&BDRkIVcr^u-YxrdG>z>HIOv5LFnJ4`bFTZepU^{cph9zJsW>b9##Oaz0 zV%+!d3Yqp{?mdl}QkZ!C$Yld{jvwu+clp9lD|i^BT-Wi)Cof``wUTaA6MiOd>qZ)A zIe-e1d=C`lM27*-+%%<8UW#4O?@aeP7mkUQROtg55`Q_Csr&Q!;0f#Lq`Vplo>yWF zbzpb0DFQO7;aY!Ifu@Ahc%tg}hP=?zZ@uuBuQ_&CQC{w~+9C9md-%C?+OA5EyF|C1 zDhwX#T0?vV{YSHUJu&2LzjXc(?w3G*R#DsKl|j`MY0l+SCf zNrB|nea|A94ZOC&YK6!yc%oeuvc`pSJUQ-R9K7PgWTsO=NQ|#RR9JRcp^FG+s-Rr>o;5C{wipaek*xY<`k%pa7kK;$V8YWA?!X$I>!QVEgwq#zYn$=Q zl6LV@y7`fWLWFZMg)vK)WNUgr;^=76ddPg`!`rK)GDaRjZn58|DU_!1gt%YZAp6HP zOoge24VjEWn&&<^mrmETL(v|6(J_to1I5)Gm4bOL3@bbx`^G?CJX5#iOO8(5tpX)> zJygz3eZBCZkaB~B=4*Q-di>qFcdJ(g=~_m>=9B8$4l2nBYK)3IXoL+TIZT{rJ0$(_ zQTgE7)BUJdRv1O~x|!5W1D8)k+UEqVYhhFCslt;i^Zt31h2+cM&a^z-5O}cIa8aNc zo1^U2H{bDGZUjS(GN}jlg|&a916~L?2&zRYv^l0=kh$+2isY(6pfHKZ7A|kC*|gDa zU}F#m(%ioJ=&J_QitH-tDf^UasIhG;6X+K_b!<)w13tesK$aGa)*O>?7Kbh?3+~G9 zVW_>8+w0%lotkA%vV-Q`^GBBi@9XeXb?F)%^&jm5NBS--WK>4JhD|?ZC5#4q23J1Z zkg@NaRecH9GBdkg;_1 z(&ZKP7kpQl8(`mCBE<~UMMxen^pjJ6v`VC%oE|N9A2N%D+9NSJKB1-vCVA8;5`*&x z-q7*chdw2ZKq`z12;_?OJI zoS5#x@{r$E_44EaAvi0{`Sm_RU5$sbuG+G{aYW*4_u5J`uAHvrhZw+SX8hH3_ztve z?Y%ec>5LpgwN&e3QoKUqp8WE)m?uEe)3V~=-O`Y5?^6l|$ayoNh;C_VeDk|=E4{so zQcilD+ShU6fKBV*5`qLcT~oOyy!tBY?1D?>MsPl7FyPtPpzwMB%gKo4)QYZMCuPwG zWsH8_r#x0W{Mo#bcYY<&srnY>*8RpOb4_(7klG>@j_-8UYeL%hV^5MTTFQt!ue(m) zEfx$xLo2!m$fVeGxK(YD#iFm3zf?>@2zK}1=k^aq4eG4U{!VP@_$H0B>~y0)$o@ml zF6U*9u8bvQT|QXD{d?3t8^^n9rtrF(_h`=vDx7IQM`P7w*^ExW#rE5{tKIvvWr)?iQH$Dt1-kCy|vPj`EAhoij3-e}8+6YCEn4yYSDPj*cZ{ z=`L8rX|uYM7_TmW?_rHpZH5J?X6w0M$>wuM&y`#$k1sO;9x0nacbYfc%*K}#vlO-$ zPU?Ae*B*78Em+vgN>4>BQ|U8k5S`LSH!+|FwFCz;e{7S~cgHuhAo% z=V;o9Rq_E$&LkPpda)P?pQ~Tc>6>~p+#O8LVd{JSvUpsGyF0_5O3b3}KAk46{s(>G}}rd4Sen1G4$734`vLz1rI8)~xZX1yl9 z0EbvvCwL;aDCoaiwbETX@$S>#FHuGh5=`!|KX20~0V(U+{8RKmZ#K%Yfr$YE3Z%7i zBt`;v(P@M(vKzKS%TD&!CZ61GiKA9e!Lly{W5u+KzoY~8BmnDtI6w<&seG~k{O%y$ zfcnO$B~HQ@o392lWhmjcHMg4cG@ig7)M+Tgv_>n}*S7*+G5>tM209vaY$yY{D|F+P zhjl`w9=qa3qtUHxm#u}^Ob`J{z8%ihdGqCUMPRq1w)LBOv5x;Ph7tC57{Yxwo{btg-XrT>gS%){80Mix*AMh7QMGRFZ?^?TP*K|Eov9PWp1;gBnU?rk_7C$)=KAZnJNa=3{tL~_J?+zcZL=y6A^H8>EhyIIPKyRsvV$36 z+FoPaA|7&9(zAO%-TccRLq457R;3Cn9`bn`AqvMYlkGBlKoqY@gPO-d0@qgyXO%ji zR<3*Pf;fE}_z=C~KGc_t?QD}`sU8_u)rdZ-Wo#8P`s!qnRcZfU_A}bS+mbEDcpr|3 z^p?yNRmTrW17Ia|%Ws|XVcHvu26Opy8Bc=*@i%qG`(eu&sm&_XfV{Z98X^o9CEbR4| z|BlW)JK|1?!$mp#M5ZK;Om;qW4>r{A_do|tPq06dgnb+lh7fC6K>Y*n%OO1P`D^;E zw{4^zRY3QFJ`F)^yz&zE>P@@ZN=9!q`9bnPSLXjdw^JZ{j^UZAJWeNKazjKar)2Lr zq)CAzQ590@(95y=o1%CrEgc67)3z&mKo;{q=|GH=V(eu~f!0n25aod!64x6a@QwoTt>yr@mdO_n ktpPA3SG?p!CrPA?yNrvS^HtS%0k7*H6q@0O0UI+W-In diff --git a/e2e/autoscript-apps/src/authn-email-suspend/autoscript.ts b/e2e/autoscript-apps/src/authn-email-suspend/autoscript.ts deleted file mode 100644 index 32166284c..000000000 --- a/e2e/autoscript-apps/src/authn-email-suspend/autoscript.ts +++ /dev/null @@ -1,122 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const tree = url.searchParams.get('tree') || 'LoginWithEmail'; - const un = url.searchParams.get('un') || 'sdkuser'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - from(forgerock.FRAuth.next()) - .pipe( - rxDelay(delay), - mergeMap((step) => { - console.log('Set values on Platform Username callback'); - step.getCallbackOfType('ValidatedCreateUsernameCallback').setName(un); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - map((step) => { - console.log('Get message from SuspendedTextOutputCallback callback'); - const msg = step.getCallbackOfType('SuspendedTextOutputCallback').getMessage(); - console.log(msg); - if (msg.length) { - return null; - } else { - throw new Error('SuspendedTextOutputCallback did not return message'); - } - }), - rxDelay(delay), - mergeMap(() => { - console.log('Collect Suspended ID'); - // Tester can add a predefined/mock suspendedId to the URL - // Or, tester can add a real suspendedId from AM using the prompt element - if (window.location.href.includes('suspendedId')) { - return forgerock.FRAuth.resume(window.location.href, { - realmPath: realmPath, - }); - } else { - const id = window.prompt('What is your suspended ID?'); - return forgerock.FRAuth.next(null, { - query: { - suspendedId: id, - }, - realmPath: realmPath, - }); - } - }), - rxDelay(delay), - map( - (step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Login with email successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }, - (step) => step, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-email-suspend/index.html b/e2e/autoscript-apps/src/authn-email-suspend/index.html deleted file mode 100644 index e5783c98f..000000000 --- a/e2e/autoscript-apps/src/authn-email-suspend/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-no-session/UsernamePassword.png b/e2e/autoscript-apps/src/authn-no-session/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY 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 diff --git a/e2e/autoscript-apps/src/authn-no-session/autoscript.ts b/e2e/autoscript-apps/src/authn-no-session/autoscript.ts deleted file mode 100644 index cbeadaa8d..000000000 --- a/e2e/autoscript-apps/src/authn-no-session/autoscript.ts +++ /dev/null @@ -1,88 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - middleware: [ - (req, action, next) => { - switch (action.type) { - case 'START_AUTHENTICATE': - case 'AUTHENTICATE': - console.log('Adding "noSession" query param to URL'); - req.url.searchParams.append('noSession', 'true'); - } - next(); - }, - ], - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.ok) { - console.log('Basic login with "noSession" completed successfully'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-no-session/index.html b/e2e/autoscript-apps/src/authn-no-session/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authn-no-session/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-oauth/UsernamePassword.png b/e2e/autoscript-apps/src/authn-oauth/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY z@7!RizKxEJRV|ZK{^MTbhtx?P>ead%&8J*{IK0o5xUYL9Lq3%vTmD~00p|7Xx<`-F z-xnlaa(K~kD=MiiZTA8w+;03o;Rh2rqZ-+(97F*9qvPm<;8O}Eh{Z6;`kOKj@0%1)oE$#4)!`Lp=Y$~I!5 zL#6uaQ98@Pc{$%fZQp9x1zN zXR@zoU1YGh8mldN_%02-q}8G>bJ(f9GJB%=NHjmPXG(U)$i5YGa%kC>)6w|b`IfeO z7b#GqPU!qjV!Y)AlK#)|zbk4p^7#YbB})vUxiXZn{;LsE7|IV{qH#wD^W4O2Un|@| zj>uS~8Xbjm{-M1^64aq#x%J{B=&rB3gJ3bGp@g{%sT>cK4SoHO15KCZII6cWetH&*ShSzp+Tl3mvK z`praQJRTMclvE9@B@Ou1t!=-}=$SV^QKCiXW2FDSXqJBO!5WbR@twW@QJR&bFG!F7 z8t-Jp|Cy=>&jH3&>=ywW4;daqLL;(pHC1)z#Ty%XU)Y^lpaR3rr@~Rx`)r{T;uR`!LIzA=@K9x4LBHa8g&{pX^R;mBW8s&3v38(&y?bcR zhmb^%_vpB{jXHc~Dg&JQRtxC6oDVnREt-W4#gZOPcNYlus7Uo2eyTyfD!gJkMSSJ4 zMG(|gz^xpFgIwsRoOPxbfCpe-vBibx+tQqhwd+!Y!?)Q)LvH`yHU9zs$!{Kd5%oH- zu+@~)!v_uRoW$U+c^|!wX6Ce24ub{D1J%nIgd5@^_yx~S9AZXMUJQNWpB-QR-NLok zuC$O*Ib|W42KUUZS6ci<4wOpW7DSI`*uTQ=w~7g*Q@hZCl4B~~B5|ywsd!|mw?9Fm zT<_WII`3N+KF5bUvKR*QSne8eupHlTeeBP8j>4)>E7S3FPWQ1-yH*G0&$+k$NE}?t zdF(5dDJ6K%$}oyw(m8uH;ipbzSiV$|BRSx{3dPc{6+pTD^3saT`b0(6tN{jVQQNgs zRllI0v2P?4{}idO)omYyF~s(P^jj)V7fMv{`T*0rU#3r*jKS`7=&>&UiQFalZW(Gi zvVc(KEH9u~86z9eBy&B6bjnqAB{*}sK{1f&tZ(6-j&KG@(|jx%7r>#Likz8^noRF_ zQf1`2k?Ks!*Yo=eI{ZN^EVB{k=XRL1V`hkUm6icS005f))hI24MzeOQ>cM|gI<$QE zFP7#FT_$n;-QtBVShDjy0wX|f44@pOGT5+L^l|T^n%ETY$*Fbqg`IPugS{Y5rNL(R ziv#ZR95BgnaL{tIAhX~X-#v;7?x?)zaTp3-_MF?EMh~r)e34tgo+bMx)dnULv!)+3 zMbu_@v;tutY_;aE3k)_))mFw)cD}s67jQ&a%mw;;%Ui9oVNT4BmJq9LcWt3OC)*6y zwnzo9UmqY32VU8htNG^l2iM=Vpyo3hTh5q;Hy*SKFFxR5IPv>*a|U=&4xe9hX^mGt zaSqV7z)1ZleE(4YS^0qbM!T0pgV*c2+f>6(o~92FX2V}m2AZrK_GHjh}PVC%frJ%(%jn5n(w4+{t|Nu^LYY1 zNC_A{c0>^liURs27X(x;!%CMlzF^5x5XLM#XAKO%HVm=|xY_ak1L}6LiV->d??P`> zRu{&U&^+%@Lq%$XQjend^@&tfDm_YN^&)=b-ABYsieSg`PAFeWX>H8KoFRf8yT^~7 z2!iAbWxM}vUmr0^B_O_opU)(RmUybDwGC;&{+tvdBj64*O8!afN{Db1{%zG=`;Hx! zCfOz?QMv>jP0@|LV0;wR6Vgcj_<10~#R48AC4j>7s{x~g8x}jdr3U5^e;rfJBISZO zEuDK&%xmCUk`xW`~qb&ob%-or}7Y;?w z2TqTc9IYuyASmzFXDgo1V^nUm%SIC3FrFfJ4Ner4_j4P+5dRMCkX9|z)Q|PQkWqQu zt~EzDb-779zg8Qcav83TH!P*!c=hwEJ24FXRl#=ev15-wiN9XQX?yyUm$rJ5>=AA4 z8IfPTXueI?O|NbX>)K8FzA)rXlB;=ZM$fR<2Ap7i{tQC|JbB~i2h$b0wkkuwpK+xA zJB2(4p_^?2T>|Nq3?2yXEV;U)hd;h!>z=?#rQ))D0(Nb?I`Ahnv1jiM)0T-=n9w*h zdu)gJ>B;LJ-*KcwJFfM=Gon95COj@_S&m4S<)`rLNCl!%zSJ_4*;?n_S{X}})Pw#T z(qgRKLSdUS6MutT&~L$Xf(yl{g28A;0XZ(+OT<_-~8WTmR>LB ztxh7?#71_WlcZ6-dCinob@B2PRQu1JW3ckw#O0rNIM+&chug3IywmC^E~gjM`wC0l z^;vrjjd;KyRlM|(PBgjdzbS9qfx~#^>75@;n#n*9cc(}04_6h&$5AdNS==Y#dh7=j z$?J0eCY0P~bxq-g4z24HGyV+On$X9T&oY)6D~xx?z`?n+RqMpFk~PB(kLpK4w{Y1X zGZLK&jmsWyt*x~^-Kd+ZaJy3xs$)Q1z#U0yZA|y9W<|9H+*dx0KcBr{Zq3$})MCdO3Zo(z`Y2U|9|( zCGGA2v_3O>U~QoQs0e_n&Y9#rRn}H)+)3*={Of4Es3iBA<99^)hmM|SHUb$B6sj`0 zPM7m$l3()W;Y(i~NP7@Oo;&+T=d%-*f=ViweZ-V#tF8H3IS^Si@j?K^XFp!ZtKlAO zIR<%N3(aKr#MRHmL2$BD`Ly>69eREJq_X6xd6PleHTkFczw3*WsIf^LwtsLt$_3SX ziO|;CxAl*NpihK4ulVvQ7AQJwWne%1Y`?oE9$sOY+A3`4Q`8hMkJ4t_;gfaI$&WOJ zM=m`WH{(i@aef*f06uxzkoEo2uqI%8PY}0}r1@PBLhyksIbuRTV`9Yj5(gAFfqE?< z^l}MTDkx^N_9j+^2(B-zOFgbbH}2aq%4Ie0fcSd_y7iv4%N3_w)GU`ud_0j+gL0TQ^?qkZa*OJAkpIGs@0C}frg&r zGXrj#ucwi%+|$p38ARAXv=+g`05mU~Am@QecoiZ}B1t6^(qh=*QxAi=K+*{Q;cpVj zv}gZ?6XYPyn4u`?G%l{s)YASaA=leo;4eO^$8m}}%H4SQ(GwFmEZ71tv;KC=rA%3a(f1JP1#*)bp9yCQ z;RBe~UF5JKV5NRIR$z*I;~%e?nrm8h@>)in`U_mbn^s^?o_1|i5)u;n?p4m$pjJ1n z*)&wOA-oXXH-Pxqenxcmx5jt?ESP~)Jh-&G_kf~ci3VqL9S82somMT(!0t0@bLwm{ zLoUXpHh2MR@3S&))<|79wfmf>|9(=venanUf{3bB=k4{=y*3h@?kqZ1IO(6Avvp!Ld-A;IXLNzhEn^tQ(BS3#tCyAmFLP@9 z<-HUepBWwK0KsWI$y8IJi|OR=pO(_Lv)1AY&+EGBFI_Z0_O zmyhl!RrCT@7fUsL`FU`b{i&O(L!;Azp!aalNb9-vtz=F8Y#ZGpIZXC1%1d5uG@+4+ z^LcSiO!)2y)KX4iC!1$ys0zT)R4KugTD5(pV0kJ|ffl4FHDt=|m@0A9!BzMvo_qg8 zJk*4T$gd7D$g|1?%v7bU*bs;Q+25g7=xps=v_L|@$WQn%i7e=vgLT^N62S(qP;Z&5|4#BYTlH;1skE#D$NnbzgM`W@$kwZvq zV&XkiU?_^>O#}l@SPt(E*HY;7zwm(NOYd6})j^3(#hzwvsy!oo&+=F~{5)mHRu6puj zmq-5LVw>zbwDskVH?t;L1WEc0X{Z=rkYa5{QR*PewyEN`Aq}ac1-mAz>Nm9^Fng;I z26Na0bItm2dpC&ek+mNbp4BqD)jv5_B}`mM)5{f0WHVDCY5=%#%Aby{aSd(q=v^H! zK+NcP){mkt66gM?f*V@V8--EK>HqgMw(iU1kS#)lf9HF@vMN z%!!an88T=pu??0^&&Rx$UgV(^(4(=yfO8zh;D;?xesw9R97PqRc|8U1!3%%4E*|H@ z7)%-OJ6d3YvzR4BooOloz$Zl%X$LYMeEPj;43#wAQR_t-mcp!uPmD+RbUb`9b!?3# zIVLSDE|~FblXsSmggtmofi)2Xg>^*?M;|x^^{yjg)!S!%BHDXsa@k55w}pSir0Cyx z-+yYxr!z!f*=V}zo-TxueGyMTm@ujDQ!4ejwYNUU6;LmV`H&6%n!Wpih1u)SK*;Yb zYYsRr5(0l_`GIPDGL&g;N*kf}OoRKSiN3`fKK^WnZ97G6rLOM%8Od{85ckyg*Mah4 z`cM~`jfC8_VnB*s;<+e~jnjp|WpyAoY*ixOT2fO8Gjex;_WdT~#+KHvnD?nSm1RU! zPm0~%J=bWgb#0!uOD7hykmd)k*jOJ@(n0MH=pX2J(|xF$a>_4@xBvah1wtpfW_ zTPaTmSwDOd*xa!x5u75?Z~yVtP!3r1n+pk~c`^l#@^Q1QaYC}1L-+=xEz92P`W;6@ zuVW2?{To3bfUQyuYIsG7pK=I?S4Pm5yqM*BcN0q0g>AZRBgr=KAWM_i4KX%u&xZeYFi{F% ztTkAbX3y7L7%tMGAsYX#V)36$tWS);fU(rR4qTY&ovm7*F~QaSGre+_KkT3&H4I|q zr~P=y^f*cf2ssEdAHcHPl}AeeUJKh-)pO}XRL8vR-|mTiOi_s@OpG%Us`&UTZ}o3D z@?C5JqXS}HlecEeWd9j&U;C49(Ae|IwV|9RXE6G621IElGVn-$K} zz66J4;R8E|QNto`cSBVVTQy_!>SvURZ#z4_tbKb6jrS?u6J0Xpe$7t5vZ~l!nR=`G z0v7;mGW< z%5g-bnRwl^?Fpk?U}>Bt$R0mwzvL|}*||7B)^RGhXd`nPb16;aR4t3uJD7Wz+yL}| z`xHrf)(d{jY(eN6!oycS@0(K+yaDJteglIQOGtZP-_aliy>GnV==Bh|I$^&{Xwd|$ zC?QYDi{I430|6dC*5V7&E}DUe+V{n!7oHJDI(Emj!#8K*764TnPjGj~H+%$49!wbt z8@b5S|K#HwxTY3NsAe28nt%{W%JP{g6erHcd z?B3j3Xa=eboLcMZkdDH&W_%I^6fwV64G5QoGCCxbL?j_62OT+KBS(n!+U4q-0Zzt2 zCEbf_bN*Wqx=Auwz^I!0E6S=78`_jy`h%VFB6{|~IE^-&dA(>YS##wU?T2y+Kde`ON~Rw- zNLI9`{OZB81Z4Q#2u(o@?`e$BOClI4LY0BcZNYf+4S@g{Y({Rj-9pflr@f^KVo824 zl)XIYT6LD(J<1dRo~@g9ibpbv9o_q_d20()*jZW6HX2Ik35&4Sd%8)cBR=$z7Mgpa z?}Dkxn#6%y>}m0*; zlPFuwGbew2nh>^;<&4cIDdZpQ9)%Be=hEDL*Y z@420xZgSQOrvdw5X+t3F?E&mZi1+Z$74P!}U}d`{tqj5Or0(&5=s|NH!U#)pGi_V_ zKv8eucC{IKny0fRuy`BNGS(hJ~#QdS})v2Nhn1 zJtquG|i;w)697??~gS9#jQ}YxdK?E6JMO>L3X`oB5BoP+@RHX}STEza8r>@Ea_- z@J|2=#W0(8cwZEBRHj@M(RP9jXn2?o!{NLOZ;|dh*+@Xjb|Sde)sfd0F=dT#8(d>+ zX^GaGb+(qis-fS&r zLs*?!o^JfDvRjV!FjLtDz~L=GW)xl>n1%q&DUNUyI|(r|?hwCI5H^q8D+5U58h+F5__!EWRxI3%$d3 z1Y(}en7G^$_k|tkLG!?w!*H8HXCKI6Y7X(1Rze1|et6Y% z3C{q6?!>jOM(3csj0_Q<#OSx$5j{`dK!dP!ko@}D$kJJ!?GI8azCC64iEAzb7tn#c zTZrfcnz}mZ+a;2E{oI zW4XDkNl<3aJDp=Y+J_fH^5ILbJIc)L!ykJx?zYIdAx6K`UYtbb{0V*P!?=syUF~*= z=YXXAux4!fFMdEdP36d~K2Nm=*#s@~v@TVA)7f9x1H5%(fhg+5g9na4QxiPbs|JE|58EM#9S71 zL&QPik<4A6d_!Nr+$WywmWdN{vNg31#WDu%??qLKyO!bLX z@305gIWDM&j>~{t0|xJe0>HcLZ$fMvGL;sNtp9ot01LpV9KEFo&&0~-V5^=akg?mK z8LJ#&#VeW4R3fhHrXk5{p3_uF1ns(hW#@J7o?bYm}2yYo*ib; z@3#I=0?1>MiD4c`PehR_*riF!R!fS`p_r5_z~!0(i12nb#8c9lWt&imBHaK>Qw3Cp z<7DS{TB0M(OU`{0Lp*e_EVZuN$t~D`7OsK*Z0FYhjiop{0wB}lw86JZgR_n8T>k&Q zDDR7xcuf@kVBr)v-TmQnWb(NEJoo$fOUmN>L%=3bwOBvb>KfJp!qqvM6D6za0};qH z58RClp2xBc{i{%vKz!IBNTx4S9~AX4J>_pwRzR-DjG+QHMAPowvL81;6G*3inZ3CyuR;^^(bF0{)?z9&5HJGpj2}#Sr#R z;f9%iJm31SXY*6I3>tj2JJqWUsySP?5ijtIHB6FI?(;Sb*VL(orUm_mtBWc@_6I+J zC>xmK0fxNdK6gw~EWzzrT7kOvKXKIWIa>jYeZw~Bt?lY%CmF(P38SYB#GeF(_Pe|k z)92l;{-DQOf4Yep!c!l2gF~g3rCWWh_R@>MOL`r)535jczi+e>Y?zFokoZr@Jn>`tNbFEazVpPSveTQo7Hj|D zkk19qV6r@`>+~uzQz68LKWSc>WlmX*w@KfulIq^W%a2icccVqZXlY2DJrWN2({j9_ zX!A@6ampTufKTKUh_AW_6o~KGDy%K_xtbq-n1Pvt#|I<}*^r$ziraCwy;HA3C0hLe7K{n%#htz6*mY6b{YoXPk(4eIT)+2U=-BKVkSHjGS^*fE9Xid&(f3%QNB7 zrl}U$!REf1{xz!C7eY5fi@;a1z%Frrj_4HJj znV7!MuIR1#uBsD7Wi=J4!)X*l?{ewxWzQ_pry@>+l`MOox%!$lB6n%0L@Qvr=P zJIl@@dgM;rvg-N@8=0lh#5sizWv*|u#m|@A2>2qpz!G(1sqV+%jBM)<8-Ysexxj@% z77YE`Y+MDFbe`i{WZB;V?~SS0r6XO(rEP)sv-SYvc-_?9XfFlkTimItuAHObY}^w9 zvMp95*Y)JAn?Ytz!<&G8&AW;nVHPBB`K279ffhFccNb_}C6Gu}_oV-O_<5Jv>acG^ zSU+f`);Lb4f9OGj4rsnhebPmW!aw+Y5Y0g!)MTy$yZ}{R>DuCpQmP42ZXOEzRzpg1 zcVc$G{FGL@5t5XTA+|56&i)<`W;U;~&G5svrKPE{7z$gwEt)%hw=&iw2@zDzF!R721oq&G*PY_ z4;&gT&?=I-X$mGhEmi00=_ZVM)f&zVNYqHTSNwdwW&qW3TvcNWCh&e+S$EUvxm-57 z;ZP?gCYApPw=_EXWoY;{oHS-rz_d>%K8U?-9^3W1H&Vm;z5S26s;9-4p(VMSx|3Df z8~=rgKmPT6STsefYwf1AR7TeeKI1Z4gNy!4p6Z1&F}Ze;9FJ-OHNzcuCK61pgqX+t za(byfu8{$|w(N%?7HM>adrPTdRP%oqOkFH=5kH;(|5yNHp&5oNY&<6G`tHauC(GF@ z)UX?)=?d>16n^C>{#IVYU9*J+mgJSb!<9NIDN9|-+PpF(9GDO{n^*fRE^jvXMEj}Z z`8W#!dBGY63s+%4!tr~L{Wg9mIkW%MRo*v>9tRvd&B~-yMwFW;->o_{v!lK5vKr9U*f60-3fqyljeHKU_v^2 zZ$l`nvPY~F7_LHORaLl1n0TMQr(PCNa&E6pnIc@-ps?+9;c$0qu~^kPJ>Hh|>jNk?J+m5a3S}g2{EeA8N%D^=csC!5x8ax04({ zEnyo#r$m)E4Z{G!ZX9A({!2Ym;atonO*|{`+fYNlEEnnXl=A7wv{q!xdxDi99F!wk zDNf669C6e;)`B_jlJmArik1;NA0^l^Kx&TJDLIOuW+F^AhqD}POoPILEC@>*f)MMK zV2flRVrg8MB5)tWz=@m<5jH4fY*ybIJr0q&f5F{unAuR~&0PY>77FJ4zk~h5Pbue8 z+0(6kRMlm7qHk+dg0L{nsytQR6_n?}W9@m*z{tHo9L7@&eIfW6ht;;iK+fHB<*wM}El)m7g6! z>5p`KDEHa(a~Zi3ir>f1{~0N7!kzi8SGOZC`WkV;GF73V?UB~E=I`559J)_zcJv5p z1~_$w?ncvQL5GrQwpCwE$cuad5$=ex#jP>U)+b6bP7R{oE|?$42d|2Zd2*7m|7B-W z3+xVktY3ZmCnjoPIGcFDCzV&$J%!kMM@b#NvcENRxjw-0mur}qv;)e3hr3|g@F^Pg zk96;v1CahBk+b3e_cz4-cDt5t;qCg^9<_=w98cd*Epv)rM*i3pYl9exJ9WAd;~B1L z3dFpga_*{83sLC`xsGb=kMxbddynq2`L6BP{zxM|orhul#v%38p485X$$ZCO1+q6F- z82F5YNC$DohgkH~nOQCM=`-$v)7W>zZ;yBFhCK|_gTuUc%s%NBgXPxk6=3aS*)7_E z*=`vuyW~GbUnNZMU3@ z#faJggVDrn;u4$`luG=4=B^~c;mT)U$M9;#LX21&c~m@h)Z*Z8(s;DF+4L#pc-Q2O zsY#XXTE@r#GBf&2QxlBctM zd2Z~{pYx83W07abX>${Q?2SC0ep4%mFE7sPuv51!etFw)$o5)AwcUulU7+1YmTtRJ zBD;Tu9e;T4IZ<-?frw*BiP@N%_P190=ImwHzz!okFpze1mFPHYlH?rOHc?o=6Bs~= z*@N0jt2@ zH0;FS{_xcU5FHD5m@z`Yqd+5@GB%Y^U>gQwhHM$-eoyGnvJHL z82(Y#^hzbvJ7Iu%&Ejk2w9>Gx29ihpHU=Yud{#S?s;DjQ^Mxt&JMr%F*~<(m8JRd2 zb4EQL_`DOl9LT!m;_w6{_^aAd&Ct;QwP#uKI}KS%Wl z*Mlo;O~A~=ciV5^;SW_xN%73fb9pEy$AwjU1=q+PTxgP>fTGs-_s@KrUKE1DNUDda z0Pf{v&HjRW8)30MdS9#R=@BKhJ~!KQG#43|<3~uw%2t~-bm#x$=qwzXYX3G468kB_ zRFsgIii$pzNRPo#9z-OjBGRDL2fQ7H z3+KMiIp4Uh&sA$5E@$QE=o%jB8u?9Zq%GW~f%dABs3^@(+?o+MF}Y21oEwoD3y&F? zn&=wRGu7hG=J`CFdUMKqSai9~^!l5cbbeDW<$OzE+1j+bPJ~{&O$pCSgW)Vye&wxZ z%M%%X^&Z$rao#)qX?|{Mte2RLYa3EsnFn2*2NvFsaE`e1kB^4!=}V!nvCgvS-WrB_J4)#MJO z<@#im#A~jU%j&IFV+9Hj*VEIDGSr^^5WCmS0v#MVb!RM}I8?Ftq)^yQm<2PjGN?z& zR!ykZ{N?Otwb6Z3;$B_EuN0QZj{}^$KX~FMoBSV?&LBm>X%vYt(0Ivz%NaJ<_JS)Y zm_2P}Nkdd|H$`z-sj*SjjHrvzE5OS?&9-@t3b(}vS&j96D)x+dFJsx zQ(n|yG00&JPek4tEMs{9Z?1MO6_Z`J78s{#-AHVft9cLeGwC%=vt@ju%;rhb@$yEZ zkTEDDafP&E>1JB}PD`pw+_YMpT6g&TdF8q-Elc7#5+3Id}K3b0W0rMyUo4ZKwgEkiDL2DbzuZ_?F&J2`5HCB5H#v~fz+z(?P`C_&M)^l=H7{ih7RZ0|?G zfCh@@Os(*n<^wYo^3z96`yFk$N2I9f;}DZ|w~HO`%#I28(6e2!gpOs^ERAL8>DfU4 zyvOUc*3rh(AK%9h7%&CPI%SJ9+Gty6u`g-$7xYp|106`(SuTpiV|HDw9I5>7I|O0g zEnl3k)fP=cTDnOgo>NtN`eaU_V>5=q!g5m0*I4Nzr=@;YXr80)Y_3g%pc550KlNm} zdwboW8#aOMs#adPhCeZ=`PT8I24~nr8Ai4KPs`XN@wu6tJ5y6ScV_w381z^ExIq`|B&;tB;uSGQrZSnlFRSdY~hbWE<>S3h1*! z<6iK9Op}-@Wv)4_VVIVhQ?WycY81EF*%h15-8%K1^drO{EEUzX=irfO>_V{A=Wp6a zmAOmZVgdc^mgac7_^Lp^pMhr+QG!yp!_LGPd^*)Cnhp_O^M9M4qeg7&7cnur?Yyca zux&IO{D!U?PpRHuE`NyLsJp7rQV4!=8LjsUEYD=$>`br-!jJP|k8bRIVHQ+RcA;Jioa( zX{Q|Bl_Jv3Q@!eoBa0F|-YMI&BGQS`HSLO4NY3mcQQYDRqyM#jE4`tgymxPHB1Q%E zc6&18zxhk%fAbgBpuR=l^dA5Sb{pmK6wkJTYQ;vzi>li6bIqEs`Ls#Q%m^mYUBV>x zT_PFq3W1&Z1dGf2uE$N@opz+C8LtRh^L6*$2F3%gIh-D=-s@8&6;{j}G}AtPAJCf% zDLMJ~UBlV&0e$pL$$xKn>oWnbB-Vr>?$3un>qY%HKgi7Ytu^yeV+O{sbJO3aRfK#d z>!tgK9&dIe`3p+Xi}Ko_4A5ug19R>GN(OW&?16~;37}ap?RboLzC58YTsgq(i{a_& z9w`xudE&QIa{79?I^{aZcgr`+31RI=3u*=_uN~8eH6D?kMX9g6_RtFJ%~xEB)A!P@ zqbA!K>H~i{W%yNl3+-=CWwlR+kiPb$@+VlHPL7o=0vKEY%tL>-t`%uWt%+0xc^oWp zqX7Y`*WO(_Yc6RwJli;n@M+p&8Ib7*r5%!IaJ;Jfqwc5rdQk!NRUqkP^ti^T%uma2 zlVBOS<#+T6xfgJfb#OAuux8TZM{!@|^mk^a8HEFKPKGokg^Kq!-}=1Yv`4RXK0!@9 zDr#$<^6#~ceT|7o6&r}%9aO%@E1`pcOp-URgQvb~UuUG`@0x)D-yeO3G(CNHr0i|H=}QR; zazVLmTDoQXY))Q2IXRJj@E{sN7?o@Vf99mYDCcMbHSMQty^xf}tQjxH6ntTdeRLR| zp6CKqkNS<+?YvaTavhc6%ui%iMKWSUYP!%re%P2PEFjHpKzaJW{XycW8bZA|1N6}k zyB^3DD1!9=z}1V`%NngWhb?fRdr~zgR6VDk!e{@7;QQtl5*@-m+s3*)RoBN$VW|Mh zQ*U&{k4b^HXWyME2{`RA^=o!6v0TRFVj`0RcYy|)B6>T-adtg*dq z5wMsvU!G?!80A0o6*&-QacSmsBw}YL$`Z6c+3*6t+}oB2Pv-Y2ZWf!~{-l7bX*!9h z-Bs{sNYhk|Yd+$`&UO;cL{xWUqE>FH@WC(>)`+nBD{CV~pCh16BAa#A7|7W;K5T0W zXX9hXI11*IFlDov5jt1g88{vEqk5uTQJ8+eIZ9FFl99y@F!Sm-Qy zY4$OjwuXfNrgtT|{5a}BjWQN5vFv}>=!%y8QK=Ym5Q6xFRp@=Ibmy`BtJS)7U`hxJ z4`qbtm+0_v_su#f^um#~DG*I>3u0aLM5u_70bMa{K#;ABQ4D@@7yKtl9j=;JHK_Ph zPS2zcVzD=2`PsJ7H|wQkF|3qIE}HGCr8-%LJ3+BGEvOArp_;06LrOR)ZI!cwS>mc; zTZk&c{N0o+|IBG$0!e5K?S$RfXuj4=>z)bkN>Sg*iZGqeN;_UtT%6eo^=aH3*a<&7 zrW`Ddo~b;kaS1oXuD9>F&YU18{d$Dl=VT-a+P59kERqui6EGB7uMWzrqXpn~J2Dj- zp8r-THj9_*SukEJzKv@o|<%Q_U7Dr)is;0{s&Exv9;9{e9|6{qcyZcTHqltPZ#fVpUr0 zmck>m`eUwv8}7YM^Yefl8RLh=^LUXomw_FPhWWnBy4ej0*$N-wa5%y=AS#t}xZO#K z_x*Y5HRUUVB_h6*@;aVUu!1&5Sw$%mJZ$yY)9tL>fbJ4XN1$JZIiIBKgZARlQQmt0 zT**{O0+v(lLBAFFh&1k_6q=yEq3?VMR|JRuZWc{$oRPOQ%a(xY<^AI4|Db45yQtk- zPa%~L)jg{i_mAsJ%}E;iQaVe$S?_=uU^`b|fpP<;+@j1VL;)Tr3lcCLwHo)_ik>vm zyH@T*J!09N6FX%-z_i2qrwwPQ{ifkN-I;#ZkCSJUu+Gb~B)T=R6__qyft);BDDw34 zg9vex61?saaNP^w{wS`sOhG0=+u7#B&C0`Qmh_+s*NGYNw8#R7C<(%(x6S#nJAhR{ z>UZgj=`(@CYk_))#f(kI`5|VoVo$54aA2fx4I6{+72f;PQj(#C=Sp#AisC{v09zKz zhhj9{qjTO_jYiNP;kerAr0pVT>90Ap^)Q|PgkV>nvKUI~U6N_}e#6Zr87aM@Rd@RQ z?&4*c((@Mu-8>h6xfCfRnerNXHwPLwBIYACo4EVu7~AV;CL9g3I zBpaJYhV@Ndu{>PYB>Bwj-B*b<3e!~0S3X_hD2c2PKD;dPw|*Y4db)x*wzVO z3GXtN*sXuoxN{K3XeNeA)J@#!^lE#nr|JLYA}}?CM)&gPeXX(xp&4mg!wJ$2|%1V z%wM09T=|bGy$(+v*?WVf7(=T3KhbEXm38k~iW){QSAHdv1KvYslCmb&-N-H(+(F zmXr3e%)*k-lCP2J3|v-V$~_jaCJs3nB+3awUol@?+-o&EX-^_JCy`PjF{K-@G0i=0 z*Ct<=KLJLN-)T}U(K0|)FQty>2p9TpfG_?&|^gUVWy0kfoM1LB<+*`bC276*naa*Jph={ ztY*A-Y{(}1CP1Y|3KGW|)l&hnZ2`Vv`LH<9zN1_%v`b;sLLyc+KZA(f4(xXtCvl1z zyv)W{$ov`{aPh9dOBdf`kr0am&Y^&eLzdJJ{tFwiSYFXGnbMTEdEU6ogmDBo=woF{ zQf)d2i{Tp!+<>LZw!E=<^VXXFQ5InpXfCqb|5y8+d8&A{k6NUvj(fw_OS>lM1ZK_D z!{b#*wS%Y>LOkm3mrpz+a>E(Z+-rR($4Q!kW$3SB`i7!b!&@hqg^=apuHk&Q;YqId z?GnN*@;?%#^$Y+r8UdLLg$HXwNo+jRH}VR$l9F>!rsqCEZ}4PSK;$@hR0a0jnfRC z%!xY-&a11twUj~2aM0A={?5eANyA&HU&rIIDru?1PfHl67 zY8{%VJ3+4mOnW6n!UQ8_@Tiwq`mkX~fq}}-k6#u7TNpfUezFOprcl$^3xjF@usl!2y_y7M)6)Ym(`hEPnr}5 zgac)mv_=bxQY35!;KUcu)j3aga~~p$(6*=E&BXFMN({xPI$(C16Icy)kFkZ+ojo17*%LaS!Mh3A+)9fqlKYlC3cG6jb ze@5?s6H;KB(w%-cwNetj9tZ_{4!p?DVA*W>;BQaM03G*;*GS3RMK9Ctz#eS>ir^4y zzQX^L!imwqzHR-4{A(>7dspM^-0^Rq|0P~?#EW@G=3ls+5`I10+*(~)agtjOW00He z$u26&P6>Ne^C)*SvNx*-K{VpkVXt3(AfxonLNIYeihTLxS&`%K@jN)2l3H?>{g~2^ z{xYzE!~$A2W}joGaEdoezlSn>eS^~xUNJa!C6@Y4T1JttRi}P9Wo34qzL4&Z(d#_> zWbNi)K;IfPopB=Bq;#5(6qy%2CZIyO3p5i{H3`4!99$iYqy|a@hgJPzJNkYG>(zw2<&1E2TUL_jZciP3bvMlC^Wrm(_-O9*_hb z8{cjxqCF1}$x9+npnJTF=h}wYZd7B}*o99dSx}apjE2s^ir^^-W^x+|$n2lm3|?nZ z*}uFWwJdeSyPKUsirSPp_^Y0bk0N{5WqTgQ0`3WPKY*YV<+|PY&7eX>MX72>h zf&7Tyr1H6-yo%E$bsqn%!Huypb1YSHqmuAdb?skZbWPerCIoZt3t`#O--vD2gOMi zf!0L&j?&6KI#;rF(_l^MQceG_e@gLwJP+AmP9*J8=5l48^C5))3STWw0I))`=d90Z zc?~M=Wm}`H?y|BxB%EsGICxF)|?xsu3a&A$|MuoUJ`DVG>rVRtf-&*vzcF@*iR7f z6{Y+#ur#?3+h4O!I;A8&o{Aaio2_*j<-$GRR~v#?86}PsJy5|Zjx~y->k-ONU7smW!JWT97i4-38D82>3Tsx|`% zt-Zd!F>vnJA4lVc?wWt#NI=6?1Inn2wGi`uQ|L2~q=gmrYGAh@ z`G#_kJL+w}=L4YP-Zct_NAc>B`0a-0XX|2KmKTJCTaHSL;;4vu(D%_iIy!-T!-c)z zUg7ns_c&1iHOVm4A7fzms=;~k?oi1SUC1@vR2c%qGwXb40;tl+I=cm|f@{DD;dZf5_J7<_D4O$bxfceK=!FIWps{n{k24k~K`^?y{!*T~7Wkb9}j zbY*M!<*WG+RO@NKfIx5l$&v0W%;WX8#XBc(>o9-hJfJG*|-2DX8q_cWywHNjMc^G$K3Ng|cFZ z#<+%hD*M2Hmg|#56Xb-hTYs8*?0uY^C!C!R-RN}IJTVu>v&V)&fnx*FHN1j{5Iz2r z46Go}*Q6*wGL?sM5lT6Ed;U|%l@|&nXo;oOu1AMyz*`n$nQUdAGj9t=#{qk}KLBJ9 zEV4bVc&6&T@A!>JcVVVDKWUC^3k(tU%oVb~ax`GlY5Gvbck%8Y zCX{cK5 zVQ1o1Sa94C&htg55@MCFVO}(nCj?XZS+ZqhNPT#jgXFL>&yT-fm1x@gGDo98xO#L$ zOm)~OX5$%H__MW7L3x_R^vL6QqPfXk?SK+*2#Sh+c|2wE6mRdI*vAC@crE)#c%~E- zBTx2-|JuK9n9Y0ylXMcI!4ASjs>Klt8x`9bINKx_)NWkb*44#bj)BH7Rw>)8pfN8^ z=q&nD1J^cRxTnBuMWi4AitT@Aik!R24(@?YuN+kXD<|(RI6J+wR~B&nu~Qcjn@Iz0 zZ$gph_YQ&RIop`Fyz_~?S|o+p^Ti^z$|(s^7B#=Ah(mEKla)PrqwUTo8tCZiF4My} zwpyX=UikG|K^;-~DC+|qy!&2P(4Mv9P-wk1fcRCm{D1#54=KX-Hl;Gvj_EK2S>YxrBsn&mfGkQ|VjrD^vA!XU` z5%j@Pe@5!RrFUr7yIsye;Owb8XnZNsm~|VE=(#<|c3OMJb3+vIt)ze)`!R=d*;Zn` z@-IP4rF(5$c8X<*U$H2>Qo#7X^`i>7wX~Q`l;fX~J5%T<4|Q_~3B5aD`oC{#cr0X0 z#B`==T2)XkTOFapIEXWfYI~(oa3SM>r%Ux+K+2rOxj`{abS}p~3_C;FwLRo~*P=;uyaO{#ID~ zy)xd!g_B812rK21pR*j4ks0Za8|p2+K$p*XmPxCD!Y?R_#KH zi_IJAd15#*>LxlS|6CvZrO9W&e=;$c zS(zaW27(JTRX3cyvRRb^SRAyI{;EP;Ug#-Q2U#HA4bRKJjP=Nx2GHU7!c1krhb>BT-{J4Y8!+&GfSaWC&3dYGE>|4$ zjUXw$ewf=);n8n0d7BLiQjS~EU~!<-`R%e=evX3EgT`^R_RTI;bYcWw=TS>j%u&=) zKP~&r55h0IJyH>URx55X-{OPHXb-z%v%#xXvnto>uH+1Q)=dm(sf)~Q@QV_l=#c?; z5zUIWClcc$RaJZMUJJ*};WjH5&QHc9zBV`a8RZsYMf3r-mmewtAMSPeW@wwHTZ>pR zo#jB&W7uJ)Whx#n(E1q9*+t!m>TH(l$DNsBYS#q=xsX3=R8~UFxzzJK4Sv-9*HaUNI#2u}f{%)C zg_?Txv%T&vK%>}x6twwvz8GXIHfUpnICaMt?K0mc=6;d22P!6ixkSHx{8CmqIo0PP zMn+&|{73h5AxG)4f4-j%{qcMad`csmX$JDz551f-`6iZ!UA=t`Y^%kM z{rki-wBAF5rfv^|@~>MXoA&31&-<>Mrry>YZ!}={exey%9~SCeaV#NLqW|}$DJ4RE zWr5R;!f}17AowL3^`vCr=Y}|Hp!~seF1544Wr`fP@^ZxhzCSU2hm$E8^Uqw>8_^Ds zU*s)x?YCgq9EhwYtRxxjKhk9@l0;d}d<)7^r9r#dn){WUY0hNE)Jr~{S19Cho&{sX z$`uZr2=liu7Fm25xpK@Gs3&B<{1}1IwZdS#j-t!`x-srX4Topu$^JzT(MrLZP;e{d?ULQuA)Av*A=+ zwTt_!E4i2%nrsm0kL_tjzGDyWzqZq4ny^{CT`2GK*p6zQtd(b0?0|KgyQ*JrohkCU zG*lJQ64j@rQlLM$H~y{vvCkLc`c%D4YnJlh&jhNG-w49c>XXtd&o~#q%5MGNlhSkW zhnjvnK>dJ_!YNS?ju(b5;0<>{sd7971Dak1}_SwC=E zRk*eqiW+2M=?Myl&^~Q?Rzlui7Ey1OW|(}KbyK^T!1Vr}z0i(~qn5X4VLw6&N^gj^*Faf(BMzI%U=YX8l!n1)k`nyYeSd6k_i;J+_p2qT)YS0eW*Wpy+?b3rN2} z4u*JiuD!X_6o|L``iU!APj(}9X^%zLhB+aPka4r-J7Sb*{SmU^ndEVVv}olj7I4;a zjx}cp{->d4w6chm0RQ#d0ZyPx&dpEzGN1qwlp^N=S?lZpZhJx(z>dfGTGueqZNTPZO*poK@3)7g|f>yq&FTSmh_4D{$&EaSAN==$z4zVAOeh{He6h@{cD`Jkj~f$Y+Ip`pjJt!}{SZ~jOpL`#9p{Pwj1NlrpKS# zvyMh%Q+CW0-&1s5cSM39$K+eE?OHwTE^ZPUdk!H!n>V}RIudj$q7u;0#j>~;)J46? z4ggaBuvh1xq9w>-)@hT_r#^H|y*vGXDv+W+U?Ng4ME4*)Tin zu|%G;oG7EGeCt6Adrdbvdy%-56YbQ8v+X{HMJCsLro0TnvdJvi!!piV9q;?bYUSMB zA7W1d(RZBBL?ikfBrd^o5r!dbm#sf~Hg3yFl>czlHW$^(h6}difwYke&+$BK##=6p zNSug*xa@h8yE$+nuX`Hc$ii$*SGy`YiS2i3zGUho(ycLGo`4NAOVS@Gava zLAU{LD!t43@d*Y~%BkyP8hh^KrmNt|2cbC)Ks2F?D4(xV&PKsTrE~Yk5T2Umt$k2s zLXkf2A&Ld2Kls~h#HOMu2Rz{qB)7!LO5c|v#mFIcX?jE}OQ3k3vy&Bj<;`Ul&D2@u zCE1{>$!TZCO=cmcK9pZxJUeBs%=E7uGt-T}gx^iVv6OsQEuZQ?C(bi!9kB}7>^Wv& z6rqh(svvzlEjlPZXzg4iWguPOuqL8XDtRbnww;4&4M`kD)!+_4Oq(c<35Pg>_F1Y$ zok0~Pj6csiGYh*^i_dy#(oe{~JRjkyD7#5U?1DR9Wj|Z0r8LPN`o`j8RIoTT!z{!s z;Frb3eS%d4>_B(*Kmyxb$OtWsrFSQ|=;yJe>3y7i{jh%`dSM8V(veQxDNHqfw~7eP zO?6(vnv#d7nKy1aLL6(#@=Xu0Pc^4Zd^k)Wn;%x<&Z@L6ill!?9vIBAR9uxw#KN75TC^pfmQqx`CF!k5mI%{u4sPaT7DY)u|J@vj35)z^h-M0Fl|9jWv)5qgO=LH?e zAD7~))TfvgRiAV$?@LKihYXCbxmJ$l>Y~AiHCE-5g*$MBNJv_{(RKSGb)?U z9;@A%HbPGn{0z;bp4Z=+-SLQ|h{aJaR-E)$%eo49_d4qeKj?GkAYQM@wH74?k5$hF zgZCCZa)b5`e9Rd};k!)z;i52pRwnG)673pA#3`-rhz0TF`o-%v5FZGLODXE%6_>C# zm_w44%hN&MF?_7TkZLJjW&e|}qI{FkZI(@LLhsgl8|+aC1hT-a3aw%=AZm9y1VGRA zZt(;N%k#8Y)^1-ODK<~yi3(Sjx}_{&byf&AkPZT94$1C^-J~`UlFN}jOz!HAQs3}_uLGH_A33_ zoz#f3(>~A|Zqgn-5X{YUfF4fqaUQbrxRttHiz^7XMc;j%U_O^ez15rMPY&8CBGzbF zyFIv09r!-7V*x{T*zORUsShz|gS?02SE1lE^Wl76aGU5UBOCdWuXj`jhsE|EWUIh5 zALyV08oH>R4O{LnUoo0*yYx?w-d*L?KQG|&oLILGuF5F+H>1HVvQ~M{J%aG0H=}JK z-6PS7`pzg3@vSnpX-M0wZpAdq#+ey#5OJy7j5fo)eHy5bXaa*JBmKsQDFir5-_g-2b0h_4cE=) zSr5fY#Apm%-^DS>!iA}nS#4@gTXq;vilR3-vtisf)X)0&mEIibDLy|-cV*re3CkGwfd6g>nAM3wZ|wZNTk6utoe?5J)uPu<~1#;nVX}L z?-C3P4=XP5d;8lRLwWP8WP=vqDW%Rzr~xCP9!n#djU2XL7L6B_m|a#jV5VSYbDjws$k>61IGbk|ogwoGuLHf8 zXv~_Rr464SidzCa=!4Hk?9i^GOOX0)>Ej^PkQvo;Tq&#_??sK*L||&{LI-!jW}wwC zf~dYZQZ0zABv`bgAz+`@v#<2tMaqkEU=r?m_kMH#j0r;JJ7!1PyFGBSc|9Qn-3Owt z1T<~hoKQGd7;pWZ<7#K(;NvS0Qjm!M*tgrg2MeZnaw1XfcQc~&fOb@qhx#_vQQl-f zZ1DE|Pd3YhrA2;BVfy$rQ}1_SD)ozy2a~^IErJKXuefYRzDQX?r@5E_N1j+8c3u%W zA$)GAKGnohivqHQdXB8#+1V!hZgS7-y4Kxla^Hh{Ir%x8?dapfr}NEUBu-vEJ3iU! zh%Cy(X{YXmlM`!2RB5y|60ZftcfhDoy7*|Ux6Em8sw`9fl9cbb7^%LwR#iS~CZpsd zCr-=)X<$Z64zqg7(fNfZ(YCR%6>wqDu$&?t!fy_Akn!YPHXQ_xwR_6QGXtWQ0p!2H zSryG3;-(4q!``v_bu}Iphv}~3fHB?__9#oMHMJ4XSC6FnP(vl@+-rh&fVbE=7zXrQ zX+HkjA3Jo`US|NVNh25dbyyFW2QU6}SM9Ft^sS+-{7Op7NY zURrul{9nya-iTeJ)br<5wh^m07#(3*7}3>N6lzb5r!_!ZxS5dWX_q$68pdywCJ+Hhd$Gjl1HxcRx_ zZeQd+_RL^sW6Mu271f3Bz+2Eij+IyNH=pGK+d64e12b8$21n*!oI03$kN18Tsw$+q8^Ol4RbOhF;7&H zG6DF_Jew>ZF-D(+w=tpf6;PxWW%GWHBSEdRH{#NxsHWBgXM>PQ(+?Z8D$)r)SwFfx~ngI^*Lg&KpJEEh(4dVU?LifQ;z|rBs{?>GXtF3``EtroWQZHe_ zAHMTKqO+U+Qm;x1L-Tsc@r=_;=$3GqlZ_5c({Z^{n*UdPGAIgi_QGUnn%ie;Z-eh} zw5*m|yoFm>7j6u%P_A}VKumQT3=p%{!fb3WW7srnKIc5TcoDCZ-sd@*M@w;jx3r_D zbM*Uisgz=r&!CcI-tVA`yMc>yQcEG$o~PoBGs>DzXL3*Ncpu?|{Z4shM8mOMxXLYv zN&xl+eL-04CwF}K02iovH~#fpbGn#`T3n?vo5W~{ndlgM3Ua|r)V^5T0!T{tS$#BO z+q&HKhg+$Z`@M_6xN0h7*$L|X*Lhx6{@2QS)X48v2<^FU%>JfKp4^R(f(zvEliZvx#4N>F)kXJn^=@MU4~g$pez<@jfd(GAdwyxS4Xa%EbG^ zRb89D4~0&#YAkZOl<_|VJyTwIp{cM~z2TFspBC$18b~Fl%a$D-N%%0afRjJS^#C*) zdtx4tt0Clb9U>pS%2bgD&b{n;og;@|m0O$mvMAju4IQ*hwaAz<*u0?g zey}d4%ur zPVA_2iS)#}4@t9`AODs{ZTBQvhCymtvvDQ%Yj*uCGH5%^Tlb9sEXlIv?0d?enl81l zOnL38DFozk-Q{ix6CLcV4<{vVRu9-Q5&LPA-g-pg?YH_i&N745GQ3LkX-xl+L~*(5 zw~=uvGIJsH+pnI~-^g9m_<}hPB&G6jx2{+ZQ!I*9FV0He63`CDnD8hHp3aqpNXf{5 z-wLm=)*>?)c18lC;$<;ZnN-aNo&+z`CrpAuqFG_q;h* zk!kv*(;{WkUr*4r28P!MuF4Q{0iw_^b%xPZ_Cp)4s>Z)~U64yH(CkmtUt zHXZbB_q^~8J!N3?+II>$n9ZK`?%kF&velmotgGiO7B!Jxt2V_^0GR$W)?qf;2essh z>BIwaMH1FL>HlU}3)Fm*rMWf9d~!LO70X@`bE$|~dVRe`?>vg08YbjmbyRKpo28AF z{^K;;Y?pkOv-zkC+qP82br3BLeVBVWNR$s=Pc;7TYv*vbot(h)VdJpZUn@LHISL*tAQr%Cm4EyDOLcOeBgG21uG$uB_itSQyAE`4b zbWA9PhlS~0VPbkyc z#$BIm#oV%j+G6^0i{QKyJ94^@CfLG9Q>?yNeXADMOM;Y-4KYA^&Q1tp*GJImb%II$ z&mcc(H@I(qbl%?Qx(AoA=}e6Ntv(%8k116S8lvH7W4vzRQ=F)YT1ak*pTH+s%tx0% z4R%yF6C6F=y#1)cOf@j0&JWh4)E6Y2+;f}rdpv0%*x!m=Y^a@SFtYQ+hbU+bq$gGr zUbm1q8q@#`cBPfi0A$*svhauFQQ4lGb|kDGU|H3JVE zdjLv9&0M9aJUCivO3f?F!i-zDc*9-fBjCc?^&h;QgqJvcBlj(jPRXmoF_0rRAfe0 z5Y1TAqJ$JPEl)B7SxKFf_qZ+)-RJBiFtJ1tZ2_|J#IS;X1&K42_;AhofEb?BCYn@2 z8Y>m>V*?f*{vLffx@fKLK5Vn!T;3reAREVP%c60p3HNt0J{zlO#$BVfrtPfpyNs`L z+L1nQw1!J`T;02W{4t-u@nUNfgtJU*z?iStr0U5`wInVJbkas1ISkK$UvolFUpDsM zr^Gw1C2DpdMky#GXR4Q+msxz%gVyIMiIQtYt2c9~uPah5i+vp26|xeLi1YTVX1Ma{ zG0Bx^$v%HaLYyWgz4c7?xX zdUQ9wa9lOkyM9lpu^^@6!QNvnx|e)i-=|5Rgf8ne>3`FEzwI{F6vSSy0-CrOuAf8t zmkL|9zBAosUAlw^=2poH`ks=|N~$qSyc3gN)M3Nsh)CTq4y8+6n;e&s=b|Mq(uZY> zwj9y3{o|iL6mu*;n!vGep!#lBVBDV&`HspeUi3v022iwDEh!|7_ZR&7{7oC>K1^e|i1ewo}r} zFtyZ-p(#Nj*+|*pd)hw6iU)&Z%fyK*{TEXir{?(q89c`wiFNB5?HuGwh=3@(6^(N5 zP-OzrWFzDUz29+2(e{qnnipe87p+R9`rm?gtY`rlXS3@`#g7qJf1NDM?si~3rNvv= z03rQ%tT*RLVNV}17y%C$=xo|Ds3I63g(OorX0g0L9lu$ogMQ}zQKl2!8SVo)&KCG# z-FX-i$tb=p+~T&t#)f?`pzckfVEf4X%?>+ZkzNZ%|f&;KzAqp##i)%aw_ddiL>J=r4!X zeg0z|-W_(qn8;~ru=M-pE9=b+N>)cCj@ieC>8N^T6SjXJq9^nEuPfG}NF&)VL*=yz zW#s#vqRYu06D$i=$jajni1-i(zBO=0K%oL>=Vt73`ME~9*K^WBzR?}3l?+y4dPag% z0T}-kjdJNK0d>Y`atWVPL~1SX0l@l+1*I!-Y@p}iQP!^h_x``xsbtdY`EXasT>x-u zKWLs%7y3&jbTRfaL>S9RFpXtiX1)OAX61N>RQVaYC;uZAXhx0$wxlJnsp@iVv~wU5 zocM`R5VUc!5m1`yrN(m-xTqtdI!&&OQ6rWDn@f8jWs-05E?r07b>s=5NYUQUs5KR& zu(8OWn+)j_VTr^NBoiJ!ZLqw@Yq6VM6jVOT2Di)-w>f`!a1+?VaU+Sq{W9PJ`fXa) zB8Y}cNQ;sV~@TOyzC9DXucbGcWJnLoB{NQtM`^_A(-1M7ynIIKK~DXnIbz# z!39M^I5baLgiD*EgVcG!>6iI_E;w_$WrwQp^ChfiD8)jUret>+z`(@8Z4+TLt$ou@ z{RB#3E;3d){{wsSJ;cN_;vp8)-#;K!?-SR;Em!Tn|*|MygRBsy(Zw_P8YSe&8=I|13u5FjkPh-2lxN0?90QF z&f32#Gg_fZQ%i;EF{53}T@jjTu}zuAamfwKObr#y4HO}D9H(5UtTZ*LtekSe%v}@B zl+fI=TvJpK+)zM8knR0C^SsydT<;(6_51Pt_i&c`-1q0+&biO%vF<4fhrj&k-Yd%C znYTVvbEsE?)aQwVrzhhWT}F#WE$nt!{eytE z>e*GVDH`j+0WR<-0uNNiiqwI1>kOT&?BwBlepUTaB!+~ExM)+wPr=CVO^I{SgIe_l z<8Q%F%(;ZNOs+U;uq556GrdADG`}!_3*>Rg#3~f`9T~X$ROpk>`}y3OkW)6iwPP1WURoIZX%fg;yXhXmx6Bh2C z1JfX=nt-A;1|V8v&7WiZ^@2IJL(Ky4BADe&YT{_Z6AxX$AGg*|pqec)0hqlxQ~y#eF*^oT&iI)Fog*9@J_ z{_Y&eCPLxYWDxT+y^3qK9C6}Yo$q@#wyw?eiH=@rHOrMQ%``$Z4xyL^AUyJ|#~i(@ zsP?J$0$dsLLXmKMEyXMYrz$5`RJoCb0S$;Ffit+Ylf8R*%pM3R+6&Y2nzxm08_7(M zM50f&1)a0zC4lku#=~M$nv6l12?vgXkE|ppnf&DTC1+BB!R?+ILEUi{X~X(By@n>X zLtDU$Ei2=LprM5}%St*3EKYJ*lhO&QwPA_878|#KYe2@9>kud4PvW+J< zXT>K%^j56wws}n_9*)!YM_l?v3pkL~61=?>dcRb)kdRS9qZDHkpAu%5%&ZFJR*6mybL3%w*TZ75&t>Eyn$d6MH%iUqL zhm8~>bO_lWY#z+Nsw4YcTpmcOoKOAZNiklrld76M)dq`H?HRHYpA^8x6|cD%HY?XN zs=O`UfJ)4e|MpU+OV062A>x`{cw8LCW&+p_$e#o`yu3x%S1& zp@P)rwQTWI9Ay+J$Bi11PZ*I0R4;Sr3O=ruqRmPk>vfghW0y`Uc&JjfEz{vBR)Z zX1yJTkRkB)1 z8}$xz{GiwQBYKvoFF1bS#-LD5uwJZs;akNS4N_1ok`UpUakYIo$)cXDn8C2*Q)qJZ zLM=-XjB-s#p7BpM0%{kyG?p%jDHf0S3z~Paxx>sTn_HO>sF!Z%ZKFyJ48Tp-Gp*LD zaZj`~>I5tD8!9sfFEF-rR6hhi8dZ28m43j<~nk}ko zUB$z~pGNeW9T_N52LgH{VrqM_O z8H1dP`}`*nhND;Y-uD%u{}?@A)AMHFM1cA8f!md+TBSqSQu}S~tevbZp}F%QI##k$ zeuzJ6ha5P~_Zb4|)-9wqr@f0U%2Hq-j*79Qitllo<&}V(WMdT5E;7eYv0udb@Pwj6 zOTF~Ug#37POd||3W0rr+17udRd9X#2=YFAzYo}H`E*0}td~6L^j(EK2R1Qy)AuA@j zvbIo)BgS#|C2x)mMs&8vIeviUv1w)xBscn$qf}>PI!{>AGrZquoAt@|TexlH!Iile zRy$l}fvUlsEtd}I?RGfrM_hkT77#Z2d5Cbw#ogm)ZQRU^&E1wTnM*l%CACf=ec{>A zNQ>R3+_*kNG%#WR9j(sLboZz3-$fHZlGN- zIjaXR@ME3TGN8{SJxO{1v7vM5)6c3j?Zv^wDcF0XO>=c(Y--SxJnS_$1*jtH^WbI}4-B@ZrM@<_N5?EAi$GjTgl(vzTG z*6WX+k$d}Rkq0mVi!Rn>2`F+1ezWvqE~9;;)#DF)oD!d1&#Ams2?G!1cSVr-m5NGC z$D8MgVYY*k2KAG9Sq1S0ja^x~B<(L#5Z9SW7iZU*jb|PPCE9kCL6r&gyPfCY%)_xS zV1mU{q*(*~TZgy}0aIQDrf5`M^$pXI&2{UbqzOpU^_N=!mHCg9R$bG+RI+->HPHhHbpS}H~bUvz0|B$*4X&v{`oj49**yok_UYtj9UptplAtOR4J5{#t}h7gGTleEegQEX zeo1x06r>4_X;Q+d3`N_qdaQ6$#1k8dOe7rn=Y89y7^%SI6 zQJe!ze}pb+HUge)m=G4-Q+rK&t*`e`Oq(}$`)*vJ;=H8KHCxtI#Mj@63h(1kFkwv= z!9^_zZjs4ANCOF^wf|puYK(36Y)(lmw$dF=NmChxZk^B z(~rWnE~)ApEloF%jFmTbo1t`8@S0@}4~jR{pLkWYRcRSwh!Qz{N(8_04q<8|6@`|> zN%am7^QTS?E>E7tp+Pp?Q)u9QlZK3N$;f?Gp{$RpNF^QRo4~wfSfZ~{0j?yXT=JOD zBM)Wl$JHx&eX=X1_*YKS1777TTu(NI_FnEMyV6>p#DD#wDW_Vf-bYV)#y>qYW90wF zrl|)e7fUgEF=cbLI2QkPc#Zk%A~x8pw704ez3pB zXy$H^$V{7bgiWtx(-+MMP;@WTA9t)Xk3Zom=A|FaANR;PH+|&mB*24_ak4#n zeyXYdin1N`o1;4rPO))EZL#lYPIT^v0}|F7)o0}y6s#02Zljgr!UK`DJfD@(8_FiT z&qvHfn0n!o1!f+@`j9Y@*S^fwsFIAw(U%%I&fg)CLzQ5gxkY}8R51Cm6HNBkw2Y0} z2pTExPu@|lGdr|Rovf|`zvi}Vfs#u%7dsUWmuFGn-?bF;*VYFY&oDG-;uJ<2>x=$F zo@u>X^NI$hLg)R2rY~xsYtNJXd!5QpNze5+?(c#Bm6D$tVA9`SG>0^+zO~g~fTl81 zaxD!#uX!xyLA2@~)lb!|8SB~WR?$T?72MH6g^g}G+t_{W!a(yx9T&@w5G+qb+atX> zMUy>_q6<-jD(SRDJKzgut+k@7He+x(GA|!R)C`M^4LleJ%9r)3J9fQLU69vzd`z;D z-t!dMb2U)78D(Sc)Rb&iH@7`6^v70Zdpk_h@`Os@0Vg-ezG{=7c_u{r%L+eGAh~}_ zU9Wsz`R*lB7MNT~#j!TTMt&R5Q&7oN5$eN&A^H5X;JZo-gv>5KD z7*DRAtUX%AWppmR9>0VA1GDV6m1PDuT3BjIPgTvH1CF4_-r~#pdpA-8K`PT#WeNvf zxs{Wrdyrl9mF`RI_{-^`_mY)v()uX-H)~#*b{q@yDC6$5%))^)*U=72iVzK>Z~o}bd0hPIUcK{s_|PbRvhO~*ru!9daR)M2xE69f_v&2O5_Lc|^A%Hp zxp-63>NmQ$v!WPpajcf+sW=1mMCl!HFlSMKDwvXB?6a|^?orl?%q<)BUa|axd!WP!3U<3sskYRC6lBqWs*iU{$>W+3B2OgQRsmyzn~} zvATUxo|9!uP0a;b^|#`ZzUUS02;zegik}je&Gha!QYX?8>B*rMddFustc3=xHCH@N zPOBT+EE>ypN%pG#2nJZb3Vy?`Jh=yCGOF@QC>b{)L-Te8DBQu`LLA9UDx5?+J%98Ahiq_u07;XgXc_Q>wQ>S{Xr zVDg1DBO@nr-z+(mIzUEdLIT>iby$2ln|Q(N(1^>x9ks!sBk1O<{WWvbo)(-+I5j@fN0#5#y{C=Em5taUZbU+MGNQ zP=v<{Q!PkiLLE7~jdyotAEEW^z^)yM*AA~}%3@pf?qHF=QIXoict81KIZyE|zWi0i7rmLOrXooj zU?Gy5`}%5@|C$s!&l--fVU!uzK%<#7!9JHUe2RifdG}!b7D;hTGXDJG$=Ru`Bl^|V z&dvG6@Ly{RtJd904v*D`c5Ch({oIWC<}zN;{#Q!B5OeVHp0;xi!cOygwEGKfv z`Qr}a?%z#D2$IThw8bgQkm#;2K`R$fZb13O_g68J{gsn2Mn@X`9i6Amf}SJ?x(~32 z9u>a{6*4m+#Qn;0h8ZcVKyX3vgdz6H8YWjV(nhc1KsM}h%UM49fCb(XQFz7ZPW5JG z(c82}>)+#|^jG+8*8W`w{WS#B;43`Gb zc818a$>&TYjC6=TV5g?5A8+Ml+TGbJ+#1YshkkQ!%{zm7IKXOZ=FP?|QOrnO)Z$y-F@%2R7kj}sm9xi! z;g?`!=GC-=&Tqute1Y(XsIh@Kg;qinPbFyG-IVH5C%ti+jxBLW`c*c#{Px~pZNI1! zmxgGR91D5itEeFpW9!ML+SFMa>8$}r#0Ls_gpNv27is>jTHxcxwI}PJ zB7RMI^P`aEh56}xiQrtn>l=`dqE|=W!%PBimc$p0+QZ^$=JJ=Z2`WvQbNP#NN&&vc2K(l_>DXMp~5XO+9p3n}+@p1*KBPgd7s@$-sIgTa4)mj2z``CY`h zikIvF1=z)Vvs-LYDI>9H2w5f=4 zO@0SX0pnW9BhaJ^mVntcI+8QHyZGe(-7y>gpeX&QIP($(B~9P7@7XWpiPx-X?je6c zP-pKZaFSox;#g|lZNKo*LlB>;Y88^Yz~B%(QZkSEbrlF{CFRtxLckfmFDOp-Ay2Ms z095-ARXw-Y6zU`#QV)+6_?H_ok-U{NbVv{@@ZwtsrEeh}I#MikPWo5T$zKy8Z?J*Q zM!6wN?Ez2xosqpxqnaRd;=@Vys?KR)+LMoP-Hqy3ZuFIkZeX}Gv?_1@7F4Y14fzl# zI=1R>hZyihsrkl18!8UoaB^;CnbjyZX)8t{`LX9j2X0mEi*;fOm(;iT3MfX@b<*kN z+T#x7cq{{j$tAy<>7H*Iu%I(3_oIT4-}Zd6)Y+{7TeUQw4MDinAMy1?IY7_OWg%GQFFM0C_7ap%?#QFH&5mZocE-i{Y$V`MPLt0{$LzVYl|Q0U z>ntVM3KpkWUxg%BG41S-Fv|S3rDLji^dsrebV7*#hh0&EFQB9-pg;ll%}#uI-ycUq zTLcBF>}0=~tN~Vi!n_27`Y7UJOy*w8tCn4(i(;G-Ib-zqEnuu8eVI zo_oDZ!|OzzgOt^m7BQAZ&s5Z9Z)mLr<~O1+_Z}R75oWZf#C;9kPvnnanUetilcBO?wZ{ zJlpyiVf<1uLK>Z^%!r7sYVn`qlzPk^B2nGQo-BcCQHbjcYkA7&E%s@4tZC?e@!&$9 zj=b$YMD0?Hon6UY_^(rHEu&N~q`GjJ42Q5k<{x>4Iix`)6Ny?Z(x2peMbk|0MesQV zULCgFK3ADhWm}OuN0U6&_KDeXj_UvQ>QN6+IkysG8lt~-DX)m$VS$$WtJ*0oIdifx zK`*U8LE5cO^PEtNJl6+3IyNJ>B7bj@Ca0~&T8}U5&T|O0Sv-ed&LSsn?==rOV=Bpi zNLfRA4QoUyx|}3H+}nomWitQx3ZV*-hH6$eS5l zD}qt3IlWrUdiF!=c=YFoaMz(Fvp!_IYCDwjRy9;cuDMh^uPG zY*4WmLhk8W9qi+PkdplL&i-ZTa3NM~CE6vGXG-?wS{c7JtmqkQy>j8slk)`4)UhtR znNeqJsBwAI$dFN5OEcfWv?|{nMBw{4)~MeZ?zeg0$<$7%j|dU`N48pswZk>Nlq-O7^T}`4 zNA5G;^pP>QX&9#0pqFc%5(he|Tc@U*Nm7T-&TTJW+L=@U#4#n=5H0Y5 zv0>PYt}+dnmkY5UrgqvlvAX*J+BqMoeO z_D!#f=*1NHO7Bk^UMOe`Z;?lDq}3I-!{nEH(MMsee|;fr*cs^5dqZcX`zuTyy9szj z2-Y%x!EY8=-K@{}jP$z1gMD)ObDKgpX~uhUd&P=v9X$9>(=B1r!K~TS&Tjz94BTWxRRn(mU1Qs5g6 zs6(yq%)|seL<@?6YM#x%gVrx8oWJ`CDt&cQE9aO;%zDQUvOS-DnUx6^aCcmaL(mhq zh4Hl&z2f*+@cZrVQd(X6Z97vws_JA&-@4v<(#8?5!tRkQ$VhYo{fJcWlAq&t-(wp# z=fBW=wDy;Ooowq*8Pg0~&1tkC=g77njapFqkQa$W!ZOI($$GL1=G@pDGx-yt-p?F8 z6#G>XrJwwAtRdOJrdte;o@ww*Yu~0tngCT6k7<|dD+|}=7xrBZeBZm3cA6GB?A?oH zW#Fr@lF1<~n`;4;_dKCbjs~^%%%K<~q#NjSeVZ+_9z+7R%)QQjhJ^7k$>1;Gp(LZY z3_LkRBVuE1Et!PQ{Wf{Fxeol3ZID`LRN1K8!`ZJMREdq| z8)>DP8@Zi5UGixV4Lf~6-za0k8{`>fZG9u_ z6%jxjZf2|Jo!Q1xAYaM%HI4VNf9ZrDP%p^EjX}YnUWCFZiOS84R|tpCwp?A zd&-bj>NI`%W#`o~ykRFodfNAy%D(YQW&g`UjFvui%||j-9W6DSWV2 z{rzZp0!;c(TTAfi=H|iMl)u}hN%n7W$YnTkvJsAubWo9Q+ovebA;@=5Xbg%1h3x_+ zucOM82y(^&66GNNkV)sX7XBneJf{(_lhggWW=x0ZZJ`+;+&>7$8H-TMmNl_iu+=0A zUi~Rk&79B>4L8i*o;gj41tt(ntU-hlFYHofAs)qs(0|Ic;e1A-k;X!?0mAnd3z6y57oG+mE$ zwE2hn@3!U1#Vmu$qLj~XNli5=-uOhsA}g}Q2TL{dxkq5C=v_9d@7wKS{lA&a%7%JH>B`q5iw;>v^eMmiF90hPX9DmP5 zVAK7AM1}Ub<-7-e?evY#k0oY8?0DZt8Y2Y*Oi+ZFTc$G8mn4MJx(j_SBm>nw`ts|2 zlnIVdbBma!zRIi zJ#%{ju~E+$3GFUckbJ9Gl>i*_D7)u|29~@E%&Qxhx(Q1L)K8M1K1?UE?vpaI`P%B2Q_uOyxzY zfMAvNw+6Txe?viC9(wY-)Ll~7um_Fm|RbHk6Ma8Aeg~ba2ugl>BWEBB;of;PD#(OaU|Hx#U5$g6)`m87}YyISG zeEe~Mi2+%;4FP*YOW%tn_*2d4#`5U&6P9N!wz6~2L}Q*tZP;i$woQrW1+LLL;zw!fY!nbf!rfX5XW4=e^GMI zW&fL#ZLjB+F?*~C);7e?3cop2CtqnofZ{AE_gz5Idy#}6;gA=7=k`H3oVXms-E`1R z)nLdRB#cb_u+Ro92)Pn*A{*hI4l0b&dbbI^;lD81HbNJ`Run3Oj7<0$m9PzK)$<=GQuI^@|f}-=4);d+cI69rg$J(g^G9RKhqi5zacpcN?X?u?fWLvb7Q+_`|GWdgB3arO7jidPr^PmPvHryT*6rRObmhX1fxkTzb_B;NTVf$3 z&ymx4j(Yf19;~kp292Qt*z2pB6By{jX diff --git a/e2e/autoscript-apps/src/authn-oauth/autoscript.ts b/e2e/autoscript-apps/src/authn-oauth/autoscript.ts deleted file mode 100644 index 7f51c1d5e..000000000 --- a/e2e/autoscript-apps/src/authn-oauth/autoscript.ts +++ /dev/null @@ -1,154 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - const tokenExpiredDelay = 2000; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const clientId = url.searchParams.get('clientId') || 'WebOAuthClient'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const scope = url.searchParams.get('scope') || 'openid profile me.read'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - const oauthThreshold = url.searchParams.get('oauthThreshold'); - const resourceOrigin = url.searchParams.get('resourceOrigin') || 'http://localhost:9443/resource'; - const igUrl = url.searchParams.get('igUrl'); // only use when testing against IG on different host - - console.log('Configure the SDK'); - forgerock.Config.set({ - clientId, - middleware: [ - (req, action, next) => { - switch (action.type) { - case 'AUTHORIZE': - console.log('Calling authorize endpoint'); - break; - case 'EXCHANGE_TOKEN': - console.log('Calling access token exchange endpoint'); - break; - } - next(); - }, - ], - redirectUri: `${url.origin}/_callback/`, - realmPath, - scope, - tree, - serverConfig: { - baseUrl: amUrl, - }, - oauthThreshold: oauthThreshold, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } - console.log('Auth tree successfully completed'); - console.log('Get OAuth tokens'); - const tokens = forgerock.TokenManager.getTokens(); - return tokens; - }), - rxDelay(delay), - map((tokens) => { - if (tokens.accessToken) { - console.log('OAuth login successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Session_Error'); - } - return tokens; - }), - rxDelay(delay), - mergeMap( - (tokens) => { - console.log('Get user info from OAuth endpoint'); - const user = forgerock.UserManager.getCurrentUser(); - return user; - }, - (tokens, user) => { - console.log(`User's given name: ${user.family_name}`); - return tokens; - }, - ), - rxDelay(delay), - mergeMap( - (tokens) => { - console.log('Force renew OAuth tokens'); - return forgerock.TokenManager.getTokens({ forceRenew: true }); - }, - (oldTokens, newTokens) => { - if (oldTokens.accessToken !== newTokens.accessToken) { - console.log('New OAuth tokens retrieved'); - } else { - throw new Error('Force_Renew_Error'); - } - return newTokens; - }, - ), - rxDelay(delay), - mergeMap(() => { - console.log('Initiate logout'); - return forgerock.FRUser.logout(); - }), - rxDelay(delay), - mergeMap( - (step) => { - return forgerock.TokenStorage.get(); - }, - (step, tokens) => { - if (!tokens) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - return step; - }, - ), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-oauth/index.html b/e2e/autoscript-apps/src/authn-oauth/index.html deleted file mode 100644 index c371c9150..000000000 --- a/e2e/autoscript-apps/src/authn-oauth/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-otp-reg/autoscript.ts b/e2e/autoscript-apps/src/authn-otp-reg/autoscript.ts deleted file mode 100644 index 080069579..000000000 --- a/e2e/autoscript-apps/src/authn-otp-reg/autoscript.ts +++ /dev/null @@ -1,114 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'QRCodeTest'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks for submission'); - const unCb = step.getCallbackOfType('NameCallback'); - unCb.setName(un); - - const pwCb = step.getCallbackOfType('PasswordCallback'); - pwCb.setPassword(pw); - - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Register MFA with QR Code'); - const isQRCodeStep = forgerock.FRQRCode.isQRCodeStep(step); - if (!isQRCodeStep) { - throw new Error('Did not get expected QR Code step'); - } - - const { message, use, uri } = forgerock.FRQRCode.getQRCodeData(step); - if (!message && !use && !uri) { - throw new Error('Was unable to retreive message, use or URI from step'); - } - - console.log(message); - console.log(use); - console.log(uri); - - return forgerock.FRAuth.next(step); - }), - map( - (step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login with OTP registration step successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }, - (step) => step, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-otp-reg/index.html b/e2e/autoscript-apps/src/authn-otp-reg/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authn-otp-reg/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-platform/PlatformUsernamePassword.png b/e2e/autoscript-apps/src/authn-platform/PlatformUsernamePassword.png deleted file mode 100644 index cfdcc69dcef6182bba6708c7a7a809f9a69ce324..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245873 zcmd43RaD*Z_a}JSjnCJ+!%kO*-9_O!La>i-LnZt61P z5OuReClC;#5OR`Yn%$-fpl+IoD?>z(V1etv##dTuJgpi7nK78G_ zeH_Jbh9QEK8TelzjRvZ+RF9EmSsaF{jj9eaIvfWHcIxO>%=v_$Sb=iF-{t>EAPOms z5glSOQD}FmQg|>+V?ty#`G1%Ew`F=lv2&PI3g*6I$TUO__`ho$!~}D^9DqHIUH|us z`5$$3r4c%w^rd4Dq&)twQ~yhgssH~vtwd1rncbd=rHXO~ffp(+_z4}{^$K_OUF9qQ@m+6-|M!bq;|x;FG+bq?RE90;{0rT+i0t|`1C_Ju+-=|{#AT^ z^=8FM@vDPooDOlX=L7%hIEOq-i4Rkw*JAu@DzXHV`$;#o8N-HwhjI4uiI#FikXGnv zDM7KbU|QizQT9gNti(xwx{M%}y-RHu|HGC^PmwF*NA;;@xyD*Ovo>|S_v4lEYoEOx z?Fap1RkF*i@3WRkdC#9fE2ByYLEPC$;MOJ*6YisUs)sNM>cM%CLoGWhD?;S%-ADZG2T9nZ7w9cv1(N_wADw!T%(uxvQoIgR3JtB z)BjgdmD`6<_*QpEsNQlWC?XY^!jrUhW3|peH%E6)-k9y=@y6dI?W@g1dNJFlSG?9` z?`1#R74Xb^W~iyhujjNYD&(fxFo@}jaFYn@Z|nbj+y)$F21ZvMBkxu)71KDY3tXxQIqJnesH1;i{i)-J}lWRDsNDZ3;MlVwwwQi}}jX8(pMe+5NT#iZ?pVxC020b7{E*;9D)L3H^!ILTB=v(CVE%u!dm z{4cAnO6mtRL6q^T(sAh^#LHro6l%G?ke&pcOn>!_WSU&p%(q2Ykfuenc<4+^X{AYY z%fb?$ncP&`Q7uXu)r8Q_KoBT$O5B)Ad{ax~Aic#kv}b}xEH6z~oqL6`a4Tm%HE}i^ ztNl7&oxC`qj}^7sJ`%<|(HBV&B%N7V-nLLhb1w@P^iHu|P5Dt)1mlpREq`D3H(Wy+ zwJP}~-FMZQIkRSe*vXb<*&u*S?!d$Nf>{t)QGcV@lnZf1P^WOL-_}~el;X+g)mR}c zL5MU0R6u>M7OVvRPOZd?)|0zeSPW9QGg>cD6k(dD0kO2G@lQ3@P%p#XamW*|R}TcZ zySy~6C)fnLoyJ?e$nh0^j0S-uVqO3jCd`#;&l-eP6NTQR@*-vZX(#1Ud4-l`mOjo* z1Xl7%=#Nw<22~Qm`Q?H;c&8GXzqJE~g;yio5c5WZ;~T0AkAi6rFlG_gzsh~q-?{lx zdf@a$r^Ho`)1z|hL0y()%HPyz1evLtH*3zS9T7}5aE!LzwkYry+L$=jYP#2h2F6;U z5kV;xC9~Zjf0k5rU81-|Y3_)$PfI=C7E|pNO3OW!%kLAMb6HXO)XYIraV2Vl+Qc$* zmh3Gu-jvR9uP5k`cy%k7tdvT`4D>2o=_Db}++{(IwKkOdGRXnw%b%WNMy?@3ai zbdav`tKjE8oM(#>9ejKFSG&><7O6lx&yz%QkyaJzfZDaL?;*-GC++9oz4GchJtLT_ z92l;gW3M%-2V!oPucvVpI-O~*&FV$nU%A{I}Gsb zlyZjiIVSJ;+fpt+uA2;SwMdobP~X(c8J3Q@LDBWlE;^JqwY;|;v15Zi|7*GF_=5n0 zygTN3^$VzxO~k!;@Ho?MZ&&6VUPn2bSuqotbk=7v#Z!+MR8qS%l$N-XJ5>piL= zEyZ_P%0^8ln92ckVe*rYRs>$ZntGbm0Lk7eoX9_2@LJDok zh#aA283Tu4fEQpa^+Xy*wl8m+yU+g zXg69xjH+`v!(Pp?s zG^ol5b0b}y)~Z{yT;7U+N#=7(Z5--AF*uQ+dBB6qo`I>P(0#~3ads?rNLG%hV9$3F5wuG@pb>GQ{}=4qd&E6&;DLvL93tc7kX-y>cW&b ze-kbnwj}L6)+~Si;}xPqzf*IVYI{!@|r()D%yhC0NK@18Ul6jt#=S{b&9wpv{v28l1p z1oLX-y6*jLu$gekRQ6OgoTdd{8qwTH>-id|w+EOR3p{ts3&jzQfm3?-iDW6MFdngCEFgn-?iPWJl*)YlBGE64 zf_}bfZas5D1-Q?$02Z4FCV4+|7^IDje)KVA}_ z1u)|zQY&Epq>Q3__l!B8=z=iYkueID3YBbWklu%DQr#Kv$A!v{wEdBANG=TvN>Of{ zoi!+{TWNw#>@MM=x=E8@w88=yN7Y0ncld-f(Q+0MO%Rq~BaJANiDFvvO%x!+*Ud@L zEFi#~+bz*Tf5~h1U0{e-6rZ(@(W|btYgl_$s|G5sy`?b1wyvmdqqJ3hQzCoBjI63Y zEti6kfnrOr#gVs+2*4n~AmWBLOJcpF-C$JBM;G>&I%IyteEtvpr!C}D8T8KVgM z2$o%e4WW0@g`ekUl+a&NkwlZS_K1fG0ezVwkv(sP`u-APK<0-nutKdF1=Pf9t%oT@ z_=e_+H-aMB0kMXnB=(uWix5QAF;*#oCN|Q96WxX;z0pB^2Vc7!=hlp6o>w?$ZKJ7j z8tYLMY{e3$%20kv9!oKCw~@*CxIk)f2AH7+4rR&Nb1RXmED8@vgp#5E)%vWgF3un5 zl1iDfk|b{hS;PWXFi|j{_(puhv=_SIUTSJEDH>a7>5* zCzGavh7fIZdC(F`?_LF8Ni?o5Q9)iW4^i?WfZlb0QSF*AQpue!lS=s|c zt>7Qop&YY5Y6nxs1fl6IStD_j_NpOSZ|Q!3$RJi-l}7}SNIYh+srt<)XWh^WWeS&5 zD&2{F!UT-u0%+QDPnpg5<_f}KQm@IvewF$5{b?o*hkQ37mJX19)dwPK+pJ3rk)0<; zgUVW3M~-A)*|v4zON(#y_ulQ(^|!)ydnI?5wc}0b%hFj=E;}O^v`1>-a^j|L)*~o{gUg!_Mid|HBSuuKHi+@E= zk9dO(eZf~rn3JYrdb| z$7v8-P5g{mP+Ozy+szdvj=9C7;|cS*XJGTRX3`M7qg`j3vq(wczyB{vXQ~GH$2sU& zgS=^6JLRdK|Bk~d%sLZ9iTFM-z24UcIxccpy}mqtc!9f$A=TMJVo*zXRxu5uTsvf_ zfwa#UP9gYgNXUBFCzG@G*o4t)`9tfRb{y|M*^bQmK$&)~-#_o~h#LAoB6TkMHiImK zo=V}#SSaWK$Ou2A|BkkO)vpq-vE;)_OqHTRq)(!jq&)qy0ptWRcf%hm zXPLD|an5%`g_ellN?MR50I=m_1&E6KQ$(V9<#x?eCU%o#a>vT79rOJ3by^JIpiI6_ zuW!H2pgWp6uk?M|d=7SXlToZLXm0}dXC<>h5|r!v2s+6T;w6gaX1K_*&@lXX2u@^; z6v9jID|icVsXie8aU{PKzfO?Se6fjhiECKFFmDRhh}_T##3iAFK&i{Y7Sp8Iz+)@X+oS zlbGIHQ|xB3V{np~EuI%psiBXFN|C4LAhlqq)MUj6$Wp^z+Og*n;sbso;kUJ*#A;!n zC~BKLJVesomi=Vf!$tN9-1!)<1uom4aynl1yj3a9OoRJWM67BrE}{U@v?H1v0o)8; zET>AF)aN5IQrgHFbBASCdiITF){H$;8(icK92^!8V`q^L*QW@$QT*UmV87#9OP=u8 z7%1~xAeB0Dl&_v{OoAR_xU4Ou81AH2E|RG@bwy!RzpMy_qPEzMBAF-14S~6Hae*hS zF#$K-`D-d|!+GqQTR-1->grh%zdaYAll@`auS#)~6segdZd`$hp$ zL71lc>C{fLGGSPgzyOFKvzrA0nN0ZMTY6N!Cl zK@X)+U&~1uZ%9p91=#du7F*IL@h+v7>(3AzC%*P;hYc-CLuD*voS8QOe$z!6nl9}wVVmv2L3Gv zCKfGqQ>arz+}G)B@=Dq_wQ1EnH*QkY6<(yMG>$0~KWE+>XSQnzh}dOc0^4zgmPX;S zha6kcre$aG{-@VeY}pgy3R&1bf)Zu!Hr zPsTHjC{s0Oq+j(#1=pZ=NbG*sMpu(x5~U!+`?3)F6&{M6hr?XtE&J2@^ZhE&@|I)T zHZwDfbs9dDTbLX5?tl=nc`glh6_$Yf!#MS5Pcz-+T zTRQ3QU%$O8G%}lP_CpbY^f5IOru4D^^rkwi%I@&gsCMc0qeJJ`B;F7rT!0Lw1jT*R zy5ihyNUZzOc)(A(NCW~8#%T*5@+;1Jr>b#Zc(I%u{N^>rBKGJ}n?NLEm9>WRe=jZh zx19u7GPR&YCe){D#Wg+*=LNE7pJ=*;RMWKT0!ClUFB2t<9Qd@I`OpJu1`K#C*HW63 z)S7h;P4ePb0I4X$oAf6DBy$uIrF=?V+7D-~Rn6_1UwjxB`Zc*tfGAFNh?h7+`(+V1 zm5!BV4R}4~Ned@9Ll-v*2O=Tg1!fZha&%-0l@V_E*EFrvP&32(+mVtD!P1v1k=czmG+ApzNdf%WJFG5)vm_ zigyKFXgnS+abp{X;rKYGbh~{O9M=q&qM$r1ZE4mWo@()u#)0i8!k;@Omh_Pm76i-7 zKqL5abImFGR8PtMjOcO+wD!!3S&n1~;84>40^*A5s@AftS)S^9imK9MnwId^mp>@=xY!tpwe>RSgGV zCgl`+`$od{DR1qf;=xsHn5rNcybnA|N;?aG&cV`VaA?J|+T1 z<(Kb{_ZImK)4z#Crjsc(-XIjHcDEvRr=m;5i%Q6>kGS$FBMJtZ7O9ZM)=mlcZz8Nv z)zyM|=`sd?h7*p~MsmUp$wzSR8Jk;j#o%MmXGRE?v%B6V$LLsXNiCM9iKI6P29>sk%opKV3d|LV&VW-a74V15 zBRr-Ew4LBJNa109kf+vdwfLcY`>BMBRY&DA<2IVV+7W^fCQX*t;^OD2LWaZueZ6FM z-C_^-Oc+)s_F~d;(rd0HyHR+N&Tk=i3?0VPSW!7zD+~yZjW-Zrk?I83*5sa{b1oHY z0~V}Ja4PH?i}g%INJ!aV(`u1w@8kqm4cg#9w8a4ZnxVcnjUjMXF=GnBT7YkGz6e_C z>gpPLYems+tX#wJiyVxs9@g+Y*@Fc)cv9YDH>NCq|4rYkEkvw9G6fE`38TA=3qZTnc6n@G&fKXc)3n`mwl#N7r=f~9zX?ZpIO`uQE|(O-eG1H6HwQaJ}RE$qAA2fyh28POgx<{j_zqv z<#XQtaCH-mw0mJoE5Lpi2|J!42T-p|@L?cXDPB-qCB6ZLWHwu6dF?LqaXa0sYJ7FV zeY`Z4%=@CWzRqzZ?*(v;bNMjN&$ybDX=kP5jPN}n5k^DTF4KMuW4N<{!@)dH|H8SD z!`W*vL^qRXvp>+?Sh#i>^g<7`GcxnId*<{YA|-8W z-{!N0w&3tQkk5D2UA2oPSlTf}dz{;0N2wcZGAidYCYTsN&34T5hLiASxw*#clxEJj zN07e{;TvgyN!h4s?ogstM=ca2Aglhf$%_XkT!DAyiz@i5!`?)$T`yV^q@!Shu!;J1 zKbsiA!Hnr_4}CyCsI_2dnpJ$GNN$a>4zo={^d5BU#HXm6B_pP+W{0* zjF(-=ZED%bj1V=C=X#1Cz3TM(>VG*0Uikm41TXxZ_^ckoZFNLOT?%YK>mQlzF(dm~ zlAu#L!a3s>=<>*mrODfsj~(W~KJxfhEN(Uq%Wu5_I7JQ1B)^+6#VH3MWpB=8VZvV-$+xv&?ZDAXOHixEik`41C=7-;^eWTpp z4Dlv{C1;lhh5c@Ghdoa~5Je@aEjnPzctLyOix~iBXJ_V&DTeRS1y4=;qkP7h*`zYK z?GL%1^Bk_i67Km9!`vFeO00V4X5c+Iy}~P9sP|jF(M7*KG@u~0BXe0aWj~K9y_@n| zuLbRF4rF9cYrSDa^#XL8&zbfF?LNwC1BcBl_-Q}Iajk1O@OHzEns7iEBDjh5w1i zqrI+YhaTMg?nuCG%LYcd-?AAK6zd!7*dxDGzr`D65;a82Ax@PnFWWdg&R(pDi;xhK zw%#5oCjlp|$p(*@bJ`QFB?(W^jW1eVK=xeFfLAzhha=O7{*cue9Lu9_&{eRNRqw#4 z`(j&eo0FDKMLf)~owHi+N}Ul9kHxs9aM#R0$t3H~Rvq`D>X4O{)t4;%#>9f2klV3L;hSuVKlv1Z*y#}J+?*0Eyo^WK;{#1JEU@I`xEt}$-~_XJf=kG zNX_isG+}hvX_@@TqRr_{IUEGDn%Btv0!m{t@UHU>Bg?}lZC9|FyK$;&epx{?=(h{2 zHC~L^88nKOjdfep@VxYokBw6f`BFj>qvvN(?zq;ozJAP*Y%%Ql@P>1y+ek4T)aC!| z3V4NRQ zOBeWbLE(bf9xRf@=GPo1Sz?;Kpp6t9&+V;O$FkoJ@N;kLaXb9Czw<5tXt6|dfB*On z1%6ENIDil9*Dj5WItc7WJW#}!<6HMVx)(TXb2q7_15LvG>#U7s;S@mR3{ED%R}y>F zQvSd_))89(0}PY|GwV-&la3{e?boeGhfNSJ=RnQ-Q+|*ot;z%I%aq|y_hh3J0n70? zqE?ll2RlCk1|?x0M|fj@L}Z*a%)J62N!FotDzGkTMN4{PW`+B44dZl#MJT*@HZGsn z0$M_%&0-kI?>08f)0)xZ@nQpH7~5jR@3s;6@+YV*n%Y&K{|P60Q9iu(=no-={DuVbb5dI=;Zk* zUS2ba^c)93veRc0iA-lc|KrZ&{I@9R<1R*^aZi&XbI@VPw5cYG;2uq0DyrG2*Y5%V zh4IM4=*XqZdGq6IBo2IOsB9%nRE9Me5PT@~Uy`Bt4@KOxA=&1Yb}m zx_Rfy#~s+DePb!=eRKOm#FRDk$rd`EpnFNcL1v53Tt)D2MZjTmK1%T`rm~%6h_FY& zi-)H;D+cvHeV~i{zlykA#)%$581Do{n_9>($x3C274GNeN+ z->}Feekl?huBeK)a5zLP^*P-Xvhn8c-5@uhijt=z!Ve?{UX$86XzRT>kevyNz%yzkAj-y7upD{KEp6s*ic zv1HNmtWr)p-^-)LYug@wOy~d&g-d0pnk_Ii5 zG(+M(`v6^BmOFI#q53yFc|xL78SnfSi*aQb1wE!28oZv}XnHtP>GR5US_dhE+SvHm zbp=5@-`R!fwQRAs^uaQ`zhCF?e}8OpD|IplH-0SPQGuw(RPy<8Sd$6AG2O-`!Hi~p z$sdvO{@St@Ai!gxG`+?L^51*YyZI%+KFqOVN~@C7fKj85ewn^HAWBmnZ0s|(Ow^Bz~+gJtDsCt}nBw>cD`8<`ErZNVj{ z;7xt2TKoR}yNk|6d++0gw6_bON zq}F&%On~~B#lkZwuv#sqE!9Z39>ce%KaNB|+89gB+YVyqq8)uLb?f6=a5A?$n9D8Y zjpfm>ZJaa+-vtb64oZEGSy=@~riYYZ6A%H{QW<(Z!w2!0n!+cMcm(<7HsKqVysnjd z53MJ@q3N)G#(tD5{ij_97xo|Qi-Ee0v`IRE=SGB_peiSuJGuZ#&aZc2z~@#wQuoIS zAT-Q-Jv$1B+^0B(+P14$)ez!Uzbu5uvWpuI5!dS4?|=A8`*W!aSl#|x>aG_38n!at zkFU1PLuIPp|F-u52@PnO1UyFUU7)iVJbt$c5nj0EKeg0OEB&4edcpI&KF!HJnbGqy zSeYe$Mzu8iRpSx)zNAilc45@5@42t(y#^Vyxx5CR*=I^*95_-Ke7mU5I^Pa_ zc5AbfYJY#=`J6Ep@n2CU&24_|Zw7ztpr2jXharK{dAK^a?_2Z~x=9Jx#qz7|T(YcxyJ0!MPY!zk=YMQ)2VG@*?k}%8V56)! zeTEC&MyQxJW;R(w8n@?v?q%e5E}7-O-Wb3B`<_^fyhi4;hxRV?-L=lGRjnvj+f8Gx zVWbZ~qy2=P{)Zpe7(VanJ$*W6wRavKE^PWt33X~Ei2BS$UhhS~yI3-g_lGKL7H5b< ztRm)LiXsjMJ~O`wTZ7jH9Ir=UUsp}ub+UPVe_M-m!%vZ4IwXt$QlPxZ81{Z3c80sU zDr%D%&YMPkVT`BfBruanzkX-?9gm<%?BouEDvNEvluIhQ5o;deu+Qsc4*0|rllXD+ zg%QO%08hT-$+1x;U)KyQ&~-8JEw6bi#Ll4gS@^ZMJ^)u{L~uM1Sia3~C-O2`e-ZQ= zzug{Pt#dJ&j=omYx?bM*M(^i7$4%IE9rwPs8sw-lq_U)n30>|lwcK16WLu061P*VuMXeW$dXQ8A^ zNJbs_)z%+T;Wk=>Kj?5lTEOe`skN#4k5I8-{czi2k8d01jz(4j9->rjvn2lh>0Ha) z`lta8wtGK``9!`MZK9i*P3htZJHexo{PUhfM$G*_HC}6D#X_fa1z3psZFOYeYRh?m zXRABDnWXz`CryKsO||;%3*7DQdTus@FDd{|Y8BO-I$Xb-UE&p4=k#0Nn)p%x@(`TDEQR$KZ9MtwuxR2l zTf-U4dpu0>+aBzB)rOkgRVygq1dlEfZ{U=SimtNrpx5MumR}^Cn`WvJq)Y{#&jtkw?0=mEF5JqOadhg7PVU=qm-!pqBQkT1$X#*BJtV z>)kQ(ihw{kL~gU^mH^%?$*AkHeXMTJRS>=cW8mU&`s^ONFUgQfw)vn!>KH(|<7i%G z#Yx{L-V`yv(|2^soaAhu$hUW562Nw%hm9!!nygxd(2_(fz-I4;@Uu)h z@bbD)cyM4&Fzib;&qYJ7Za!wIPq*_EssMjNJHs#^xTnza543JGU_AG%eJu?A9P+&y zMu^WYV0h6J&1|LBDfK>wR21J!e>E+)&25-J^sj1NyU8$nj7N14jDmi8uAt|yrs9(E z?piiBQ;C3aXC~S`YVG5YYM-s#EIS{9kTHR);AYnc2HF4RlU@3zyIqS8n!I0z*eHGkT}Nq=$z@Ebd4T4;(9hsJ{k7rMFM> zizpNm0oin&k~Z@_GbnYb5%e&&LeSDT)c@&;{C^BIU7DZ5d+M6tf&Bn!HhhvFW|XwRgH30&prtK&4``3`-6liCLFM`{vh^UZ$a|yWwyN^n0o=>i~57t ze=X&Av`6HF6W!e?f3h(s%$=;pABb}C12u70eHm;AC-S=Jlt#A zMZ6DVRyIRl2}q&dH&**B@X7*b>AZj$@GFYFE1vDY(?veRYmLPuxux4zYlj`#d@>SU zq>IQufGcKl!%f8)SNCT+VEc_m_2w`FcQ|fF_Z_Z?n8Q?t^bV)&cks8MMeh1MH781ZYxXFT6oAMlON7fqgeE{2q9QER|nt5{t1o3rRj;m@`wM2?|S z6=*>f6vYpAhspF&V?v3>J|0YzHC8zuo>kOzU{rt5 z{a8DX;;Of63Q!4}cWtf4sJ}3C@2w+Ar#{r8&hT1}ijbiqTufYMGjaCt%|$gKZX@6L zEgy{`nB}aavAktecW>|@^^D!JGZ2z)Cm>0yEfS!qzYWfUZRg$~Uair?SyynoQlGA! z-{6>;S8Mpu)`r@Kgx7+COW}Zj_lSFTBBRRM@M~e+evN=p|1JVMpr+X^f@_6S|A&uB z#E902Lz;zAM?L(DYT*XYw>A7j3gVChlTQE9mD)o+bLK^C z?O_kXcJP)^N8v6Fe|CScDje3!BQ*MjggYimxQetx(Kb=1plP*sZEI>ub1lwa+v*XV*M2zb{K&@;sCpNy#`T{PyHfbluCpu+-;vYy7oqs+*?k6!dW zl8tGee%jjBP7I(t(}QBtuh%GeWw&nrb+E%+fS+wM9B>5l_rg-Js@z^$=c2YbEQN9P z1-O0g#n>1AtWx|s9iW3Zz4E*40$79bH)p8Vdv(^RC)+v`-FvNz+l%9=1R!Qz z&rau-aMX^dVHAg_gkU>psshKeVgzn?lbYn$abLgw&B&b96OZt_NR)i0!-1Qd75!(V z8uQM zqpue1d^_p@Zn5LYC_6vkQ6~S1k&Gayw4Br|9?kE6xfpN2VE(kwdAp+u_s3fDkHno; zI1Z%#!_~G8ORxVV98E^G?5CEb=8T%6mHrbp{1tt|-~SMGm;X-Gd3l3mnSVoP6q9*z zD0K<@^^v;fBARu;*X1;n-6a?a1}4$7A>sKC3cpUO=;JCx1#;qelMTXW;AGb4C0amo;teX|7`%R$}f##bni%{JXm zx9-5d+(=34nl=Ap=z*c$gspdmYx?Ax8VTLeb~C_Z9zR>IdkIndeOyc(lgI+okMBqn z?VPY?1r`=ZsEY5Cvp6_G$-LKL%ivQFPw9f!sD3-}ov~bJ4nMwuY+q?E2 zo<`-!kwL)k!{M=RP?g7o@8)MUJTL*e(I)sE%F+;`j)@QFF9wo^axw8aMVP}lFM(aH-0?F`x|;iE>XcrhW=OJb`Ic%1;I7>z2K= zBNY#zxvF7J|LM^Gs&DKEP7}Sxp{|cYHlhr}%5JM~(}31-M8cEmLR~KH>(FsByVUd} zOyhikj3+$V`H&|4b|py$CpOAfmkePi;m!FgABV9Ba-NZ)AT%(_lEFIysj`6jYtaX0 zNBDARai5p=lv}>IEzJ{xd!X;^=}Mcfz(JS0&(I6}Ywgw1(XkitO4HYfQcKb>(tB=J zXGqsNQ*wI0+Y7wfft(UfC!Z62#yvMAWRqxoy&?USG7*njDZ%SLRS3jX88wmRE6#XD z(k$gLoMHq7?9l69jYs64m|qFGoy2=Q*QpJSUNaWC=LDCipb7jVVtwfd%JzwIprBzd zZD}_8x8Ut&;w^*4yxTbFih}uJ^HTXy(|$c*E}p6k>z*Jmg-ErpGC%ZKFd@t+s)u-w zc?Whku-~GDid-k-LBqim%H5z2Qaz<3SQn8|JLWpJnO#Y=1v1@kcy|ik?Lg~>SYN!2 zDoi`}5Kv5|A=;-@gC~f%Bl1|V-pWVWB`l^l&&G+JH>`cqR%(BTm%5|688_1Gb#)ch zP9C~Yo_Bi_>6|e5e~^7+;0HJU5*o>Apn*ejE-%@%G$ZKZH_atR>0+&KLsYQ*$~Kj= zOzvz+Rzo^Prv1bPh>0qTqCLEDctyh17)Z>nqyG|s6dX38tXzcZ_=h(Qn>$< zbHm#}DM^~rR}7~RTbsWkFh^#23$v}q7aSi%y8R?okm}uo&Q8Ad{6G<7c@W=g)Se{x zRhXzL8&}jbg8>jvM8^r$a}$z0zK67lO=o!PnE)`NK}Dn!mY5_qJiRY>2rwL$l6`RU zNDc~M0*1T3^JnJ`V5)upNv@5+Pl6CSRPW{Whx_*yWXLFWoFz6}9g52@f0jN{LYjrh zDC-1zDl*Etl$aSnA#$QDE}$_}6<$gbnKKq+=iw0T%(xLZY2b|nq!+dfWy0Y^^+kFI zXY-Obg!^N>zt0qQLYE+PT{JjCI}~zyr!Otsdv14VHMEr8KRxRDRn-)R89S^~JWC-N z0y#iY-`Ef_%7n?y-=3a!#&peY#Mojo%i!sn8Kwn>UfYsON_|NtN9yi|!gEK%atpx> zfNxYMsjLAr2IHLqA-PSBiAamL@CR%fj)hJdJ(|iG-d!fY+pQo*oKT?|jER@LO2BBf zOK$;b7Rg;$uKL|4TJJhdivnI+D!>>5BQez0dI9ESCk%|#wXhOC$|$1r3qG6&0}7n^ zM?*Ra#LkZ@#^Az;+L&ElBgYtGWCVCxkp_1-)dqa3d`##09n|Dn<;`x~6&MYso-eJD z0F7D)Kh9sbTeXNgSa$0ouqAmlm@!PYXpm+^q=TWPh?n+14{`hIwad3W{z$oXJP5^k z!2NWu^i{wxN0(14G8%$UB+r(DX~Dg37Gn%3-{u|c!IKpz;gL8Vqd~Y8yhT64Mgwe6 z)rg0S$l8Z`Chs5)eShP8sedO5gFvh?`>{n|lv6hMix{9r5Jk2}%KU?XDB+hZCbrCF z$xpd(Df7}2=RfL*L%|}ctu^sZm2(u_dyhLMhxf+^INGGU61<}KvX{I3;q99L6l<$E z{_lf;8A6HQAn~F|1{u8A%;SzR;62_td_Dd7(dDc%ovhk=MSGW@klC9?aMmX%IS1P06@(}2($M&PmP>fSGZNWyW00{AtDCz=Bba8COo z5Z{B|Y(C?jZKikS{=|)pyOd-7@qBa5duBhY?K}K8DMXQa;9GP0kYT}< z|NY_v_$aRx)9p7&z)kbRzQt?pmm4lV&-K7-yia0rD3M)KDfT6v@E=I0qM1}R>U
>P^f5)>V;ZU(jhSl(* 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%0D%Hp|kk&+#il@#ctG*BFDH%nh zPi=j_e!Hj!{9YtIRG!jpysEows2^0jzTZuQlS{Ghyjf}!bct1iE;Ew!sxG}XS*MP_3SOP+SdAui`v@8v4g7zM2@&8=CCg zsndC9RXY8SZj;`lROZzlYu87Q%4BJ9L)3S-=w@8Ws@Z1-eD>a7CZkwuz`~j!P$(SLxKERwNx!dWNI$1-VDyJbl`QYKV(?}b_;o)%WVwlq#I%I-}u`Uh= zAGZgG_~C7xh_A~DZp)oGagy?NxZfwm;J=>m_rb9IS@ zW=r7%e{?_}`0+UoxN~Ejb6D;+j~rIX?KoEo1IBDzts3xBdOdq577fr&9dL71e<`Ka zPF+>swDPjYq`K(t*cgvK_DEd+i<{!4H@+>7I{x@rw`E;i_>J$zD8+xA-cYMn$D>;- zBc%73vF&%;X9A z$w&GNQ}NZ=woyB`2>^Fo%eX4T^%@9phNb#}&*_nsHhchW2|3mppUZh9S zRrhKebW5Z3TWw<;vgh8~Udo`N z{6n-ejmqgs+PTb@)2|=$@12l9XjC$EuTb`u@pSp%2-1=J&heK!MxZrpFce|z$X}b7D%BW5= zxuW(}?kcS+)yd7RoZFSID_7}EFiP+z)M&nfJq0r8&Ym0ii8 zh3*j#G14c$(rO>dx5h0u{U#PZw=gdI&KF|rs3vvH zH|boS+7NZgI+RYeE!sA$o_a%zxM>XCr4^yOZof75-R})r#pX9eoo@{o83OgIlUt*~ zh*B1zX}~>-US+TDAl2l8#s}if0Af{K{=J{Yn2Be^XFhg%Oq)6`dOOy{_5XQ&TzlKS zao?SUw)~1) zsak2&t8ydR{R879o8LT@6Xj#S23b15sU)U+wCXlhX{CW7H>dV$a8#-iohG+<>Y++F z?>+l{@%H^yj{7#nYIQho{N3$w&&{{QV^2L3pT1lVw~yxOitf~24{GpPqjsQEgRLe_ zqV;uaaH4c);)hkj4n0ub$i$PbZmn+Bz(T{NYIQ=#j%ts$pK?kZGG|n@6GaAVnv|oI zRWSfp+o-5&wX!P4jcbpS-f&t>pFV?1q(PO+ir`!}RHX^J?hbX18>_U7qE8+5<|s*@ zG>BK{y_*&49{mPsLaa+2>P9_tlFo0DFO)x(XB+C7>l$#EZ{tvo?FMgX?jq5^Bf(@- zAHbuY;5Hn;4KQ&0o8aF;!i#!YW@<;3Hi-`TG7f_VgPr<0L;Wl3kOH%R(B<)gF4w_z z+$7*5-!#OF`d)6^cMd2SOw}lVS#7S>1R(DkHmW{x>uyU^iv~+f6zN?=)w8XeH^sBh zK9|~{F`BeeifIyt)n5HJDSlllV-0$bg=*EWwwMXqM<0ARKKJ#jVq1?U!fGdoqFGNe zuF+eWlj5R(xFTlE)=rDqpzb|OEIw^0B zY7bNvONv_^qej(hjt^9+eHa{69n)lm)JPLXB~5D7vO+^GXGT?N*r$3}rJICHnw+6d zQii)V2~c07%eIs!)tX$THuq^IyrzlC9{tV>w@y1$26Qxm6>gf6kql)g|6Cqi&L~sv zTa!Qito&=moIK-mIn3#x1()zt7S!JY&pd%+EZ1cLT=NBH18*D332A}>HxDz8?H%QJ zH*l>RG{`9O&Gp9(9ymoj%eGA)8{X(jc^}C*J>bt*G{|xqx!+q!ep>l*fNd%=opUoM zfgKS9frkR_z*~S5#(bbN3_2p^A7jIFzQFhro+>m2l5k)|2DdXC7;a>dU>;;)gNs2w z!jNg59F`FDujn5Rj=YhKSJo`Y_~wu982k>yZ#UuQfjj5pco1I-TuKMJfkQfh>jn~= zINN|jxNY2Y-c18O{PA129JlB;Uua63QH&vfPqjICAJhZS_R-^F#*FDPYv!JUl^ckhZ?W827jQ;0ggalr+ZFyuymET@@YzqstUV|58>e!h zG*bF8=!2fKaOOwc^1K;Nk3=x^&p6OJZGchUFy;x2&-`)caRFWl*L=*&GVsHrXez;s zGg25hgzt*KdD-R+VO2>pwfar1WhGDk9u08EwT+9@Pdz>MUi4Btr8mD;=^eLrHPm&Q z-JLOciY`2v5-s|HugcFl45f+n%+m*XdD`JlAM?CgRiy6XH?8$6(hxuDF1)FC*bJz6 z@&Q`v29r|MIj@#6IHTT`A4aFMTFyJ_V{4mMMl^7MCxbJ1V&G+6kjZELfE$K8rvZ*m zd`WjLEtNEp(xVQUCWz?SJF|uYPB`2PFo8PJn(>+Ib9dS^lgi2y1Zu2q5H&?_M75+ zKf5g!-1lTmKH+e!Sk-Dk-5Gye^tAGBlRD~p9Dd4-m^x`<^ywDQmtI;dUAD$E&pscc zCyv*a=b5R0v~lhFcy{@Q=fTrGWZ=Kne=?tb`^c>IAoiCiFI#=^iyUCQlRo#L?;os}t6> zAr`%~GTK!iS1x-gUe+LflvYb;>@`=vcPiIeS*C1aT&|O6=$~QOF1xltp+ifU>tkLQ z{5$P1@XXKk240C??Y3$CyJ@;yAL=8-Evwh8jOSlmoK~!PL$Ry-`RM8D zm23^jbs5wC^Y+)9mt&$%?E@2aZ0GIKfUQ=As$;{;an*M(j?U6y@%b-&GWMS}RjZ%d zTa*D6t2>seNg$?tx29bO+xf{ZcSTkt7Al!wzpo#5VWo(os`xZ#8I|4YjvOBj9%I`O@vfw z@>5#r8{UxK7?&U1hS_%6NVfE|ad_@`8FJaC+<5Q?o@sI$+?3ZtWr;ACCG#fSWyil| zrZY~_hQ@k04#pwO1|0OX!Jos>$FhM#iw?LQU(*(C!d)Ls3oMrhjq3|x;PF9+-@4*P z7wV1cB(S22# z;F>2kvasPzBsb}Yna(_&4g53~(2xju!vQa79asG3TPY0Kt_+!iF;Ck$-`s6}z`(^u zNBfBbZsNfKd^%RS;YXlo;A6RY7<@3caU0L+4-5kiA8_-_^VoD{?43Np;WIz;FhApi z!wjnNDcr5#_q_!C^h~JhDDHy77S74IXa$^DxuqVTO?oMHxlB zqTjTCiVcsVoRR3kPw&SmLD>$fp@KT(n!r(dkJpy0wt1uDklAzMfrlSfd!qr0&cgI+ z%WO$ySrhWns~^_^{fN7xLOdzsHoJ<`aN)%`7!Nof^#|K<{J8miAqU};Cr?hgp%;@p z49dKH5t_AnP#WC{hmHXmZ4YkSUV*nP>p&c7gNZLN41BB`Ht+gTzDr6}Zr`Lct)7o& zy|vn*LB_MsyciqSZ&Zhijt)Owbm*jyR?IkWLsIe%-AgYmOKreG2koy8KPw-4NL*W# z#7yC;15^d6FsS%fGc&E5CL5ZY;!P*)7eD&h?{ulnbMcmA4~nNAc_jYfAFt4LFHAhG z2<`HX?$&8>;a4wee!T1bZ;tIXtK+Nxa6xo$-z(NBefoQ9~rc<=M^_ScVz<%<``1z)&0Uf!@l+j1G)cj%1k__+AuOJnvP{kmXgFfROuZ^lBM zZyVG$!-nm8A5iDJPCDz%IQt!^$BLJh#}_WRDn4<+<;t6N@tF_(jkcEVA8Q-d#UyQ; zd|qwZ$3OJ>IOF(3wZ&{veD%VAkB|Q4=VRWFX4R^dTDepksrH3!^qt#v<~zl$FIKJK zeah`|=9GTE8MTu3H|jf9nOY{{j1Hhen-tAdHPst*6Dk zcRU}<)nDk*%4@%FlU<}+gGWuC7`p2zYSgCGY6W+#c8zpu%lzmz>8ItZEt|He94^%@ zz3X+xxh0y%>=_fLYC=F;UK_On)}aZPB`aQt)vH%(8}X($*kC;zav^C0Dm`pe{z^E4-NzB?Zs25!;7%Y2>J z@TGj=&)azL2m?l#<(uBTbDoA3ZFuCS$b&HWW01v%alN$+>t}l7*`J6i{B!*w$Z~St zMLza}YuV7^Ha&jp1I#qQG3mC$va>AI$Ov|VK!|dV0Ctg)c^Joj+j&HQ8P7`LH;i!W zfxBpmxP;S5ShsGSwn2?bKhDt8nLsWb32f^CexBI)a|8ck{PG0NaqYJ5(DB(%xZSqR z%jpXay3#rE>KC{SH0U7FfcY>!yiM;oI1RD+40jq@C*%+g?;@^otRuL%{o%*t;bq9H z|ASLZ1L8#|4ufpM(UaMD&VSTuX}++fWEu3EPBCVj$^Az5> zT-+m>9CswV-3_b6&pOzy#4F{A&SJUeKc0LUuT1uG1c6qw!sZltMi~$hDPO0wFVEhS}AK%CxPuX zX#_UJ)M!8Q+8$!K5MHpxwAH4K!P3>Y%VACO)R!bxWXhvKMF zRno0r?cQo#tgv1)-1R(Wt$Zj?&ZsVkwqL6->bGf-tMnF+9`)jutHU;P)?Qi}*LE|t z7k%pJah^~aro7X(Go?l9XES>4)ufOnaOzt0R-0CC*01kS$7*9-`_pT5ZlfXo>Ef@( zxXA;t_{l%S-+l9{c<|BZWd7S*VKaXQi+gsa9`{KG^{D;n$G{rw% zbV-aIS0Bq3JsuzZ!nfn0KP--eXE*Ac7Z+$qXZ8JSHS;{VeM-D$&g6Lbz8}WI`+lyD z+Fo($NpFY)W@^P$+b1VXY*L!k#pf@%IR5i%*T&R6PKx(@hv`POOd9%erIQVF$$de{pn-omh&`fAJzc zy1q|*`70leNmKgbzI$$rYp%XNe*4?k$2o60Qroc9(bF>sG{u8jh3M0~e#es#z-@4)=RllyZ)vCIxIllIfU)HL0Dek%Rwz&Aa*Qqnz z5mVcBmP~CXbtE^G&)m2^QYZ3yxr0s(1KY$L1}$#tmdy@a0dVu>^%8#?#IaH`WQsJo zUarH&#V*49J7_-Wl;b3sf)!1UXIj%?W9)Z0HlM?(c-;J&>YOH_s@WE+w%}zwC9_H^ zklQs-*4i0~AsSYy!C}Qf^;&J|_N^VU;DJZu$))0>(4Y139?wYAMU!>D9> z{OLR6k4wkJ0aK@HJE8gtb$i5@zI;)vS=%3@#x_Lf=5_J4FJ2kvee$C*@384wkX~mo%igBOTKI;-4Kt*^K**YoS_g5c`Q%{>53-5h2zH`wJV!NK)*{+pwJ@}&Y z&tv1_f4)rbf=b{BrkM8l^D^jg^2BA$?7*|(cffvd{W(0hE0qnxo$t1R<>djm^~q&{ zHkX!Zd&s!+SDIt_`rAE%-c42xLx1S!C|>=`l6iNpSB$W z0NDgEaYU@RadKk2jcaR@ z)*A*Z#^c94$ItoOU9^YOyNGAMXS|V9$vEEdHBRm(4s>$B^FWM_5b;^DVnxiFH7j*^ z*vsp9Sq=rj#=P+xuNZE*$a4Cc&bImGw!>^Yjcl72HU>P)qO<0LOUI8v7o9uY=+~<) zQr+4YZbPR`%4ro-v$vX|rDF^)%W|CH32(zK*L-$mJ1+knc)1Sd2Mifbn@Tv~st>93 z(cxlkk|?PINyo5PGrTpLQRG}iNoOhG)1$J?woE#}loRaoV6-gJ{PTEO2kSJPozvik zF8@qdiJxKEHiqHP-SD=o9N%=ivQ4`yJi>PuR~l)c%P+oGP}DB54Uuh!Y{##!)BAKv zcRKdm{Kl48I+6^2yYy~avu02!hm=XSD-KPtzd}8?b$NWzEl(E{0H?fIcihlpz{gGA zW4uC6`;p_A7JNR+2*z-1>J7XJLw7#vBfN0K8##nCFryu1Fa{j|239~c@aI-Q20x?= zepUwIkp^WdpU7Z45eZYL0aTN=2D0UmEr^}!n9;t~YH-Wy7y~uRG`9z)OF0s~2ALWx zZ0*oh{92*u);S+;No~;OF>TuB#Cafi^G80VG$pbcTyTiL+^Y1%gz=MOqb{?kZLN#9 zyyL`}G~uuquZw)Tv z?bBoY1U+P~)ALoz^S04rqobFOw|?wZhO}_4_{%G~&ExlsFJJi0c;wk9q#b18vQ*q2Onl&FiPdhe#6Ls36H?Fl=9m!2`+fBE{`1XV19cP{y zQ(6^Atq6SJgMSgvJb79CLW96L`@L7`(;ls3ro<;ccYf?Wt|Jyc^4sX%xFXK}^H0UJ zDLNafOGl1Aa{svb7r%+$-}P9WecEd^;L>>$wKLT^yP__M(m7(2@{|tqfCjpQQof@{ zy6b|3s+uls<7ew-H|D%gyl~xjdbIaY) zK515*^2SpYAKhlCRfLax?62eI-#@5rtxd`|{RXJc45|$Ds-Cd<@x>)C#sS;s#f+Jg z;!9urywXoyQmuG4w5SZI+^Lkr;y*s10oy?Q-31?y{a&-5c3tY!PtDBu%k$5Q3$MH` zmM-5Ovo$zY>5IR3&-;{Tx^P90&L4gB!Ewb8f35Oa9vDzAiYAqnLVW|r^~CtDzm#Ry zb<<+!yrH!}@llfioq0OUatH%PxN$6(u$&gRO^yp3y$r)&lw&$v^MLgh*rO-U(KV^q+Gp@dAVSMs$e;a$$?-Or2?rpK}f#YKCJZ)DT ztBC?#fT4n&R=x+dgn$4!Y)WA&7f0XnLNKgOvxaC%@Xy5UOR#QI|Z$0U#=+idY zf4=J9;y1s#HjX`PQY?LJc|3Ig^YLeY{h@fn$*+wnwKqSw@;~C&*IgUOy=LE7w)v^J z`umr~YmPoI-hK92T18$NKl$lT;y-?PP0ZZqfT-RuKW&#h@7%wS*SvAR*t%&&eDjMx zil1Hct2pxLGvnt!*5pl1izXy4iDnHLAG+u6xcc9J5syCoVoW}IKed57`*FoIFZ#>r zUj8j`UZ_GR<9v61V(-8ahT-I&Kf_=E43pE~H{ATOjl=H+<^wS|{V$F5(%U246*@Jdz+Cl_JhNz|WmicMdGWI@oW1Mceun z;UoFcDL3%2o;loZ!YI7%P@xkrY-so1TL+;vBLs}UJb#P_y>$hK$?=MAaDee)kY%^+ zU8PMT%>E(YaWxNuaXT)!Q#>Reo$(WI#aQlgrGW<%W!#v@1tF;;tSu?vLgS8R!W-g` zoZ<9^Zlv%OxEue>2UNQ)({?2`gc;xA`1wrNt(%V;nsi`Y>A(z~j^$}UrnJ%zlTt>J z(+`veqFhiy=ePVORk?#qC)a6_>toa0Kze^pvzv`d_w?qVR#JF6K)>|LADv;+O%c6X zjY)YVW()w7vxzNwxh`5xuB+X}F#N>T@wFTL{G%?wpKuSZEDt>3#wp4|Myhv1Ws~;Y zw6+_>@EZOr$U{LASU>n^Ow>SdUDpH+ zOxVh(fvGx>(6SQ5tbIuQwrL)ces>{b^Zq(ZW ztt{#4HO-uBdsSbXZUlW}y!Ma-Vv}ws+`P3j9=-FtX6Ot`ZPgyS^ytH)ZCr~cX_RiAx}{OKto_UPzaLlrn>w(i2Xq#tE4tQB)w$6X8tC@N=n1qf z8p&!b&X&%)8r`y{8&A3ML?uQ8$u13ab)msFe7)MXwIcebl$0jhq(@cUHh)1p^u$xT z$!$?oZ(kc717q}dpw6vz_QnRC;X2`@6SQr*Nf&x(FyC4qlbfc;SvnV|c?+GF)RLf5 zwU&qE_c}nAqMQ=<-FAQ6_0%t8Qs2ul=eQ5WDJP#3HCk=!T(?C7Fy*IaKRWx?DotBs z`ab(;vO~9k>PEW;4M=D2t;-im+XdUMk+bTZRweg6a9`=E?X4Qz)#=s+E&|$U1P)(LSH#Cpdte&;MPnX@7iH&u;}mV`<8U(EM$i`I{WkM}E{}ud z<^1e6p8d2T)bRlgmQs6yt=lC#G_kr_lL#f<9;+&?^2$UZS6;Alhl!(V)n{%rWIJD( z$C~A9V*h>TNk`QI(J`G-uXicW(bFtP9`kbCcGu72u3Mgn>wf*?Xt=i{wy2K0|NS42 z)8BT4CTFFC+TkiLkl|151sCLCsx=wZr*l>}{_=*{YwjU&!s(}}uIXmq+U_|2+&_=s zFL)$cRB^BSnabgeIdSrvPmR|0=4h3k??3lFF-t2}ZQ6nIz(aSaJ?)DV-}u&OZqrJ) zPLjRljmO4a_xx+z|HSig_)M+3YY_N{=U#}JubZI@w8m*=_A}Ab*`$^KMJatcbusA+ zFT51{j-DQeA9a|{Bxi>=oIIxU&wY^A=mmQ1%~+tPOkGXXuAaON|t5hczN0wZaf6mt8>Rb z`E*cOGl^PsNgXk8dg-)E_ma|uEmr)9sr01uuGNoCH|M_u1J}IaiMt2`j&WGow=*xT zQ_iP|KT??a6>ZBi|Dx@3SBb6&8_sVT!-bCs*AFe_DZO{3be2c$hh}uufmeY{9SGW< z0i`up&6A&O+N#qvT7B9Q$3PiV(k!pCCK=+$ABOl@zhe3ko^XW^UvTk*=dw+Gu*vDo z6WyJr=7$YE-*EKc5azmy8(#2rn+D9h3B#ZxZePxU4C4?6Kj?vX>3Vfift7AnZdoy; zqr_R(fwT%Ed?ED6O?hUZL_MfcooDrt1g%wPo*VJfn>Omnvz19V=Sxp?Q@f)95A8h% z`Rm#Gm@+|m$N4L*A}@MjNo>#s8^>q{du#W`_{UG57h6{Cr!7Mt)i%C!qhZ^+`0H={ zM|u;iMhD|VgE?l?86>hrY`xB%d{*1-)_1h2Gk9(sw9hyt?&kQ&SAMAYG^h(nH&RCN ztH8v-rvVF2wWPV-wDm|mzZ#zribU%@eFMh?2^t^ zI=k|rkDRSH>h{n;bWzlcSKr1xV{7|>eivCK->mZ|x^XSIlAaYcbyoG@dU@hYzb`uP z)vGOt4VqwB`NXpte65XR-a1Ev&*vngD$Y6Q>^S6rInku^ZuNazVsocfg{yTYrj2XG znYgIaBkQ_}P~2tylP!n?5XSOmBG3gL)&jUrqaGd|{aq$OTcmKrv zo8kvI-Vt}-y)?dm>DlUi_i2@Nle&^z3c@yQR-YMQvtp*-5v`7uv~{emj`z{D>Y;q% z`tMpjm67V4&V6x{X0ujNTxO+GGA^fiJtDwxY|1T$GRy=-B?G;AfY0aOHN)YR_>!?I zNoC>G^Bb?y&8>%+G#Re;bwE!k)amN?Ds8*(*LHiJG9amV z(4HGm(?wFM!~4vf8+*buwM?u1>*I4@xQMy87^TULQjgwT?3tr8itA(lHysj(9DYRH zGyl=J_32yHmaK~7=DaP=cmW6HS3c=PG+iNmLf zKgy0^oF_%w`ET3##SRQ$Zo3^0z1@fd-(?TD!|XP`@yKt}VMA*}82J7S$2Q*_mb=a0 zF!14nvF)(o_yb1=colIBGmlDk9v9?0uDKh!Tpz;BJGadr7$3ZII>OVLF9HzcMh1pd zsMIMI65)I>!4M83Y~Z;m3b1nE5k^OvnN;AW$Hov&V@G4j2b{u#F3_W68ic5tVF*Vj zZ0kcDfSHeR2v0hwB2&BJivbTD!f+eUZg2?W!+^_&$y^MQvAZa4mh!yDuDHZHbt zo%W=cbuvA+Kjhk-^D)f&Vmr>@p*x)l#}m2GU`*pUlm6D#VF_`Be@+{tz{7FN^uR3>|9{1pzG&yXkb^Of!-{_3 z#x+j5ElM3pqRt9{awrACvZRg{g_b*3$RWRp1pE7)jsnw zK79D_8)hoQ@aK3AH{5>XTem!%FpTS${pL#;u$&gypKRFoDZ?OF49m8Dpe>IMewDU< zRqL66er?f8+Y7mALx$^+$r;L`^*~?zJbsSJ!|)r=Hn2*Da6alO^~Z6g&fvx-+j|CY-!cOb4?`BBcek+sDtc1 zI-tHq=e_zhqpY1t<&|EcaKTQEIzu#-T(Xc>!9~SxA}-`;(*zscfD(gdWnF*&I;Bs$ z&Vy*Bu6JYfcW67H)UK)87Au!5iqHS^Z}gVW*f{<*+Jdy<89m=n8}I#_PsTAP9HayM z8)L(Z{Hre=}q~eCo@VK2r*Gq(rtTBFTX3EdHT_)echp&J=bi1uWq00)Z1el z_LS0d^!W2cZF^(`p3Y%y)Ajed0j;lQbWE7j6_4I_RlNC>{bJ0V*66NYAJ1#+-*5h~ zCQdl=0Fpp$zYS^=)tT&Ds_lDf!^xl8H8Ej^-sKxOSii9iF>jweV^rOq(Ya+&+;IE1 z;_0fl$AJgztxEv3y56hvi;Q+_wW6dql1jRmpn9M~9ar5rN8a?j9Ltukh%a6CJMo_x zCmtq!S|-ILZNFTlS^NKW+R++Fwrk~bUHtO)C*oH(FOGlw*hw)*9n6QXyD8rK#@9yQ zG~M<#@Nz6zcz;}e^)2z4&;9RcY#o>0NGesYi#zUrOxw9`j|)EWr8w}AW8%Ph`^M}8 z?v0DTb#<)Wcv7@YYK~?NzE${?!V{$nE1|PG%(Z_)Q!Dy^YwS>Oii-} zv}1L-f-d{-)mBGUNmUco)rtD2)zx0!0MnqhN^b}Z8JF4N{FGhFyz3lzF88S}l&k%Y zI!8D>Dfj-}2Ie|Oz2yuP^}w>>&907QOO|n8AxAu1C*hYH@QMaGtU|k;AUx?SJLw>q z#kK&y>n=RqPJxdBhK_t*-QK1Lu(xg5mSoXCfrdLyD2D01P7T0%q(`rI43xAzwOZ-P zU+mbhD`1 zgXYqPc+;^*#;gh2y8GFGi)YrnAcEy+0t&MS` zr^dE{sWEY{>NxvDf2lKPwK00&ENyS?(Q38?jz1vAYDNA0zximK^??boY{{~C@{u3J zZ8u*Tk3H~YeC49cW7ca9jBoyQR;*jy8!MiDAa4HUH{;67|2gJAvu9lNzxUH~EW;1L zC^zIqG2fkM+}H6aNLBK zU}6Q0VCFfp89UO(4yj372~3|HL;nzxXB@X&LFb4V7rdm9Dk|ZuQ1xq;#0iOx z7{V~9E9gM=4biP z;C5cX7e6v=qbEF#OPJjZEWqGd&Iz4#uTN%_%_ei+BBen%WUgSNdke(}p6>87=_ zqIb(;o%OgmZt%2U(!ISYm?HuK8`)+h`8?O{~4ElMlWnQ_S_zl_g+ z_6zZ@vya!yM%&`*>;FTmJ5%BvZ+(l-oOS9``e>Cw$*F;=9!sC9EA}UjjUWH`;@GzJ z^q4wfY&`$eBXQqd&&H`A*i(hJS2q%Fi*~*LRjtltzupXEVUa<=Z8zT#%b%U96)Rm8 z|MWtgAA3k|i?zi2&O1M5Pi>C|rSXX;o)ka--TiUpzeF5 q2t@v-=cwr)5=ETF>(A;;zf&e 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%0Ah#p!}+TK{m}@okvt2v;!EQqi5`N9;Eb! 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
3F03Hc`f3_2rb;2u;5!b?!4gpB? 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 IAKribAC~yqasU7T diff --git a/e2e/autoscript-apps/src/authn-platform/autoscript.ts b/e2e/autoscript-apps/src/authn-platform/autoscript.ts deleted file mode 100644 index 242e8f221..000000000 --- a/e2e/autoscript-apps/src/authn-platform/autoscript.ts +++ /dev/null @@ -1,113 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'PlatformUsernamePasswordTest'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks for validation only'); - const unCb = step.getCallbackOfType('ValidatedCreateUsernameCallback'); - // In order to pass validation (with existing username in AM), - // the valid-username policy needs to be removed from the IDM managed user object - unCb.setName(un); - unCb.setValidateOnly(true); - - const pwCb = step.getCallbackOfType('ValidatedCreatePasswordCallback'); - pwCb.setPassword(pw); - pwCb.setValidateOnly(true); - - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Set values on auth tree callbacks for submission'); - const unCb = step.getCallbackOfType('ValidatedCreateUsernameCallback'); - unCb.setName(un); - unCb.setValidateOnly(false); - - const pwCb = step.getCallbackOfType('ValidatedCreatePasswordCallback'); - pwCb.setPassword(pw); - pwCb.setValidateOnly(false); - - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - map( - (step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login with platform nodes successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }, - (step) => step, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-platform/index.html b/e2e/autoscript-apps/src/authn-platform/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authn-platform/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-protect-metadata/autoscript.ts b/e2e/autoscript-apps/src/authn-protect-metadata/autoscript.ts deleted file mode 100644 index 50cbe1b7d..000000000 --- a/e2e/autoscript-apps/src/authn-protect-metadata/autoscript.ts +++ /dev/null @@ -1,107 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { PIProtect } from '@forgerock/ping-protect'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const pauseBehaviorData = url.searchParams.get('pauseBehaviorData') || 'true'; - const tree = url.searchParams.get('tree') || 'TEST_MetadataMarketPlace'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - from(forgerock.FRAuth.start()) - .pipe( - mergeMap( - (step) => { - try { - const config = PIProtect.getNodeConfig(step); - - console.log('start protect'); - return PIProtect.start(config); - } catch (err) { - const cb = (step as forgerock.Step).getCallbackOfType( - 'MetadataCallback', - ) as forgerock.MetadataCallback; - PIProtect.setNodeClientError('Error!'); - } - }, - (step) => { - return step; - }, - ), - mergeMap((step) => { - console.log('Submitting ping protect start'); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - - mergeMap(async (step) => { - try { - const data = await PIProtect.getData(); - - PIProtect.setNodeInputValue(step, data); - console.log('Submitting ping protect evaluation'); - return forgerock.FRAuth.next(step); - } catch (err) { - return err; - } - }), - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login with Protect successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - }, 250); -} -autoscript(); - -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-protect-metadata/index.html b/e2e/autoscript-apps/src/authn-protect-metadata/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authn-protect-metadata/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-protect/autoscript.ts b/e2e/autoscript-apps/src/authn-protect/autoscript.ts deleted file mode 100644 index 8dfbfc497..000000000 --- a/e2e/autoscript-apps/src/authn-protect/autoscript.ts +++ /dev/null @@ -1,142 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { PIProtect } from '@forgerock/ping-protect'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const pauseBehaviorData = url.searchParams.get('pauseBehaviorData') || 'true'; - const tree = url.searchParams.get('tree') || 'TEST_LoginPingProtect'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - from(forgerock.FRAuth.start()) - .pipe( - mergeMap( - (step) => { - if (step.getCallbacksOfType('PingOneProtectInitializeCallback')) { - const cb = step.getCallbackOfType('PingOneProtectInitializeCallback'); - const config = cb.getConfig(); - - console.log(JSON.stringify(config)); - - try { - return PIProtect.start(config); - } catch (err) { - cb.setClientError(err.message); - } - } - }, - (step) => { - return step; - }, - ), - mergeMap((step) => { - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - - return forgerock.FRAuth.next(step); - }), - mergeMap( - (step) => { - if (step.getCallbacksOfType('PingOneProtectEvaluationCallback')) { - const cb = step.getCallbackOfType('PingOneProtectEvaluationCallback'); - - try { - // Asynchronous call - return PIProtect.getData(); - } catch (err) { - return err; - } - } - }, - (step, data) => { - return { step, data }; - }, - ), - mergeMap(({ step, data }) => { - const cb = step.getCallbackOfType('PingOneProtectEvaluationCallback'); - let pauseFlag = pauseBehaviorData === 'true' ? true : false; - let shouldPause = false; - - if (pauseFlag) { - shouldPause = cb.getPauseBehavioralData(); - } - - console.log(`getPauseBehavioralData: ${shouldPause}`); - - if (shouldPause) { - PIProtect.pauseBehavioralData(); - } - - if (typeof data === 'string') { - cb.setData(data); - } else { - cb.setClientError(data.message); - } - - return forgerock.FRAuth.next(step); - }), - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login with Protect successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - }, 250); -} -autoscript(); - -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-protect/index.html b/e2e/autoscript-apps/src/authn-protect/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authn-protect/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-recaptcha-enterprise/autoscript.ts b/e2e/autoscript-apps/src/authn-recaptcha-enterprise/autoscript.ts deleted file mode 100644 index 61f8b6e61..000000000 --- a/e2e/autoscript-apps/src/authn-recaptcha-enterprise/autoscript.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const tree = url.searchParams.get('tree') || 'RecaptchaEnterprise'; // the specific tree for the mock api - - console.log('here we are'); - forgerock.Config.set({ - realmPath, - clientId: 'WebAuth', - serverConfig: { - baseUrl: amUrl, - timeout: 5000, - }, - tree, - }); - - return setTimeout(function () { - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Get username password page node'); - const unCb = step.getCallbackOfType(forgerock.CallbackType.NameCallback); - const pwCb = step.getCallbackOfType(forgerock.CallbackType.PasswordCallback); - // In order to pass validation (with existing username in AM), - // the valid-username policy needs to be removed from the IDM managed user object - unCb.setName('demo'); - - pwCb.setPassword('Password'); - //pwCb.setValidateOnly(true); - - console.log('submitting username step', step); - return forgerock.FRAuth.next(step); - }), - mergeMap((step) => { - console.log('we are in recaptcha step', step); - - const recaptchaCb = step.getCallbackOfType( - forgerock.CallbackType.ReCaptchaEnterpriseCallback, - ) as forgerock.ReCaptchaEnterpriseCallback; - - recaptchaCb.setResult('123'); - return forgerock.FRAuth.next(step); - }), - rxDelay(1000), - map( - (step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login with platform nodes successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }, - (step) => step, - ), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test Script Complete

`; - }, - }); - }); -} - -autoscript(); diff --git a/e2e/autoscript-apps/src/authn-recaptcha-enterprise/index.html b/e2e/autoscript-apps/src/authn-recaptcha-enterprise/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authn-recaptcha-enterprise/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-saml/autoscript.ts b/e2e/autoscript-apps/src/authn-saml/autoscript.ts deleted file mode 100644 index d4cab3dc7..000000000 --- a/e2e/autoscript-apps/src/authn-saml/autoscript.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am/'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const tree = url.searchParams.get('tree') || 'SAMLTest'; // the specific tree for the mock api - const responsekey = url.searchParams.get('responsekey') || ''; - const error = url.searchParams.get('error'); - const errorMessage = url.searchParams.get('errorMessage'); - const errorCode = url.searchParams.get('errorCode') ?? false; - - forgerock.Config.set({ - realmPath, - serverConfig: { - baseUrl: amUrl, - timeout: 5000, - }, - tree, - }); - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - if (responsekey || error) { - from(forgerock.FRAuth.resume(window.location.href)) - .pipe( - map((step) => { - console.log('resumed'); - if (error) { - console.log(errorCode); - console.log(errorMessage); - document.body.innerHTML = '

Login Error!

'; - } else if (step.payload.ok) { - console.log('SAML Login successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - } else { - console.log('Configure the SDK'); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('init step'); - const nameCallback = step.getCallbackOfType('NameCallback'); - nameCallback.setName('samltest'); - - return forgerock.FRAuth.next(step); - }), - map((step) => { - if (!(step as any).getCallbackOfType('RedirectCallback')) { - throw new Error('Expected callback of RedirectCallback not received'); - } - console.log('redirecting...'); - forgerock.FRAuth.redirect(step as any); - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Redirection starting ...

`; - }, - }); - } - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-saml/index.html b/e2e/autoscript-apps/src/authn-saml/index.html deleted file mode 100644 index c371c9150..000000000 --- a/e2e/autoscript-apps/src/authn-saml/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-second-factor/autoscript.ts b/e2e/autoscript-apps/src/authn-second-factor/autoscript.ts deleted file mode 100644 index 7f6c2c281..000000000 --- a/e2e/autoscript-apps/src/authn-second-factor/autoscript.ts +++ /dev/null @@ -1,105 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'SecondFactor'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - // Second factor authentication... - rxDelay(delay), - mergeMap((step) => { - console.log('Handle ChoiceCallback'); - const cb = step.getCallbackOfType('ChoiceCallback'); - - console.log(`Set index ${cb.getDefaultChoice()} for "email"`); - - cb.setChoiceIndex(0); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - const otp = window.prompt('What is your OTP?'); - console.log('Set given OTP to password callback'); - step.getCallbackOfType('PasswordCallback').setPassword(otp); - - return forgerock.FRAuth.next(step); - }), - map( - (step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Second Factor login successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }, - (step) => step, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-second-factor/index.html b/e2e/autoscript-apps/src/authn-second-factor/index.html deleted file mode 100644 index e642e9e3b..000000000 --- a/e2e/autoscript-apps/src/authn-second-factor/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-social-login-am/AMSocialLogin.png b/e2e/autoscript-apps/src/authn-social-login-am/AMSocialLogin.png deleted file mode 100644 index c9b3d7d39016ff8cb6b99c433480980ed5dc24df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212310 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

v7ggnrClO8 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±&1AGyt#AdzTJM8(h|lv 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 { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Social Login successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - } else { - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - serverConfig: { - baseUrl: amUrl, - timeout: 5000, - }, - tree, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set provider on SelectIdPCallback'); - (step as any).getCallbackOfType('ChoiceCallback' as any).setChoiceValue(provider); - return forgerock.FRAuth.next(step as any); - }), - rxDelay(delay), - map((step) => { - if (!(step as any).getCallbackOfType('RedirectCallback')) { - throw new Error('Expected callback of RedirectCallback not received'); - } - - // The returnParams are needed for just this test automation - const returnParams = { - amUrl, - provider, - realmPath, - tree, - }; - window.localStorage.setItem('returnParams', JSON.stringify(returnParams)); - - console.log('Redirect to ID Provider'); - forgerock.FRAuth.redirect(step as any); - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Redirection starting ...

`; - }, - }); - } - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-social-login-am/index.html b/e2e/autoscript-apps/src/authn-social-login-am/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authn-social-login-am/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-social-login-idm/IDMSocialLogin.png b/e2e/autoscript-apps/src/authn-social-login-idm/IDMSocialLogin.png deleted file mode 100644 index c812249fdde654b315cc3d2a308d6391cecd659e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232434 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
#y`)w&H~!ue;*-{P1!W&&yVsdi3q}(_4?n3AamW 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 z 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�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 diff --git a/e2e/autoscript-apps/src/authn-social-login-idm/autoscript.ts b/e2e/autoscript-apps/src/authn-social-login-idm/autoscript.ts deleted file mode 100644 index 7ac2b5bd9..000000000 --- a/e2e/autoscript-apps/src/authn-social-login-idm/autoscript.ts +++ /dev/null @@ -1,129 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-social-login-am - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am/'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const tree = url.searchParams.get('tree') || 'IDMSocialLogin'; - const provider = url.searchParams.get('provider') || 'google'; - const code = url.searchParams.get('code'); - const state = url.searchParams.get('state'); - const form_post_entry = url.searchParams.get('form_post_entry'); - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - if ((code && state) || form_post_entry) { - // Below three lines are needed for automation only - const returnParamsString = window.localStorage.getItem('returnParams'); - window.localStorage.removeItem('returnParams'); - const { amUrl, realmPath, tree } = JSON.parse(returnParamsString as any); - - forgerock.Config.set({ - realmPath, - serverConfig: { - baseUrl: amUrl, - timeout: 5000, - }, - tree, - }); - - console.log('Returning from provider'); - - from(forgerock.FRAuth.resume(window.location.href)) - .pipe( - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Social Login successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - } else { - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - serverConfig: { - baseUrl: amUrl, - timeout: 5000, - }, - tree, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set provider on SelectIdPCallback'); - // TODO: setup callback handler for UI config properties - (step as any).getCallbackOfType('SelectIdPCallback').setProvider(provider); - return forgerock.FRAuth.next(step as any); - }), - rxDelay(delay), - map((step) => { - if (!(step as any).getCallbackOfType('RedirectCallback')) { - throw new Error('Expected callback of RedirectCallback not received'); - } - - // The returnParams are needed for just this test automation - const returnParams = { - amUrl, - provider, - realmPath, - tree, - }; - window.localStorage.setItem('returnParams', JSON.stringify(returnParams)); - - console.log('Redirect to ID Provider'); - forgerock.FRAuth.redirect(step as any); - }), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Redirection starting ...

`; - }, - }); - } - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-social-login-idm/index.html b/e2e/autoscript-apps/src/authn-social-login-idm/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authn-social-login-idm/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-webauthn-device-registration/autoscript.ts b/e2e/autoscript-apps/src/authn-webauthn-device-registration/autoscript.ts deleted file mode 100644 index 63d513982..000000000 --- a/e2e/autoscript-apps/src/authn-webauthn-device-registration/autoscript.ts +++ /dev/null @@ -1,113 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { fromEvent } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'PasswordlessWebAuthn'; - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - /*** - * Test Device Registration (Not Automated) - * must create cert because you cannot have a TLS error with webauthn to test manually - */ - /*** - * Test Device Registration (Not Automated) - * must create cert because you cannot have a TLS error with webauthn to test manually - */ - console.log('Click the device registration button!'); - const deviceRegistration = document.querySelector('.device-registration'); - fromEvent(deviceRegistration, 'click') - .pipe( - mergeMap(() => { - console.log('Initiate first step with `undefined`'); - return forgerock.FRAuth.next(); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Set username on auth tree callback'); - console.log(step); - step.getCallbackOfType('NameCallback').setName(un); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Set password on auth tree callback'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - mergeMap(async (step) => { - const webAuthnStep = forgerock.FRWebAuthn.getWebAuthnStepType(step); - if (webAuthnStep === 2) { - console.log('WebAuthn step is registration'); - } else { - throw new Error('WebAuthn step is incorrectly identified'); - } - console.log('Handle WebAuthn Registration'); - try { - step = await forgerock.FRWebAuthn.register<'mydevice'>(step, 'mydevice'); - // ensure the step here has the 'mydevice' name at the end of the value. (outcome) - const deviceValue = step.getCallbacksOfType('HiddenValueCallback')[0].getInputValue(); - if (!deviceValue.includes('mydevice')) { - throw new Error('Device name is not correct'); - } - } catch (err) { - console.log(err); - } - return forgerock.FRAuth.next(step); - }), - map((step) => { - console.log('step', step); - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login successful.'); - document.body.innerHTML = '

Login successful

'; - return step; - } else { - throw new Error('Something went wrong.'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-webauthn-device-registration/index.html b/e2e/autoscript-apps/src/authn-webauthn-device-registration/index.html deleted file mode 100644 index 22ac8fd6b..000000000 --- a/e2e/autoscript-apps/src/authn-webauthn-device-registration/index.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-webauthn/autoscript.ts b/e2e/autoscript-apps/src/authn-webauthn/autoscript.ts deleted file mode 100644 index 6a6a98306..000000000 --- a/e2e/autoscript-apps/src/authn-webauthn/autoscript.ts +++ /dev/null @@ -1,205 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { fromEvent } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'PasswordlessWebAuthn'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - // Needed for testing WebAuthn on Safari due to user event needed - console.log('Click the login button!'); - const loginBtn = document.querySelector('.login-btn'); - fromEvent(loginBtn, 'click') - .pipe( - mergeMap(() => { - console.log('Initiate first step with `undefined`'); - return forgerock.FRAuth.next(); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Set username on auth tree callback'); - step.getCallbackOfType('NameCallback').setName(un); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Set password on auth tree callback'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Choose Passwordless login'); - const cb = step.getCallbackOfType('ChoiceCallback'); - cb.setChoiceIndex(0); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap( - async (step) => { - const webAuthnStep = forgerock.FRWebAuthn.getWebAuthnStepType(step); - if (webAuthnStep === 2) { - console.log('WebAuthn step is registration'); - } else { - throw new Error('WebAuthn step is incorrectly identified'); - } - console.log('Handle WebAuthn Registration'); - try { - step = await forgerock.FRWebAuthn.register(step); - } catch (err) { - console.log(err); - } - return step; - }, - (step) => step, - ), - rxDelay(delay), - mergeMap((step) => { - console.log('Send WebAuthn Credentials'); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Check for Display Recovery Codes step'); - const isDisplayStep = forgerock.FRRecoveryCodes.isDisplayStep(step); - const recoveryCodes = forgerock.FRRecoveryCodes.getCodes(step); - console.log(isDisplayStep ? 'Display recovery codes' : 'Missing recovery codes'); - console.log(recoveryCodes.length === 10 ? 'Parsed all codes' : 'Unable to parse all codes'); - return forgerock.FRAuth.next(step); - }), - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login successful.'); - document.body.innerHTML = '

Login successful

'; - return step; - } else { - throw new Error('Something went wrong.'); - } - }), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful.'); - document.body.innerHTML = - '

Logout successful

' + - ''; - } else { - throw new Error('Logout_Error'); - } - }), - rxDelay(delay), - mergeMap(() => { - // Needed for testing WebAuthn on Safari due to user event needed - console.log('Click the continue button!'); - const continueBtn = document.querySelector('.continue-btn'); - return rxjs.fromEvent(continueBtn, 'click'); - }), - mergeMap(() => { - console.log('Log back in with WebAuthn'); - return forgerock.FRAuth.next(); - }), - rxDelay(delay), - mergeMap((step) => { - step.getCallbackOfType('NameCallback').setName(un); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap( - async (step) => { - const webAuthnStep = forgerock.FRWebAuthn.getWebAuthnStepType(step); - if (webAuthnStep === 1) { - console.log('WebAuthn step is authentication'); - } else { - throw new Error('WebAuthn step is incorrectly identified'); - } - console.log('Handle WebAuthn Authenticate'); - try { - step = await forgerock.FRWebAuthn.authenticate(step); - } catch (err) { - console.log(err); - } - return step; - }, - (step) => { - return step; - }, - ), - rxDelay(delay), - mergeMap((step) => { - console.log('Send WebAuthn Credentials'); - return forgerock.FRAuth.next(step); - }), - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login successful.'); - document.body.innerHTML = '

Login successful

'; - return step; - } else { - throw new Error('Something went wrong.'); - } - }), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful.'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-webauthn/index.html b/e2e/autoscript-apps/src/authn-webauthn/index.html deleted file mode 100644 index adbdc3b2e..000000000 --- a/e2e/autoscript-apps/src/authn-webauthn/index.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authn-wellknown/UsernamePassword.png b/e2e/autoscript-apps/src/authn-wellknown/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY 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 diff --git a/e2e/autoscript-apps/src/authn-wellknown/autoscript.ts b/e2e/autoscript-apps/src/authn-wellknown/autoscript.ts deleted file mode 100644 index d8f8bd3dd..000000000 --- a/e2e/autoscript-apps/src/authn-wellknown/autoscript.ts +++ /dev/null @@ -1,156 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -async function autoscript() { - const delay = 0; - const tokenExpiredDelay = 2000; - - const url = new URL(window.location.href); - const clientId = url.searchParams.get('clientId') || 'WebOAuthClient'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const scope = url.searchParams.get('scope') || 'openid profile me.read'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - const oauthThreshold = url.searchParams.get('oauthThreshold'); - const resourceOrigin = url.searchParams.get('resourceOrigin') || 'http://localhost:9443/resource'; - const igUrl = url.searchParams.get('igUrl'); // only use when testing against IG on different host - const wellKnownUrl = - url.searchParams.get('wellKnownUrl') || - 'http://localhost:9443/am/.well-known/oidc-configuration'; - - console.log('Configure the SDK'); - await forgerock.Config.setAsync({ - clientId, - middleware: [ - (req, action, next) => { - switch (action.type) { - case 'AUTHORIZE': - console.log('Calling authorize endpoint'); - break; - case 'EXCHANGE_TOKEN': - console.log('Calling access token exchange endpoint'); - break; - } - next(); - }, - ], - redirectUri: `${url.origin}/_callback/`, - realmPath, - scope, - tree, - serverConfig: { - wellknown: wellKnownUrl, - }, - oauthThreshold: oauthThreshold, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } - console.log('Auth tree successfully completed'); - console.log('Get OAuth tokens'); - const tokens = forgerock.TokenManager.getTokens(); - return tokens; - }), - rxDelay(delay), - map((tokens) => { - if (tokens.accessToken) { - console.log('OAuth login successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Session_Error'); - } - return tokens; - }), - rxDelay(delay), - mergeMap( - (tokens) => { - console.log('Get user info from OAuth endpoint'); - const user = forgerock.UserManager.getCurrentUser(); - return user; - }, - (tokens, user) => { - console.log(`User's given name: ${user.family_name}`); - return tokens; - }, - ), - rxDelay(delay), - mergeMap( - (tokens) => { - console.log('Force renew OAuth tokens'); - return forgerock.TokenManager.getTokens({ forceRenew: true }); - }, - (oldTokens, newTokens) => { - if (oldTokens.accessToken !== newTokens.accessToken) { - console.log('New OAuth tokens retrieved'); - } else { - throw new Error('Force_Renew_Error'); - } - return newTokens; - }, - ), - rxDelay(delay), - mergeMap(() => { - console.log('Initiate logout'); - return forgerock.FRUser.logout(); - }), - rxDelay(delay), - mergeMap( - (step) => { - return forgerock.TokenStorage.get(); - }, - (step, tokens) => { - if (!tokens) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - return step; - }, - ), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authn-wellknown/index.html b/e2e/autoscript-apps/src/authn-wellknown/index.html deleted file mode 100644 index e7419ea4f..000000000 --- a/e2e/autoscript-apps/src/authn-wellknown/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authz-token/UsernamePassword.png b/e2e/autoscript-apps/src/authz-token/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY z@7!RizKxEJRV|ZK{^MTbhtx?P>ead%&8J*{IK0o5xUYL9Lq3%vTmD~00p|7Xx<`-F z-xnlaa(K~kD=MiiZTA8w+;03o;Rh2rqZ-+(97F*9qvPm<;8O}Eh{Z6;`kOKj@0%1)oE$#4)!`Lp=Y$~I!5 zL#6uaQ98@Pc{$%fZQp9x1zN zXR@zoU1YGh8mldN_%02-q}8G>bJ(f9GJB%=NHjmPXG(U)$i5YGa%kC>)6w|b`IfeO z7b#GqPU!qjV!Y)AlK#)|zbk4p^7#YbB})vUxiXZn{;LsE7|IV{qH#wD^W4O2Un|@| zj>uS~8Xbjm{-M1^64aq#x%J{B=&rB3gJ3bGp@g{%sT>cK4SoHO15KCZII6cWetH&*ShSzp+Tl3mvK z`praQJRTMclvE9@B@Ou1t!=-}=$SV^QKCiXW2FDSXqJBO!5WbR@twW@QJR&bFG!F7 z8t-Jp|Cy=>&jH3&>=ywW4;daqLL;(pHC1)z#Ty%XU)Y^lpaR3rr@~Rx`)r{T;uR`!LIzA=@K9x4LBHa8g&{pX^R;mBW8s&3v38(&y?bcR zhmb^%_vpB{jXHc~Dg&JQRtxC6oDVnREt-W4#gZOPcNYlus7Uo2eyTyfD!gJkMSSJ4 zMG(|gz^xpFgIwsRoOPxbfCpe-vBibx+tQqhwd+!Y!?)Q)LvH`yHU9zs$!{Kd5%oH- zu+@~)!v_uRoW$U+c^|!wX6Ce24ub{D1J%nIgd5@^_yx~S9AZXMUJQNWpB-QR-NLok zuC$O*Ib|W42KUUZS6ci<4wOpW7DSI`*uTQ=w~7g*Q@hZCl4B~~B5|ywsd!|mw?9Fm zT<_WII`3N+KF5bUvKR*QSne8eupHlTeeBP8j>4)>E7S3FPWQ1-yH*G0&$+k$NE}?t zdF(5dDJ6K%$}oyw(m8uH;ipbzSiV$|BRSx{3dPc{6+pTD^3saT`b0(6tN{jVQQNgs zRllI0v2P?4{}idO)omYyF~s(P^jj)V7fMv{`T*0rU#3r*jKS`7=&>&UiQFalZW(Gi zvVc(KEH9u~86z9eBy&B6bjnqAB{*}sK{1f&tZ(6-j&KG@(|jx%7r>#Likz8^noRF_ zQf1`2k?Ks!*Yo=eI{ZN^EVB{k=XRL1V`hkUm6icS005f))hI24MzeOQ>cM|gI<$QE zFP7#FT_$n;-QtBVShDjy0wX|f44@pOGT5+L^l|T^n%ETY$*Fbqg`IPugS{Y5rNL(R ziv#ZR95BgnaL{tIAhX~X-#v;7?x?)zaTp3-_MF?EMh~r)e34tgo+bMx)dnULv!)+3 zMbu_@v;tutY_;aE3k)_))mFw)cD}s67jQ&a%mw;;%Ui9oVNT4BmJq9LcWt3OC)*6y zwnzo9UmqY32VU8htNG^l2iM=Vpyo3hTh5q;Hy*SKFFxR5IPv>*a|U=&4xe9hX^mGt zaSqV7z)1ZleE(4YS^0qbM!T0pgV*c2+f>6(o~92FX2V}m2AZrK_GHjh}PVC%frJ%(%jn5n(w4+{t|Nu^LYY1 zNC_A{c0>^liURs27X(x;!%CMlzF^5x5XLM#XAKO%HVm=|xY_ak1L}6LiV->d??P`> zRu{&U&^+%@Lq%$XQjend^@&tfDm_YN^&)=b-ABYsieSg`PAFeWX>H8KoFRf8yT^~7 z2!iAbWxM}vUmr0^B_O_opU)(RmUybDwGC;&{+tvdBj64*O8!afN{Db1{%zG=`;Hx! zCfOz?QMv>jP0@|LV0;wR6Vgcj_<10~#R48AC4j>7s{x~g8x}jdr3U5^e;rfJBISZO zEuDK&%xmCUk`xW`~qb&ob%-or}7Y;?w z2TqTc9IYuyASmzFXDgo1V^nUm%SIC3FrFfJ4Ner4_j4P+5dRMCkX9|z)Q|PQkWqQu zt~EzDb-779zg8Qcav83TH!P*!c=hwEJ24FXRl#=ev15-wiN9XQX?yyUm$rJ5>=AA4 z8IfPTXueI?O|NbX>)K8FzA)rXlB;=ZM$fR<2Ap7i{tQC|JbB~i2h$b0wkkuwpK+xA zJB2(4p_^?2T>|Nq3?2yXEV;U)hd;h!>z=?#rQ))D0(Nb?I`Ahnv1jiM)0T-=n9w*h zdu)gJ>B;LJ-*KcwJFfM=Gon95COj@_S&m4S<)`rLNCl!%zSJ_4*;?n_S{X}})Pw#T z(qgRKLSdUS6MutT&~L$Xf(yl{g28A;0XZ(+OT<_-~8WTmR>LB ztxh7?#71_WlcZ6-dCinob@B2PRQu1JW3ckw#O0rNIM+&chug3IywmC^E~gjM`wC0l z^;vrjjd;KyRlM|(PBgjdzbS9qfx~#^>75@;n#n*9cc(}04_6h&$5AdNS==Y#dh7=j z$?J0eCY0P~bxq-g4z24HGyV+On$X9T&oY)6D~xx?z`?n+RqMpFk~PB(kLpK4w{Y1X zGZLK&jmsWyt*x~^-Kd+ZaJy3xs$)Q1z#U0yZA|y9W<|9H+*dx0KcBr{Zq3$})MCdO3Zo(z`Y2U|9|( zCGGA2v_3O>U~QoQs0e_n&Y9#rRn}H)+)3*={Of4Es3iBA<99^)hmM|SHUb$B6sj`0 zPM7m$l3()W;Y(i~NP7@Oo;&+T=d%-*f=ViweZ-V#tF8H3IS^Si@j?K^XFp!ZtKlAO zIR<%N3(aKr#MRHmL2$BD`Ly>69eREJq_X6xd6PleHTkFczw3*WsIf^LwtsLt$_3SX ziO|;CxAl*NpihK4ulVvQ7AQJwWne%1Y`?oE9$sOY+A3`4Q`8hMkJ4t_;gfaI$&WOJ zM=m`WH{(i@aef*f06uxzkoEo2uqI%8PY}0}r1@PBLhyksIbuRTV`9Yj5(gAFfqE?< z^l}MTDkx^N_9j+^2(B-zOFgbbH}2aq%4Ie0fcSd_y7iv4%N3_w)GU`ud_0j+gL0TQ^?qkZa*OJAkpIGs@0C}frg&r zGXrj#ucwi%+|$p38ARAXv=+g`05mU~Am@QecoiZ}B1t6^(qh=*QxAi=K+*{Q;cpVj zv}gZ?6XYPyn4u`?G%l{s)YASaA=leo;4eO^$8m}}%H4SQ(GwFmEZ71tv;KC=rA%3a(f1JP1#*)bp9yCQ z;RBe~UF5JKV5NRIR$z*I;~%e?nrm8h@>)in`U_mbn^s^?o_1|i5)u;n?p4m$pjJ1n z*)&wOA-oXXH-Pxqenxcmx5jt?ESP~)Jh-&G_kf~ci3VqL9S82somMT(!0t0@bLwm{ zLoUXpHh2MR@3S&))<|79wfmf>|9(=venanUf{3bB=k4{=y*3h@?kqZ1IO(6Avvp!Ld-A;IXLNzhEn^tQ(BS3#tCyAmFLP@9 z<-HUepBWwK0KsWI$y8IJi|OR=pO(_Lv)1AY&+EGBFI_Z0_O zmyhl!RrCT@7fUsL`FU`b{i&O(L!;Azp!aalNb9-vtz=F8Y#ZGpIZXC1%1d5uG@+4+ z^LcSiO!)2y)KX4iC!1$ys0zT)R4KugTD5(pV0kJ|ffl4FHDt=|m@0A9!BzMvo_qg8 zJk*4T$gd7D$g|1?%v7bU*bs;Q+25g7=xps=v_L|@$WQn%i7e=vgLT^N62S(qP;Z&5|4#BYTlH;1skE#D$NnbzgM`W@$kwZvq zV&XkiU?_^>O#}l@SPt(E*HY;7zwm(NOYd6})j^3(#hzwvsy!oo&+=F~{5)mHRu6puj zmq-5LVw>zbwDskVH?t;L1WEc0X{Z=rkYa5{QR*PewyEN`Aq}ac1-mAz>Nm9^Fng;I z26Na0bItm2dpC&ek+mNbp4BqD)jv5_B}`mM)5{f0WHVDCY5=%#%Aby{aSd(q=v^H! zK+NcP){mkt66gM?f*V@V8--EK>HqgMw(iU1kS#)lf9HF@vMN z%!!an88T=pu??0^&&Rx$UgV(^(4(=yfO8zh;D;?xesw9R97PqRc|8U1!3%%4E*|H@ z7)%-OJ6d3YvzR4BooOloz$Zl%X$LYMeEPj;43#wAQR_t-mcp!uPmD+RbUb`9b!?3# zIVLSDE|~FblXsSmggtmofi)2Xg>^*?M;|x^^{yjg)!S!%BHDXsa@k55w}pSir0Cyx z-+yYxr!z!f*=V}zo-TxueGyMTm@ujDQ!4ejwYNUU6;LmV`H&6%n!Wpih1u)SK*;Yb zYYsRr5(0l_`GIPDGL&g;N*kf}OoRKSiN3`fKK^WnZ97G6rLOM%8Od{85ckyg*Mah4 z`cM~`jfC8_VnB*s;<+e~jnjp|WpyAoY*ixOT2fO8Gjex;_WdT~#+KHvnD?nSm1RU! zPm0~%J=bWgb#0!uOD7hykmd)k*jOJ@(n0MH=pX2J(|xF$a>_4@xBvah1wtpfW_ zTPaTmSwDOd*xa!x5u75?Z~yVtP!3r1n+pk~c`^l#@^Q1QaYC}1L-+=xEz92P`W;6@ zuVW2?{To3bfUQyuYIsG7pK=I?S4Pm5yqM*BcN0q0g>AZRBgr=KAWM_i4KX%u&xZeYFi{F% ztTkAbX3y7L7%tMGAsYX#V)36$tWS);fU(rR4qTY&ovm7*F~QaSGre+_KkT3&H4I|q zr~P=y^f*cf2ssEdAHcHPl}AeeUJKh-)pO}XRL8vR-|mTiOi_s@OpG%Us`&UTZ}o3D z@?C5JqXS}HlecEeWd9j&U;C49(Ae|IwV|9RXE6G621IElGVn-$K} zz66J4;R8E|QNto`cSBVVTQy_!>SvURZ#z4_tbKb6jrS?u6J0Xpe$7t5vZ~l!nR=`G z0v7;mGW< z%5g-bnRwl^?Fpk?U}>Bt$R0mwzvL|}*||7B)^RGhXd`nPb16;aR4t3uJD7Wz+yL}| z`xHrf)(d{jY(eN6!oycS@0(K+yaDJteglIQOGtZP-_aliy>GnV==Bh|I$^&{Xwd|$ zC?QYDi{I430|6dC*5V7&E}DUe+V{n!7oHJDI(Emj!#8K*764TnPjGj~H+%$49!wbt z8@b5S|K#HwxTY3NsAe28nt%{W%JP{g6erHcd z?B3j3Xa=eboLcMZkdDH&W_%I^6fwV64G5QoGCCxbL?j_62OT+KBS(n!+U4q-0Zzt2 zCEbf_bN*Wqx=Auwz^I!0E6S=78`_jy`h%VFB6{|~IE^-&dA(>YS##wU?T2y+Kde`ON~Rw- zNLI9`{OZB81Z4Q#2u(o@?`e$BOClI4LY0BcZNYf+4S@g{Y({Rj-9pflr@f^KVo824 zl)XIYT6LD(J<1dRo~@g9ibpbv9o_q_d20()*jZW6HX2Ik35&4Sd%8)cBR=$z7Mgpa z?}Dkxn#6%y>}m0*; zlPFuwGbew2nh>^;<&4cIDdZpQ9)%Be=hEDL*Y z@420xZgSQOrvdw5X+t3F?E&mZi1+Z$74P!}U}d`{tqj5Or0(&5=s|NH!U#)pGi_V_ zKv8eucC{IKny0fRuy`BNGS(hJ~#QdS})v2Nhn1 zJtquG|i;w)697??~gS9#jQ}YxdK?E6JMO>L3X`oB5BoP+@RHX}STEza8r>@Ea_- z@J|2=#W0(8cwZEBRHj@M(RP9jXn2?o!{NLOZ;|dh*+@Xjb|Sde)sfd0F=dT#8(d>+ zX^GaGb+(qis-fS&r zLs*?!o^JfDvRjV!FjLtDz~L=GW)xl>n1%q&DUNUyI|(r|?hwCI5H^q8D+5U58h+F5__!EWRxI3%$d3 z1Y(}en7G^$_k|tkLG!?w!*H8HXCKI6Y7X(1Rze1|et6Y% z3C{q6?!>jOM(3csj0_Q<#OSx$5j{`dK!dP!ko@}D$kJJ!?GI8azCC64iEAzb7tn#c zTZrfcnz}mZ+a;2E{oI zW4XDkNl<3aJDp=Y+J_fH^5ILbJIc)L!ykJx?zYIdAx6K`UYtbb{0V*P!?=syUF~*= z=YXXAux4!fFMdEdP36d~K2Nm=*#s@~v@TVA)7f9x1H5%(fhg+5g9na4QxiPbs|JE|58EM#9S71 zL&QPik<4A6d_!Nr+$WywmWdN{vNg31#WDu%??qLKyO!bLX z@305gIWDM&j>~{t0|xJe0>HcLZ$fMvGL;sNtp9ot01LpV9KEFo&&0~-V5^=akg?mK z8LJ#&#VeW4R3fhHrXk5{p3_uF1ns(hW#@J7o?bYm}2yYo*ib; z@3#I=0?1>MiD4c`PehR_*riF!R!fS`p_r5_z~!0(i12nb#8c9lWt&imBHaK>Qw3Cp z<7DS{TB0M(OU`{0Lp*e_EVZuN$t~D`7OsK*Z0FYhjiop{0wB}lw86JZgR_n8T>k&Q zDDR7xcuf@kVBr)v-TmQnWb(NEJoo$fOUmN>L%=3bwOBvb>KfJp!qqvM6D6za0};qH z58RClp2xBc{i{%vKz!IBNTx4S9~AX4J>_pwRzR-DjG+QHMAPowvL81;6G*3inZ3CyuR;^^(bF0{)?z9&5HJGpj2}#Sr#R z;f9%iJm31SXY*6I3>tj2JJqWUsySP?5ijtIHB6FI?(;Sb*VL(orUm_mtBWc@_6I+J zC>xmK0fxNdK6gw~EWzzrT7kOvKXKIWIa>jYeZw~Bt?lY%CmF(P38SYB#GeF(_Pe|k z)92l;{-DQOf4Yep!c!l2gF~g3rCWWh_R@>MOL`r)535jczi+e>Y?zFokoZr@Jn>`tNbFEazVpPSveTQo7Hj|D zkk19qV6r@`>+~uzQz68LKWSc>WlmX*w@KfulIq^W%a2icccVqZXlY2DJrWN2({j9_ zX!A@6ampTufKTKUh_AW_6o~KGDy%K_xtbq-n1Pvt#|I<}*^r$ziraCwy;HA3C0hLe7K{n%#htz6*mY6b{YoXPk(4eIT)+2U=-BKVkSHjGS^*fE9Xid&(f3%QNB7 zrl}U$!REf1{xz!C7eY5fi@;a1z%Frrj_4HJj znV7!MuIR1#uBsD7Wi=J4!)X*l?{ewxWzQ_pry@>+l`MOox%!$lB6n%0L@Qvr=P zJIl@@dgM;rvg-N@8=0lh#5sizWv*|u#m|@A2>2qpz!G(1sqV+%jBM)<8-Ysexxj@% z77YE`Y+MDFbe`i{WZB;V?~SS0r6XO(rEP)sv-SYvc-_?9XfFlkTimItuAHObY}^w9 zvMp95*Y)JAn?Ytz!<&G8&AW;nVHPBB`K279ffhFccNb_}C6Gu}_oV-O_<5Jv>acG^ zSU+f`);Lb4f9OGj4rsnhebPmW!aw+Y5Y0g!)MTy$yZ}{R>DuCpQmP42ZXOEzRzpg1 zcVc$G{FGL@5t5XTA+|56&i)<`W;U;~&G5svrKPE{7z$gwEt)%hw=&iw2@zDzF!R721oq&G*PY_ z4;&gT&?=I-X$mGhEmi00=_ZVM)f&zVNYqHTSNwdwW&qW3TvcNWCh&e+S$EUvxm-57 z;ZP?gCYApPw=_EXWoY;{oHS-rz_d>%K8U?-9^3W1H&Vm;z5S26s;9-4p(VMSx|3Df z8~=rgKmPT6STsefYwf1AR7TeeKI1Z4gNy!4p6Z1&F}Ze;9FJ-OHNzcuCK61pgqX+t za(byfu8{$|w(N%?7HM>adrPTdRP%oqOkFH=5kH;(|5yNHp&5oNY&<6G`tHauC(GF@ z)UX?)=?d>16n^C>{#IVYU9*J+mgJSb!<9NIDN9|-+PpF(9GDO{n^*fRE^jvXMEj}Z z`8W#!dBGY63s+%4!tr~L{Wg9mIkW%MRo*v>9tRvd&B~-yMwFW;->o_{v!lK5vKr9U*f60-3fqyljeHKU_v^2 zZ$l`nvPY~F7_LHORaLl1n0TMQr(PCNa&E6pnIc@-ps?+9;c$0qu~^kPJ>Hh|>jNk?J+m5a3S}g2{EeA8N%D^=csC!5x8ax04({ zEnyo#r$m)E4Z{G!ZX9A({!2Ym;atonO*|{`+fYNlEEnnXl=A7wv{q!xdxDi99F!wk zDNf669C6e;)`B_jlJmArik1;NA0^l^Kx&TJDLIOuW+F^AhqD}POoPILEC@>*f)MMK zV2flRVrg8MB5)tWz=@m<5jH4fY*ybIJr0q&f5F{unAuR~&0PY>77FJ4zk~h5Pbue8 z+0(6kRMlm7qHk+dg0L{nsytQR6_n?}W9@m*z{tHo9L7@&eIfW6ht;;iK+fHB<*wM}El)m7g6! z>5p`KDEHa(a~Zi3ir>f1{~0N7!kzi8SGOZC`WkV;GF73V?UB~E=I`559J)_zcJv5p z1~_$w?ncvQL5GrQwpCwE$cuad5$=ex#jP>U)+b6bP7R{oE|?$42d|2Zd2*7m|7B-W z3+xVktY3ZmCnjoPIGcFDCzV&$J%!kMM@b#NvcENRxjw-0mur}qv;)e3hr3|g@F^Pg zk96;v1CahBk+b3e_cz4-cDt5t;qCg^9<_=w98cd*Epv)rM*i3pYl9exJ9WAd;~B1L z3dFpga_*{83sLC`xsGb=kMxbddynq2`L6BP{zxM|orhul#v%38p485X$$ZCO1+q6F- z82F5YNC$DohgkH~nOQCM=`-$v)7W>zZ;yBFhCK|_gTuUc%s%NBgXPxk6=3aS*)7_E z*=`vuyW~GbUnNZMU3@ z#faJggVDrn;u4$`luG=4=B^~c;mT)U$M9;#LX21&c~m@h)Z*Z8(s;DF+4L#pc-Q2O zsY#XXTE@r#GBf&2QxlBctM zd2Z~{pYx83W07abX>${Q?2SC0ep4%mFE7sPuv51!etFw)$o5)AwcUulU7+1YmTtRJ zBD;Tu9e;T4IZ<-?frw*BiP@N%_P190=ImwHzz!okFpze1mFPHYlH?rOHc?o=6Bs~= z*@N0jt2@ zH0;FS{_xcU5FHD5m@z`Yqd+5@GB%Y^U>gQwhHM$-eoyGnvJHL z82(Y#^hzbvJ7Iu%&Ejk2w9>Gx29ihpHU=Yud{#S?s;DjQ^Mxt&JMr%F*~<(m8JRd2 zb4EQL_`DOl9LT!m;_w6{_^aAd&Ct;QwP#uKI}KS%Wl z*Mlo;O~A~=ciV5^;SW_xN%73fb9pEy$AwjU1=q+PTxgP>fTGs-_s@KrUKE1DNUDda z0Pf{v&HjRW8)30MdS9#R=@BKhJ~!KQG#43|<3~uw%2t~-bm#x$=qwzXYX3G468kB_ zRFsgIii$pzNRPo#9z-OjBGRDL2fQ7H z3+KMiIp4Uh&sA$5E@$QE=o%jB8u?9Zq%GW~f%dABs3^@(+?o+MF}Y21oEwoD3y&F? zn&=wRGu7hG=J`CFdUMKqSai9~^!l5cbbeDW<$OzE+1j+bPJ~{&O$pCSgW)Vye&wxZ z%M%%X^&Z$rao#)qX?|{Mte2RLYa3EsnFn2*2NvFsaE`e1kB^4!=}V!nvCgvS-WrB_J4)#MJO z<@#im#A~jU%j&IFV+9Hj*VEIDGSr^^5WCmS0v#MVb!RM}I8?Ftq)^yQm<2PjGN?z& zR!ykZ{N?Otwb6Z3;$B_EuN0QZj{}^$KX~FMoBSV?&LBm>X%vYt(0Ivz%NaJ<_JS)Y zm_2P}Nkdd|H$`z-sj*SjjHrvzE5OS?&9-@t3b(}vS&j96D)x+dFJsx zQ(n|yG00&JPek4tEMs{9Z?1MO6_Z`J78s{#-AHVft9cLeGwC%=vt@ju%;rhb@$yEZ zkTEDDafP&E>1JB}PD`pw+_YMpT6g&TdF8q-Elc7#5+3Id}K3b0W0rMyUo4ZKwgEkiDL2DbzuZ_?F&J2`5HCB5H#v~fz+z(?P`C_&M)^l=H7{ih7RZ0|?G zfCh@@Os(*n<^wYo^3z96`yFk$N2I9f;}DZ|w~HO`%#I28(6e2!gpOs^ERAL8>DfU4 zyvOUc*3rh(AK%9h7%&CPI%SJ9+Gty6u`g-$7xYp|106`(SuTpiV|HDw9I5>7I|O0g zEnl3k)fP=cTDnOgo>NtN`eaU_V>5=q!g5m0*I4Nzr=@;YXr80)Y_3g%pc550KlNm} zdwboW8#aOMs#adPhCeZ=`PT8I24~nr8Ai4KPs`XN@wu6tJ5y6ScV_w381z^ExIq`|B&;tB;uSGQrZSnlFRSdY~hbWE<>S3h1*! z<6iK9Op}-@Wv)4_VVIVhQ?WycY81EF*%h15-8%K1^drO{EEUzX=irfO>_V{A=Wp6a zmAOmZVgdc^mgac7_^Lp^pMhr+QG!yp!_LGPd^*)Cnhp_O^M9M4qeg7&7cnur?Yyca zux&IO{D!U?PpRHuE`NyLsJp7rQV4!=8LjsUEYD=$>`br-!jJP|k8bRIVHQ+RcA;Jioa( zX{Q|Bl_Jv3Q@!eoBa0F|-YMI&BGQS`HSLO4NY3mcQQYDRqyM#jE4`tgymxPHB1Q%E zc6&18zxhk%fAbgBpuR=l^dA5Sb{pmK6wkJTYQ;vzi>li6bIqEs`Ls#Q%m^mYUBV>x zT_PFq3W1&Z1dGf2uE$N@opz+C8LtRh^L6*$2F3%gIh-D=-s@8&6;{j}G}AtPAJCf% zDLMJ~UBlV&0e$pL$$xKn>oWnbB-Vr>?$3un>qY%HKgi7Ytu^yeV+O{sbJO3aRfK#d z>!tgK9&dIe`3p+Xi}Ko_4A5ug19R>GN(OW&?16~;37}ap?RboLzC58YTsgq(i{a_& z9w`xudE&QIa{79?I^{aZcgr`+31RI=3u*=_uN~8eH6D?kMX9g6_RtFJ%~xEB)A!P@ zqbA!K>H~i{W%yNl3+-=CWwlR+kiPb$@+VlHPL7o=0vKEY%tL>-t`%uWt%+0xc^oWp zqX7Y`*WO(_Yc6RwJli;n@M+p&8Ib7*r5%!IaJ;Jfqwc5rdQk!NRUqkP^ti^T%uma2 zlVBOS<#+T6xfgJfb#OAuux8TZM{!@|^mk^a8HEFKPKGokg^Kq!-}=1Yv`4RXK0!@9 zDr#$<^6#~ceT|7o6&r}%9aO%@E1`pcOp-URgQvb~UuUG`@0x)D-yeO3G(CNHr0i|H=}QR; zazVLmTDoQXY))Q2IXRJj@E{sN7?o@Vf99mYDCcMbHSMQty^xf}tQjxH6ntTdeRLR| zp6CKqkNS<+?YvaTavhc6%ui%iMKWSUYP!%re%P2PEFjHpKzaJW{XycW8bZA|1N6}k zyB^3DD1!9=z}1V`%NngWhb?fRdr~zgR6VDk!e{@7;QQtl5*@-m+s3*)RoBN$VW|Mh zQ*U&{k4b^HXWyME2{`RA^=o!6v0TRFVj`0RcYy|)B6>T-adtg*dq z5wMsvU!G?!80A0o6*&-QacSmsBw}YL$`Z6c+3*6t+}oB2Pv-Y2ZWf!~{-l7bX*!9h z-Bs{sNYhk|Yd+$`&UO;cL{xWUqE>FH@WC(>)`+nBD{CV~pCh16BAa#A7|7W;K5T0W zXX9hXI11*IFlDov5jt1g88{vEqk5uTQJ8+eIZ9FFl99y@F!Sm-Qy zY4$OjwuXfNrgtT|{5a}BjWQN5vFv}>=!%y8QK=Ym5Q6xFRp@=Ibmy`BtJS)7U`hxJ z4`qbtm+0_v_su#f^um#~DG*I>3u0aLM5u_70bMa{K#;ABQ4D@@7yKtl9j=;JHK_Ph zPS2zcVzD=2`PsJ7H|wQkF|3qIE}HGCr8-%LJ3+BGEvOArp_;06LrOR)ZI!cwS>mc; zTZk&c{N0o+|IBG$0!e5K?S$RfXuj4=>z)bkN>Sg*iZGqeN;_UtT%6eo^=aH3*a<&7 zrW`Ddo~b;kaS1oXuD9>F&YU18{d$Dl=VT-a+P59kERqui6EGB7uMWzrqXpn~J2Dj- zp8r-THj9_*SukEJzKv@o|<%Q_U7Dr)is;0{s&Exv9;9{e9|6{qcyZcTHqltPZ#fVpUr0 zmck>m`eUwv8}7YM^Yefl8RLh=^LUXomw_FPhWWnBy4ej0*$N-wa5%y=AS#t}xZO#K z_x*Y5HRUUVB_h6*@;aVUu!1&5Sw$%mJZ$yY)9tL>fbJ4XN1$JZIiIBKgZARlQQmt0 zT**{O0+v(lLBAFFh&1k_6q=yEq3?VMR|JRuZWc{$oRPOQ%a(xY<^AI4|Db45yQtk- zPa%~L)jg{i_mAsJ%}E;iQaVe$S?_=uU^`b|fpP<;+@j1VL;)Tr3lcCLwHo)_ik>vm zyH@T*J!09N6FX%-z_i2qrwwPQ{ifkN-I;#ZkCSJUu+Gb~B)T=R6__qyft);BDDw34 zg9vex61?saaNP^w{wS`sOhG0=+u7#B&C0`Qmh_+s*NGYNw8#R7C<(%(x6S#nJAhR{ z>UZgj=`(@CYk_))#f(kI`5|VoVo$54aA2fx4I6{+72f;PQj(#C=Sp#AisC{v09zKz zhhj9{qjTO_jYiNP;kerAr0pVT>90Ap^)Q|PgkV>nvKUI~U6N_}e#6Zr87aM@Rd@RQ z?&4*c((@Mu-8>h6xfCfRnerNXHwPLwBIYACo4EVu7~AV;CL9g3I zBpaJYhV@Ndu{>PYB>Bwj-B*b<3e!~0S3X_hD2c2PKD;dPw|*Y4db)x*wzVO z3GXtN*sXuoxN{K3XeNeA)J@#!^lE#nr|JLYA}}?CM)&gPeXX(xp&4mg!wJ$2|%1V z%wM09T=|bGy$(+v*?WVf7(=T3KhbEXm38k~iW){QSAHdv1KvYslCmb&-N-H(+(F zmXr3e%)*k-lCP2J3|v-V$~_jaCJs3nB+3awUol@?+-o&EX-^_JCy`PjF{K-@G0i=0 z*Ct<=KLJLN-)T}U(K0|)FQty>2p9TpfG_?&|^gUVWy0kfoM1LB<+*`bC276*naa*Jph={ ztY*A-Y{(}1CP1Y|3KGW|)l&hnZ2`Vv`LH<9zN1_%v`b;sLLyc+KZA(f4(xXtCvl1z zyv)W{$ov`{aPh9dOBdf`kr0am&Y^&eLzdJJ{tFwiSYFXGnbMTEdEU6ogmDBo=woF{ zQf)d2i{Tp!+<>LZw!E=<^VXXFQ5InpXfCqb|5y8+d8&A{k6NUvj(fw_OS>lM1ZK_D z!{b#*wS%Y>LOkm3mrpz+a>E(Z+-rR($4Q!kW$3SB`i7!b!&@hqg^=apuHk&Q;YqId z?GnN*@;?%#^$Y+r8UdLLg$HXwNo+jRH}VR$l9F>!rsqCEZ}4PSK;$@hR0a0jnfRC z%!xY-&a11twUj~2aM0A={?5eANyA&HU&rIIDru?1PfHl67 zY8{%VJ3+4mOnW6n!UQ8_@Tiwq`mkX~fq}}-k6#u7TNpfUezFOprcl$^3xjF@usl!2y_y7M)6)Ym(`hEPnr}5 zgac)mv_=bxQY35!;KUcu)j3aga~~p$(6*=E&BXFMN({xPI$(C16Icy)kFkZ+ojo17*%LaS!Mh3A+)9fqlKYlC3cG6jb ze@5?s6H;KB(w%-cwNetj9tZ_{4!p?DVA*W>;BQaM03G*;*GS3RMK9Ctz#eS>ir^4y zzQX^L!imwqzHR-4{A(>7dspM^-0^Rq|0P~?#EW@G=3ls+5`I10+*(~)agtjOW00He z$u26&P6>Ne^C)*SvNx*-K{VpkVXt3(AfxonLNIYeihTLxS&`%K@jN)2l3H?>{g~2^ z{xYzE!~$A2W}joGaEdoezlSn>eS^~xUNJa!C6@Y4T1JttRi}P9Wo34qzL4&Z(d#_> zWbNi)K;IfPopB=Bq;#5(6qy%2CZIyO3p5i{H3`4!99$iYqy|a@hgJPzJNkYG>(zw2<&1E2TUL_jZciP3bvMlC^Wrm(_-O9*_hb z8{cjxqCF1}$x9+npnJTF=h}wYZd7B}*o99dSx}apjE2s^ir^^-W^x+|$n2lm3|?nZ z*}uFWwJdeSyPKUsirSPp_^Y0bk0N{5WqTgQ0`3WPKY*YV<+|PY&7eX>MX72>h zf&7Tyr1H6-yo%E$bsqn%!Huypb1YSHqmuAdb?skZbWPerCIoZt3t`#O--vD2gOMi zf!0L&j?&6KI#;rF(_l^MQceG_e@gLwJP+AmP9*J8=5l48^C5))3STWw0I))`=d90Z zc?~M=Wm}`H?y|BxB%EsGICxF)|?xsu3a&A$|MuoUJ`DVG>rVRtf-&*vzcF@*iR7f z6{Y+#ur#?3+h4O!I;A8&o{Aaio2_*j<-$GRR~v#?86}PsJy5|Zjx~y->k-ONU7smW!JWT97i4-38D82>3Tsx|`% zt-Zd!F>vnJA4lVc?wWt#NI=6?1Inn2wGi`uQ|L2~q=gmrYGAh@ z`G#_kJL+w}=L4YP-Zct_NAc>B`0a-0XX|2KmKTJCTaHSL;;4vu(D%_iIy!-T!-c)z zUg7ns_c&1iHOVm4A7fzms=;~k?oi1SUC1@vR2c%qGwXb40;tl+I=cm|f@{DD;dZf5_J7<_D4O$bxfceK=!FIWps{n{k24k~K`^?y{!*T~7Wkb9}j zbY*M!<*WG+RO@NKfIx5l$&v0W%;WX8#XBc(>o9-hJfJG*|-2DX8q_cWywHNjMc^G$K3Ng|cFZ z#<+%hD*M2Hmg|#56Xb-hTYs8*?0uY^C!C!R-RN}IJTVu>v&V)&fnx*FHN1j{5Iz2r z46Go}*Q6*wGL?sM5lT6Ed;U|%l@|&nXo;oOu1AMyz*`n$nQUdAGj9t=#{qk}KLBJ9 zEV4bVc&6&T@A!>JcVVVDKWUC^3k(tU%oVb~ax`GlY5Gvbck%8Y zCX{cK5 zVQ1o1Sa94C&htg55@MCFVO}(nCj?XZS+ZqhNPT#jgXFL>&yT-fm1x@gGDo98xO#L$ zOm)~OX5$%H__MW7L3x_R^vL6QqPfXk?SK+*2#Sh+c|2wE6mRdI*vAC@crE)#c%~E- zBTx2-|JuK9n9Y0ylXMcI!4ASjs>Klt8x`9bINKx_)NWkb*44#bj)BH7Rw>)8pfN8^ z=q&nD1J^cRxTnBuMWi4AitT@Aik!R24(@?YuN+kXD<|(RI6J+wR~B&nu~Qcjn@Iz0 zZ$gph_YQ&RIop`Fyz_~?S|o+p^Ti^z$|(s^7B#=Ah(mEKla)PrqwUTo8tCZiF4My} zwpyX=UikG|K^;-~DC+|qy!&2P(4Mv9P-wk1fcRCm{D1#54=KX-Hl;Gvj_EK2S>YxrBsn&mfGkQ|VjrD^vA!XU` z5%j@Pe@5!RrFUr7yIsye;Owb8XnZNsm~|VE=(#<|c3OMJb3+vIt)ze)`!R=d*;Zn` z@-IP4rF(5$c8X<*U$H2>Qo#7X^`i>7wX~Q`l;fX~J5%T<4|Q_~3B5aD`oC{#cr0X0 z#B`==T2)XkTOFapIEXWfYI~(oa3SM>r%Ux+K+2rOxj`{abS}p~3_C;FwLRo~*P=;uyaO{#ID~ zy)xd!g_B812rK21pR*j4ks0Za8|p2+K$p*XmPxCD!Y?R_#KH zi_IJAd15#*>LxlS|6CvZrO9W&e=;$c zS(zaW27(JTRX3cyvRRb^SRAyI{;EP;Ug#-Q2U#HA4bRKJjP=Nx2GHU7!c1krhb>BT-{J4Y8!+&GfSaWC&3dYGE>|4$ zjUXw$ewf=);n8n0d7BLiQjS~EU~!<-`R%e=evX3EgT`^R_RTI;bYcWw=TS>j%u&=) zKP~&r55h0IJyH>URx55X-{OPHXb-z%v%#xXvnto>uH+1Q)=dm(sf)~Q@QV_l=#c?; z5zUIWClcc$RaJZMUJJ*};WjH5&QHc9zBV`a8RZsYMf3r-mmewtAMSPeW@wwHTZ>pR zo#jB&W7uJ)Whx#n(E1q9*+t!m>TH(l$DNsBYS#q=xsX3=R8~UFxzzJK4Sv-9*HaUNI#2u}f{%)C zg_?Txv%T&vK%>}x6twwvz8GXIHfUpnICaMt?K0mc=6;d22P!6ixkSHx{8CmqIo0PP zMn+&|{73h5AxG)4f4-j%{qcMad`csmX$JDz551f-`6iZ!UA=t`Y^%kM z{rki-wBAF5rfv^|@~>MXoA&31&-<>Mrry>YZ!}={exey%9~SCeaV#NLqW|}$DJ4RE zWr5R;!f}17AowL3^`vCr=Y}|Hp!~seF1544Wr`fP@^ZxhzCSU2hm$E8^Uqw>8_^Ds zU*s)x?YCgq9EhwYtRxxjKhk9@l0;d}d<)7^r9r#dn){WUY0hNE)Jr~{S19Cho&{sX z$`uZr2=liu7Fm25xpK@Gs3&B<{1}1IwZdS#j-t!`x-srX4Topu$^JzT(MrLZP;e{d?ULQuA)Av*A=+ zwTt_!E4i2%nrsm0kL_tjzGDyWzqZq4ny^{CT`2GK*p6zQtd(b0?0|KgyQ*JrohkCU zG*lJQ64j@rQlLM$H~y{vvCkLc`c%D4YnJlh&jhNG-w49c>XXtd&o~#q%5MGNlhSkW zhnjvnK>dJ_!YNS?ju(b5;0<>{sd7971Dak1}_SwC=E zRk*eqiW+2M=?Myl&^~Q?Rzlui7Ey1OW|(}KbyK^T!1Vr}z0i(~qn5X4VLw6&N^gj^*Faf(BMzI%U=YX8l!n1)k`nyYeSd6k_i;J+_p2qT)YS0eW*Wpy+?b3rN2} z4u*JiuD!X_6o|L``iU!APj(}9X^%zLhB+aPka4r-J7Sb*{SmU^ndEVVv}olj7I4;a zjx}cp{->d4w6chm0RQ#d0ZyPx&dpEzGN1qwlp^N=S?lZpZhJx(z>dfGTGueqZNTPZO*poK@3)7g|f>yq&FTSmh_4D{$&EaSAN==$z4zVAOeh{He6h@{cD`Jkj~f$Y+Ip`pjJt!}{SZ~jOpL`#9p{Pwj1NlrpKS# zvyMh%Q+CW0-&1s5cSM39$K+eE?OHwTE^ZPUdk!H!n>V}RIudj$q7u;0#j>~;)J46? z4ggaBuvh1xq9w>-)@hT_r#^H|y*vGXDv+W+U?Ng4ME4*)Tin zu|%G;oG7EGeCt6Adrdbvdy%-56YbQ8v+X{HMJCsLro0TnvdJvi!!piV9q;?bYUSMB zA7W1d(RZBBL?ikfBrd^o5r!dbm#sf~Hg3yFl>czlHW$^(h6}difwYke&+$BK##=6p zNSug*xa@h8yE$+nuX`Hc$ii$*SGy`YiS2i3zGUho(ycLGo`4NAOVS@Gava zLAU{LD!t43@d*Y~%BkyP8hh^KrmNt|2cbC)Ks2F?D4(xV&PKsTrE~Yk5T2Umt$k2s zLXkf2A&Ld2Kls~h#HOMu2Rz{qB)7!LO5c|v#mFIcX?jE}OQ3k3vy&Bj<;`Ul&D2@u zCE1{>$!TZCO=cmcK9pZxJUeBs%=E7uGt-T}gx^iVv6OsQEuZQ?C(bi!9kB}7>^Wv& z6rqh(svvzlEjlPZXzg4iWguPOuqL8XDtRbnww;4&4M`kD)!+_4Oq(c<35Pg>_F1Y$ zok0~Pj6csiGYh*^i_dy#(oe{~JRjkyD7#5U?1DR9Wj|Z0r8LPN`o`j8RIoTT!z{!s z;Frb3eS%d4>_B(*Kmyxb$OtWsrFSQ|=;yJe>3y7i{jh%`dSM8V(veQxDNHqfw~7eP zO?6(vnv#d7nKy1aLL6(#@=Xu0Pc^4Zd^k)Wn;%x<&Z@L6ill!?9vIBAR9uxw#KN75TC^pfmQqx`CF!k5mI%{u4sPaT7DY)u|J@vj35)z^h-M0Fl|9jWv)5qgO=LH?e zAD7~))TfvgRiAV$?@LKihYXCbxmJ$l>Y~AiHCE-5g*$MBNJv_{(RKSGb)?U z9;@A%HbPGn{0z;bp4Z=+-SLQ|h{aJaR-E)$%eo49_d4qeKj?GkAYQM@wH74?k5$hF zgZCCZa)b5`e9Rd};k!)z;i52pRwnG)673pA#3`-rhz0TF`o-%v5FZGLODXE%6_>C# zm_w44%hN&MF?_7TkZLJjW&e|}qI{FkZI(@LLhsgl8|+aC1hT-a3aw%=AZm9y1VGRA zZt(;N%k#8Y)^1-ODK<~yi3(Sjx}_{&byf&AkPZT94$1C^-J~`UlFN}jOz!HAQs3}_uLGH_A33_ zoz#f3(>~A|Zqgn-5X{YUfF4fqaUQbrxRttHiz^7XMc;j%U_O^ez15rMPY&8CBGzbF zyFIv09r!-7V*x{T*zORUsShz|gS?02SE1lE^Wl76aGU5UBOCdWuXj`jhsE|EWUIh5 zALyV08oH>R4O{LnUoo0*yYx?w-d*L?KQG|&oLILGuF5F+H>1HVvQ~M{J%aG0H=}JK z-6PS7`pzg3@vSnpX-M0wZpAdq#+ey#5OJy7j5fo)eHy5bXaa*JBmKsQDFir5-_g-2b0h_4cE=) zSr5fY#Apm%-^DS>!iA}nS#4@gTXq;vilR3-vtisf)X)0&mEIibDLy|-cV*re3CkGwfd6g>nAM3wZ|wZNTk6utoe?5J)uPu<~1#;nVX}L z?-C3P4=XP5d;8lRLwWP8WP=vqDW%Rzr~xCP9!n#djU2XL7L6B_m|a#jV5VSYbDjws$k>61IGbk|ogwoGuLHf8 zXv~_Rr464SidzCa=!4Hk?9i^GOOX0)>Ej^PkQvo;Tq&#_??sK*L||&{LI-!jW}wwC zf~dYZQZ0zABv`bgAz+`@v#<2tMaqkEU=r?m_kMH#j0r;JJ7!1PyFGBSc|9Qn-3Owt z1T<~hoKQGd7;pWZ<7#K(;NvS0Qjm!M*tgrg2MeZnaw1XfcQc~&fOb@qhx#_vQQl-f zZ1DE|Pd3YhrA2;BVfy$rQ}1_SD)ozy2a~^IErJKXuefYRzDQX?r@5E_N1j+8c3u%W zA$)GAKGnohivqHQdXB8#+1V!hZgS7-y4Kxla^Hh{Ir%x8?dapfr}NEUBu-vEJ3iU! zh%Cy(X{YXmlM`!2RB5y|60ZftcfhDoy7*|Ux6Em8sw`9fl9cbb7^%LwR#iS~CZpsd zCr-=)X<$Z64zqg7(fNfZ(YCR%6>wqDu$&?t!fy_Akn!YPHXQ_xwR_6QGXtWQ0p!2H zSryG3;-(4q!``v_bu}Iphv}~3fHB?__9#oMHMJ4XSC6FnP(vl@+-rh&fVbE=7zXrQ zX+HkjA3Jo`US|NVNh25dbyyFW2QU6}SM9Ft^sS+-{7Op7NY zURrul{9nya-iTeJ)br<5wh^m07#(3*7}3>N6lzb5r!_!ZxS5dWX_q$68pdywCJ+Hhd$Gjl1HxcRx_ zZeQd+_RL^sW6Mu271f3Bz+2Eij+IyNH=pGK+d64e12b8$21n*!oI03$kN18Tsw$+q8^Ol4RbOhF;7&H zG6DF_Jew>ZF-D(+w=tpf6;PxWW%GWHBSEdRH{#NxsHWBgXM>PQ(+?Z8D$)r)SwFfx~ngI^*Lg&KpJEEh(4dVU?LifQ;z|rBs{?>GXtF3``EtroWQZHe_ zAHMTKqO+U+Qm;x1L-Tsc@r=_;=$3GqlZ_5c({Z^{n*UdPGAIgi_QGUnn%ie;Z-eh} zw5*m|yoFm>7j6u%P_A}VKumQT3=p%{!fb3WW7srnKIc5TcoDCZ-sd@*M@w;jx3r_D zbM*Uisgz=r&!CcI-tVA`yMc>yQcEG$o~PoBGs>DzXL3*Ncpu?|{Z4shM8mOMxXLYv zN&xl+eL-04CwF}K02iovH~#fpbGn#`T3n?vo5W~{ndlgM3Ua|r)V^5T0!T{tS$#BO z+q&HKhg+$Z`@M_6xN0h7*$L|X*Lhx6{@2QS)X48v2<^FU%>JfKp4^R(f(zvEliZvx#4N>F)kXJn^=@MU4~g$pez<@jfd(GAdwyxS4Xa%EbG^ zRb89D4~0&#YAkZOl<_|VJyTwIp{cM~z2TFspBC$18b~Fl%a$D-N%%0afRjJS^#C*) zdtx4tt0Clb9U>pS%2bgD&b{n;og;@|m0O$mvMAju4IQ*hwaAz<*u0?g zey}d4%ur zPVA_2iS)#}4@t9`AODs{ZTBQvhCymtvvDQ%Yj*uCGH5%^Tlb9sEXlIv?0d?enl81l zOnL38DFozk-Q{ix6CLcV4<{vVRu9-Q5&LPA-g-pg?YH_i&N745GQ3LkX-xl+L~*(5 zw~=uvGIJsH+pnI~-^g9m_<}hPB&G6jx2{+ZQ!I*9FV0He63`CDnD8hHp3aqpNXf{5 z-wLm=)*>?)c18lC;$<;ZnN-aNo&+z`CrpAuqFG_q;h* zk!kv*(;{WkUr*4r28P!MuF4Q{0iw_^b%xPZ_Cp)4s>Z)~U64yH(CkmtUt zHXZbB_q^~8J!N3?+II>$n9ZK`?%kF&velmotgGiO7B!Jxt2V_^0GR$W)?qf;2essh z>BIwaMH1FL>HlU}3)Fm*rMWf9d~!LO70X@`bE$|~dVRe`?>vg08YbjmbyRKpo28AF z{^K;;Y?pkOv-zkC+qP82br3BLeVBVWNR$s=Pc;7TYv*vbot(h)VdJpZUn@LHISL*tAQr%Cm4EyDOLcOeBgG21uG$uB_itSQyAE`4b zbWA9PhlS~0VPbkyc z#$BIm#oV%j+G6^0i{QKyJ94^@CfLG9Q>?yNeXADMOM;Y-4KYA^&Q1tp*GJImb%II$ z&mcc(H@I(qbl%?Qx(AoA=}e6Ntv(%8k116S8lvH7W4vzRQ=F)YT1ak*pTH+s%tx0% z4R%yF6C6F=y#1)cOf@j0&JWh4)E6Y2+;f}rdpv0%*x!m=Y^a@SFtYQ+hbU+bq$gGr zUbm1q8q@#`cBPfi0A$*svhauFQQ4lGb|kDGU|H3JVE zdjLv9&0M9aJUCivO3f?F!i-zDc*9-fBjCc?^&h;QgqJvcBlj(jPRXmoF_0rRAfe0 z5Y1TAqJ$JPEl)B7SxKFf_qZ+)-RJBiFtJ1tZ2_|J#IS;X1&K42_;AhofEb?BCYn@2 z8Y>m>V*?f*{vLffx@fKLK5Vn!T;3reAREVP%c60p3HNt0J{zlO#$BVfrtPfpyNs`L z+L1nQw1!J`T;02W{4t-u@nUNfgtJU*z?iStr0U5`wInVJbkas1ISkK$UvolFUpDsM zr^Gw1C2DpdMky#GXR4Q+msxz%gVyIMiIQtYt2c9~uPah5i+vp26|xeLi1YTVX1Ma{ zG0Bx^$v%HaLYyWgz4c7?xX zdUQ9wa9lOkyM9lpu^^@6!QNvnx|e)i-=|5Rgf8ne>3`FEzwI{F6vSSy0-CrOuAf8t zmkL|9zBAosUAlw^=2poH`ks=|N~$qSyc3gN)M3Nsh)CTq4y8+6n;e&s=b|Mq(uZY> zwj9y3{o|iL6mu*;n!vGep!#lBVBDV&`HspeUi3v022iwDEh!|7_ZR&7{7oC>K1^e|i1ewo}r} zFtyZ-p(#Nj*+|*pd)hw6iU)&Z%fyK*{TEXir{?(q89c`wiFNB5?HuGwh=3@(6^(N5 zP-OzrWFzDUz29+2(e{qnnipe87p+R9`rm?gtY`rlXS3@`#g7qJf1NDM?si~3rNvv= z03rQ%tT*RLVNV}17y%C$=xo|Ds3I63g(OorX0g0L9lu$ogMQ}zQKl2!8SVo)&KCG# z-FX-i$tb=p+~T&t#)f?`pzckfVEf4X%?>+ZkzNZ%|f&;KzAqp##i)%aw_ddiL>J=r4!X zeg0z|-W_(qn8;~ru=M-pE9=b+N>)cCj@ieC>8N^T6SjXJq9^nEuPfG}NF&)VL*=yz zW#s#vqRYu06D$i=$jajni1-i(zBO=0K%oL>=Vt73`ME~9*K^WBzR?}3l?+y4dPag% z0T}-kjdJNK0d>Y`atWVPL~1SX0l@l+1*I!-Y@p}iQP!^h_x``xsbtdY`EXasT>x-u zKWLs%7y3&jbTRfaL>S9RFpXtiX1)OAX61N>RQVaYC;uZAXhx0$wxlJnsp@iVv~wU5 zocM`R5VUc!5m1`yrN(m-xTqtdI!&&OQ6rWDn@f8jWs-05E?r07b>s=5NYUQUs5KR& zu(8OWn+)j_VTr^NBoiJ!ZLqw@Yq6VM6jVOT2Di)-w>f`!a1+?VaU+Sq{W9PJ`fXa) zB8Y}cNQ;sV~@TOyzC9DXucbGcWJnLoB{NQtM`^_A(-1M7ynIIKK~DXnIbz# z!39M^I5baLgiD*EgVcG!>6iI_E;w_$WrwQp^ChfiD8)jUret>+z`(@8Z4+TLt$ou@ z{RB#3E;3d){{wsSJ;cN_;vp8)-#;K!?-SR;Em!Tn|*|MygRBsy(Zw_P8YSe&8=I|13u5FjkPh-2lxN0?90QF z&f32#Gg_fZQ%i;EF{53}T@jjTu}zuAamfwKObr#y4HO}D9H(5UtTZ*LtekSe%v}@B zl+fI=TvJpK+)zM8knR0C^SsydT<;(6_51Pt_i&c`-1q0+&biO%vF<4fhrj&k-Yd%C znYTVvbEsE?)aQwVrzhhWT}F#WE$nt!{eytE z>e*GVDH`j+0WR<-0uNNiiqwI1>kOT&?BwBlepUTaB!+~ExM)+wPr=CVO^I{SgIe_l z<8Q%F%(;ZNOs+U;uq556GrdADG`}!_3*>Rg#3~f`9T~X$ROpk>`}y3OkW)6iwPP1WURoIZX%fg;yXhXmx6Bh2C z1JfX=nt-A;1|V8v&7WiZ^@2IJL(Ky4BADe&YT{_Z6AxX$AGg*|pqec)0hqlxQ~y#eF*^oT&iI)Fog*9@J_ z{_Y&eCPLxYWDxT+y^3qK9C6}Yo$q@#wyw?eiH=@rHOrMQ%``$Z4xyL^AUyJ|#~i(@ zsP?J$0$dsLLXmKMEyXMYrz$5`RJoCb0S$;Ffit+Ylf8R*%pM3R+6&Y2nzxm08_7(M zM50f&1)a0zC4lku#=~M$nv6l12?vgXkE|ppnf&DTC1+BB!R?+ILEUi{X~X(By@n>X zLtDU$Ei2=LprM5}%St*3EKYJ*lhO&QwPA_878|#KYe2@9>kud4PvW+J< zXT>K%^j56wws}n_9*)!YM_l?v3pkL~61=?>dcRb)kdRS9qZDHkpAu%5%&ZFJR*6mybL3%w*TZ75&t>Eyn$d6MH%iUqL zhm8~>bO_lWY#z+Nsw4YcTpmcOoKOAZNiklrld76M)dq`H?HRHYpA^8x6|cD%HY?XN zs=O`UfJ)4e|MpU+OV062A>x`{cw8LCW&+p_$e#o`yu3x%S1& zp@P)rwQTWI9Ay+J$Bi11PZ*I0R4;Sr3O=ruqRmPk>vfghW0y`Uc&JjfEz{vBR)Z zX1yJTkRkB)1 z8}$xz{GiwQBYKvoFF1bS#-LD5uwJZs;akNS4N_1ok`UpUakYIo$)cXDn8C2*Q)qJZ zLM=-XjB-s#p7BpM0%{kyG?p%jDHf0S3z~Paxx>sTn_HO>sF!Z%ZKFyJ48Tp-Gp*LD zaZj`~>I5tD8!9sfFEF-rR6hhi8dZ28m43j<~nk}ko zUB$z~pGNeW9T_N52LgH{VrqM_O z8H1dP`}`*nhND;Y-uD%u{}?@A)AMHFM1cA8f!md+TBSqSQu}S~tevbZp}F%QI##k$ zeuzJ6ha5P~_Zb4|)-9wqr@f0U%2Hq-j*79Qitllo<&}V(WMdT5E;7eYv0udb@Pwj6 zOTF~Ug#37POd||3W0rr+17udRd9X#2=YFAzYo}H`E*0}td~6L^j(EK2R1Qy)AuA@j zvbIo)BgS#|C2x)mMs&8vIeviUv1w)xBscn$qf}>PI!{>AGrZquoAt@|TexlH!Iile zRy$l}fvUlsEtd}I?RGfrM_hkT77#Z2d5Cbw#ogm)ZQRU^&E1wTnM*l%CACf=ec{>A zNQ>R3+_*kNG%#WR9j(sLboZz3-$fHZlGN- zIjaXR@ME3TGN8{SJxO{1v7vM5)6c3j?Zv^wDcF0XO>=c(Y--SxJnS_$1*jtH^WbI}4-B@ZrM@<_N5?EAi$GjTgl(vzTG z*6WX+k$d}Rkq0mVi!Rn>2`F+1ezWvqE~9;;)#DF)oD!d1&#Ams2?G!1cSVr-m5NGC z$D8MgVYY*k2KAG9Sq1S0ja^x~B<(L#5Z9SW7iZU*jb|PPCE9kCL6r&gyPfCY%)_xS zV1mU{q*(*~TZgy}0aIQDrf5`M^$pXI&2{UbqzOpU^_N=!mHCg9R$bG+RI+->HPHhHbpS}H~bUvz0|B$*4X&v{`oj49**yok_UYtj9UptplAtOR4J5{#t}h7gGTleEegQEX zeo1x06r>4_X;Q+d3`N_qdaQ6$#1k8dOe7rn=Y89y7^%SI6 zQJe!ze}pb+HUge)m=G4-Q+rK&t*`e`Oq(}$`)*vJ;=H8KHCxtI#Mj@63h(1kFkwv= z!9^_zZjs4ANCOF^wf|puYK(36Y)(lmw$dF=NmChxZk^B z(~rWnE~)ApEloF%jFmTbo1t`8@S0@}4~jR{pLkWYRcRSwh!Qz{N(8_04q<8|6@`|> zN%am7^QTS?E>E7tp+Pp?Q)u9QlZK3N$;f?Gp{$RpNF^QRo4~wfSfZ~{0j?yXT=JOD zBM)Wl$JHx&eX=X1_*YKS1777TTu(NI_FnEMyV6>p#DD#wDW_Vf-bYV)#y>qYW90wF zrl|)e7fUgEF=cbLI2QkPc#Zk%A~x8pw704ez3pB zXy$H^$V{7bgiWtx(-+MMP;@WTA9t)Xk3Zom=A|FaANR;PH+|&mB*24_ak4#n zeyXYdin1N`o1;4rPO))EZL#lYPIT^v0}|F7)o0}y6s#02Zljgr!UK`DJfD@(8_FiT z&qvHfn0n!o1!f+@`j9Y@*S^fwsFIAw(U%%I&fg)CLzQ5gxkY}8R51Cm6HNBkw2Y0} z2pTExPu@|lGdr|Rovf|`zvi}Vfs#u%7dsUWmuFGn-?bF;*VYFY&oDG-;uJ<2>x=$F zo@u>X^NI$hLg)R2rY~xsYtNJXd!5QpNze5+?(c#Bm6D$tVA9`SG>0^+zO~g~fTl81 zaxD!#uX!xyLA2@~)lb!|8SB~WR?$T?72MH6g^g}G+t_{W!a(yx9T&@w5G+qb+atX> zMUy>_q6<-jD(SRDJKzgut+k@7He+x(GA|!R)C`M^4LleJ%9r)3J9fQLU69vzd`z;D z-t!dMb2U)78D(Sc)Rb&iH@7`6^v70Zdpk_h@`Os@0Vg-ezG{=7c_u{r%L+eGAh~}_ zU9Wsz`R*lB7MNT~#j!TTMt&R5Q&7oN5$eN&A^H5X;JZo-gv>5KD z7*DRAtUX%AWppmR9>0VA1GDV6m1PDuT3BjIPgTvH1CF4_-r~#pdpA-8K`PT#WeNvf zxs{Wrdyrl9mF`RI_{-^`_mY)v()uX-H)~#*b{q@yDC6$5%))^)*U=72iVzK>Z~o}bd0hPIUcK{s_|PbRvhO~*ru!9daR)M2xE69f_v&2O5_Lc|^A%Hp zxp-63>NmQ$v!WPpajcf+sW=1mMCl!HFlSMKDwvXB?6a|^?orl?%q<)BUa|axd!WP!3U<3sskYRC6lBqWs*iU{$>W+3B2OgQRsmyzn~} zvATUxo|9!uP0a;b^|#`ZzUUS02;zegik}je&Gha!QYX?8>B*rMddFustc3=xHCH@N zPOBT+EE>ypN%pG#2nJZb3Vy?`Jh=yCGOF@QC>b{)L-Te8DBQu`LLA9UDx5?+J%98Ahiq_u07;XgXc_Q>wQ>S{Xr zVDg1DBO@nr-z+(mIzUEdLIT>iby$2ln|Q(N(1^>x9ks!sBk1O<{WWvbo)(-+I5j@fN0#5#y{C=Em5taUZbU+MGNQ zP=v<{Q!PkiLLE7~jdyotAEEW^z^)yM*AA~}%3@pf?qHF=QIXoict81KIZyE|zWi0i7rmLOrXooj zU?Gy5`}%5@|C$s!&l--fVU!uzK%<#7!9JHUe2RifdG}!b7D;hTGXDJG$=Ru`Bl^|V z&dvG6@Ly{RtJd904v*D`c5Ch({oIWC<}zN;{#Q!B5OeVHp0;xi!cOygwEGKfv z`Qr}a?%z#D2$IThw8bgQkm#;2K`R$fZb13O_g68J{gsn2Mn@X`9i6Amf}SJ?x(~32 z9u>a{6*4m+#Qn;0h8ZcVKyX3vgdz6H8YWjV(nhc1KsM}h%UM49fCb(XQFz7ZPW5JG z(c82}>)+#|^jG+8*8W`w{WS#B;43`Gb zc818a$>&TYjC6=TV5g?5A8+Ml+TGbJ+#1YshkkQ!%{zm7IKXOZ=FP?|QOrnO)Z$y-F@%2R7kj}sm9xi! z;g?`!=GC-=&Tqute1Y(XsIh@Kg;qinPbFyG-IVH5C%ti+jxBLW`c*c#{Px~pZNI1! zmxgGR91D5itEeFpW9!ML+SFMa>8$}r#0Ls_gpNv27is>jTHxcxwI}PJ zB7RMI^P`aEh56}xiQrtn>l=`dqE|=W!%PBimc$p0+QZ^$=JJ=Z2`WvQbNP#NN&&vc2K(l_>DXMp~5XO+9p3n}+@p1*KBPgd7s@$-sIgTa4)mj2z``CY`h zikIvF1=z)Vvs-LYDI>9H2w5f=4 zO@0SX0pnW9BhaJ^mVntcI+8QHyZGe(-7y>gpeX&QIP($(B~9P7@7XWpiPx-X?je6c zP-pKZaFSox;#g|lZNKo*LlB>;Y88^Yz~B%(QZkSEbrlF{CFRtxLckfmFDOp-Ay2Ms z095-ARXw-Y6zU`#QV)+6_?H_ok-U{NbVv{@@ZwtsrEeh}I#MikPWo5T$zKy8Z?J*Q zM!6wN?Ez2xosqpxqnaRd;=@Vys?KR)+LMoP-Hqy3ZuFIkZeX}Gv?_1@7F4Y14fzl# zI=1R>hZyihsrkl18!8UoaB^;CnbjyZX)8t{`LX9j2X0mEi*;fOm(;iT3MfX@b<*kN z+T#x7cq{{j$tAy<>7H*Iu%I(3_oIT4-}Zd6)Y+{7TeUQw4MDinAMy1?IY7_OWg%GQFFM0C_7ap%?#QFH&5mZocE-i{Y$V`MPLt0{$LzVYl|Q0U z>ntVM3KpkWUxg%BG41S-Fv|S3rDLji^dsrebV7*#hh0&EFQB9-pg;ll%}#uI-ycUq zTLcBF>}0=~tN~Vi!n_27`Y7UJOy*w8tCn4(i(;G-Ib-zqEnuu8eVI zo_oDZ!|OzzgOt^m7BQAZ&s5Z9Z)mLr<~O1+_Z}R75oWZf#C;9kPvnnanUetilcBO?wZ{ zJlpyiVf<1uLK>Z^%!r7sYVn`qlzPk^B2nGQo-BcCQHbjcYkA7&E%s@4tZC?e@!&$9 zj=b$YMD0?Hon6UY_^(rHEu&N~q`GjJ42Q5k<{x>4Iix`)6Ny?Z(x2peMbk|0MesQV zULCgFK3ADhWm}OuN0U6&_KDeXj_UvQ>QN6+IkysG8lt~-DX)m$VS$$WtJ*0oIdifx zK`*U8LE5cO^PEtNJl6+3IyNJ>B7bj@Ca0~&T8}U5&T|O0Sv-ed&LSsn?==rOV=Bpi zNLfRA4QoUyx|}3H+}nomWitQx3ZV*-hH6$eS5l zD}qt3IlWrUdiF!=c=YFoaMz(Fvp!_IYCDwjRy9;cuDMh^uPG zY*4WmLhk8W9qi+PkdplL&i-ZTa3NM~CE6vGXG-?wS{c7JtmqkQy>j8slk)`4)UhtR znNeqJsBwAI$dFN5OEcfWv?|{nMBw{4)~MeZ?zeg0$<$7%j|dU`N48pswZk>Nlq-O7^T}`4 zNA5G;^pP>QX&9#0pqFc%5(he|Tc@U*Nm7T-&TTJW+L=@U#4#n=5H0Y5 zv0>PYt}+dnmkY5UrgqvlvAX*J+BqMoeO z_D!#f=*1NHO7Bk^UMOe`Z;?lDq}3I-!{nEH(MMsee|;fr*cs^5dqZcX`zuTyy9szj z2-Y%x!EY8=-K@{}jP$z1gMD)ObDKgpX~uhUd&P=v9X$9>(=B1r!K~TS&Tjz94BTWxRRn(mU1Qs5g6 zs6(yq%)|seL<@?6YM#x%gVrx8oWJ`CDt&cQE9aO;%zDQUvOS-DnUx6^aCcmaL(mhq zh4Hl&z2f*+@cZrVQd(X6Z97vws_JA&-@4v<(#8?5!tRkQ$VhYo{fJcWlAq&t-(wp# z=fBW=wDy;Ooowq*8Pg0~&1tkC=g77njapFqkQa$W!ZOI($$GL1=G@pDGx-yt-p?F8 z6#G>XrJwwAtRdOJrdte;o@ww*Yu~0tngCT6k7<|dD+|}=7xrBZeBZm3cA6GB?A?oH zW#Fr@lF1<~n`;4;_dKCbjs~^%%%K<~q#NjSeVZ+_9z+7R%)QQjhJ^7k$>1;Gp(LZY z3_LkRBVuE1Et!PQ{Wf{Fxeol3ZID`LRN1K8!`ZJMREdq| z8)>DP8@Zi5UGixV4Lf~6-za0k8{`>fZG9u_ z6%jxjZf2|Jo!Q1xAYaM%HI4VNf9ZrDP%p^EjX}YnUWCFZiOS84R|tpCwp?A zd&-bj>NI`%W#`o~ykRFodfNAy%D(YQW&g`UjFvui%||j-9W6DSWV2 z{rzZp0!;c(TTAfi=H|iMl)u}hN%n7W$YnTkvJsAubWo9Q+ovebA;@=5Xbg%1h3x_+ zucOM82y(^&66GNNkV)sX7XBneJf{(_lhggWW=x0ZZJ`+;+&>7$8H-TMmNl_iu+=0A zUi~Rk&79B>4L8i*o;gj41tt(ntU-hlFYHofAs)qs(0|Ic;e1A-k;X!?0mAnd3z6y57oG+mE$ zwE2hn@3!U1#Vmu$qLj~XNli5=-uOhsA}g}Q2TL{dxkq5C=v_9d@7wKS{lA&a%7%JH>B`q5iw;>v^eMmiF90hPX9DmP5 zVAK7AM1}Ub<-7-e?evY#k0oY8?0DZt8Y2Y*Oi+ZFTc$G8mn4MJx(j_SBm>nw`ts|2 zlnIVdbBma!zRIi zJ#%{ju~E+$3GFUckbJ9Gl>i*_D7)u|29~@E%&Qxhx(Q1L)K8M1K1?UE?vpaI`P%B2Q_uOyxzY zfMAvNw+6Txe?viC9(wY-)Ll~7um_Fm|RbHk6Ma8Aeg~ba2ugl>BWEBB;of;PD#(OaU|Hx#U5$g6)`m87}YyISG zeEe~Mi2+%;4FP*YOW%tn_*2d4#`5U&6P9N!wz6~2L}Q*tZP;i$woQrW1+LLL;zw!fY!nbf!rfX5XW4=e^GMI zW&fL#ZLjB+F?*~C);7e?3cop2CtqnofZ{AE_gz5Idy#}6;gA=7=k`H3oVXms-E`1R z)nLdRB#cb_u+Ro92)Pn*A{*hI4l0b&dbbI^;lD81HbNJ`Run3Oj7<0$m9PzK)$<=GQuI^@|f}-=4);d+cI69rg$J(g^G9RKhqi5zacpcN?X?u?fWLvb7Q+_`|GWdgB3arO7jidPr^PmPvHryT*6rRObmhX1fxkTzb_B;NTVf$3 z&ymx4j(Yf19;~kp292Qt*z2pB6By{jX diff --git a/e2e/autoscript-apps/src/authz-token/autoscript.ts b/e2e/autoscript-apps/src/authz-token/autoscript.ts deleted file mode 100644 index e9e0ca0c7..000000000 --- a/e2e/autoscript-apps/src/authz-token/autoscript.ts +++ /dev/null @@ -1,170 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - const tokenExpiredDelay = 2000; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const clientId = url.searchParams.get('clientId') || 'WebOAuthClient'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const scope = url.searchParams.get('scope') || 'openid profile me.read'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - const oauthThreshold = url.searchParams.get('oauthThreshold'); - const resourceOrigin = url.searchParams.get('resourceOrigin') || 'http://localhost:9443/resource'; - const igUrl = url.searchParams.get('igUrl'); // only use when testing against IG on different host - - console.log('Configure the SDK'); - forgerock.Config.set({ - clientId, - middleware: [ - (req, action, next) => { - switch (action.type) { - case 'AUTHORIZE': - console.log('Calling authorize endpoint'); - break; - case 'EXCHANGE_TOKEN': - console.log('Calling access token exchange endpoint'); - break; - } - next(); - }, - ], - redirectUri: `${url.origin}/_callback/`, - realmPath, - scope, - tree, - serverConfig: { - baseUrl: amUrl, - }, - oauthThreshold: oauthThreshold, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } - console.log('Auth tree successfully completed'); - console.log('Get OAuth tokens'); - const tokens = forgerock.TokenManager.getTokens(); - return tokens; - }), - rxDelay(delay), - map((tokens) => { - if (tokens.accessToken) { - console.log('OAuth login successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Session_Error'); - } - return tokens; - }), - rxDelay(tokenExpiredDelay), - mergeMap( - (tokens) => { - console.log('Proactively refresh tokens if expiring soon'); - return forgerock.TokenManager.getTokens(); - }, - (oldTokens, newTokens) => { - console.log('tokens', oldTokens.accessToken, newTokens.accessToken); - if (oldTokens.accessToken === newTokens.accessToken) { - console.log('OAuth tokens not expiring soon; not refreshed'); - } else { - console.log('OAuth tokens expiring soon; proactively refreshed'); - } - return newTokens; - }, - ), - rxDelay(delay), - mergeMap( - (tokens) => { - console.log('Retrieve a resource'); - return forgerock.HttpClient.request({ - url: `${igUrl ? igUrl : resourceOrigin + '/reflect-authz-header'}`, - init: { - method: 'GET', - credentials: 'include', - }, - }); - }, - async (storedTokens, response) => { - const authorizationHeaderValue = await response.json(); - console.log( - 'authorizationHeaderValue', - authorizationHeaderValue.message, - storedTokens.accessToken, - ); - if (authorizationHeaderValue.message.includes(storedTokens.accessToken)) { - console.log('OAuth tokens not expiring soon; not refreshed by HttpClient call'); - } else { - console.log('OAuth tokens expiring soon; proactively refreshed by HttpClient call'); - } - return storedTokens; - }, - ), - rxDelay(delay), - mergeMap(() => { - console.log('Initiate logout'); - return forgerock.FRUser.logout(); - }), - rxDelay(delay), - mergeMap( - (step) => { - return forgerock.TokenStorage.get(); - }, - (step, tokens) => { - if (!tokens) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - return step; - }, - ), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authz-token/index.html b/e2e/autoscript-apps/src/authz-token/index.html deleted file mode 100644 index c371c9150..000000000 --- a/e2e/autoscript-apps/src/authz-token/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authz-tree-basic-json/UsernamePassword.png b/e2e/autoscript-apps/src/authz-tree-basic-json/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY z@7!RizKxEJRV|ZK{^MTbhtx?P>ead%&8J*{IK0o5xUYL9Lq3%vTmD~00p|7Xx<`-F z-xnlaa(K~kD=MiiZTA8w+;03o;Rh2rqZ-+(97F*9qvPm<;8O}Eh{Z6;`kOKj@0%1)oE$#4)!`Lp=Y$~I!5 zL#6uaQ98@Pc{$%fZQp9x1zN zXR@zoU1YGh8mldN_%02-q}8G>bJ(f9GJB%=NHjmPXG(U)$i5YGa%kC>)6w|b`IfeO z7b#GqPU!qjV!Y)AlK#)|zbk4p^7#YbB})vUxiXZn{;LsE7|IV{qH#wD^W4O2Un|@| zj>uS~8Xbjm{-M1^64aq#x%J{B=&rB3gJ3bGp@g{%sT>cK4SoHO15KCZII6cWetH&*ShSzp+Tl3mvK z`praQJRTMclvE9@B@Ou1t!=-}=$SV^QKCiXW2FDSXqJBO!5WbR@twW@QJR&bFG!F7 z8t-Jp|Cy=>&jH3&>=ywW4;daqLL;(pHC1)z#Ty%XU)Y^lpaR3rr@~Rx`)r{T;uR`!LIzA=@K9x4LBHa8g&{pX^R;mBW8s&3v38(&y?bcR zhmb^%_vpB{jXHc~Dg&JQRtxC6oDVnREt-W4#gZOPcNYlus7Uo2eyTyfD!gJkMSSJ4 zMG(|gz^xpFgIwsRoOPxbfCpe-vBibx+tQqhwd+!Y!?)Q)LvH`yHU9zs$!{Kd5%oH- zu+@~)!v_uRoW$U+c^|!wX6Ce24ub{D1J%nIgd5@^_yx~S9AZXMUJQNWpB-QR-NLok zuC$O*Ib|W42KUUZS6ci<4wOpW7DSI`*uTQ=w~7g*Q@hZCl4B~~B5|ywsd!|mw?9Fm zT<_WII`3N+KF5bUvKR*QSne8eupHlTeeBP8j>4)>E7S3FPWQ1-yH*G0&$+k$NE}?t zdF(5dDJ6K%$}oyw(m8uH;ipbzSiV$|BRSx{3dPc{6+pTD^3saT`b0(6tN{jVQQNgs zRllI0v2P?4{}idO)omYyF~s(P^jj)V7fMv{`T*0rU#3r*jKS`7=&>&UiQFalZW(Gi zvVc(KEH9u~86z9eBy&B6bjnqAB{*}sK{1f&tZ(6-j&KG@(|jx%7r>#Likz8^noRF_ zQf1`2k?Ks!*Yo=eI{ZN^EVB{k=XRL1V`hkUm6icS005f))hI24MzeOQ>cM|gI<$QE zFP7#FT_$n;-QtBVShDjy0wX|f44@pOGT5+L^l|T^n%ETY$*Fbqg`IPugS{Y5rNL(R ziv#ZR95BgnaL{tIAhX~X-#v;7?x?)zaTp3-_MF?EMh~r)e34tgo+bMx)dnULv!)+3 zMbu_@v;tutY_;aE3k)_))mFw)cD}s67jQ&a%mw;;%Ui9oVNT4BmJq9LcWt3OC)*6y zwnzo9UmqY32VU8htNG^l2iM=Vpyo3hTh5q;Hy*SKFFxR5IPv>*a|U=&4xe9hX^mGt zaSqV7z)1ZleE(4YS^0qbM!T0pgV*c2+f>6(o~92FX2V}m2AZrK_GHjh}PVC%frJ%(%jn5n(w4+{t|Nu^LYY1 zNC_A{c0>^liURs27X(x;!%CMlzF^5x5XLM#XAKO%HVm=|xY_ak1L}6LiV->d??P`> zRu{&U&^+%@Lq%$XQjend^@&tfDm_YN^&)=b-ABYsieSg`PAFeWX>H8KoFRf8yT^~7 z2!iAbWxM}vUmr0^B_O_opU)(RmUybDwGC;&{+tvdBj64*O8!afN{Db1{%zG=`;Hx! zCfOz?QMv>jP0@|LV0;wR6Vgcj_<10~#R48AC4j>7s{x~g8x}jdr3U5^e;rfJBISZO zEuDK&%xmCUk`xW`~qb&ob%-or}7Y;?w z2TqTc9IYuyASmzFXDgo1V^nUm%SIC3FrFfJ4Ner4_j4P+5dRMCkX9|z)Q|PQkWqQu zt~EzDb-779zg8Qcav83TH!P*!c=hwEJ24FXRl#=ev15-wiN9XQX?yyUm$rJ5>=AA4 z8IfPTXueI?O|NbX>)K8FzA)rXlB;=ZM$fR<2Ap7i{tQC|JbB~i2h$b0wkkuwpK+xA zJB2(4p_^?2T>|Nq3?2yXEV;U)hd;h!>z=?#rQ))D0(Nb?I`Ahnv1jiM)0T-=n9w*h zdu)gJ>B;LJ-*KcwJFfM=Gon95COj@_S&m4S<)`rLNCl!%zSJ_4*;?n_S{X}})Pw#T z(qgRKLSdUS6MutT&~L$Xf(yl{g28A;0XZ(+OT<_-~8WTmR>LB ztxh7?#71_WlcZ6-dCinob@B2PRQu1JW3ckw#O0rNIM+&chug3IywmC^E~gjM`wC0l z^;vrjjd;KyRlM|(PBgjdzbS9qfx~#^>75@;n#n*9cc(}04_6h&$5AdNS==Y#dh7=j z$?J0eCY0P~bxq-g4z24HGyV+On$X9T&oY)6D~xx?z`?n+RqMpFk~PB(kLpK4w{Y1X zGZLK&jmsWyt*x~^-Kd+ZaJy3xs$)Q1z#U0yZA|y9W<|9H+*dx0KcBr{Zq3$})MCdO3Zo(z`Y2U|9|( zCGGA2v_3O>U~QoQs0e_n&Y9#rRn}H)+)3*={Of4Es3iBA<99^)hmM|SHUb$B6sj`0 zPM7m$l3()W;Y(i~NP7@Oo;&+T=d%-*f=ViweZ-V#tF8H3IS^Si@j?K^XFp!ZtKlAO zIR<%N3(aKr#MRHmL2$BD`Ly>69eREJq_X6xd6PleHTkFczw3*WsIf^LwtsLt$_3SX ziO|;CxAl*NpihK4ulVvQ7AQJwWne%1Y`?oE9$sOY+A3`4Q`8hMkJ4t_;gfaI$&WOJ zM=m`WH{(i@aef*f06uxzkoEo2uqI%8PY}0}r1@PBLhyksIbuRTV`9Yj5(gAFfqE?< z^l}MTDkx^N_9j+^2(B-zOFgbbH}2aq%4Ie0fcSd_y7iv4%N3_w)GU`ud_0j+gL0TQ^?qkZa*OJAkpIGs@0C}frg&r zGXrj#ucwi%+|$p38ARAXv=+g`05mU~Am@QecoiZ}B1t6^(qh=*QxAi=K+*{Q;cpVj zv}gZ?6XYPyn4u`?G%l{s)YASaA=leo;4eO^$8m}}%H4SQ(GwFmEZ71tv;KC=rA%3a(f1JP1#*)bp9yCQ z;RBe~UF5JKV5NRIR$z*I;~%e?nrm8h@>)in`U_mbn^s^?o_1|i5)u;n?p4m$pjJ1n z*)&wOA-oXXH-Pxqenxcmx5jt?ESP~)Jh-&G_kf~ci3VqL9S82somMT(!0t0@bLwm{ zLoUXpHh2MR@3S&))<|79wfmf>|9(=venanUf{3bB=k4{=y*3h@?kqZ1IO(6Avvp!Ld-A;IXLNzhEn^tQ(BS3#tCyAmFLP@9 z<-HUepBWwK0KsWI$y8IJi|OR=pO(_Lv)1AY&+EGBFI_Z0_O zmyhl!RrCT@7fUsL`FU`b{i&O(L!;Azp!aalNb9-vtz=F8Y#ZGpIZXC1%1d5uG@+4+ z^LcSiO!)2y)KX4iC!1$ys0zT)R4KugTD5(pV0kJ|ffl4FHDt=|m@0A9!BzMvo_qg8 zJk*4T$gd7D$g|1?%v7bU*bs;Q+25g7=xps=v_L|@$WQn%i7e=vgLT^N62S(qP;Z&5|4#BYTlH;1skE#D$NnbzgM`W@$kwZvq zV&XkiU?_^>O#}l@SPt(E*HY;7zwm(NOYd6})j^3(#hzwvsy!oo&+=F~{5)mHRu6puj zmq-5LVw>zbwDskVH?t;L1WEc0X{Z=rkYa5{QR*PewyEN`Aq}ac1-mAz>Nm9^Fng;I z26Na0bItm2dpC&ek+mNbp4BqD)jv5_B}`mM)5{f0WHVDCY5=%#%Aby{aSd(q=v^H! zK+NcP){mkt66gM?f*V@V8--EK>HqgMw(iU1kS#)lf9HF@vMN z%!!an88T=pu??0^&&Rx$UgV(^(4(=yfO8zh;D;?xesw9R97PqRc|8U1!3%%4E*|H@ z7)%-OJ6d3YvzR4BooOloz$Zl%X$LYMeEPj;43#wAQR_t-mcp!uPmD+RbUb`9b!?3# zIVLSDE|~FblXsSmggtmofi)2Xg>^*?M;|x^^{yjg)!S!%BHDXsa@k55w}pSir0Cyx z-+yYxr!z!f*=V}zo-TxueGyMTm@ujDQ!4ejwYNUU6;LmV`H&6%n!Wpih1u)SK*;Yb zYYsRr5(0l_`GIPDGL&g;N*kf}OoRKSiN3`fKK^WnZ97G6rLOM%8Od{85ckyg*Mah4 z`cM~`jfC8_VnB*s;<+e~jnjp|WpyAoY*ixOT2fO8Gjex;_WdT~#+KHvnD?nSm1RU! zPm0~%J=bWgb#0!uOD7hykmd)k*jOJ@(n0MH=pX2J(|xF$a>_4@xBvah1wtpfW_ zTPaTmSwDOd*xa!x5u75?Z~yVtP!3r1n+pk~c`^l#@^Q1QaYC}1L-+=xEz92P`W;6@ zuVW2?{To3bfUQyuYIsG7pK=I?S4Pm5yqM*BcN0q0g>AZRBgr=KAWM_i4KX%u&xZeYFi{F% ztTkAbX3y7L7%tMGAsYX#V)36$tWS);fU(rR4qTY&ovm7*F~QaSGre+_KkT3&H4I|q zr~P=y^f*cf2ssEdAHcHPl}AeeUJKh-)pO}XRL8vR-|mTiOi_s@OpG%Us`&UTZ}o3D z@?C5JqXS}HlecEeWd9j&U;C49(Ae|IwV|9RXE6G621IElGVn-$K} zz66J4;R8E|QNto`cSBVVTQy_!>SvURZ#z4_tbKb6jrS?u6J0Xpe$7t5vZ~l!nR=`G z0v7;mGW< z%5g-bnRwl^?Fpk?U}>Bt$R0mwzvL|}*||7B)^RGhXd`nPb16;aR4t3uJD7Wz+yL}| z`xHrf)(d{jY(eN6!oycS@0(K+yaDJteglIQOGtZP-_aliy>GnV==Bh|I$^&{Xwd|$ zC?QYDi{I430|6dC*5V7&E}DUe+V{n!7oHJDI(Emj!#8K*764TnPjGj~H+%$49!wbt z8@b5S|K#HwxTY3NsAe28nt%{W%JP{g6erHcd z?B3j3Xa=eboLcMZkdDH&W_%I^6fwV64G5QoGCCxbL?j_62OT+KBS(n!+U4q-0Zzt2 zCEbf_bN*Wqx=Auwz^I!0E6S=78`_jy`h%VFB6{|~IE^-&dA(>YS##wU?T2y+Kde`ON~Rw- zNLI9`{OZB81Z4Q#2u(o@?`e$BOClI4LY0BcZNYf+4S@g{Y({Rj-9pflr@f^KVo824 zl)XIYT6LD(J<1dRo~@g9ibpbv9o_q_d20()*jZW6HX2Ik35&4Sd%8)cBR=$z7Mgpa z?}Dkxn#6%y>}m0*; zlPFuwGbew2nh>^;<&4cIDdZpQ9)%Be=hEDL*Y z@420xZgSQOrvdw5X+t3F?E&mZi1+Z$74P!}U}d`{tqj5Or0(&5=s|NH!U#)pGi_V_ zKv8eucC{IKny0fRuy`BNGS(hJ~#QdS})v2Nhn1 zJtquG|i;w)697??~gS9#jQ}YxdK?E6JMO>L3X`oB5BoP+@RHX}STEza8r>@Ea_- z@J|2=#W0(8cwZEBRHj@M(RP9jXn2?o!{NLOZ;|dh*+@Xjb|Sde)sfd0F=dT#8(d>+ zX^GaGb+(qis-fS&r zLs*?!o^JfDvRjV!FjLtDz~L=GW)xl>n1%q&DUNUyI|(r|?hwCI5H^q8D+5U58h+F5__!EWRxI3%$d3 z1Y(}en7G^$_k|tkLG!?w!*H8HXCKI6Y7X(1Rze1|et6Y% z3C{q6?!>jOM(3csj0_Q<#OSx$5j{`dK!dP!ko@}D$kJJ!?GI8azCC64iEAzb7tn#c zTZrfcnz}mZ+a;2E{oI zW4XDkNl<3aJDp=Y+J_fH^5ILbJIc)L!ykJx?zYIdAx6K`UYtbb{0V*P!?=syUF~*= z=YXXAux4!fFMdEdP36d~K2Nm=*#s@~v@TVA)7f9x1H5%(fhg+5g9na4QxiPbs|JE|58EM#9S71 zL&QPik<4A6d_!Nr+$WywmWdN{vNg31#WDu%??qLKyO!bLX z@305gIWDM&j>~{t0|xJe0>HcLZ$fMvGL;sNtp9ot01LpV9KEFo&&0~-V5^=akg?mK z8LJ#&#VeW4R3fhHrXk5{p3_uF1ns(hW#@J7o?bYm}2yYo*ib; z@3#I=0?1>MiD4c`PehR_*riF!R!fS`p_r5_z~!0(i12nb#8c9lWt&imBHaK>Qw3Cp z<7DS{TB0M(OU`{0Lp*e_EVZuN$t~D`7OsK*Z0FYhjiop{0wB}lw86JZgR_n8T>k&Q zDDR7xcuf@kVBr)v-TmQnWb(NEJoo$fOUmN>L%=3bwOBvb>KfJp!qqvM6D6za0};qH z58RClp2xBc{i{%vKz!IBNTx4S9~AX4J>_pwRzR-DjG+QHMAPowvL81;6G*3inZ3CyuR;^^(bF0{)?z9&5HJGpj2}#Sr#R z;f9%iJm31SXY*6I3>tj2JJqWUsySP?5ijtIHB6FI?(;Sb*VL(orUm_mtBWc@_6I+J zC>xmK0fxNdK6gw~EWzzrT7kOvKXKIWIa>jYeZw~Bt?lY%CmF(P38SYB#GeF(_Pe|k z)92l;{-DQOf4Yep!c!l2gF~g3rCWWh_R@>MOL`r)535jczi+e>Y?zFokoZr@Jn>`tNbFEazVpPSveTQo7Hj|D zkk19qV6r@`>+~uzQz68LKWSc>WlmX*w@KfulIq^W%a2icccVqZXlY2DJrWN2({j9_ zX!A@6ampTufKTKUh_AW_6o~KGDy%K_xtbq-n1Pvt#|I<}*^r$ziraCwy;HA3C0hLe7K{n%#htz6*mY6b{YoXPk(4eIT)+2U=-BKVkSHjGS^*fE9Xid&(f3%QNB7 zrl}U$!REf1{xz!C7eY5fi@;a1z%Frrj_4HJj znV7!MuIR1#uBsD7Wi=J4!)X*l?{ewxWzQ_pry@>+l`MOox%!$lB6n%0L@Qvr=P zJIl@@dgM;rvg-N@8=0lh#5sizWv*|u#m|@A2>2qpz!G(1sqV+%jBM)<8-Ysexxj@% z77YE`Y+MDFbe`i{WZB;V?~SS0r6XO(rEP)sv-SYvc-_?9XfFlkTimItuAHObY}^w9 zvMp95*Y)JAn?Ytz!<&G8&AW;nVHPBB`K279ffhFccNb_}C6Gu}_oV-O_<5Jv>acG^ zSU+f`);Lb4f9OGj4rsnhebPmW!aw+Y5Y0g!)MTy$yZ}{R>DuCpQmP42ZXOEzRzpg1 zcVc$G{FGL@5t5XTA+|56&i)<`W;U;~&G5svrKPE{7z$gwEt)%hw=&iw2@zDzF!R721oq&G*PY_ z4;&gT&?=I-X$mGhEmi00=_ZVM)f&zVNYqHTSNwdwW&qW3TvcNWCh&e+S$EUvxm-57 z;ZP?gCYApPw=_EXWoY;{oHS-rz_d>%K8U?-9^3W1H&Vm;z5S26s;9-4p(VMSx|3Df z8~=rgKmPT6STsefYwf1AR7TeeKI1Z4gNy!4p6Z1&F}Ze;9FJ-OHNzcuCK61pgqX+t za(byfu8{$|w(N%?7HM>adrPTdRP%oqOkFH=5kH;(|5yNHp&5oNY&<6G`tHauC(GF@ z)UX?)=?d>16n^C>{#IVYU9*J+mgJSb!<9NIDN9|-+PpF(9GDO{n^*fRE^jvXMEj}Z z`8W#!dBGY63s+%4!tr~L{Wg9mIkW%MRo*v>9tRvd&B~-yMwFW;->o_{v!lK5vKr9U*f60-3fqyljeHKU_v^2 zZ$l`nvPY~F7_LHORaLl1n0TMQr(PCNa&E6pnIc@-ps?+9;c$0qu~^kPJ>Hh|>jNk?J+m5a3S}g2{EeA8N%D^=csC!5x8ax04({ zEnyo#r$m)E4Z{G!ZX9A({!2Ym;atonO*|{`+fYNlEEnnXl=A7wv{q!xdxDi99F!wk zDNf669C6e;)`B_jlJmArik1;NA0^l^Kx&TJDLIOuW+F^AhqD}POoPILEC@>*f)MMK zV2flRVrg8MB5)tWz=@m<5jH4fY*ybIJr0q&f5F{unAuR~&0PY>77FJ4zk~h5Pbue8 z+0(6kRMlm7qHk+dg0L{nsytQR6_n?}W9@m*z{tHo9L7@&eIfW6ht;;iK+fHB<*wM}El)m7g6! z>5p`KDEHa(a~Zi3ir>f1{~0N7!kzi8SGOZC`WkV;GF73V?UB~E=I`559J)_zcJv5p z1~_$w?ncvQL5GrQwpCwE$cuad5$=ex#jP>U)+b6bP7R{oE|?$42d|2Zd2*7m|7B-W z3+xVktY3ZmCnjoPIGcFDCzV&$J%!kMM@b#NvcENRxjw-0mur}qv;)e3hr3|g@F^Pg zk96;v1CahBk+b3e_cz4-cDt5t;qCg^9<_=w98cd*Epv)rM*i3pYl9exJ9WAd;~B1L z3dFpga_*{83sLC`xsGb=kMxbddynq2`L6BP{zxM|orhul#v%38p485X$$ZCO1+q6F- z82F5YNC$DohgkH~nOQCM=`-$v)7W>zZ;yBFhCK|_gTuUc%s%NBgXPxk6=3aS*)7_E z*=`vuyW~GbUnNZMU3@ z#faJggVDrn;u4$`luG=4=B^~c;mT)U$M9;#LX21&c~m@h)Z*Z8(s;DF+4L#pc-Q2O zsY#XXTE@r#GBf&2QxlBctM zd2Z~{pYx83W07abX>${Q?2SC0ep4%mFE7sPuv51!etFw)$o5)AwcUulU7+1YmTtRJ zBD;Tu9e;T4IZ<-?frw*BiP@N%_P190=ImwHzz!okFpze1mFPHYlH?rOHc?o=6Bs~= z*@N0jt2@ zH0;FS{_xcU5FHD5m@z`Yqd+5@GB%Y^U>gQwhHM$-eoyGnvJHL z82(Y#^hzbvJ7Iu%&Ejk2w9>Gx29ihpHU=Yud{#S?s;DjQ^Mxt&JMr%F*~<(m8JRd2 zb4EQL_`DOl9LT!m;_w6{_^aAd&Ct;QwP#uKI}KS%Wl z*Mlo;O~A~=ciV5^;SW_xN%73fb9pEy$AwjU1=q+PTxgP>fTGs-_s@KrUKE1DNUDda z0Pf{v&HjRW8)30MdS9#R=@BKhJ~!KQG#43|<3~uw%2t~-bm#x$=qwzXYX3G468kB_ zRFsgIii$pzNRPo#9z-OjBGRDL2fQ7H z3+KMiIp4Uh&sA$5E@$QE=o%jB8u?9Zq%GW~f%dABs3^@(+?o+MF}Y21oEwoD3y&F? zn&=wRGu7hG=J`CFdUMKqSai9~^!l5cbbeDW<$OzE+1j+bPJ~{&O$pCSgW)Vye&wxZ z%M%%X^&Z$rao#)qX?|{Mte2RLYa3EsnFn2*2NvFsaE`e1kB^4!=}V!nvCgvS-WrB_J4)#MJO z<@#im#A~jU%j&IFV+9Hj*VEIDGSr^^5WCmS0v#MVb!RM}I8?Ftq)^yQm<2PjGN?z& zR!ykZ{N?Otwb6Z3;$B_EuN0QZj{}^$KX~FMoBSV?&LBm>X%vYt(0Ivz%NaJ<_JS)Y zm_2P}Nkdd|H$`z-sj*SjjHrvzE5OS?&9-@t3b(}vS&j96D)x+dFJsx zQ(n|yG00&JPek4tEMs{9Z?1MO6_Z`J78s{#-AHVft9cLeGwC%=vt@ju%;rhb@$yEZ zkTEDDafP&E>1JB}PD`pw+_YMpT6g&TdF8q-Elc7#5+3Id}K3b0W0rMyUo4ZKwgEkiDL2DbzuZ_?F&J2`5HCB5H#v~fz+z(?P`C_&M)^l=H7{ih7RZ0|?G zfCh@@Os(*n<^wYo^3z96`yFk$N2I9f;}DZ|w~HO`%#I28(6e2!gpOs^ERAL8>DfU4 zyvOUc*3rh(AK%9h7%&CPI%SJ9+Gty6u`g-$7xYp|106`(SuTpiV|HDw9I5>7I|O0g zEnl3k)fP=cTDnOgo>NtN`eaU_V>5=q!g5m0*I4Nzr=@;YXr80)Y_3g%pc550KlNm} zdwboW8#aOMs#adPhCeZ=`PT8I24~nr8Ai4KPs`XN@wu6tJ5y6ScV_w381z^ExIq`|B&;tB;uSGQrZSnlFRSdY~hbWE<>S3h1*! z<6iK9Op}-@Wv)4_VVIVhQ?WycY81EF*%h15-8%K1^drO{EEUzX=irfO>_V{A=Wp6a zmAOmZVgdc^mgac7_^Lp^pMhr+QG!yp!_LGPd^*)Cnhp_O^M9M4qeg7&7cnur?Yyca zux&IO{D!U?PpRHuE`NyLsJp7rQV4!=8LjsUEYD=$>`br-!jJP|k8bRIVHQ+RcA;Jioa( zX{Q|Bl_Jv3Q@!eoBa0F|-YMI&BGQS`HSLO4NY3mcQQYDRqyM#jE4`tgymxPHB1Q%E zc6&18zxhk%fAbgBpuR=l^dA5Sb{pmK6wkJTYQ;vzi>li6bIqEs`Ls#Q%m^mYUBV>x zT_PFq3W1&Z1dGf2uE$N@opz+C8LtRh^L6*$2F3%gIh-D=-s@8&6;{j}G}AtPAJCf% zDLMJ~UBlV&0e$pL$$xKn>oWnbB-Vr>?$3un>qY%HKgi7Ytu^yeV+O{sbJO3aRfK#d z>!tgK9&dIe`3p+Xi}Ko_4A5ug19R>GN(OW&?16~;37}ap?RboLzC58YTsgq(i{a_& z9w`xudE&QIa{79?I^{aZcgr`+31RI=3u*=_uN~8eH6D?kMX9g6_RtFJ%~xEB)A!P@ zqbA!K>H~i{W%yNl3+-=CWwlR+kiPb$@+VlHPL7o=0vKEY%tL>-t`%uWt%+0xc^oWp zqX7Y`*WO(_Yc6RwJli;n@M+p&8Ib7*r5%!IaJ;Jfqwc5rdQk!NRUqkP^ti^T%uma2 zlVBOS<#+T6xfgJfb#OAuux8TZM{!@|^mk^a8HEFKPKGokg^Kq!-}=1Yv`4RXK0!@9 zDr#$<^6#~ceT|7o6&r}%9aO%@E1`pcOp-URgQvb~UuUG`@0x)D-yeO3G(CNHr0i|H=}QR; zazVLmTDoQXY))Q2IXRJj@E{sN7?o@Vf99mYDCcMbHSMQty^xf}tQjxH6ntTdeRLR| zp6CKqkNS<+?YvaTavhc6%ui%iMKWSUYP!%re%P2PEFjHpKzaJW{XycW8bZA|1N6}k zyB^3DD1!9=z}1V`%NngWhb?fRdr~zgR6VDk!e{@7;QQtl5*@-m+s3*)RoBN$VW|Mh zQ*U&{k4b^HXWyME2{`RA^=o!6v0TRFVj`0RcYy|)B6>T-adtg*dq z5wMsvU!G?!80A0o6*&-QacSmsBw}YL$`Z6c+3*6t+}oB2Pv-Y2ZWf!~{-l7bX*!9h z-Bs{sNYhk|Yd+$`&UO;cL{xWUqE>FH@WC(>)`+nBD{CV~pCh16BAa#A7|7W;K5T0W zXX9hXI11*IFlDov5jt1g88{vEqk5uTQJ8+eIZ9FFl99y@F!Sm-Qy zY4$OjwuXfNrgtT|{5a}BjWQN5vFv}>=!%y8QK=Ym5Q6xFRp@=Ibmy`BtJS)7U`hxJ z4`qbtm+0_v_su#f^um#~DG*I>3u0aLM5u_70bMa{K#;ABQ4D@@7yKtl9j=;JHK_Ph zPS2zcVzD=2`PsJ7H|wQkF|3qIE}HGCr8-%LJ3+BGEvOArp_;06LrOR)ZI!cwS>mc; zTZk&c{N0o+|IBG$0!e5K?S$RfXuj4=>z)bkN>Sg*iZGqeN;_UtT%6eo^=aH3*a<&7 zrW`Ddo~b;kaS1oXuD9>F&YU18{d$Dl=VT-a+P59kERqui6EGB7uMWzrqXpn~J2Dj- zp8r-THj9_*SukEJzKv@o|<%Q_U7Dr)is;0{s&Exv9;9{e9|6{qcyZcTHqltPZ#fVpUr0 zmck>m`eUwv8}7YM^Yefl8RLh=^LUXomw_FPhWWnBy4ej0*$N-wa5%y=AS#t}xZO#K z_x*Y5HRUUVB_h6*@;aVUu!1&5Sw$%mJZ$yY)9tL>fbJ4XN1$JZIiIBKgZARlQQmt0 zT**{O0+v(lLBAFFh&1k_6q=yEq3?VMR|JRuZWc{$oRPOQ%a(xY<^AI4|Db45yQtk- zPa%~L)jg{i_mAsJ%}E;iQaVe$S?_=uU^`b|fpP<;+@j1VL;)Tr3lcCLwHo)_ik>vm zyH@T*J!09N6FX%-z_i2qrwwPQ{ifkN-I;#ZkCSJUu+Gb~B)T=R6__qyft);BDDw34 zg9vex61?saaNP^w{wS`sOhG0=+u7#B&C0`Qmh_+s*NGYNw8#R7C<(%(x6S#nJAhR{ z>UZgj=`(@CYk_))#f(kI`5|VoVo$54aA2fx4I6{+72f;PQj(#C=Sp#AisC{v09zKz zhhj9{qjTO_jYiNP;kerAr0pVT>90Ap^)Q|PgkV>nvKUI~U6N_}e#6Zr87aM@Rd@RQ z?&4*c((@Mu-8>h6xfCfRnerNXHwPLwBIYACo4EVu7~AV;CL9g3I zBpaJYhV@Ndu{>PYB>Bwj-B*b<3e!~0S3X_hD2c2PKD;dPw|*Y4db)x*wzVO z3GXtN*sXuoxN{K3XeNeA)J@#!^lE#nr|JLYA}}?CM)&gPeXX(xp&4mg!wJ$2|%1V z%wM09T=|bGy$(+v*?WVf7(=T3KhbEXm38k~iW){QSAHdv1KvYslCmb&-N-H(+(F zmXr3e%)*k-lCP2J3|v-V$~_jaCJs3nB+3awUol@?+-o&EX-^_JCy`PjF{K-@G0i=0 z*Ct<=KLJLN-)T}U(K0|)FQty>2p9TpfG_?&|^gUVWy0kfoM1LB<+*`bC276*naa*Jph={ ztY*A-Y{(}1CP1Y|3KGW|)l&hnZ2`Vv`LH<9zN1_%v`b;sLLyc+KZA(f4(xXtCvl1z zyv)W{$ov`{aPh9dOBdf`kr0am&Y^&eLzdJJ{tFwiSYFXGnbMTEdEU6ogmDBo=woF{ zQf)d2i{Tp!+<>LZw!E=<^VXXFQ5InpXfCqb|5y8+d8&A{k6NUvj(fw_OS>lM1ZK_D z!{b#*wS%Y>LOkm3mrpz+a>E(Z+-rR($4Q!kW$3SB`i7!b!&@hqg^=apuHk&Q;YqId z?GnN*@;?%#^$Y+r8UdLLg$HXwNo+jRH}VR$l9F>!rsqCEZ}4PSK;$@hR0a0jnfRC z%!xY-&a11twUj~2aM0A={?5eANyA&HU&rIIDru?1PfHl67 zY8{%VJ3+4mOnW6n!UQ8_@Tiwq`mkX~fq}}-k6#u7TNpfUezFOprcl$^3xjF@usl!2y_y7M)6)Ym(`hEPnr}5 zgac)mv_=bxQY35!;KUcu)j3aga~~p$(6*=E&BXFMN({xPI$(C16Icy)kFkZ+ojo17*%LaS!Mh3A+)9fqlKYlC3cG6jb ze@5?s6H;KB(w%-cwNetj9tZ_{4!p?DVA*W>;BQaM03G*;*GS3RMK9Ctz#eS>ir^4y zzQX^L!imwqzHR-4{A(>7dspM^-0^Rq|0P~?#EW@G=3ls+5`I10+*(~)agtjOW00He z$u26&P6>Ne^C)*SvNx*-K{VpkVXt3(AfxonLNIYeihTLxS&`%K@jN)2l3H?>{g~2^ z{xYzE!~$A2W}joGaEdoezlSn>eS^~xUNJa!C6@Y4T1JttRi}P9Wo34qzL4&Z(d#_> zWbNi)K;IfPopB=Bq;#5(6qy%2CZIyO3p5i{H3`4!99$iYqy|a@hgJPzJNkYG>(zw2<&1E2TUL_jZciP3bvMlC^Wrm(_-O9*_hb z8{cjxqCF1}$x9+npnJTF=h}wYZd7B}*o99dSx}apjE2s^ir^^-W^x+|$n2lm3|?nZ z*}uFWwJdeSyPKUsirSPp_^Y0bk0N{5WqTgQ0`3WPKY*YV<+|PY&7eX>MX72>h zf&7Tyr1H6-yo%E$bsqn%!Huypb1YSHqmuAdb?skZbWPerCIoZt3t`#O--vD2gOMi zf!0L&j?&6KI#;rF(_l^MQceG_e@gLwJP+AmP9*J8=5l48^C5))3STWw0I))`=d90Z zc?~M=Wm}`H?y|BxB%EsGICxF)|?xsu3a&A$|MuoUJ`DVG>rVRtf-&*vzcF@*iR7f z6{Y+#ur#?3+h4O!I;A8&o{Aaio2_*j<-$GRR~v#?86}PsJy5|Zjx~y->k-ONU7smW!JWT97i4-38D82>3Tsx|`% zt-Zd!F>vnJA4lVc?wWt#NI=6?1Inn2wGi`uQ|L2~q=gmrYGAh@ z`G#_kJL+w}=L4YP-Zct_NAc>B`0a-0XX|2KmKTJCTaHSL;;4vu(D%_iIy!-T!-c)z zUg7ns_c&1iHOVm4A7fzms=;~k?oi1SUC1@vR2c%qGwXb40;tl+I=cm|f@{DD;dZf5_J7<_D4O$bxfceK=!FIWps{n{k24k~K`^?y{!*T~7Wkb9}j zbY*M!<*WG+RO@NKfIx5l$&v0W%;WX8#XBc(>o9-hJfJG*|-2DX8q_cWywHNjMc^G$K3Ng|cFZ z#<+%hD*M2Hmg|#56Xb-hTYs8*?0uY^C!C!R-RN}IJTVu>v&V)&fnx*FHN1j{5Iz2r z46Go}*Q6*wGL?sM5lT6Ed;U|%l@|&nXo;oOu1AMyz*`n$nQUdAGj9t=#{qk}KLBJ9 zEV4bVc&6&T@A!>JcVVVDKWUC^3k(tU%oVb~ax`GlY5Gvbck%8Y zCX{cK5 zVQ1o1Sa94C&htg55@MCFVO}(nCj?XZS+ZqhNPT#jgXFL>&yT-fm1x@gGDo98xO#L$ zOm)~OX5$%H__MW7L3x_R^vL6QqPfXk?SK+*2#Sh+c|2wE6mRdI*vAC@crE)#c%~E- zBTx2-|JuK9n9Y0ylXMcI!4ASjs>Klt8x`9bINKx_)NWkb*44#bj)BH7Rw>)8pfN8^ z=q&nD1J^cRxTnBuMWi4AitT@Aik!R24(@?YuN+kXD<|(RI6J+wR~B&nu~Qcjn@Iz0 zZ$gph_YQ&RIop`Fyz_~?S|o+p^Ti^z$|(s^7B#=Ah(mEKla)PrqwUTo8tCZiF4My} zwpyX=UikG|K^;-~DC+|qy!&2P(4Mv9P-wk1fcRCm{D1#54=KX-Hl;Gvj_EK2S>YxrBsn&mfGkQ|VjrD^vA!XU` z5%j@Pe@5!RrFUr7yIsye;Owb8XnZNsm~|VE=(#<|c3OMJb3+vIt)ze)`!R=d*;Zn` z@-IP4rF(5$c8X<*U$H2>Qo#7X^`i>7wX~Q`l;fX~J5%T<4|Q_~3B5aD`oC{#cr0X0 z#B`==T2)XkTOFapIEXWfYI~(oa3SM>r%Ux+K+2rOxj`{abS}p~3_C;FwLRo~*P=;uyaO{#ID~ zy)xd!g_B812rK21pR*j4ks0Za8|p2+K$p*XmPxCD!Y?R_#KH zi_IJAd15#*>LxlS|6CvZrO9W&e=;$c zS(zaW27(JTRX3cyvRRb^SRAyI{;EP;Ug#-Q2U#HA4bRKJjP=Nx2GHU7!c1krhb>BT-{J4Y8!+&GfSaWC&3dYGE>|4$ zjUXw$ewf=);n8n0d7BLiQjS~EU~!<-`R%e=evX3EgT`^R_RTI;bYcWw=TS>j%u&=) zKP~&r55h0IJyH>URx55X-{OPHXb-z%v%#xXvnto>uH+1Q)=dm(sf)~Q@QV_l=#c?; z5zUIWClcc$RaJZMUJJ*};WjH5&QHc9zBV`a8RZsYMf3r-mmewtAMSPeW@wwHTZ>pR zo#jB&W7uJ)Whx#n(E1q9*+t!m>TH(l$DNsBYS#q=xsX3=R8~UFxzzJK4Sv-9*HaUNI#2u}f{%)C zg_?Txv%T&vK%>}x6twwvz8GXIHfUpnICaMt?K0mc=6;d22P!6ixkSHx{8CmqIo0PP zMn+&|{73h5AxG)4f4-j%{qcMad`csmX$JDz551f-`6iZ!UA=t`Y^%kM z{rki-wBAF5rfv^|@~>MXoA&31&-<>Mrry>YZ!}={exey%9~SCeaV#NLqW|}$DJ4RE zWr5R;!f}17AowL3^`vCr=Y}|Hp!~seF1544Wr`fP@^ZxhzCSU2hm$E8^Uqw>8_^Ds zU*s)x?YCgq9EhwYtRxxjKhk9@l0;d}d<)7^r9r#dn){WUY0hNE)Jr~{S19Cho&{sX z$`uZr2=liu7Fm25xpK@Gs3&B<{1}1IwZdS#j-t!`x-srX4Topu$^JzT(MrLZP;e{d?ULQuA)Av*A=+ zwTt_!E4i2%nrsm0kL_tjzGDyWzqZq4ny^{CT`2GK*p6zQtd(b0?0|KgyQ*JrohkCU zG*lJQ64j@rQlLM$H~y{vvCkLc`c%D4YnJlh&jhNG-w49c>XXtd&o~#q%5MGNlhSkW zhnjvnK>dJ_!YNS?ju(b5;0<>{sd7971Dak1}_SwC=E zRk*eqiW+2M=?Myl&^~Q?Rzlui7Ey1OW|(}KbyK^T!1Vr}z0i(~qn5X4VLw6&N^gj^*Faf(BMzI%U=YX8l!n1)k`nyYeSd6k_i;J+_p2qT)YS0eW*Wpy+?b3rN2} z4u*JiuD!X_6o|L``iU!APj(}9X^%zLhB+aPka4r-J7Sb*{SmU^ndEVVv}olj7I4;a zjx}cp{->d4w6chm0RQ#d0ZyPx&dpEzGN1qwlp^N=S?lZpZhJx(z>dfGTGueqZNTPZO*poK@3)7g|f>yq&FTSmh_4D{$&EaSAN==$z4zVAOeh{He6h@{cD`Jkj~f$Y+Ip`pjJt!}{SZ~jOpL`#9p{Pwj1NlrpKS# zvyMh%Q+CW0-&1s5cSM39$K+eE?OHwTE^ZPUdk!H!n>V}RIudj$q7u;0#j>~;)J46? z4ggaBuvh1xq9w>-)@hT_r#^H|y*vGXDv+W+U?Ng4ME4*)Tin zu|%G;oG7EGeCt6Adrdbvdy%-56YbQ8v+X{HMJCsLro0TnvdJvi!!piV9q;?bYUSMB zA7W1d(RZBBL?ikfBrd^o5r!dbm#sf~Hg3yFl>czlHW$^(h6}difwYke&+$BK##=6p zNSug*xa@h8yE$+nuX`Hc$ii$*SGy`YiS2i3zGUho(ycLGo`4NAOVS@Gava zLAU{LD!t43@d*Y~%BkyP8hh^KrmNt|2cbC)Ks2F?D4(xV&PKsTrE~Yk5T2Umt$k2s zLXkf2A&Ld2Kls~h#HOMu2Rz{qB)7!LO5c|v#mFIcX?jE}OQ3k3vy&Bj<;`Ul&D2@u zCE1{>$!TZCO=cmcK9pZxJUeBs%=E7uGt-T}gx^iVv6OsQEuZQ?C(bi!9kB}7>^Wv& z6rqh(svvzlEjlPZXzg4iWguPOuqL8XDtRbnww;4&4M`kD)!+_4Oq(c<35Pg>_F1Y$ zok0~Pj6csiGYh*^i_dy#(oe{~JRjkyD7#5U?1DR9Wj|Z0r8LPN`o`j8RIoTT!z{!s z;Frb3eS%d4>_B(*Kmyxb$OtWsrFSQ|=;yJe>3y7i{jh%`dSM8V(veQxDNHqfw~7eP zO?6(vnv#d7nKy1aLL6(#@=Xu0Pc^4Zd^k)Wn;%x<&Z@L6ill!?9vIBAR9uxw#KN75TC^pfmQqx`CF!k5mI%{u4sPaT7DY)u|J@vj35)z^h-M0Fl|9jWv)5qgO=LH?e zAD7~))TfvgRiAV$?@LKihYXCbxmJ$l>Y~AiHCE-5g*$MBNJv_{(RKSGb)?U z9;@A%HbPGn{0z;bp4Z=+-SLQ|h{aJaR-E)$%eo49_d4qeKj?GkAYQM@wH74?k5$hF zgZCCZa)b5`e9Rd};k!)z;i52pRwnG)673pA#3`-rhz0TF`o-%v5FZGLODXE%6_>C# zm_w44%hN&MF?_7TkZLJjW&e|}qI{FkZI(@LLhsgl8|+aC1hT-a3aw%=AZm9y1VGRA zZt(;N%k#8Y)^1-ODK<~yi3(Sjx}_{&byf&AkPZT94$1C^-J~`UlFN}jOz!HAQs3}_uLGH_A33_ zoz#f3(>~A|Zqgn-5X{YUfF4fqaUQbrxRttHiz^7XMc;j%U_O^ez15rMPY&8CBGzbF zyFIv09r!-7V*x{T*zORUsShz|gS?02SE1lE^Wl76aGU5UBOCdWuXj`jhsE|EWUIh5 zALyV08oH>R4O{LnUoo0*yYx?w-d*L?KQG|&oLILGuF5F+H>1HVvQ~M{J%aG0H=}JK z-6PS7`pzg3@vSnpX-M0wZpAdq#+ey#5OJy7j5fo)eHy5bXaa*JBmKsQDFir5-_g-2b0h_4cE=) zSr5fY#Apm%-^DS>!iA}nS#4@gTXq;vilR3-vtisf)X)0&mEIibDLy|-cV*re3CkGwfd6g>nAM3wZ|wZNTk6utoe?5J)uPu<~1#;nVX}L z?-C3P4=XP5d;8lRLwWP8WP=vqDW%Rzr~xCP9!n#djU2XL7L6B_m|a#jV5VSYbDjws$k>61IGbk|ogwoGuLHf8 zXv~_Rr464SidzCa=!4Hk?9i^GOOX0)>Ej^PkQvo;Tq&#_??sK*L||&{LI-!jW}wwC zf~dYZQZ0zABv`bgAz+`@v#<2tMaqkEU=r?m_kMH#j0r;JJ7!1PyFGBSc|9Qn-3Owt z1T<~hoKQGd7;pWZ<7#K(;NvS0Qjm!M*tgrg2MeZnaw1XfcQc~&fOb@qhx#_vQQl-f zZ1DE|Pd3YhrA2;BVfy$rQ}1_SD)ozy2a~^IErJKXuefYRzDQX?r@5E_N1j+8c3u%W zA$)GAKGnohivqHQdXB8#+1V!hZgS7-y4Kxla^Hh{Ir%x8?dapfr}NEUBu-vEJ3iU! zh%Cy(X{YXmlM`!2RB5y|60ZftcfhDoy7*|Ux6Em8sw`9fl9cbb7^%LwR#iS~CZpsd zCr-=)X<$Z64zqg7(fNfZ(YCR%6>wqDu$&?t!fy_Akn!YPHXQ_xwR_6QGXtWQ0p!2H zSryG3;-(4q!``v_bu}Iphv}~3fHB?__9#oMHMJ4XSC6FnP(vl@+-rh&fVbE=7zXrQ zX+HkjA3Jo`US|NVNh25dbyyFW2QU6}SM9Ft^sS+-{7Op7NY zURrul{9nya-iTeJ)br<5wh^m07#(3*7}3>N6lzb5r!_!ZxS5dWX_q$68pdywCJ+Hhd$Gjl1HxcRx_ zZeQd+_RL^sW6Mu271f3Bz+2Eij+IyNH=pGK+d64e12b8$21n*!oI03$kN18Tsw$+q8^Ol4RbOhF;7&H zG6DF_Jew>ZF-D(+w=tpf6;PxWW%GWHBSEdRH{#NxsHWBgXM>PQ(+?Z8D$)r)SwFfx~ngI^*Lg&KpJEEh(4dVU?LifQ;z|rBs{?>GXtF3``EtroWQZHe_ zAHMTKqO+U+Qm;x1L-Tsc@r=_;=$3GqlZ_5c({Z^{n*UdPGAIgi_QGUnn%ie;Z-eh} zw5*m|yoFm>7j6u%P_A}VKumQT3=p%{!fb3WW7srnKIc5TcoDCZ-sd@*M@w;jx3r_D zbM*Uisgz=r&!CcI-tVA`yMc>yQcEG$o~PoBGs>DzXL3*Ncpu?|{Z4shM8mOMxXLYv zN&xl+eL-04CwF}K02iovH~#fpbGn#`T3n?vo5W~{ndlgM3Ua|r)V^5T0!T{tS$#BO z+q&HKhg+$Z`@M_6xN0h7*$L|X*Lhx6{@2QS)X48v2<^FU%>JfKp4^R(f(zvEliZvx#4N>F)kXJn^=@MU4~g$pez<@jfd(GAdwyxS4Xa%EbG^ zRb89D4~0&#YAkZOl<_|VJyTwIp{cM~z2TFspBC$18b~Fl%a$D-N%%0afRjJS^#C*) zdtx4tt0Clb9U>pS%2bgD&b{n;og;@|m0O$mvMAju4IQ*hwaAz<*u0?g zey}d4%ur zPVA_2iS)#}4@t9`AODs{ZTBQvhCymtvvDQ%Yj*uCGH5%^Tlb9sEXlIv?0d?enl81l zOnL38DFozk-Q{ix6CLcV4<{vVRu9-Q5&LPA-g-pg?YH_i&N745GQ3LkX-xl+L~*(5 zw~=uvGIJsH+pnI~-^g9m_<}hPB&G6jx2{+ZQ!I*9FV0He63`CDnD8hHp3aqpNXf{5 z-wLm=)*>?)c18lC;$<;ZnN-aNo&+z`CrpAuqFG_q;h* zk!kv*(;{WkUr*4r28P!MuF4Q{0iw_^b%xPZ_Cp)4s>Z)~U64yH(CkmtUt zHXZbB_q^~8J!N3?+II>$n9ZK`?%kF&velmotgGiO7B!Jxt2V_^0GR$W)?qf;2essh z>BIwaMH1FL>HlU}3)Fm*rMWf9d~!LO70X@`bE$|~dVRe`?>vg08YbjmbyRKpo28AF z{^K;;Y?pkOv-zkC+qP82br3BLeVBVWNR$s=Pc;7TYv*vbot(h)VdJpZUn@LHISL*tAQr%Cm4EyDOLcOeBgG21uG$uB_itSQyAE`4b zbWA9PhlS~0VPbkyc z#$BIm#oV%j+G6^0i{QKyJ94^@CfLG9Q>?yNeXADMOM;Y-4KYA^&Q1tp*GJImb%II$ z&mcc(H@I(qbl%?Qx(AoA=}e6Ntv(%8k116S8lvH7W4vzRQ=F)YT1ak*pTH+s%tx0% z4R%yF6C6F=y#1)cOf@j0&JWh4)E6Y2+;f}rdpv0%*x!m=Y^a@SFtYQ+hbU+bq$gGr zUbm1q8q@#`cBPfi0A$*svhauFQQ4lGb|kDGU|H3JVE zdjLv9&0M9aJUCivO3f?F!i-zDc*9-fBjCc?^&h;QgqJvcBlj(jPRXmoF_0rRAfe0 z5Y1TAqJ$JPEl)B7SxKFf_qZ+)-RJBiFtJ1tZ2_|J#IS;X1&K42_;AhofEb?BCYn@2 z8Y>m>V*?f*{vLffx@fKLK5Vn!T;3reAREVP%c60p3HNt0J{zlO#$BVfrtPfpyNs`L z+L1nQw1!J`T;02W{4t-u@nUNfgtJU*z?iStr0U5`wInVJbkas1ISkK$UvolFUpDsM zr^Gw1C2DpdMky#GXR4Q+msxz%gVyIMiIQtYt2c9~uPah5i+vp26|xeLi1YTVX1Ma{ zG0Bx^$v%HaLYyWgz4c7?xX zdUQ9wa9lOkyM9lpu^^@6!QNvnx|e)i-=|5Rgf8ne>3`FEzwI{F6vSSy0-CrOuAf8t zmkL|9zBAosUAlw^=2poH`ks=|N~$qSyc3gN)M3Nsh)CTq4y8+6n;e&s=b|Mq(uZY> zwj9y3{o|iL6mu*;n!vGep!#lBVBDV&`HspeUi3v022iwDEh!|7_ZR&7{7oC>K1^e|i1ewo}r} zFtyZ-p(#Nj*+|*pd)hw6iU)&Z%fyK*{TEXir{?(q89c`wiFNB5?HuGwh=3@(6^(N5 zP-OzrWFzDUz29+2(e{qnnipe87p+R9`rm?gtY`rlXS3@`#g7qJf1NDM?si~3rNvv= z03rQ%tT*RLVNV}17y%C$=xo|Ds3I63g(OorX0g0L9lu$ogMQ}zQKl2!8SVo)&KCG# z-FX-i$tb=p+~T&t#)f?`pzckfVEf4X%?>+ZkzNZ%|f&;KzAqp##i)%aw_ddiL>J=r4!X zeg0z|-W_(qn8;~ru=M-pE9=b+N>)cCj@ieC>8N^T6SjXJq9^nEuPfG}NF&)VL*=yz zW#s#vqRYu06D$i=$jajni1-i(zBO=0K%oL>=Vt73`ME~9*K^WBzR?}3l?+y4dPag% z0T}-kjdJNK0d>Y`atWVPL~1SX0l@l+1*I!-Y@p}iQP!^h_x``xsbtdY`EXasT>x-u zKWLs%7y3&jbTRfaL>S9RFpXtiX1)OAX61N>RQVaYC;uZAXhx0$wxlJnsp@iVv~wU5 zocM`R5VUc!5m1`yrN(m-xTqtdI!&&OQ6rWDn@f8jWs-05E?r07b>s=5NYUQUs5KR& zu(8OWn+)j_VTr^NBoiJ!ZLqw@Yq6VM6jVOT2Di)-w>f`!a1+?VaU+Sq{W9PJ`fXa) zB8Y}cNQ;sV~@TOyzC9DXucbGcWJnLoB{NQtM`^_A(-1M7ynIIKK~DXnIbz# z!39M^I5baLgiD*EgVcG!>6iI_E;w_$WrwQp^ChfiD8)jUret>+z`(@8Z4+TLt$ou@ z{RB#3E;3d){{wsSJ;cN_;vp8)-#;K!?-SR;Em!Tn|*|MygRBsy(Zw_P8YSe&8=I|13u5FjkPh-2lxN0?90QF z&f32#Gg_fZQ%i;EF{53}T@jjTu}zuAamfwKObr#y4HO}D9H(5UtTZ*LtekSe%v}@B zl+fI=TvJpK+)zM8knR0C^SsydT<;(6_51Pt_i&c`-1q0+&biO%vF<4fhrj&k-Yd%C znYTVvbEsE?)aQwVrzhhWT}F#WE$nt!{eytE z>e*GVDH`j+0WR<-0uNNiiqwI1>kOT&?BwBlepUTaB!+~ExM)+wPr=CVO^I{SgIe_l z<8Q%F%(;ZNOs+U;uq556GrdADG`}!_3*>Rg#3~f`9T~X$ROpk>`}y3OkW)6iwPP1WURoIZX%fg;yXhXmx6Bh2C z1JfX=nt-A;1|V8v&7WiZ^@2IJL(Ky4BADe&YT{_Z6AxX$AGg*|pqec)0hqlxQ~y#eF*^oT&iI)Fog*9@J_ z{_Y&eCPLxYWDxT+y^3qK9C6}Yo$q@#wyw?eiH=@rHOrMQ%``$Z4xyL^AUyJ|#~i(@ zsP?J$0$dsLLXmKMEyXMYrz$5`RJoCb0S$;Ffit+Ylf8R*%pM3R+6&Y2nzxm08_7(M zM50f&1)a0zC4lku#=~M$nv6l12?vgXkE|ppnf&DTC1+BB!R?+ILEUi{X~X(By@n>X zLtDU$Ei2=LprM5}%St*3EKYJ*lhO&QwPA_878|#KYe2@9>kud4PvW+J< zXT>K%^j56wws}n_9*)!YM_l?v3pkL~61=?>dcRb)kdRS9qZDHkpAu%5%&ZFJR*6mybL3%w*TZ75&t>Eyn$d6MH%iUqL zhm8~>bO_lWY#z+Nsw4YcTpmcOoKOAZNiklrld76M)dq`H?HRHYpA^8x6|cD%HY?XN zs=O`UfJ)4e|MpU+OV062A>x`{cw8LCW&+p_$e#o`yu3x%S1& zp@P)rwQTWI9Ay+J$Bi11PZ*I0R4;Sr3O=ruqRmPk>vfghW0y`Uc&JjfEz{vBR)Z zX1yJTkRkB)1 z8}$xz{GiwQBYKvoFF1bS#-LD5uwJZs;akNS4N_1ok`UpUakYIo$)cXDn8C2*Q)qJZ zLM=-XjB-s#p7BpM0%{kyG?p%jDHf0S3z~Paxx>sTn_HO>sF!Z%ZKFyJ48Tp-Gp*LD zaZj`~>I5tD8!9sfFEF-rR6hhi8dZ28m43j<~nk}ko zUB$z~pGNeW9T_N52LgH{VrqM_O z8H1dP`}`*nhND;Y-uD%u{}?@A)AMHFM1cA8f!md+TBSqSQu}S~tevbZp}F%QI##k$ zeuzJ6ha5P~_Zb4|)-9wqr@f0U%2Hq-j*79Qitllo<&}V(WMdT5E;7eYv0udb@Pwj6 zOTF~Ug#37POd||3W0rr+17udRd9X#2=YFAzYo}H`E*0}td~6L^j(EK2R1Qy)AuA@j zvbIo)BgS#|C2x)mMs&8vIeviUv1w)xBscn$qf}>PI!{>AGrZquoAt@|TexlH!Iile zRy$l}fvUlsEtd}I?RGfrM_hkT77#Z2d5Cbw#ogm)ZQRU^&E1wTnM*l%CACf=ec{>A zNQ>R3+_*kNG%#WR9j(sLboZz3-$fHZlGN- zIjaXR@ME3TGN8{SJxO{1v7vM5)6c3j?Zv^wDcF0XO>=c(Y--SxJnS_$1*jtH^WbI}4-B@ZrM@<_N5?EAi$GjTgl(vzTG z*6WX+k$d}Rkq0mVi!Rn>2`F+1ezWvqE~9;;)#DF)oD!d1&#Ams2?G!1cSVr-m5NGC z$D8MgVYY*k2KAG9Sq1S0ja^x~B<(L#5Z9SW7iZU*jb|PPCE9kCL6r&gyPfCY%)_xS zV1mU{q*(*~TZgy}0aIQDrf5`M^$pXI&2{UbqzOpU^_N=!mHCg9R$bG+RI+->HPHhHbpS}H~bUvz0|B$*4X&v{`oj49**yok_UYtj9UptplAtOR4J5{#t}h7gGTleEegQEX zeo1x06r>4_X;Q+d3`N_qdaQ6$#1k8dOe7rn=Y89y7^%SI6 zQJe!ze}pb+HUge)m=G4-Q+rK&t*`e`Oq(}$`)*vJ;=H8KHCxtI#Mj@63h(1kFkwv= z!9^_zZjs4ANCOF^wf|puYK(36Y)(lmw$dF=NmChxZk^B z(~rWnE~)ApEloF%jFmTbo1t`8@S0@}4~jR{pLkWYRcRSwh!Qz{N(8_04q<8|6@`|> zN%am7^QTS?E>E7tp+Pp?Q)u9QlZK3N$;f?Gp{$RpNF^QRo4~wfSfZ~{0j?yXT=JOD zBM)Wl$JHx&eX=X1_*YKS1777TTu(NI_FnEMyV6>p#DD#wDW_Vf-bYV)#y>qYW90wF zrl|)e7fUgEF=cbLI2QkPc#Zk%A~x8pw704ez3pB zXy$H^$V{7bgiWtx(-+MMP;@WTA9t)Xk3Zom=A|FaANR;PH+|&mB*24_ak4#n zeyXYdin1N`o1;4rPO))EZL#lYPIT^v0}|F7)o0}y6s#02Zljgr!UK`DJfD@(8_FiT z&qvHfn0n!o1!f+@`j9Y@*S^fwsFIAw(U%%I&fg)CLzQ5gxkY}8R51Cm6HNBkw2Y0} z2pTExPu@|lGdr|Rovf|`zvi}Vfs#u%7dsUWmuFGn-?bF;*VYFY&oDG-;uJ<2>x=$F zo@u>X^NI$hLg)R2rY~xsYtNJXd!5QpNze5+?(c#Bm6D$tVA9`SG>0^+zO~g~fTl81 zaxD!#uX!xyLA2@~)lb!|8SB~WR?$T?72MH6g^g}G+t_{W!a(yx9T&@w5G+qb+atX> zMUy>_q6<-jD(SRDJKzgut+k@7He+x(GA|!R)C`M^4LleJ%9r)3J9fQLU69vzd`z;D z-t!dMb2U)78D(Sc)Rb&iH@7`6^v70Zdpk_h@`Os@0Vg-ezG{=7c_u{r%L+eGAh~}_ zU9Wsz`R*lB7MNT~#j!TTMt&R5Q&7oN5$eN&A^H5X;JZo-gv>5KD z7*DRAtUX%AWppmR9>0VA1GDV6m1PDuT3BjIPgTvH1CF4_-r~#pdpA-8K`PT#WeNvf zxs{Wrdyrl9mF`RI_{-^`_mY)v()uX-H)~#*b{q@yDC6$5%))^)*U=72iVzK>Z~o}bd0hPIUcK{s_|PbRvhO~*ru!9daR)M2xE69f_v&2O5_Lc|^A%Hp zxp-63>NmQ$v!WPpajcf+sW=1mMCl!HFlSMKDwvXB?6a|^?orl?%q<)BUa|axd!WP!3U<3sskYRC6lBqWs*iU{$>W+3B2OgQRsmyzn~} zvATUxo|9!uP0a;b^|#`ZzUUS02;zegik}je&Gha!QYX?8>B*rMddFustc3=xHCH@N zPOBT+EE>ypN%pG#2nJZb3Vy?`Jh=yCGOF@QC>b{)L-Te8DBQu`LLA9UDx5?+J%98Ahiq_u07;XgXc_Q>wQ>S{Xr zVDg1DBO@nr-z+(mIzUEdLIT>iby$2ln|Q(N(1^>x9ks!sBk1O<{WWvbo)(-+I5j@fN0#5#y{C=Em5taUZbU+MGNQ zP=v<{Q!PkiLLE7~jdyotAEEW^z^)yM*AA~}%3@pf?qHF=QIXoict81KIZyE|zWi0i7rmLOrXooj zU?Gy5`}%5@|C$s!&l--fVU!uzK%<#7!9JHUe2RifdG}!b7D;hTGXDJG$=Ru`Bl^|V z&dvG6@Ly{RtJd904v*D`c5Ch({oIWC<}zN;{#Q!B5OeVHp0;xi!cOygwEGKfv z`Qr}a?%z#D2$IThw8bgQkm#;2K`R$fZb13O_g68J{gsn2Mn@X`9i6Amf}SJ?x(~32 z9u>a{6*4m+#Qn;0h8ZcVKyX3vgdz6H8YWjV(nhc1KsM}h%UM49fCb(XQFz7ZPW5JG z(c82}>)+#|^jG+8*8W`w{WS#B;43`Gb zc818a$>&TYjC6=TV5g?5A8+Ml+TGbJ+#1YshkkQ!%{zm7IKXOZ=FP?|QOrnO)Z$y-F@%2R7kj}sm9xi! z;g?`!=GC-=&Tqute1Y(XsIh@Kg;qinPbFyG-IVH5C%ti+jxBLW`c*c#{Px~pZNI1! zmxgGR91D5itEeFpW9!ML+SFMa>8$}r#0Ls_gpNv27is>jTHxcxwI}PJ zB7RMI^P`aEh56}xiQrtn>l=`dqE|=W!%PBimc$p0+QZ^$=JJ=Z2`WvQbNP#NN&&vc2K(l_>DXMp~5XO+9p3n}+@p1*KBPgd7s@$-sIgTa4)mj2z``CY`h zikIvF1=z)Vvs-LYDI>9H2w5f=4 zO@0SX0pnW9BhaJ^mVntcI+8QHyZGe(-7y>gpeX&QIP($(B~9P7@7XWpiPx-X?je6c zP-pKZaFSox;#g|lZNKo*LlB>;Y88^Yz~B%(QZkSEbrlF{CFRtxLckfmFDOp-Ay2Ms z095-ARXw-Y6zU`#QV)+6_?H_ok-U{NbVv{@@ZwtsrEeh}I#MikPWo5T$zKy8Z?J*Q zM!6wN?Ez2xosqpxqnaRd;=@Vys?KR)+LMoP-Hqy3ZuFIkZeX}Gv?_1@7F4Y14fzl# zI=1R>hZyihsrkl18!8UoaB^;CnbjyZX)8t{`LX9j2X0mEi*;fOm(;iT3MfX@b<*kN z+T#x7cq{{j$tAy<>7H*Iu%I(3_oIT4-}Zd6)Y+{7TeUQw4MDinAMy1?IY7_OWg%GQFFM0C_7ap%?#QFH&5mZocE-i{Y$V`MPLt0{$LzVYl|Q0U z>ntVM3KpkWUxg%BG41S-Fv|S3rDLji^dsrebV7*#hh0&EFQB9-pg;ll%}#uI-ycUq zTLcBF>}0=~tN~Vi!n_27`Y7UJOy*w8tCn4(i(;G-Ib-zqEnuu8eVI zo_oDZ!|OzzgOt^m7BQAZ&s5Z9Z)mLr<~O1+_Z}R75oWZf#C;9kPvnnanUetilcBO?wZ{ zJlpyiVf<1uLK>Z^%!r7sYVn`qlzPk^B2nGQo-BcCQHbjcYkA7&E%s@4tZC?e@!&$9 zj=b$YMD0?Hon6UY_^(rHEu&N~q`GjJ42Q5k<{x>4Iix`)6Ny?Z(x2peMbk|0MesQV zULCgFK3ADhWm}OuN0U6&_KDeXj_UvQ>QN6+IkysG8lt~-DX)m$VS$$WtJ*0oIdifx zK`*U8LE5cO^PEtNJl6+3IyNJ>B7bj@Ca0~&T8}U5&T|O0Sv-ed&LSsn?==rOV=Bpi zNLfRA4QoUyx|}3H+}nomWitQx3ZV*-hH6$eS5l zD}qt3IlWrUdiF!=c=YFoaMz(Fvp!_IYCDwjRy9;cuDMh^uPG zY*4WmLhk8W9qi+PkdplL&i-ZTa3NM~CE6vGXG-?wS{c7JtmqkQy>j8slk)`4)UhtR znNeqJsBwAI$dFN5OEcfWv?|{nMBw{4)~MeZ?zeg0$<$7%j|dU`N48pswZk>Nlq-O7^T}`4 zNA5G;^pP>QX&9#0pqFc%5(he|Tc@U*Nm7T-&TTJW+L=@U#4#n=5H0Y5 zv0>PYt}+dnmkY5UrgqvlvAX*J+BqMoeO z_D!#f=*1NHO7Bk^UMOe`Z;?lDq}3I-!{nEH(MMsee|;fr*cs^5dqZcX`zuTyy9szj z2-Y%x!EY8=-K@{}jP$z1gMD)ObDKgpX~uhUd&P=v9X$9>(=B1r!K~TS&Tjz94BTWxRRn(mU1Qs5g6 zs6(yq%)|seL<@?6YM#x%gVrx8oWJ`CDt&cQE9aO;%zDQUvOS-DnUx6^aCcmaL(mhq zh4Hl&z2f*+@cZrVQd(X6Z97vws_JA&-@4v<(#8?5!tRkQ$VhYo{fJcWlAq&t-(wp# z=fBW=wDy;Ooowq*8Pg0~&1tkC=g77njapFqkQa$W!ZOI($$GL1=G@pDGx-yt-p?F8 z6#G>XrJwwAtRdOJrdte;o@ww*Yu~0tngCT6k7<|dD+|}=7xrBZeBZm3cA6GB?A?oH zW#Fr@lF1<~n`;4;_dKCbjs~^%%%K<~q#NjSeVZ+_9z+7R%)QQjhJ^7k$>1;Gp(LZY z3_LkRBVuE1Et!PQ{Wf{Fxeol3ZID`LRN1K8!`ZJMREdq| z8)>DP8@Zi5UGixV4Lf~6-za0k8{`>fZG9u_ z6%jxjZf2|Jo!Q1xAYaM%HI4VNf9ZrDP%p^EjX}YnUWCFZiOS84R|tpCwp?A zd&-bj>NI`%W#`o~ykRFodfNAy%D(YQW&g`UjFvui%||j-9W6DSWV2 z{rzZp0!;c(TTAfi=H|iMl)u}hN%n7W$YnTkvJsAubWo9Q+ovebA;@=5Xbg%1h3x_+ zucOM82y(^&66GNNkV)sX7XBneJf{(_lhggWW=x0ZZJ`+;+&>7$8H-TMmNl_iu+=0A zUi~Rk&79B>4L8i*o;gj41tt(ntU-hlFYHofAs)qs(0|Ic;e1A-k;X!?0mAnd3z6y57oG+mE$ zwE2hn@3!U1#Vmu$qLj~XNli5=-uOhsA}g}Q2TL{dxkq5C=v_9d@7wKS{lA&a%7%JH>B`q5iw;>v^eMmiF90hPX9DmP5 zVAK7AM1}Ub<-7-e?evY#k0oY8?0DZt8Y2Y*Oi+ZFTc$G8mn4MJx(j_SBm>nw`ts|2 zlnIVdbBma!zRIi zJ#%{ju~E+$3GFUckbJ9Gl>i*_D7)u|29~@E%&Qxhx(Q1L)K8M1K1?UE?vpaI`P%B2Q_uOyxzY zfMAvNw+6Txe?viC9(wY-)Ll~7um_Fm|RbHk6Ma8Aeg~ba2ugl>BWEBB;of;PD#(OaU|Hx#U5$g6)`m87}YyISG zeEe~Mi2+%;4FP*YOW%tn_*2d4#`5U&6P9N!wz6~2L}Q*tZP;i$woQrW1+LLL;zw!fY!nbf!rfX5XW4=e^GMI zW&fL#ZLjB+F?*~C);7e?3cop2CtqnofZ{AE_gz5Idy#}6;gA=7=k`H3oVXms-E`1R z)nLdRB#cb_u+Ro92)Pn*A{*hI4l0b&dbbI^;lD81HbNJ`Run3Oj7<0$m9PzK)$<=GQuI^@|f}-=4);d+cI69rg$J(g^G9RKhqi5zacpcN?X?u?fWLvb7Q+_`|GWdgB3arO7jidPr^PmPvHryT*6rRObmhX1fxkTzb_B;NTVf$3 z&ymx4j(Yf19;~kp292Qt*z2pB6By{jX diff --git a/e2e/autoscript-apps/src/authz-tree-basic-json/autoscript.ts b/e2e/autoscript-apps/src/authz-tree-basic-json/autoscript.ts deleted file mode 100644 index 65b0be6c1..000000000 --- a/e2e/autoscript-apps/src/authz-tree-basic-json/autoscript.ts +++ /dev/null @@ -1,138 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const igUrl = url.searchParams.get('igUrl'); // only use when testing against IG on different host - const resourceOrigin = url.searchParams.get('resourceOrigin') || 'http://localhost:9443/resource'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - middleware: [ - (req, action, next) => { - switch (action.type) { - case 'START_AUTHENTICATE': - if ( - action.payload.type === 'composite_advice' && - typeof action.payload.tree === 'string' - ) { - console.log('Starting authentication with composite advice'); - } - break; - case 'AUTHENTICATE': - if (action.payload.tree === '') { - console.log('Continuing authentication with composite advice'); - } - break; - } - next(); - }, - ], - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login successful.'); - document.body.innerHTML = '

Login successful

'; - return step; - } else { - throw new Error('Something went wrong.'); - } - }), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Retrieve the protected resource'); - return forgerock.HttpClient.request({ - url: `${igUrl ? igUrl : resourceOrigin + '/ig/authz-by-tree'}`, - init: { - method: 'GET', - credentials: 'include', - }, - authorization: { - handleStep: async (step) => { - console.log('IG resource requires additional authorization'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return Promise.resolve(step); - }, - }, - }); - }, - (step, response) => { - if (response.ok) { - console.log('Request to IG resource successfully responded'); - } else { - throw new Error('IG Tree Based Authorization was not successful'); - } - return step; - }, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful.'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authz-tree-basic-json/index.html b/e2e/autoscript-apps/src/authz-tree-basic-json/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authz-tree-basic-json/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authz-tree-basic-redirect/UsernamePassword.png b/e2e/autoscript-apps/src/authz-tree-basic-redirect/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY 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 diff --git a/e2e/autoscript-apps/src/authz-tree-basic-redirect/autoscript.ts b/e2e/autoscript-apps/src/authz-tree-basic-redirect/autoscript.ts deleted file mode 100644 index f35549fca..000000000 --- a/e2e/autoscript-apps/src/authz-tree-basic-redirect/autoscript.ts +++ /dev/null @@ -1,182 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const igUrl = url.searchParams.get('igUrl'); // only use when testing against IG on different host - const resourceOrigin = url.searchParams.get('resourceOrigin') || 'http://localhost:9443/resource'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - middleware: [ - (req, action, next) => { - switch (action.type) { - case 'START_AUTHENTICATE': - if ( - action.payload.type === 'composite_advice' && - typeof action.payload.tree === 'string' - ) { - console.log('Starting authentication with composite advice'); - } - break; - case 'AUTHENTICATE': - if (action.payload.tree === '') { - console.log('Continuing authentication with composite advice'); - } - break; - } - next(); - }, - ], - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login successful.'); - document.body.innerHTML = '

Login successful

'; - return step; - } else { - throw new Error('Something went wrong.'); - } - }), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Retrieve the protected resource'); - return forgerock.HttpClient.request({ - url: `${igUrl ? igUrl : resourceOrigin + '/ig/authz-by-tree'}`, - init: { - method: 'GET', - credentials: 'include', - }, - authorization: { - handleStep: async (step) => { - console.log('IG resource requires additional authorization'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return Promise.resolve(step); - }, - }, - }); - }, - (step, response) => { - if (response.ok) { - console.log('Request to IG resource successfully responded'); - } else { - throw new Error('IG Tree Based Authorization was not successful'); - } - return step; - }, - ), - rxDelay(delay), - mergeMap((step) => { - console.log('Logout before calling next resource'); - return forgerock.SessionManager.logout(); - }), - mergeMap(() => { - console.log('Re-authenticating to call next resource'); - return forgerock.FRAuth.next(); - }), - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Retrieve the protected resource'); - return forgerock.HttpClient.request({ - url: `${resourceOrigin}/rest/authz-by-tree`, - init: { - method: 'GET', - credentials: 'include', - }, - authorization: { - handleStep: async (step) => { - console.log('Rest resource requires additional authorization'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return Promise.resolve(step); - }, - }, - }); - }, - async (step, response) => { - const jsonResponse = await response.json(); - if (jsonResponse.message === 'Successfully retrieved resource!') { - console.log('Request to REST resource successfully responded'); - } else { - throw new Error('REST Tree Based Authorization was not successful'); - } - return step; - }, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful.'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authz-tree-basic-redirect/index.html b/e2e/autoscript-apps/src/authz-tree-basic-redirect/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authz-tree-basic-redirect/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authz-tree-oauth/UsernamePassword.png b/e2e/autoscript-apps/src/authz-tree-oauth/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY 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 diff --git a/e2e/autoscript-apps/src/authz-tree-oauth/autoscript.ts b/e2e/autoscript-apps/src/authz-tree-oauth/autoscript.ts deleted file mode 100644 index 7460ea184..000000000 --- a/e2e/autoscript-apps/src/authz-tree-oauth/autoscript.ts +++ /dev/null @@ -1,163 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl'); - const clientId = url.searchParams.get('clientId') || 'WebOAuthClient'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const igUrl = url.searchParams.get('igUrl'); // only use when testing against IG on different host - const resourceOrigin = url.searchParams.get('resourceOrigin') || 'http://localhost:9443/resource'; - const scope = url.searchParams.get('scope') || 'openid profile me.read'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - clientId, - redirectUri: `${url.origin}/_callback/`, - realmPath, - scope, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login successful.'); - document.body.innerHTML = '

Login successful

'; - return step; - } else { - throw new Error('Something went wrong.'); - } - }), - rxDelay(delay), - mergeMap((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } - console.log('Auth tree successfully completed'); - console.log('Get OAuth tokens'); - const tokens = forgerock.TokenManager.getTokens({ forceRenew: true }); - return tokens; - }), - rxDelay(delay), - mergeMap( - (tokens) => { - console.log('Retrieve the protected resource'); - return forgerock.HttpClient.request({ - url: `${igUrl ? igUrl : restUrl}/ig/authz-by-tree`, - init: { - method: 'GET', - credentials: 'include', - }, - authorization: { - handleStep: async (step) => { - console.log('IG resource requires additional authorization'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return Promise.resolve(step); - }, - }, - }); - }, - async (step, response) => { - const jsonResponse = await response.json(); - if (jsonResponse.message === 'Successfully retrieved resource!') { - console.log('Request to IG resource successfully responded'); - } else { - throw new Error('IG Transactional Authorization was not successful'); - } - return step; - }, - ), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Retrieve the protected resource'); - return forgerock.HttpClient.request({ - url: `${resourceOrigin}/rest/authz-by-tree`, - init: { - method: 'GET', - credentials: 'include', - }, - authorization: { - handleStep: async (step) => { - console.log('Rest resource requires additional authorization'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return Promise.resolve(step); - }, - }, - }); - }, - async (step, response) => { - const jsonResponse = await response.json(); - if (jsonResponse.message === 'Successfully retrieved resource!') { - console.log('Request to REST resource successfully responded'); - } else { - throw new Error('REST Transactional Authorization was not successful'); - } - return step; - }, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful.'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authz-tree-oauth/index.html b/e2e/autoscript-apps/src/authz-tree-oauth/index.html deleted file mode 100644 index c371c9150..000000000 --- a/e2e/autoscript-apps/src/authz-tree-oauth/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authz-txn-basic-json/UsernamePassword.png b/e2e/autoscript-apps/src/authz-txn-basic-json/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY 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 diff --git a/e2e/autoscript-apps/src/authz-txn-basic-json/autoscript.ts b/e2e/autoscript-apps/src/authz-txn-basic-json/autoscript.ts deleted file mode 100644 index b98a7b066..000000000 --- a/e2e/autoscript-apps/src/authz-txn-basic-json/autoscript.ts +++ /dev/null @@ -1,138 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const igUrl = url.searchParams.get('igUrl'); // only use when testing against IG on different host - const resourceOrigin = url.searchParams.get('resourceOrigin') || 'http://localhost:9443/resource'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - middleware: [ - (req, action, next) => { - switch (action.type) { - case 'START_AUTHENTICATE': - if ( - action.payload.type === 'composite_advice' && - typeof action.payload.tree === 'string' - ) { - console.log('Starting authentication with composite advice'); - } - break; - case 'AUTHENTICATE': - if (action.payload.tree === '') { - console.log('Continuing authentication with composite advice'); - } - break; - } - next(); - }, - ], - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login successful.'); - document.body.innerHTML = '

Login successful

'; - return step; - } else { - throw new Error('Something went wrong.'); - } - }), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Retrieve the protected resource'); - return forgerock.HttpClient.request({ - url: `${igUrl ? igUrl : resourceOrigin + '/ig/authz-by-txn'}`, - init: { - method: 'GET', - credentials: 'include', - }, - authorization: { - handleStep: async (step) => { - console.log('IG resource requires additional authorization'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return step; - }, - }, - }); - }, - async (step, response) => { - if (response.ok) { - console.log('Request to IG resource successfully responded'); - } else { - throw new Error('IG Transactional Authorization was not successful'); - } - return step; - }, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful.'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authz-txn-basic-json/index.html b/e2e/autoscript-apps/src/authz-txn-basic-json/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authz-txn-basic-json/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authz-txn-basic-redirect/UsernamePassword.png b/e2e/autoscript-apps/src/authz-txn-basic-redirect/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY 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 diff --git a/e2e/autoscript-apps/src/authz-txn-basic-redirect/autoscript.ts b/e2e/autoscript-apps/src/authz-txn-basic-redirect/autoscript.ts deleted file mode 100644 index bcb97952f..000000000 --- a/e2e/autoscript-apps/src/authz-txn-basic-redirect/autoscript.ts +++ /dev/null @@ -1,166 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const igUrl = url.searchParams.get('igUrl'); // only use when testing against IG on different host - const resourceOrigin = url.searchParams.get('resourceOrigin') || 'http://localhost:9443/resource'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - middleware: [ - (req, action, next) => { - switch (action.type) { - case 'START_AUTHENTICATE': - if ( - action.payload.type === 'composite_advice' && - typeof action.payload.tree === 'string' - ) { - console.log('Starting authentication with composite advice'); - } - break; - case 'AUTHENTICATE': - if (action.payload.tree === '') { - console.log('Continuing authentication with composite advice'); - } - break; - } - next(); - }, - ], - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login successful.'); - document.body.innerHTML = '

Login successful

'; - return step; - } else { - throw new Error('Something went wrong.'); - } - }), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Retrieve the protected resource'); - return forgerock.HttpClient.request({ - url: `${igUrl ? igUrl : resourceOrigin + '/ig/authz-by-txn'}`, - init: { - method: 'GET', - credentials: 'include', - }, - authorization: { - handleStep: async (step) => { - console.log('IG resource requires additional authorization'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return Promise.resolve(step); - }, - }, - }); - }, - async (step, response) => { - if (response.ok) { - console.log('Request to IG resource successfully responded'); - } else { - throw new Error('IG Transactional Authorization was not successful'); - } - return step; - }, - ), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Retrieve the protected resource'); - return forgerock.HttpClient.request({ - url: `${resourceOrigin}/rest/authz-by-txn`, - init: { - method: 'GET', - credentials: 'include', - }, - authorization: { - handleStep: async (step) => { - console.log('Rest resource requires additional authorization'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return Promise.resolve(step); - }, - }, - }); - }, - async (step, response) => { - if (response.ok) { - console.log('Request to REST resource successfully responded'); - } else { - throw new Error('REST Transactional Authorization was not successful'); - } - return step; - }, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful.'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authz-txn-basic-redirect/index.html b/e2e/autoscript-apps/src/authz-txn-basic-redirect/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/authz-txn-basic-redirect/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/authz-txn-oauth/UsernamePassword.png b/e2e/autoscript-apps/src/authz-txn-oauth/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z z3|<|U^?Amb{!UAn^K<#UJ8TR5rQ>I_?s+sZAplI_P6>fW6NosTaDd}TZ)PIC!}0y& zK0p@qta4EAbCMX18_Vr7dnB5CG=58CAYTKo3KmFkEv=Kyj877JPdYoI^_p)oIwrO}O>ZE8Dpy>>!m{eVw)? zwc4vklcTZ+%l*+Ld&*%=Fv-S*JXLmL)@q-i>8X8$v7$|bjGl?-Nfky12TbbxoQCl6 zA*^zCORE@PUY50i!w=q_Xm!7YqYhi7P3ifsc+NR zR*I({emMU5E8mR|fAr)yVZTqt@B{YH7I`^d z`I?@XI(?P~QcNuL89g-DX*IH8k~8k`Ukv_;w<-KGDWEeN!fZj4hIC~~3sBOMUmIr9 z#A_m9HKeu`C5)^c?2T@=o_o8sC8@l{Bbv<;4-TP?S32s&KyGad&+r{v(e!aN-}vw) zJPQm*f9B_Q;q#;ZorJyZ!wHKVo~%Hdz2(-m$cD@5=b%S?9!gms}K`9oiXDzm*ayeW8n8iy@6OU%B+sIOy#kiUW3@s^PXR3DC8| zLyrAu3C0Ndl2WyOsjo8WYh4Yx8#lEPVLgWi6Qux^qAEnL`sN4T;RVkzgoAUo9^p6h z8u4(%bw0fFZ2sci&&0zyF5!MR%>L*&@FOsI*?dkI&OZ6^?0m5^#~cEaqJ<0Q%O1H$ zyvjnhI=}F>Ds0bJs}DZ<*puXvAb&sGCyt-Dz&DMb z&AR8&hz8k4bi%y;05jq6v(Dk!^o~zFp8XrrYFRU)22WOmtYE9(Ag$H*PmLywa*f_O z5i1E3%|J;SF23J9s4XW3W44y^MRj@!ifq3WRF`3`kTilxVAM*8$w`xk`l+_L#L$|6 zfz?UH&!Gag_=XW!6qZ-Ln2@xXROisWfD%&sHBdKd3%MY{BrgGSNJ1>b37UbDwhFM@ zS&ti)k=jLJBhOyRdO)Q8;DT7J&)}P?4ZhO19-%;a+ z@HC)yDMw9K+Okuf3KEK&b;_IJ$>mY6taEvr3omQ0hHVo*5s22KBrS1GP8YjtGHGcl zYBJQUBy!~V#fTO1Nzs+ZMYoPyb}>FkBa3`_@eoK;ELA zox!;I<{!z1NP=WzdyL=i;P}nlInjRDfwJe+$^M(a8%G>;aI&l7pu?~Pj+s-Z$E2pVXcZihkF7@wfAA9y zpNSeCfdAl81U5`4usMSN=zlCoFu_2mM9^eX<;S!0A`jY58q)Gk-tf0!l*uz;4(FXT zc?l$Zfr#yZ2Ib3Pu&17WLfd~UQ(3)I`xR)L7HdyF@vJl=y|L>~yGVP2R!ex1_J;nE z7hcXh_hMbkqg&3`Dkr>4 z=8FEB?Y$*MJcmUWHHQ<|f_jqATyKuZAAKejmO&+mHIJL7dnzBbx5?yXz2GA_R2 z3vu<;x5mkzIxO9K(6dZ7mon36&^S=v+#dNx#<+PBXa@D&;TrYF3DK^FPiy1EIPJ7^ zWmhMyr4}1~l0R0j6Hm29OsJ8~qiFxp6FwGY^_d#kP4;y+M3+9>TIp9i#@De}x0ZpXGMBKKVP0_f)RpQU~YFbG9DD!#Q1=N7P7m%L-CzEY{5z^dpJANtsd4 ztqv><2G@vpv~X2lTCrkvS^(B+%q+^hr%{XiBi`}h`1Ix9il2Yx)6qDvD2|dA@)ZXk z8bw*86l5>kUuqLBH6clnQY${p3qQYq@a}l<;RoV^^RI}loAYtg&A*np&A-Rq`dsfX z?zlV7Ip>m?I<646-tZrB+iefV>@_Rnw|D<0&cEbxnSb@gcfa|w`2P2PARF;#V$8&8 z@!8KED!Uj(5|>;n_G_;D0`THv67O z69k`5W*;VTXMOPA zlX|P(S&3-NS3+M|laD{gmuzyh%0~rRW+EJ!=%{P;>npMmlfbI1CG=>b(?C*W&{7#C z37WdtM4AQ(kP-@5tvBkvKt5B~+q*8E0IqM~UP=iwy4bwPl|L#!+cuv0m+G&E;WG%) zK7I@^#PRAD9Js@w=`oH8BW+m|C)*#uxP!7FNv&1avTzDGl_fZn`8pYA7Z|XFn>N{J zP8dHn3DT@?ja$mHBaHO8&4Eiq(155xHErLBR@(Y%ZSK^Tp=MifAw=hezZ%*uZSmyk zQ{s{9e-g(Y_u1&2v_==gzaoBe%g^G(FCH4lzwhWc^YfpVhWU3o{4^^TYen4LJ}y4` zi4)@TuU@9lOx9??ZI0tl`GkZT*~PKt$p!P$!j98{r#cQcNVG>mz4!jFkJmhSZ#=xB zB7v(ICw}_mIQ8=D^^R`2ej=g4X9}^^WzUQdJ;-r&49+L`dqGODM(`U0dpDf{R=tbVzbEC zq=ZB9tnDf-4SX*2bwapXa{8PRd*Ij;2EEJEO zamK~*xi5Yo)^McSDbq3W6`ztweg3?pNOx0`AVU2vFwkhi=WSo*?WwS zU;gIyxbExURNES3eEl|Y{D+T?S+lo^v(CIQ&c5V~nESv_q-DGtZIFo1bxh~ zH0n!`Ru`5jM6(vvm?_j~9%`LBJFdL?vREc%!0Ng8$4`HBdwlOFcgB~_{!r>~-7>|{ zG^D!84pI5_Y7FQtt&Q1x?jBoD?ugEsQheb3hpX=_k6-`lM{)4MhwE_YL}}jp;;kP% zDpm|N#yt;SC!ug&Tzl2GqiI54JpS;i=*&%vSMPs->@#nTGtWFL{_*v%jt~FSJ7UsS zQ)Bnt4~fhF`6`+6+!u$vVRs!a+)g`hEJmd~>Fd_vAKAC-EvLg-6`7G$aatW;z$G*T zm&5Fc=s)$fART0b zP%`l|?+`5!TOEo{WnxnxE(@=QRP*E6jNowcNnxTJKJRwqGdez6Kjsf?frtv6AAC`g zHZf@irBbwUJ>MYKJRwDeCNT++Y;$4kOB(EN*cPI5Ga2!v5FGhd2MifCE90UjWQmF? zoPBHzg*oNPB!;b3zl7ArCT&@1!Y-+tI(>eR6U`XIBVcM%qnfXZsZp32mcT5-^KN{& zUHDl%@Qx#leDKKwI)IykG!O&*XeT)!P~FnmTGs}FpOvzKVcVJ!x>Lxb zx8GjEsk*ubF)oUJA(y4i#^SsvxP<2#&2mE`qU3F@N{3^&-S>4mjcsYw z{@Pa`5PR*lkM8S{=1bdQwe1{8V!K`i3V-zyrr&?;vD!_ODS)==LsU4Lp&=X zd>Qa=(5o+LdJDZ(WuNr{VKNf;VOw3h4E=`=C@Yeaw~O|yg@giD^y z`v{)A6PM1}IOpIaq?blECxvh~N8FFPyx8v5hZi@v5qM{DB~pF2H1bMj?z z=9wqQRuaZ8xZnaUGCmnIW^NbvKfEZeyY4~VE4y>_fzwtoi!{COKmPbQ^}K(MpWks; zv=w^djYl372k(DOOqsM@eClIgjB75sFV4U4c+Hs$rG=TH7^CV%dT@@ue?c66c(LwoG1XoxJoZ9bFuw^#OVzxuD6;;l!$KX!VBP0v!%RGMU+0nkvTaZS9k`uSK{kvduB z&ff8Wc;~x55QUDpaqw$2W)A8$lI`;Gl`p+2`sUAxM}Gg~IP2{1#Az}kI_jMtk3$bX zI-Z&TeEi!tz8akqhvRc+zf}#>;jsp3o<-MT+1PSuEr-on#${{1^KATipu}fj;>W;b zybfyM;)^koa3v#@)P4y8q^9pq24$~ z>C~(~*+yf@cgGKwJQXd|?u+LtbK=vV{fKZOVL)474H$V#KtNU=l4e7! zExL)mj8AG8Cxm5^riotLm=Z>?i>=evWKP0lMO%3qt7ELRV}qK}n#4P~L7l`GtftZ& z1#Lms*6WKw1F}bxHlRuOh}K~UF6ppchT>^_)b%_);tQ>{RiG9(@>Dg}DC^xz!r%JT zG~>V1hwN*mIps5iwW4W@PO~0<@S9_MeT#ju4D_E^-K`V#%`roVA12i5?n((beKNJE zkzsrKbfzjuzVu6Y0Um_+`0?&C%_sD4pSA`DFT&S`Gr=}BHl=>+{_G}@Hv%Ma(8};` zpJ(#seLe3>aBLFYxW}}&hii|D(XE4N^tmCe5YyL-)Xj@p2=zBl6vP1APtAJnFXSiz}OP5e9UGAqVOm}=I7uA}+q zx@UH|ga-*-2fi+5?AR8Ai=K|b+yec5Uh}199L%2gUdQ;}4>fv~C&?_t|%^Xl^aXn9lJ@n9;gB+9Y_g0Nk@F(-qmq>;4Xvt0Y0>#NFIg}&UI?= zD2pL{?&oDOHCA6Wqc0E_GY)*pWO1&Z6iZ~=h{;9u?$@faq9i!qY(V zG7kIIYmDNyh5_;J*T4R+aqJ0)tG}*|uej#hKaaik-!F1wyW+pDzcSWL zdSmRe%XYDP$$ZUg+97DGi{IUOOY|>ojr$*59*=hI9;bYG|Cl)L!1&F555$vC&5aBG z?I&^aXWk#X?>swdk9=F)_^l;6Xe0cy(o0Q8qdPYCgAgCa zfPfGKXU1?mn8Ji5jCY6%;aSBIMjnL09Ek}Phlv}9%?x}+N7NK3Mioq*k4w9;OUy}N zp=9hG5eoP`-;e}OGg3}=h-`JG0YZbVj+`eL2I=q`+gx1j!a&UXpyIMEfa9Xybhn&@ z47SiQAkV9UeOl=wG_cjy-^XjYH z9ch85w934CY43)C6#;ud0vfyWtR~0mU`?~MVG9>7)F3WRpE{FJm$ryG1(&4{Ww=ml{u6hk< zB9ZMLwpO&APhg_Z&>SWqM|cr#>SC)X^hn6l!K|DFnjy7$l_vlD=8lbbziTj_fB5#e z`pSQg4;^zt{L}vX#PW+TPj?xX#3y-e=gKlIO5JPYl8dg79cH{XUZ+o5^p`^tr8x!Gol*^ zmakZ(J5jZ0(m0_hRvCy!(t16ov7)t2bQTAfmG{p3y*19>?dW)N!6WhW+kX;2yXL!b z!Fi|0N~NjQmgs=S!`>cgv1QZTpu<~yM_niKw8++ET;HyBqILtcE7B-l8(RHw@m?5R}rx&%_};d`=vE zZn8+@uEtj2gi$VaL0IJG2egZwot-gl+O(7&Ud1tfqcDJf;bp$!l;$wugSARyOPdz( z&C*or5-p7**lDXU?Epy7(tA&L{WKlh&a%9YYQAAg$;dnr%t z&b;>n?~I*y-y>Ep9~*TyoD-*hSej2XA#D>irnSXx({_!+UOgwie9qCaVsKW>-eFRl za?&xf<*ki39`rz5eENq~-;S6*ZFYR|*hBR}1Z}s!XKtK%(J?XD-Kj;+^!VJV|0J8& zb@BVpT^OG@@jJ0jcsM`{iP!D7ceLx;uPZJ%J1Hyb>b8%MoOGNNCY-WXyVTZN4XTWt zL$Vjoi@(7kc!hT0COfx-V;peCV{lD8;+VF)LnD5szxjdupri8#|D+>5VLao=cgsDG z)q{ST1Xp0qKln#yCRf8tqI>x;@XNfoKpEpD_M8z2W5Pj%WrTF3vEB zoYE^i30;EGK-+ngC%nHo;anGA^LtNrui0?L$e~sGD z_B7f~4y+I#xE*;pKf-7if}@@D%4_9E2O>TBnz%ftG$Z&%(`skjkVjs2chn7B5>Cf* zy5b1Voz6aa1E?Y_Nwyb{Yk@lt2 z%t+~KFSxUF`szE=qxdv~bK-7jU$uM$YrAZEf~jBj%M4k#xFx~i1G_(l|F!Y^-}8qL z!G<_ZlXrDnnz~UhG3gCC%!%abwfheU>g;B4JV&cB@ST8Y7BoM}MD05=sAqT!|u0 z4VrhxDXjriSzT;ButpPfuO{v_n#gr^kG{Zj#o5;iFJoi7>C@w$hn|r3Wp?bc>x`H) z|EcI*r?1$nA8}PqUbbQL7d{o+Hh1V=zUO2A59}2awvw&nJwMX~FHN}wT<(Bmxmqt% z1`bMGbN#hC(SK|-cQ(b+k@KZ+&?I-F9Jl9E@~c-cJQ9N9*o+(r^Yi6 zJ{vs}ZpZ5$(uGegh0rb_X4L)3&k}0bCs?sXr#~Fe}bH@0{q9tl1+?dO=riwd;x`_-*Rs zZFD#B|J7kYEx1~=>mq@zQJTvdX-tlO_j}`AI(glvYjpB5(HYw&fwa^WANt_2am@eu zs7#nNCWx=vG-uUFV|>IRN5*S)^FU6Qg@d0KmBB^uU%LDVfby#kw1>OJd+Q<(Qaeuopy9O(i=uTypuomvLMDYZ2(4FakMwvZZjff z6A!rKk-yWWK>eW%|H$9?BW?CaI)22(k-zg6&C?)E-3W8L9hdk#yH325w|$=7c84e6 zNW7N|o~}W-8Sm>a@Fr|9e>~m+<-HD9D}bNc1Ok|;qUV??~&ulj=czB}CP6$+m0*(3*`KJ1!lJ$?#XN#^gnISD$RSQ)t_UUxJOca_+@rBdBAZc2cIS$ptAqO56Z~Mo$#+V89vCWKa zbXee~xbL3FqS(?c0b$#?;rbin{EJVF{SV$FuDIfoIN_xC#p`vL<(%_AFY||GvFq+T z1h=3(_w2kFxA%6M@VN-PB~H?**e_rHwK(x4ZU1VGoRbahd*Ah`*nYd2>Y@WNS=Z)V ze9l>M_Jtph6HhrluDI%3@r|n=jkdb2;)LTqrbA-7xPQTlm^7|M8sxmLq3V>KGl88ryF>B|iAkvtsvs zx0S#=KTbXQ({b)u7f2wMfKiwlpZwS-)$R^yjh4g}Up_TzN)j4$PvoheKTR4mUF{={ zdWXLEe$27Q$AuSuJ-+e%6&ha#;(f=QD9vQ6wpY2XsSq=^-7DVqwvM>uvP-lJG*|M@ z+BoOJZ%I&;fF(hvRvKZh|HHPWg(>C?^3FD%Dk=Vw0G>`)burOBNzL0`R+;JI?;s+co(js(4ibg}y@XYZ@4%f^ex5lA&>D8(>W zO>zH|wiD{K7^;_DeY19EM3y9=Ve72c$ef~CLVb(uDm5Q!wZskzy5xcmC33H0LAx&X z%1687qN(U1+_Nm>(sl$bt)-+PR2tb`j@35!kiNL2NA)qxDs&i6LTQt<|6E?rz8|fu zhz<=hy=al}Imkt%a-fv2$#9(>pGXCV?Bwy$4W6ML_yup^2OsBfo*j-)8h)moE$rO{k#SK=iw(ORlVrAp+kDx2&B5Rn$U!?E#S$=oej772j`hd2-ohs_=W0BO=zf_R9I2As4@mMn=KcGw}E&UBtB;S2n6-OK<)a~M8#FwA}y z?oOU<3vlA{BOHN@Hd7xAq#u9$@w5s}X~dUkMjV&H1)DH%ha-;hh;KOIE+^%qxa2`u zbRNRoe&YGrYI*V|KH)g>#j&koA%HOOI&a>**l)l6Ql8}H@`z6!gl)_L!@Znv>JQ%B zR_H~2=;+4l%UQpd8$X*WAKcw>#~q0u!52UH3(X$5vj&oI+-NvBCms$Q!?iwxib!zgYj|dWTh6LO zLHU+3=+kWvJ+gZqEcHucvo30Na<;WFPIituti@fdeVRCRA6|p(0Q>cc%YlCNv4Rc~ z>4NZfUCC3U&&~C!?EJ9C5Phwupig-Y_crT-cWrm``9p~e&H6-UjkM?m9Z(PkWTvq~ zW2oxaCmTs^Ll-gR7Vh$*b5TM?ZDFNwT(9rKYez@<6!JQeEt}tbgLJ3E3sf)NW!h6K zZK&ewOI(-=^va&MMRvrMfwi(3uho{guJ~z^AXAHl#Lk< z+xZpoJlgeI(URRSt&UO~hcHV}mm~>S)Nw~-LGulEk_eAz+lRGNQ%)Lt;YEus?njl{ zS#%%CL*`!vX*RJj&kak+muSdFvGIe(@U9BK9h(VnhD3o>ZM&f3&JW>tnu<@0j zK0Byzc5~SMVHaaKnezyz;>jV^A6sN_KwrM|&O6hb4*u4UKiaKh@tPffppW6kt!V{* zz$f!-HViuQGYw525axJ1&K;F-nB#>U@f>$_ywTyVn|<=6&P--7BTS3nNZqI}FzV}g_@wnD znE;tTS^SJH1DNZB@3{EH^)HiMdUTr6;k*Oe7@Rzv@91)}`4~o+>T8DA9M^t|koiM+mPa-g&tc|6;yaCDrk`=> zILS}tsSjvkWg?ZhCap+O7qL&(HehSapSMs~%&gT{P8zf&xOL3hPTwkLTT(MC-w$R2 ztzL-DPKJa_X)p)5cU3vnXe+O*iCVkPx~iu`+mbagUY{D}^7rAPT3z3yiC6Y~+`KTX z6RD)fj!h~ZO`JL*u5IG71TcmGG%SO<7A)PpsI9{!gh@-(p|}HV-OAoiomgAAx=Koi zB9w^)&^4Mgb)}JnhauUJ6?Kgghn{+62ie*n0TnG1IwDQ36$z^K`qX5T4&@;T6x2R7 zO-^l)swqF%u6nAjZCdC`K&TZ>xr#|9a+>_<9});8)V8(ht00nZ`BDw`+yi{lu6A1b zRBNlWf^7TeBm_f~7PW0i6Ma#dvO1Z=Ol)t`*7+J85~_}Q5&_jFX_-s1pOpqmn~6H` zqcj8hOrnHKp+tv1>Z3=)b6s7lzP~&eE$#Y(iFmF~^(pDjOjT6E1E|?BPb89$`UC$k z*1`wG&HkvX9q|&cWwLWz$1$HdoUxs8#7cx^%a$b@aRkTtk39eYKmbWZK~$LO)2Amv zg*3$Rcu!uglk>GtIC-0o+2Y0?l6P$5`7|c?6^kJH$t*zv7B_itA1vG3m|}3P90v^9 z@`a9ktO8*S2X6}zT2P6P#XH2KAFG$7tJem#FhZFjSuttr2Zp*wt|;Ty0hI_(h+cdu zvk3C_Uj1CB>CF69HV_))-MXF zeo_djLB=z+qv z?g@a2-kp#tjP6LpBTkl~c&1|_oFN#D88b#|{gwJ;)0|`*Vn%ab8=6*qBE22;ah)8N zP46&#!Z#M*amF!;pAn3h-W+EPzG@v9~k8u z#=GNKsAlqK^+!0)WoPq9fRR7hHalQLqE2r!B%u-I!Zn6S#whZ8YQk4(jcg|YZ}*g z;3aeES;8Q~m^3EZxKA1>>r3%#Lnv)PxR@@pLJkyaOZJp}$Z=c#N ztrRj#IzX21NL!gYEhZ^i+ojx^K&v6j0bhF%9}Qkg75 zl7^2`)IePY#uwJKEYbpyEpBm{P{t=H#gWQGm{p#%OVnZwqOuS=F}DJ*N~1d_`P^pp z`{IOa0U<$FXr==vAyJ)xM}6T-!lo8K^dG)hmOeH?|54t2-j@Q($`j$YPCU%lnppgB z&m#`JfF~^aeJ8Oz4i#qra2=SaB{%AM49K&BI9QdYS|5I>qz>oIgP^;5E zco4h*dm;C?Q2!UI8{z+x^>bOqr}@XPk*S+>y`^!DEXRew1 zcLivTG52(R9f-4cdF6#2&v8GVvdIi(Tpvw(aphGTA?s>R=lp;C60qwR0q~JX?Z1zD z@=MLsCVSOIfYiU1MY4wNGKC=j_|L-4-m8ekpb86>1%6hL}y?)K) z!!=jlPciRx6t7<3z8cznHMA`3-WM*zJ0TaovhTjR5ViV`Z{`!)fWSe!cu(S|csa^fmLq>miI{nlHV&BUV)^iv6N*nz?TxR>+oYy3?MJ1GZ9s9($4Re&%XjUc9N^ z&p34mUprF%0(K*ci2Rd1G>1nHf;c>8?o1ss&DtZAc9XQiW=(yjz3kH7uQAEvzhgM< zXtT#0Mk*ze=t_(J@sZ)zBI5extKBMhR{gk?7wpG|@BMZB<}Bz^B;j{^MDD4)^+;~) zb&bi)i=6qN_6m!Wq%3s(+|=dTvX2>NFWFoLJp7Qb7-5~x*dqitEM8tpTs+6hs` zg|9rBhQygZkCmesfD4x^Du1gM+`zbXbbNs#L}dr`PH3(;(^scfnSupH4=N3MH~Gh6 z@Szg=$bJEdRxc;6U4@+HdIsFCl*HJyLLMAme;Gcy-iOpHg3F{|pu-vvb= z!kz{$43*eUwvx^luVQNx^m?Tnq0?KQ9?oFuaLwS`8dO4fy>j_dzY&}w?eYi#7tdg5v!4nv>_BY-$9q<0;4zK2kgq2?vw0ujnzpygzd5-q6=GnN<)Cq|2 zZS%ed6-YY}UuzZ5_7E=z9fgI|1}>kh1sJ$lnb@EOq`HQte8L41qZVW2sA3dG+wLon zs9GJpC>Kkw7@)?R{ZVOQw0)0+p(RWJ_W37IRIp|Iw_n6^39q-KJFZ3=Zypqfsq0%@ zHrMpOQJ@&`&}n225EmBbB_Hc0=<-H1bJ)ot_Nw$Jdld?vFO$kGjw!p>dz>{aIa^0u za}-H<2ZOn9p}lkN-|9NA^XeTwR8NHQx>CKmOJj~2CuQ-)xiQxLm$Hl-haGkTg7w4V zO+hQpvkii?-9u3fP8JVADR{a3cGOIovmr{B^1BqgdQ>(5_XOnVBpuB$NHoZBM!w{R zaC&O9KWdFq2(!FWF>sj+5*)0(l^wyUKvQ_Rai=@xfK__&IX72Ov;-Xcp4P`M!zgpz zQ?QtUhBdsx3~W_NqidV(S328{YjDwD%YRD*trI>jn=6xY(oC?}RI@N0R3&0-+<6Qv zVb!!aATGP;#PgVCj34q>F^v+uyc6OfZL7Pr5rAbtjnd_@PO-cBQw&Fd+kwPXR7WuC z^+{E6o19Y0v-Z-m>rkhS6P1Q6HCADhs#?US%V0$oxB{}ufRm1Sm)UwqIz4#qTh?W_n>6mw@tV9p=oj19o<3SzcsmR{_FIG?I+lci3d45OU8TMllj#BdYGJO zZ)$!T>LodsCrj{Y+QmM$n|OwP{-r7HevT2qNtL@o3fS&}&HE6@eLCy0SFi5=Peqbp zlmn^UQGUl9>Sg0GjK1?uAYx^;hg*NW6HE0;$;bSbK>mB5t9YW|#s(R2~#mD%VtQH{zz9!4}b9Qi6>~Z0rI32Sr?}d}s z-&%Ha3PejGS0d9dviX+jTECx3T77Zy34yc=_d7puQ~tM3B1mzrUC(w{nj>)cJ&eUwoi^9i`_&TLF2Qs#o4uj^GoGX}m(5ci-8RZ4o`Y7(VdZz$}g z+J~ub`T!w>tu8&d9bBTX@q}6(T5IjZ6cG{`Q zlC7IM!LGxqM7O7EzcQhDX;^)+eRy9qC(UF}e0R>{%$#E@vdu4=5db?`mJ1h=zfejQ zZQ#%>xd^kfx==1Yzysg=2oQ;o%Su;~>3`XcOtZTfe=?<{oL6mKuU5O%^kt~4b}e5N zae;Dod^CimZ?iTzWkMT;fw7upaDqfoQ@B2r}ujf$vp(lfy*S(ENqmaNL#QNoRgR=k{R_grG0Vr2jtIlD#-%h*kVgpIb?sRnu4muZFI zUU}XmNpZR1?4Yhil;P7#t0g%=m%lUZA^$K8)U~y`F zPWtx2gt9ACEawSBKNCd$Ley@T>uVWFNcpD#6Xek@rMzja!~06gvU^s9dv5TcWPQJE zP>-;;l#B22NT+dVcNS2#glUJVl`%megW#wVh3fyLfu3>B2Q(me{DfRu$t;n5^pIzO z^@zFc>nLn=waYEmX|m(#v;ORr1DCza1G_?6Eo}fN@Xmqc+8?l}dJ;~p9fcst3o)=~ znM4VNo)~c2?aBnAx@06~vbWhIeQcW)34Gj}Sl|DDj}#_TBkH!R>M?gGuc^xQ2)q&X zI&feOf?u?=RPc?lbXS{%9$ZxLG!}AejaAu@O;9^e=XU~Iybif!*D8S-j7SgNN*+6Y z`23GtAKt8wV|k8pPQ|R*9W)l}wq+0%UB!=1#ndEY_&v>~qkJ<^YctSkN}8bOgdITd zvTXn5b8u=FCztCYCZ1$8?@4VV&@M9Cisid$H8vNEUnFUxXAWYhMli}{CI3H)O0UD~ z+mk-1^x1XT@!~|ZLp zA5S9VL6Er zYS2J^Hp71rVc_c~_Yh<$^CJUSq=_-gKXmG*#+|F2^VQjJA#r?0&8e_Qt3Y3w2)HVq zix(5DVRO}1#j;%%U5o2Q9q2M<7zoM@(yQ4P$)xb|U7@7`1BYuMbkXL`Dk&=v%IX&g6hwuR!8G>-Iyq zsh`&M}KiQPGN9g^Ygl(wD)$YsQiJJSvk?eKDnO^=xy01@1pu8m{@;$CfF6 zh*+$*)8QP|CN(_gc`Ut00&3A;ZGvKLpVSIFDf#=kp9AYl2CX@(?|5 z{y;|D@o6TxU(uFjp`P~$MBiE^hNbPQ=C}@CTz7Q7Cv#8hosfW5d%Z5VcF0xK2Kz;@ zlo&&bj8yud=TTeb{Tm<#`gq(T&d`Re#($Q83p9#ObvwxI5jwV(1rNv{N}rt-P;uX>v=<` z-TQIS(Zt;=n}dfwFUAbb^bhsv*plHE{H;x0?0N`R4L5Ue1-A|imFAYk(Q%MSOHyoK@mz znq{l8q?HjX>d@eonnA2j2|zcuXl@iB^^hNQdc4gZVBM}^r9wSf#3WzYm-mBl>F>1! zoatS$EbEuLxon!quC`6&ZL1MT7EW!xmXCDDIXP`i$~Qpg*`iwGZtSxpv_w-4kEwL4 z4X;}W`8J!JcC5LN&7H^$6O{GE-~3bFQWC%&lZlV->O# zQ-`_WpWuMc&;Cj#<3MwE9!yeV)b=mhUQ?r-orX33Lrc#m+vl*X{~E4V>|!JonBc7r{;kHfbZ$^N+&)hiV|6RpXt*W58Wa8tUd}wd zr9j-FF`JYWsU#KH>?{v#+5X`<#G%Cxzy@0NL3{!;&A8 zfxh%njrPsECNo%N6tJ&=>SAU))k0#qSg^q^DFE>24Bt18 zx;>T%A$FnIEzOdR?GV3zD>XdOikewy*A;idY@?6MH*LRh{jRJ%>*SZSWKgwDYiceiYOiW*CmdjE>$doDQ~g^>3H_HwlQZ+O$B^pa z*4l0JAh+n8G?L=i!lEzF3GT@kotVto{wU+EWw1aH&(1cF9BgIhk%WMNfbb#f;gh`_ zff2QeB08%1HSQ5?Pj|0<>|Y2Qwt;`C`0#Z7nG= z@gC=^p}wm1U8~0zr=8wY2Qw$tF#E4iB|M}mY0uR}NV!u#2fiNKb&D14^cgsvuvycn z(&DnOh~PVrMoX~siB2a~iD;7g6J^e}g84b2dHDOPwK5*YLM#e|mz0sCY0oqUNJVI~ zG(6}zplUI$0-eeh)yX{GHaCA8oW_Cl#P?*qm-OVtAKwOo_+uG|aan_ju;2 z+hu^h(aiTaAko!LyDgGL==WF^P72}X*M#%*P?b#6Ge)xs}cf-gp6ZgUCr{Em2mbx*Tu`9$s@T?}zbD2& zX+CMcA%y$JNQtExTMF}Y9y1+?5~N$3jiy_^eRdjOpe&`SHq&ASBW7x{8@3rIngi=h zUkj$g<}~t4ipG|NG>_r$JDXi($9tI5Ppsfpb8T`A^y!_gSLUI^92{;7q)JdPFbiPD zkU~g6p|7jq6=f9&&7C(Fcb*FYasLS0{4JPo`o995>;ysqv(Hg|vpI#%8_}Te{v2MX zccQH_INccXl|Gxpx^n<+?2jANE(IpcpS;$N6; z-NZhJB-UP%!spG77F^05)K*Q7Mgi$_kC@<)vmSEX#e=quDIH&I@}F-nWU=*_OpZLP zo%S{^GHw(*4n{D-Zfj9-2PPe4^U$tfjN}}k#l2v_`152rh$Ndx$)?3^Enrz?IEDuthsM;h``^YsHbSi{mjFqwt>*l%ktW* zOcV5heMU5W_E3Ar$6NtKHBBTjItuuOSqcSM7dLn_Jti^D1;ZxrT!dntw3RI*N$c`U zODHgd_7pw5;+D255*zI?)9o6_1bF4VP@*gNp~FpfYG`+P?=iiWXCjl8;&(=(@9U+ z%Y6vHAUJ<>uv&9=4Fjdy1_)2X+b+9RzJ0X-w zptqo`DP^!cp1H;*I~=?T6XUTAtp7Rk zhVKIq1`S>ObcyqE&q`io9h38RoY=ZI{dC`jWwoW#}rmZmF4^*;^gTP|jsd zxX|Uh5;s*Ej0N-e&$4A^(~M~;oJ5furjT(~C4%PfMHB$&Vt9bw1BY|p4P)pZq56{= z?V^?sC0s*6>anvG)6Zx9KX-+mhj7L+3F`53w#ymPj)rx$HRT*Ly(dgS)Y@%$7?Q}E z0cAK8w-QCmt$ButJQm|@l8=%U_dRk?UuGWoQh?6z$PjBJ-#M=$d$Z^XuqU(cnNQzY zg{Pd%Ho8>hC9O%SnAA&r0^F^5t-V|gTDt`s`)yYf^KdK~BbrIr@jdH(F-=-KNB?WM zSSnvjg0f|lqxuNl24d)TODJ1+XXJpErft4zx-z@MWFilr>@qVTy((~CO1p16V(d7$ zk=65CxTNSVdGl`^$M55;;36-nzxzwi6nxhvWYwBMT)jmMyh6y@&D#opt( zuk3?%Wv02|)W_47j;kwY>d@m6!Y4}eF|zy;Ei zTeHRB6zkVqPq=(N=$;Eq>AOj5@}DI*Aq6VPPpO!Ly+0^@Hf+h!Wu$uQBrNSS3%38r z2D$r)jmun`PdeZelwnsY66%*O=sAV_AiZ0k`CWK3Gk1RewpR0@XTQJ_b6NZGH{}|D zN*;?XYY>E7qCdIn8oaOcd*f>HnN^z1H#4WN){}3K4-Ttq4aYynH+8JiT@Hk8Ypx*s zu)w4Do#^QLiTb*w1mhvAZ{Y&s-g6-bd}uPMr%!q6csx*zcpL+h+ED^a(5|M}pf1Dl z3Akv$-w0?;D!|AY;JcIEa+?56KL4adv6QoF?t5)jb|X3qXFWI527Hn@3z=iYW-qIW zUw9AnG$-A1aXjZ3LarzdJ-dY%I%gV)_25e&=kcJS^2rR2!JJKAA*iUY$4&qVqIQ#t z%NP++oLTcG|8aq%Ot^5I#C5j0nVfnBH&vD%C{tEmX$@{vDkb1VKJ;EPwjkQFOM>+pc@3MtdwCMycs zSj%YMWOc~@crXrlSKJAh9ClX~<_r<)^N31fDn)!i`o@%LS&GZq%eIy4o*~ed?t8>$RQ2k#$Y&v zE$Slly_id5Ykg@*yE5)Vec6DUZ+Omtn}T_XO8)%QsK-lgwhT>O91wOs?ssOB=)RRS z&SnsOW(?@%J5Gc)xVbt)yeCU<=PO8SDKK5}X~!nJ-Q&K|#52wo&Q40`d_K>l4O*^z zBBPmvE5;v3!#ua-#enP$CN4ihK0XnziEeR{N6Q3}UkE)L2d$~F$g`BOuW6~$%gKG! z2dv`Q!AMgEzXF*k;ddO;p1mv?b$ux0+A}sdX$uc}CYs~&E=ZC(>2)sCeJDO37%FoU zWW-M9@f%7VE=^GB-}IF<&*&#C!=^5$%ljPT4Niai_g6XD-1v}p4RpaJ?+g~U)ErtR zTqs<1A0}q2PemclpIVqF)6YYpK%xieehB}emuqgM$Ly2Rm4wZ+#DTNl4{4E*I5rxd zh=}C2xov+5XRnvJihNaQ694=+ob@&0bIZ%B5!Jh~0+Y8Q@B2k?zxx`G_uAqe(Tz|# zUURB-iF7Dwkt>E&2yHLMYJZt`zuU{EckAxGN>~5LhD$foRxV|=JE$E~7wt7G5J=5% z%HJu&H>+ltOtH?l-LM@cUgixL1&TBDXS4xc8;lGWz<0?OMvO&=kkjG>b`c&D@AcSQ&Xt}w*7Ey+qiF*kn{hYQPR$4l(}xN z^Izv+%cTGjD*s9S=1YxMR*zH%yy1n+DIb2eJII}T<1M!4+OAM5LaAeLockE1DRn_& zk&y`GQ%!#@o1oHsCQ=-9VGGg#4OvS&a~ieusj3N-C3QNun-#P;|D4mB;EuQq$Rwo+ z^!!qOy}L-1hJ$&m z;IF>5VQPG5tD~)hZk&VVV9^^d-66ccg{U2ngJ+plln?$!Fa4>_{&KDvC3%FgSs+D9 z(o5OK!({(E&*VBkXOUoY`^S^Ekp_to=>njHK4OPYFrd|AidGSK6D6O9X!E5w`#Ja}!1 zUN_01c^O3Z=SSqZua70$A^g7^n1Yvj1FmuB{4$dL!fp6Qrq?AkL`S4Bpf9J~Bq`$K zLBPHwD(C(aO0QpV){oLt((*+9gJRJFzTx}_*FpQMEI$qimDbMsw02}lOZv;q`Hw7f z+Iv@k8AnO*EjHVr?d}-ByyAA6ilYzM%~UG)5`!I6QweM0KZ!pe`o_Kh5Is$Kzmp-^ z!f)hb#%a84?1t+o(BYc6TngQs^4$=JN(=sCeNYMUJuCi^9td)ibPCmWdgh zj2c2wB6G+v_Py9zuW`AtADiec1>yZ#%&pb1fUFRe8A>_;PCWsn2h6uA+fE-2Sf!mT zk^$hFTP{3vOartZ|C6?2l?}Lqc>ar@Xb!IhnCZ*$$ET+mg@p4YD0?u?@<9A-RefVL zk1wLkT26py7v~N#@0>ZnZHrPrTU zVqFW0c2o4z8=_P=<^L#R#} z9OV~f;x0;j`qTbnE z)&v*YT)-H!^Aqu_Z&Dyv=1NobFQltHF1zVR-oZsXuTbrt8vCKbp0ucRb&UD7r>&xI zIW5be-|zoKX4zWkKd@zRUO`=s)hM3n7hPd70_hW0mn(A*qD$m7TOY-nw=>H|t${_9 zyzCzJGNtT&=^sun{Hda7FM2(shmZbT;X!Q5s~X!Ufl9GD6R!&^@?$QRFZ`NCjx^er z>T(tW3L>pT5m#aS>~hDc3WQby>}c>yOISawFPfER0&1GC4s4GQXBt)H<)tlN6c0*M z^qmF_rrXAu({f|@Js|@;W{Yf5#x2`$2>Osj=I&m*)A{yL)6|l{;kJ@G%l%K*rweSh zAAai2}&1pNtsTSkdqDN(6vE2M)A~D=gxz86NQ`2dQdiFDL zCF0KGm`4_MfwyE|I;{%diGaBJo1y%eG%k>+yw5*_-Odj@!tlm+xp#T=#?o}sQQK|J zR_1LmL`ydv=Vfu)-f~uJoLsn-xwtr#r%1RBL=JD~T$4To+RC}|f)+1iw-c$xwO^@f zy>+{orW$5h_(?8f7rLTLSg;6-uREZJ1f(VIszgOlD%i*JG5>9Cptq8vHtyta|0MwU z3rG6F5O}bUsg9iIcQCh`g0F6R_?Wj$?#5AKEt(tx@arusq+{_pU?V#3naud6iH8AD z#=&LNz>^Wp`mjIhIX7IvwZn~9td-qbr4rSD zC2p(<)W-hyjhx`{x3Ra_mx|#;{giQ?H_aN1<-uQ9fBd+vAQ&AI-xeRwELa%lA|K-R zRx$;tdGLT68c`Irx~!`Q=XoF%TanQGK?nQgqCEXgVn-=KVO0s~<`A#QVK$vE!BJEI zQobXUeC0UCmsn*4g_emGi%IlRmWsG+b-i-J^e%Z-&W~RnY1~NG8Eviqd2w-W?x$cj zcbwgrf>P{wy@4Jg5wrJ!^il7bupd>IV_L3wZnR?-^G|I_qh+0&F4dMKT@NdesjY_n!dyWJBXZXmk7$ zi*?Wp9G}o%YyXwEtBU)@;wY83uvQk8v7ZB5KhSy_tK_9}gRiH@^FE!#8c7RBXMaaA zFc?PPN$j%BXn3?yM~^z{N^H3+)-@+03j7q}3&+rADMNsLAX0=84h? zX^$D~xz@W<6GIc(glO0F`0mMj@Qgo8jS^ro0fN6_TO`ARMP zf0;6IUJ8VdoLofU^l?(+!~8R01}{cT#)T79c`~)vCe51uv5@ma8fJgPN@Ec#pcGucUu=5-H-_S`<5tC=Ww}bZFTI0hHfvT zrdHudo?w)pVg-bU36WDio`fs)D1JsVu1*2JLk|$n{HJQ+ zXAfBTAD z6aBtoFjY0AZ!fyCTz0eZK&+!7{Ha?z+vyD+w2bBwpRTOEl1^cj5Sr6~YviA!;m-A9X#YQw0}S%*g@?tzqmfZR6HYp7`K!#K=As@0GwiLB_*6Z0 z;ZG?6HFpMn+1N`Szo5L&5!WfR_t&0#royttkkU7SX`Rr&7}GghHwBInVrK(OOgE7j zR3MmOKo(&DdMTqnnfYh_9y&Pt5!$ z#4)cu^v~|_1U~zazi;_ApuIglDP@9dm-1pYNRQOFYOkRMI3B#G``-?=&FKDtNPkzu zBd27Y-6sdvsyeM)fASJ?2$bNbHwo>E!m-!&ifmQ1hixsXY{=gDTK~g45f%8_K}$0# z%X^Rtn4$kT+MBn5P|pk910O0Xv_ccgPhRBmc&2oFXEWV$GR-yB+Ph422Q907rWN(U zjc52h7oBvY0JYrHkh87$I}%AK33yI~aHK=}MG1+W&l{|~);(S!m7<05?R96%6P`@6 ze)#eY54u6?b=8~(1x*jgl?vElf^&K@>E*Bl?;rNKwWk7gY0gl7t=3Osm`1*KTK|CE zZj9Wk=4GYP#AD6A{h+n}d>KtMd7q@{bePz#y?2`eg7<=nKHz(Z_Kj=D)y3w8FXJTK z9Dk_%{GYFOR3IHAj``to)HhzQP1WJ1bmpsc`}+)ZY?`?%t>YWxKz4RBd6>zRQQM`M z0ed@B!!J*_M;9FoIY0-B%BJYYM=y&(A%}MRu4a#Om;`h(rv*Uqim{_hliwBoWmehO znxu|A_@Ngt!P0vEjab3FqCan83aMQDHJ|zE4Z}}wQp4B$|ihDg-E zJ}`P;+$Sgt))M|?ttscTKEv0tKRFw9csdX6Ai_?6_-^{oaFzyiek%9s^VZDxVeY4% zVp~&nt}n7k+qzJaNN_kk>^lP~XGY1?oOzQp(*C&-H|mpO$#==cR!?8l_FIX=Hdq~J z64;;lKHHyy8`fA7fG%g4^gT@GMcIq`$M+(3Uej+>XI^phHnIaf;F(nUDpL4g^7ljo zE*({%ret>%@IJis*5UKBUh(`km^y9W)RmlXjNUHXo{r`7iOF7S>{Wvt(l?q>qHxgk zin9?KIY#MS6Dm$Bj1?QyS%R;~4F5W%(5n1AML~#FyGIhgMs_GgNO`-KI!fSMSino8 z_p|jr`Enr*lFdh*;+^^@2f}Vc_k{{vhJ>oDU&xsbetCbI5^ga1%hIs!dxphdz5M++ zg;?Qz^QQ>Mao;z*mB+RSfhlr>`Qev`{T?FWmyQQCuZy!ms-ygziWu)6S`z_|BBTvrNOejt}gGZPSQey z@P7i>Im&l2(B%QUF2nx!{ky7(Fbg8|b%FPP3x!V~dJ2Y1JiM+gbT%_!y3od$7yE3Q z7U~S$TXL5cy*~t&iT5%bWeRt?9g1N9zdKHI=Ic7!vi?d20I-klwd@;9+Todj^4xIW zFk=9}wW*=fP%j5nMPp#?{(T4uJn~-1McH1jc9pxH`lH1~9>RlrnVAH#Jly>gcEAzO zO8HS5xp`LKUfZEk?VO4hvf1VG@=~9aqAAE z;vIkgX#BPNSbvY?Z>4$3{{661?3Jl-3@)O)vH2;tAMII*%Beug@L_dc zRjI=(bb0kc;q}C7KhKic<&`T?NxjJeayr1-D&RsZYD<*XC1=6iOc2f&K%FMfLbdQM zXR2}aG_Jb1$AGWheQpzhjA=g-u#)VcPTYdH3lp!+t+Co*gOopmr1XCMVCd%RGNo zrlJ`C`SA)lHP}h_`^^FV5~M0N80O}PkCQSlL-|ke`h?x9wC|VK_Rf7W->SdH`wEL>oiicWyXIs9Q+i4CC|nv16jk zH|;5vhGoM0pAakqcY+Ou&u?rtw}^`Q9-q0rmYVTNO7wqmncY$&>ptkhflt5rjszkK z1W}Tmo6RdjNi*IW!zdfVpitWN7LV=HE}xb|pKX2p(_%p@>YnoQ#(3GX2wO0&+!B-i zEAd0q_BZu~Gx*F<$NJiK3>qn-c~wX~WIJWd^hW+Ei7<3VX#91GNHLi4?Q?QliEqi_ zNdtwia8h+r0SngRr=8=!ZEE#kJZ@_VG7Cd}Ggr%9RYWAT!}H~K!?(Za!=9}ED#YHY z%}zwIyfybC52Q>!0qZx<11;7LevHf131=Ks*>t&_)$uDAPY!&^Yo`yqH4*y$f+#|r zCZF0*a3^+Qq|~?mK+m2tWkzc0Q)YuRiMcrM*Zi)a>C=rGOljR#!J?4U zp&D|K%%f)&sK5?pZjE`y#w#I4<1~fK(yLtt6dYm3)?1?S{5al<}S7pgFsye^1Ya95Gw zH%yW2lMLTwv|aU9?ooJV@|Rk(6BfFwNawEk)>WscgUvl3wal?Ot6hIyrMdsTc!r0c zs5@9Dm%F?)w%lWK(8^~m;xXdMFM-L8+Mg>(f5c5(gry8isPCAw=^-XjJ?>0qud$2m zlE|(XHCxeLz-{RT=fD7`&Oj*0uVJ}0gYZpsD97|>tYs4S+bNZw;p zB>t1+j}7OM{>@Tat2KQb9pe1ZJj#bL%Wa7$#UByU;4yEq4A@M)88FUr*`1%DWgYO} zQ)vOPZTEznD+4@hOk%AJNs1fT8Mh1qK+cfbxfS7~h^VCf?yzr&)aKnJ4t07mOzJd!$Zo zCSYQdRPJEjbU3{kg?C2i1(3AmcwzKEoLv*z{`OPl)EeJIV>xac*mBig-u6GAnJX@c zKKw%6c6QxL-=y}_CczTQmboo(?x1e(JGwK%oL0GgI7^}{KpUHzT1Zaqr+ z_MMi7RQ|+0(@CSI-7mrx1rK>zwo_)&tmf3rg>Y@CaP!uW0ZdE4DfLl35<#0#IfaTf z%-xoqndBX#6MPn!z%+IH-ahy@uECM65Fu55h=}a3NuyRj**$lOw|_jqdI`Wpi}uE}_)f3{_R<@D`Yov{wmy8XZ8q>5ROx{h&IZ5cjqeY* zf+^l#bYI28=--E>3~|R%5J#cjcBXBI3wH!||34N$%gK&Gnv@Ytgmrsi*Bsn9>O5rS ztdh3(ld!-Pc+@stTa?)LC3PrgWwiATbS+J&3oS?9rtC}Sf!Q3YW_@&o6OGhdY%h(h zQo{7a2V}@SZoT7Th-a=U>n15*$dkJ8ovzpg(rC(F$M@Dg2}*E&L41ZB=}K)EsbZ!H zgzfX{Ybq0JEw$t5Qk{(Kv&<(P!8k1?Eu|RPq;Ex*4r%+h$KtYbfElzC77$#F^mX&t z?By)%Y~I4BGJ5#mLU)6Ud!Rz*lIabSNi*@i02EvAK8?MUpe;V-wSgcph?GiO554Cp zV?$uuuGAu3M_X>s_FOWXot+Z`uZkx6%#4+igA!%EfPNklB7p?-RM4zJqThq{SnuaSd;C^Pe| z=NP$}ou$M~xTEDaPV_+i%Y({nZS3$4f5ldGAbYn*3}^NLT*LjPzL6hSZlDfF2V7Q= zZ$6hxni*YKrI5cnabu6g)s*8}RP6n0-gXN=4|rwN3K@*Jq$q}N#Du~HO`~o9`Q3p? z{btJD6vrDDYb7#-h*KiZHrWArGjeAmY3vRuYK6zb$MQkODHtjIEVGQCrRuwW#>5Tn zlO-FH+wLpgyLib0srFx~L^)zw-F}xb!6TFE7qDv_$dyy+fU_+8HRFt2XEnQtz&J+r zB&RN@tU4@|qmdOeGflG3oQ5q46Wd8+^>LL{I9?5;6HG#e~R21FwQv`+)f&KxkCG@_xfZ$C8^O# z8%nhn56^xYn~l3qaBA_%4zPSsGd&dM6++M%KHu;nmAxA%E z$YtC52A-=(Rz6bAsT6%zU=SI;ta>dm0wSh@ne9mHI=6ozoj@jatbABBRZI)E&H~dUo zGnzCuCE@O<$95?>iK=mc_TfP_2S@7Eyc#`^5RCqoOP6++v#ZJ6*7dCfoAqUdu9I(F z=1!^GH`k~kD~l0gnK;rmIGw>ATMs)vVTgq4Z3Ipnu>;@1DZvBbo-^2F5jU9U2?>+u z8TeY}*Nt!NhvG+5l8*jEIZfMvtBn5LnTj*>gKwY{z-dZ3BRm?I+25eVLUvVvJHws!L=B?nQM315{i&xvVturKB!bI&ay=5+8-2FuwYlQ*B2_!?tGjR!UvY zil3c6arErbKmC076WT!Yy=QhyrGvGS2heO#ex|!4ZF-EwqUv$(^?zE^4u3ZZ|A(>n zj7s|d|Nk*cDhHLN<$%i4dgsWI1816Lx9mDU8+Wb#Sc@HV4SM)Fqw*~muqoXT2GtTgL2z@ zIZO9`Wj*sYVP%ZrlkO?z24-HW=(u#y$-^6@-=d$oeJXo-Z!$1lswOz}C@S=`Vr3dz zQ2!^+5d4@cl4-#}8`io^|5qz?AA32Qi-RI{vwl(~4H^*u`;?x(la`GK3?KeEfau?* zeCEgN@uokDHzmH;p>wV&zC8TQ&3aXvM#1N0sbl$w>bg{ChNSMs7cq(Zj@NAqIvugN z=vPSgw9MFn;Li{PQZ;0coL4iwQMB{RQarPSrzlI9zdWUU?ey99%u3AAirL^c7%9Yp zHwA$p5IPi2KW}<>-7?!0id-1H>#FSzSL=Z4`arun0`0bM4lK*vC?zbYjqQG1vVrRR zI`2{9+tS=68t4;z>#Obx*g0-Bg=jF(QPA3g$NdzhQ3?d!t3mNs{qYjiM4Y`A$U@}m z?9o&#g7$F1HftY4P)rykuce#uxZvRp;Op$V06z-70<{O;c6ldzD`HXZMr1sH4Q|lo zDtU%^kKcON9hRI>o$^)gaN7GI47eiCPfK6g@+%Pl27Re|2-B#@YzE zd2-~;UbNgJR&Zb$$jCi7cnJ;TLeE}ZRiYOk3e#O4-BLPgVo> z!V)HPG-u1SC4Tj7!frlCIDX(uylQ^}(WG5|?6r>G({_JySXrR3cuhaR+ez6)dT$d4 zX)QUP$Z&fi{#}|f+#khyp&rV`M)t#-`iQTKitIZMz7Y6wA10U1h#Z}O_rBKAHNwXP z9;#5=%QxM2W0YqT9#g#u1NGb3gKg0K71`ry4!;^(A(R_V*L`#p`VH#eJ~=i1fLGYw z>geam-sD7$ql`;~mnrgJk7Yzh%JHq)yIzK0TnaS=Oh;b4)$}SK$VCTYIo0MaTARr8 z4`(ciqjuOzZ0LJ(#7r)H*>H_NDQ-gQ0oRuAJ_t{n_9hyY3Z<0!ThH&+m-?vdILt4f z9L$VL2+mN)og>7Nn;5vzoVE39Z{iah2-prjBA<|WpLj=+qub=JAw8??mVIYP&~#E| zW#AI(on;C1;@?ny)v1Or$zDNaPI{prw}wcr#pyBILo@E#8Wdbr7F^oU*-<;l(X?8u z;380CzOdUP{nreQI93|IHCjSvT%3hKAbgA-;>P3)%O1NC)*KhiKMB5 z3jv+Ik*Zvo;>RhFvvWRixfjT>EiO$0+J>I;k)!x`&o{p6!g*f= zIiYtxBCtu3?3J}Y~i>J8I=IV13*T z+sn8#fMD+U7;~!aRNcX-+-57PK3(zJ2_?m~JzF!PEiF3(Yu=TS7@ffcHh;8e9XY=! zQ4%n(#$Sanz!I+%jeaF)T8~5ZJ3b%p$emDmI?_0AyY6;sFW)1Dw_{Mv`fI;24Zd{K zxr=_>{2_b}JJtgV;{EilRXadldmE3%1=qTxm>r@~fUawx3|{51@UURdR#{Awy6w05ttqs^_{{h^GjP;N{V|IpCykg5;u*%a2kTV_ zH{I!Xqz`mt#bHg+{q74ac0tQwe6|X^N1iZd7$0$wH(bz}kv{~ffp5$V%KX}iu9(vP zqts?{gMZM$FXp9NeZq?+#Zj2+LH;qEgLshg`Bm3Fzn0pp0!jX7jlapd+8oY4L#NT| zo1s*^7U*UsYO<)K=crp7UnGS2!|x$<&)IY&q9L27;lHor6^qq(FnGDV+e6g3iuT(= zpJ==Zl*(z4;M6_SM16~wkN1Y zk}6by4sS};tUDaGkUU=dq_W0Ov#A`0l(~>idAM>7_tg?Qyxtl21PRaS4s29er~!C` z*bk#HWERXgnwkVnT&rXe*e-bWYI{W!6vWSSq?#)0PG-&*ea2-9$Fosq`tu91eW^f{ zKu{UJ`mNm^TyxD3R0k$A_0LH~&xy_%pL%%>Omz>8hnh}G;Vm1NbQ{cmT&&&iWs1+m zM!?sv2YnJoQSe7@opavP&VFo%;gp`}bEn7m8}{pcyA4u*Rb{_4(s@Kl2-`AtOjqT| zXL)$f>$bC#tC(2poJPN%Q(F{jNSu_^8{74KBVt51v)TY{T`}OQhxVoZwtAx)!xjd% z^Kx}BOx!JU#35_o<*W#=m9cV4ILXGQ;1V}g*I7x=g4Z%f^Q9lq=pL8$pFeBwpO2LY z@ROyAmOn*5+_-JRKiX?=(Q!<8voS_1x2+tVxp_phv#WUb?hVG}*3^E6tB0(%w!~|J zFIk7Rb4STTd_x(fx|Ur-5&3ucXa{PMdrlJC`3|S*T%TK}4OLa}(5Zd1VH~yM9Br9% zm66LEFfqFq9aO@r?07pl%nR|a#K$>Tc-GD7vxE6q?KI$MHueAIIK$89ukslGPj4w|0A6Q!u{Txc__Z!MUU%i?WCH z8UG z8i?NQPy!!??Wi+<{|{>uTf_xRmL`98H%rMm`ll#nFs>&Z{{|0)(`6+O4}#4B@ZBoC zJ->g3sRxTEVxZ#)R}3@v)`g-NgDd61Bo6}e{~u@IT#_IApyjx&67_ZYUCh0;Pw{Vc zDetpatg29Hv2+m5+P2~4fR>T^m07+QF@u{9ywsemnmze%$d>xN0`9Dd>nB6?nYl67 zDAE~eqrDm_TwPD)8@e-#v&x>w*8BPDTBhZ8i2CohK2X7mW>asz)-_esliz&pJbCro z^9T^o?`iXQe`EbSuLVU(Z4$W}(G3zsS425qUKw0Dn2%BpwwrHV1$0NwPpCwMK2}m4 zVBmb!05D`6NOP(*f2f2dsNL6zzU?|4e-)-UhEADfy83#OHjjqT3<{Vg=DVs7+2pB& zTEI_js|lAYmWpxxYu?oa?RMT*j%sYK^@J^l@FdrE(O8)2~P$;N&kPMbJdi75y^!?%Gnot$L7eDs;9y~zYb+CM)9U};L8*m}s zN&GJ48UsY$cuco=_|?C3hs5zT<-%nyd`sT9+UmGp&tI6)`5X(B zrY4GzFS9>T2&cPVM>+1;tIeuOyIT*ZC&ll%M%Z165kD`J-%`usu$w-rz$70SMtNyoOaaGye=Dr zj<{e4Lq%v68fLs9h`Vf%Upu9gCvI;@ zHIDctL~4=z0lQ`_dy8J-l#%f~4u1JrjfalT)0+XlW^iXt+{YJesUr1uZ8lmPY4Rrz zS)ivpPRh{cg8-{!g)j}_PP}y z`q$CEQ9Tp;5wz@{^d4#X0ji177DUvOz}-S!vBav4U?C!gPVP^h(0rEX7@I?U9 zOwTkGE@m5$E$9d#0YE7|NAgf_b@j*|#W)ZM{DxO9Xt4HN2?u1=rk2#c8~17c(6s$9 zn;jM?f^NVbMXqA|Gm_pjwrc~-IqiaQohEZOL8+uoCa@W778q)xvhnk24$Jxl!(zOP zq8ga6`DVfHmh1>atK;0C`FmXbn7``Qw{JEcK4*2xPz+V~S@vE<>oOhsp7b=qMia(E zPmq)Vo$T4(q!4)UQ^dhm^FOX-o5i!$V*Eny#-Vm*@@_|G6bKU`BO{QkxL5r3TVDe7 zMAs~bl^ZYW&YkaJ1|?hbEPHId3JfVE-KVVXoXcbDlHA5aT71t-XJ!BmOsZ_v|%Ox>ssu z>f0P8j0tNjD)qBtg$DYJrnHv%lq@tOrp3=cz@qlIiW29N>3m)`LTU4!y+&-E>VTpa5gS~W>1*Yo29xg za-El_0RWNZ_6xOi%~UWg9Y6mE=?%mNsV{Dhw>m@9Z*1|jucqVUs`!1^QJFZzjj#g# zR&a)mwpGkrf#m}P1}#HYrSzTsCYak&NWSn;bc2jEdxih9>a%BtXV zJ$N`%&KP_BL}ifD@*<|^v*b*MY?&?f+&~|Vb1y2@!EoZ9uJ8yX_Cx!5i-{Jl^}sz% zI@rFd1YviQ>|(ihz+T{g)JL6YB-5cVrUaGRbEsBUbWwKc@ZtVPRz^+0*r(*4g~5Gk z-$7eG4~xYy&6(rPL0Vsk%VOmuvNQ29|8;%e8vfAv+68ys+6~q%Ic#gnXV$B$M_ODt z&ehe8A2J%6GB9oxdtF{s!UlAy<^`C~Tcmjbd$bAJ6$9c&*Dg}8;yt-TSG z^5ge8%Xz&|G$}X-eU3Yy^>1-Xik4|g5zKD4L-w6<%HW?DYU@&qMrq&qW7E&Qc!}X~ zf{ygy&+1OSvxTh$*L@Uv(USPvo$Kxw^hL|nV8_2gXL`HfEvF9DdP^ZjWw7)X@U-|) zC+GUGnM8fW_k4lTZygg7?q562EOHLM zV)ke`_mqg^&1~M0PaXxI3GT*?LLdHEal>Oq(!Z`5UcB-`Ry5X_lzjWzi)YFV(6Cz}r+l29^e=a=zCC1Pxy{A+A;2&h<-@HyW2=PxJ`r!jQHh`$@A#W`O*p*m-chWz11v5HSCGC`<%73tQ;%f;sb-wvu~f{?fl> z^-vLO8k?EN9bd6R(J=j&v4yC~!MQnm#xdUMrJmWBiAqNQK_A(Y?}UEOGD4R0XLKNN z+4W+?;Tj@GRk^=fA&^~o{2Z5s3$dDC4~HN~nh-8?s;jcb)H6%# znL$J0L-58^zD0#D&2m>sP*oixzPy9^xt0E&7NdM&6v)m)4v3a`@TyC z$-!}&o{Ub9GSKQ#N)G)qH3?Mf-U$P5hx-gRWw~2Azk$ifxw@gSdi*A-DzNH5Q1fj! zmd+*V>2~?PR%dmqF=)>vwJL#ZuG-_XM!@N+#6Qd65tI^*NRGj#l4)6y&?rxcM9^cr z+-08&{9KyNVVhz7L2nQ+9zBHR(w5eV($Lo36aQaO9Tn*ykLOS^s7+>Y6HD$8ZdiN=(on0HaL0RbKa8KiDcA4SWAKaSKR`wNu!!cjJj%~dEoy%3&*EQF-kz59)8&#$0d7PqKRBg1x5fe|-$rdrkL46XC=QD{G`

nb-QY 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 diff --git a/e2e/autoscript-apps/src/authz-txn-oauth/autoscript.ts b/e2e/autoscript-apps/src/authz-txn-oauth/autoscript.ts deleted file mode 100644 index 7fe18ff59..000000000 --- a/e2e/autoscript-apps/src/authz-txn-oauth/autoscript.ts +++ /dev/null @@ -1,166 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const clientId = url.searchParams.get('clientId') || 'WebOAuthClient'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const igUrl = url.searchParams.get('igUrl'); // only use when testing against IG on different host - const resourceOrigin = url.searchParams.get('resourceOrigin') || 'http://localhost:9443/resource'; - const scope = url.searchParams.get('scope') || 'openid profile me.read'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - clientId, - redirectUri: `${url.origin}/_callback/`, - realmPath, - scope, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - map((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login successful.'); - document.body.innerHTML = '

Login successful

'; - return step; - } else { - throw new Error('Something went wrong.'); - } - }), - rxDelay(delay), - mergeMap( - (step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } - console.log('Auth tree successfully completed'); - console.log('Get OAuth tokens'); - const tokens = forgerock.TokenManager.getTokens({ forceRenew: true }); - return tokens; - }, - (step) => step, - ), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Retrieve the protected resource'); - return forgerock.HttpClient.request({ - url: `${igUrl ? igUrl : resourceOrigin + '/ig/authz-by-txn'}`, - init: { - method: 'GET', - credentials: 'include', - }, - authorization: { - handleStep: async (step) => { - console.log('IG resource requires additional authorization'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return Promise.resolve(step); - }, - }, - }); - }, - async (step, response) => { - const jsonResponse = await response.json(); - if (jsonResponse.message === 'Successfully retrieved resource!') { - console.log('Request to IG resource successfully responded'); - } else { - throw new Error('IG Transactional Authorization was not successful'); - } - return step; - }, - ), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Retrieve the protected resource'); - return forgerock.HttpClient.request({ - url: `${resourceOrigin}/rest/authz-by-txn`, - init: { - method: 'GET', - credentials: 'include', - }, - authorization: { - handleStep: async (step) => { - console.log('Rest resource requires additional authorization'); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return Promise.resolve(step); - }, - }, - }); - }, - async (step, response) => { - const jsonResponse = await response.json(); - if (jsonResponse.message === 'Successfully retrieved resource!') { - console.log('Request to REST resource successfully responded'); - } else { - throw new Error('REST Transactional Authorization was not successful'); - } - return step; - }, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful.'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/authz-txn-oauth/index.html b/e2e/autoscript-apps/src/authz-txn-oauth/index.html deleted file mode 100644 index c371c9150..000000000 --- a/e2e/autoscript-apps/src/authz-txn-oauth/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/config-custom-paths/UsernamePassword.png b/e2e/autoscript-apps/src/config-custom-paths/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY 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 diff --git a/e2e/autoscript-apps/src/config-custom-paths/autoscript.ts b/e2e/autoscript-apps/src/config-custom-paths/autoscript.ts deleted file mode 100644 index e1bf9cd83..000000000 --- a/e2e/autoscript-apps/src/config-custom-paths/autoscript.ts +++ /dev/null @@ -1,135 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const clientId = url.searchParams.get('clientId') || 'WebOAuthClient'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const scope = url.searchParams.get('scope') || 'openid profile me.read'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - clientId, - redirectUri: `${url.origin}/_callback/`, - realmPath, - scope, - tree, - serverConfig: { - baseUrl: amUrl, - paths: { - authenticate: 'auth/authenticate', - authorize: 'auth/authorize', - accessToken: 'auth/tokenExchange', - endSession: 'auth/endSession', - userInfo: 'auth/userInfo', - revoke: 'auth/revoke', - sessions: 'auth/sessions', - }, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap( - (step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } - console.log('Auth tree successfully completed'); - console.log('Get OAuth tokens'); - const tokens = forgerock.TokenManager.getTokens({ forceRenew: true }); - return tokens; - }, - (step) => step, - ), - rxDelay(delay), - map((step) => { - if (step.getSessionToken()) { - console.log('OAuth login successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Session_Error'); - } - }), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Get user info from OAuth endpoint'); - const user = forgerock.UserManager.getCurrentUser(); - return user; - }, - (step, user) => { - console.log(`User's given name: ${user.family_name}`); - return step; - }, - ), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Initiate logout'); - return forgerock.FRUser.logout(); - }, - (step) => step, - ), - rxDelay(delay), - mergeMap( - (step) => { - return forgerock.TokenStorage.get(); - }, - (step, tokens) => { - if (!tokens) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - return step; - }, - ), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/config-custom-paths/index.html b/e2e/autoscript-apps/src/config-custom-paths/index.html deleted file mode 100644 index c371c9150..000000000 --- a/e2e/autoscript-apps/src/config-custom-paths/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/config-request-middleware/UsernamePassword.png b/e2e/autoscript-apps/src/config-request-middleware/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY 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 diff --git a/e2e/autoscript-apps/src/config-request-middleware/autoscript.ts b/e2e/autoscript-apps/src/config-request-middleware/autoscript.ts deleted file mode 100644 index f6d1a9ba8..000000000 --- a/e2e/autoscript-apps/src/config-request-middleware/autoscript.ts +++ /dev/null @@ -1,179 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const clientId = url.searchParams.get('clientId') || 'WebOAuthClient'; - const pw = url.searchParams.get('pw') || 'password'; - const realmPath = url.searchParams.get('realmPath') || 'middleware'; - const scope = url.searchParams.get('scope') || 'openid profile me.read'; - const setMiddleware = url.searchParams.get('middleware') || 'atConfig'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - const un = url.searchParams.get('un') || 'sdkuser'; - const support = url.searchParams.get('support') || 'legacy'; - - const middleware = [ - (req, action, next) => { - switch (action.type) { - case 'START_AUTHENTICATE': - req.url.searchParams.set('start-authenticate-middleware', 'start-authentication'); - req.init.headers.append('x-start-authenticate-middleware', 'start-authentication'); - break; - case 'AUTHENTICATE': - req.url.searchParams.set('authenticate-middleware', 'authentication'); - req.init.headers.append('x-authenticate-middleware', 'authentication'); - break; - case 'AUTHORIZE': - req.url.searchParams.set('authorize-middleware', 'authorization'); - break; - case 'EXCHANGE_TOKEN': - req.url.searchParams.set('exchange-token-middleware', 'exchange-token'); - req.init.headers.append('x-exchange-token-middleware', 'exchange-token'); - break; - case 'USER_INFO': - req.url.searchParams.set('userinfo-middleware', 'userinfo'); - req.init.headers.append('x-userinfo-middleware', 'userinfo'); - break; - } - next(); - }, - (req, action, next) => { - switch (action.type) { - case 'LOGOUT': - req.url.searchParams.set('logout-middleware', 'logout'); - req.init.headers.append('x-logout-middleware', 'logout'); - break; - case 'REVOKE_TOKEN': - req.url.searchParams.set('revoke-token-middleware', 'revoke-token'); - req.init.headers.append('x-revoke-token-middleware', 'revoke-token'); - break; - case 'END_SESSION': - req.url.searchParams.set('end-session-middleware', 'end-session'); - req.init.headers.append('x-end-session-middleware', 'end-session'); - break; - } - next(); - }, - ]; - - console.log('Configure the SDK'); - forgerock.Config.set({ - clientId, - middleware: setMiddleware === 'atConfig' ? middleware : null, - // This is different because we need to handle the - // options call that is made by the modern call. - // The api server will respond with a 200 so that the - // preflight and actual request successfull resolve - redirectUri: `${url.origin}/_callback/`, - realmPath, - scope, - serverConfig: { - baseUrl: amUrl, - }, - tree, - }); - - try { - forgerock.SessionManager.logout(setMiddleware === 'atCallSite' ? { middleware } : null); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next(null, setMiddleware === 'atCallSite' ? { middleware } : null)) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step, setMiddleware === 'atCallSite' ? { middleware } : null); - }), - rxDelay(delay), - mergeMap((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.status === 406) { - throw new Error('Middleware_Error'); - } else if (step.payload.tokenId) { - console.log('Auth tree successfully completed'); - console.log('Get OAuth tokens'); - const configObj = { - ...(setMiddleware === 'atCallSite' ? { middleware } : null), - }; - const tokens = forgerock.TokenManager.getTokens(configObj); - - return tokens; - } else { - throw new Error('Something went wrong'); - } - }), - map((tokens) => { - if (tokens.accessToken) { - console.log('OAuth login successful'); - document.body.innerHTML = '

Login successful

'; - } else { - throw new Error('Session_Error'); - } - return tokens; - }), - rxDelay(delay), - mergeMap((tokens) => { - console.log('Get user info from OAuth endpoint'); - const user = forgerock.UserManager.getCurrentUser( - setMiddleware === 'atCallSite' ? { middleware } : null, - ); - return user; - }), - rxDelay(delay), - mergeMap((user) => { - if (user) { - console.log('User info successfully responded'); - return forgerock.FRUser.logout(setMiddleware === 'atCallSite' ? { middleware } : null); - } else { - throw new Error('Userinfo_Error'); - } - }), - rxDelay(delay), - mergeMap( - (step) => { - return forgerock.TokenStorage.get(); - }, - (step, tokens) => { - if (!tokens) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - return step; - }, - ), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/config-request-middleware/index.html b/e2e/autoscript-apps/src/config-request-middleware/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/config-request-middleware/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/config-token-storage/UsernamePassword.png b/e2e/autoscript-apps/src/config-token-storage/UsernamePassword.png deleted file mode 100644 index 33e10da37e4ac601c5e9523c0c653e676c283439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110822 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 z 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

nb-QY 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 diff --git a/e2e/autoscript-apps/src/config-token-storage/autoscript.ts b/e2e/autoscript-apps/src/config-token-storage/autoscript.ts deleted file mode 100644 index b488e744b..000000000 --- a/e2e/autoscript-apps/src/config-token-storage/autoscript.ts +++ /dev/null @@ -1,137 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const clientId = url.searchParams.get('clientId') || 'WebOAuthClient'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const scope = url.searchParams.get('scope') || 'openid profile me.read'; - const un = url.searchParams.get('un') || 'sdkuser'; - const pw = url.searchParams.get('pw') || 'password'; - const tree = url.searchParams.get('tree') || 'UsernamePassword'; - let tokenStore = url.searchParams.get('tokenStore') || 'sessionStorage'; - let inMemoryTokens; - - if (tokenStore === 'customStore') { - tokenStore = { - get(clientId) { - console.log('Custom token getter used.'); - return Promise.resolve(inMemoryTokens); - }, - set(clientId, tokens) { - console.log('Custom token setter used.'); - inMemoryTokens = tokens; - return Promise.resolve(undefined); - }, - remove(clientId) { - console.log('Custom token remover used.'); - inMemoryTokens = undefined; - return Promise.resolve(undefined); - }, - }; - } - - console.log('Configure the SDK'); - forgerock.Config.set({ - clientId, - redirectUri: `${url.origin}/_callback/`, - realmPath, - scope, - serverConfig: { - baseUrl: amUrl, - }, - tokenStore, - tree, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - from(forgerock.FRAuth.next()) - .pipe( - mergeMap((step) => { - console.log('Set values on auth tree callbacks'); - step.getCallbackOfType('NameCallback').setName(un); - step.getCallbackOfType('PasswordCallback').setPassword(pw); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } - console.log('Auth tree successfully completed'); - console.log('Get OAuth tokens'); - const tokens = forgerock.TokenManager.getTokens(); - return tokens; - }), - rxDelay(delay), - mergeMap( - (tokens) => { - console.log('Get stored tokens'); - return forgerock.TokenStorage.get(); - }, - (tokens, storedTokens) => { - if (tokens.accessToken === storedTokens.accessToken) { - console.log(`Access token is correct`); - } - return tokens; - }, - ), - rxDelay(delay), - mergeMap( - (step) => { - console.log('Initiate logout'); - return forgerock.FRUser.logout(); - }, - (step) => step, - ), - rxDelay(delay), - mergeMap( - (step) => { - return forgerock.TokenStorage.get(); - }, - (step, tokens) => { - if (!tokens) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - return step; - }, - ), - rxDelay(delay), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/config-token-storage/index.html b/e2e/autoscript-apps/src/config-token-storage/index.html deleted file mode 100644 index c371c9150..000000000 --- a/e2e/autoscript-apps/src/config-token-storage/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/fr-ico.png b/e2e/autoscript-apps/src/fr-ico.png deleted file mode 100644 index 213bf84cf0af3860b94bf80b8417f56bad4479a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2648 zcmXX|3pf+%8~?`UHj^oHJubOM%;jXHG}lO$6Uim_+)BpguybY_g(R19OT^UVuP8)W zIW8d#r*V=?WC`gUEGC)_XFcctJJO0+6YgC$!2?1CCEB@oN(fhy#QAH&vt+EZ4-o*k+z)|_OeYJ3pnSZecf36zEI2+2 zAEV(Jbtw#3p-s)vrWkF1M;)Po>JI}Ce0Y3fFd+=sp2vrTX*fj@!V>X>i$o234~xat z#v8)R8(bW0JxOKD{=X1KOwytTV zKiak2iB*9_YdMZof4}OohDH>diO_Ld*CK%W!m$rdR6$EuF2U&6k?NL~Mh;@DZOavQW8nDMy>Jw_O}kz;a6-n)@ue{8K|5`lj{jI~bdG z`J1(FZw@P*kw94K_EW&Zrss$QZO5J7$JC@uWj;R$_Ds)J_-&*uy+5tR*o*f8hsIioYLXTe0ZAtWw>870h)JTy0(DN7x}QY^EPZ|AEI{Ily*df^usSH-v)O( zSH+r1ng6T|F__;e?U%|9f}+Nm!f*piCIgpzlQQ-DDd$3dX{o1v>eG2l}eQ2};F1aS=v= zL2f|pML)h1&F|KuDC(d3d}xpxAOt7z8>o}Xg&M`z`+Gh%D<0)0foD*6tZ|F$e=$t) zW!ZI#)(bqaBoVYHEKsYj>O8^657kSF>bU`!@)`6SFDpGX`>J3Z8>qL!rv;VQuJsz= z`Ron4mDsT_3hq*33L32ka}FK7WD6!$4i}zGuF@#J(+{I%4*#MuU<6LZ>Q==SldQ)N z^6lQas|*@Z(-++h3@zt0{5Ik^_AMA@`A8%VvQIkV^!PE)5Is_`O-_Gx$g|xA#3!9O zIcyGwd^BwwnypcMtG~x_!{e&*pE^{tkxK8UoyjgU8B5)Yw*#|xs&GHUSUL&%CstJ=p^Vt#Tx(6Wo>na* zNI`0+f8!nbm7gi4*>!fGz~;3As|jS~Cy zjfiE)eAYS1ukx*Dn>ezoY858ROk27cYrjl}sL9*+byzN^lWhImuDlVC@SoY_91vgm z4GPk=<1+r1E$?vMIU22_4w9?YS~ihDF?|LlAY76(&9^~Nb0xQMX%9I3z#4H5MaVc` zr3|x4DHe#2pRnm@*@DbU#9FF`RQvA2&@`>XUoU<|3DUGYj);EmI8uG3&U*I=Wk#Xa zT=7sMV)}5==RTfCefdOSN#7e!)HkG54ro%i63^a!(tF)=YbXF=2=TQEg@N(Q@IJ?l zPq()tIZ4Wm3EH|wAS3vH!-S>L-!c0Q!qvTsNEM-I*HJnQEbeZeS)USy9P!Zk(9BX{ z;w546h-{3zC3^ zhBI6n?X$d(K0Ug;C*W%ID#z6W1WbI4(XzVey*Fwox;J_PlkoshE0h0RSr>b^U|fq{ zmGOD$z;bRtX>Z{bjD8qn=nDZgTI~>+_y(HMJ;L z_g8~f0`{;$L!Cxl5GHJ<2tO$T*7Y*(dCkft85V9!_`pNH^X6dJpYbmp(FbEJ!MBU{r&;pyIl{Q1YAGP@)sfOR@0#9TR@jKJwI>syV|pd8VLf5T>O>JtIs360pshO~+5>HdVhaACcjO zy8-G=%neKumnm?{GUh)^da5s+h#kg7X^@#F$4RY^Vjk~cK#|mC$u9L+7?bVD1vD&R!cs4HyV%QHs_Tt!E^10iqVdm*ThqY&zyfNgJY7KWWZ;Caj3WGe1*!OHp6c7EHgbRLBWc22VJ z;tO7n&&8t0r(;kQd*ySl!iOaJ)3eBEU$vU*1N$pbEqIETk}L8<=&@|DNs diff --git a/e2e/autoscript-apps/src/index.ts b/e2e/autoscript-apps/src/index.ts deleted file mode 100644 index be15a9f01..000000000 --- a/e2e/autoscript-apps/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import 'core-js/stable'; -import 'regenerator-runtime'; diff --git a/e2e/autoscript-apps/src/misc-callbacks/MiscCallbacks.png b/e2e/autoscript-apps/src/misc-callbacks/MiscCallbacks.png deleted file mode 100644 index f12f936ace6e946070f00a6e769fa5889c6abca4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158897 zcmZs@XIN8R(>6>MLk+J?MuJc?>OiZT? z?%#RB#Kh9h#KhdidF<#;Nx`zn(SG79&9NL%dV?(R?Y)OMA3 zQmogd-uK^i-krTEbB~Gb{(^|CMc;maeZ+}4D4Zqg;$tQfvrl$;`^0iMsmXU{r@smA zuHs=a6`viz%E^EdTei9N*$naRXdz5h>92oB7~2*udm}2K(=rmiC;s8A*uV z6R}m7|Iy><(d^Z`60v_u0_Ot8|1I&1(8(f!|0n;y&uptXZ}~S9%ry4Zw*J<%ER4I)^4E=6{}ZyK!Q0Dj zyK3Jy1VVeXSCO7M!%%O{W@B8y0R9J6)y*#aotM!+#zW6VcXG5h_Sfk7I*xFtH%GRT z-rf_KTaP^HbiFdv==|m>pIhfI3D%8c3YAzd3rXY7Pid{1D;p8;?_uL51vcJOj@Nvp zUQdFR`~ttj!msPOVdH^?(!xWRB9e|hDBNq-N0i9_u%iULD|WIrH{40nIQylvIF-b0 zHI5&apX~fjDWWcsb(&7X3A8PJ>U-&lNg1cYBInts7J)&5CvuA~D~}XVf?ATdPelJx zik8^%1-Ntb8w%lm)gCCdUjJ}?xIukTHnh7A$}Qt{D`R~(zFF-t>KIl{Jt(l-9xJVw zUvR=@2v*?q!z0yYKt+CdDg%i6`nzw}$k5$*Me_Gd=L!HA{vPnptZTo~+2NzadW)BR zWHJ(;Go2rTMFoU~{bXyOpXa;8bWq;HVZ)hq{0XOW{aLo%-QAavHNE% zz3L0Fb!2?}``o9pPgxm>GIy2OoU@$@cv$=j;MxFcS_Uv-0shjeX>YrDCP+lf;v)tm1{^oPLPzhzgZnluF*{!W0Pt0EP z?2l(L^$~Ga4gfCc?6hRfvsNkk+9h2l3dBFhb8We8Sf0CS;h^x%={E8f^W}_!?rxcb z_LsX?uB7u~v#*Q*fIY5TkRdM~dp*m`& z|EwX~8*JxjU*${OtVJasNtA!e%6fBnc*r{$xW9Xq^FqpJz!^5asMF-+cKJ=_hB${>DL>_ zo4d02xnfM%&0`9NjGCT|-Ge9^1+3yzMz4K-ZJy5$3Yd9hZZ`Vmlj-FvtrU{p3&)OkDZM#Y8hXQDc|Lm&}G7>*hje> z8@?7b6g99-PJSPh)_!1|OBOEnkUx6!a#Hf;1=&eW4;j_MLiStAX_Q|^_un<90Q%IP z_bckwzrKpoDJ`{EF{(e^DUrwZ4#@AtKA%`I6-s?2LTR zNpm)7YHJvJ1#;kj>LPw_Du0e#^yCt=nDr7Zh_J0C$K)6@15F7V*H55PMx ziK3JT_KpSHMM-m?FYof4+SAYV(nlQZHJHETzmk-cB(qgN?hv1>&~sc<&E0h2cYaH$ zUW6xsnOW-@{iQixL!+VRL3pe;U-~Vjf5DFouD^)-}YOh}(wYr2_h zw@MhNW%U=Yr4zp@fEAz#pP>sJSt&CC8fG!zo{V0@e=zdJ%4ti5_jB!8c`grH@6{-4 z1_v3VySChqd!aes@_&{4zzIIC*`K3jW6pN`fxD#6b=}{$xt8+zY?G3cKWx2|cmuDS z(AIf$2XHFFWG4UP3h%osQC=vIzDM!RY}6Cqh(r%|BwOKDCG=@IQ3*-$QNI558MAsx zvkQBzi+a_0(bD^}v+JK6JdZ^@=e*|d+^gf$e7dG!nq1rIQgo1B+bIrNJXm&qS|Y=D-S+iU(S zA^X?!s7?~HFRtPAtLm}Encs%qJ!8*z_+20fRFP!KRzvfA+WGV6&y(e2@i$}}Ng}uS73^^#(fb%sG=~ABkTkJde4EL}K2YZIEFr z(A0mzbn_d0kYB!YwkJnb3w&c5OkWpV1q#$m`^VneT4ICw%Nyv#irz?xs=X7%)pItH zs6?qW(JE*faN{2j;=sL-<~K-^?Mf`psokFrcj{HrTaKZrz21JT5>TmgUQ~+@7qanT zC8_oRg{yX}0VZts`LclAx2Hm8&^4jZUd38y=^)KJ8xz zI%c>6tG7cC&3xheVuM`1lCRCn;*D$&9rdS#3u-KE49~u~xw&+a$dVC=<_;&}7JA5T~F<0iS9{6K0#^P8E2Dfm?h`!n#yZU4rdF%3TkYwjRs4E)V#w*X%6 zw(w~9_h90y!I7^@2R#>myzNMGVK-^*bWTKL7~71bhK*2(jRr=JYUt7(P5Q49KYCNh zNBFRGVOTHW=eSQxKqQ+!esR>=C;~ic45!FyfWlD~*)xgFWOM;>^KdFsz)nk)SXmS) z=J~oT-V=^H9~&F?9mY0h*paCCUQYe(=fJi|_Gjg1n-*qYEnY3ob@eE;U&y~j;IsY% zK3pC^b@NH@js5Hv9J>14ZJ%qRFs}WWMMu3SqC-iT(o0Gax`lrdZ)FO^yhu1-V*`29r+&}156)te#E(ku0yM%U&28(d1An+eZ)FnQ2)tEu z9JbNC*N>~uw>nc|QTF5n++Ws{asD*V17)K8e6<8U&lTmGar4su5bpSv;fv)C3cuWl zFJqw0P0PXco>HVuwX+(*;-mJH$>T^*{WUGEGb-GBsFvMuO1*}oGwr+_>;9^4-H7!a zvG{kz7l^CgJnc9qGM=ca{G&zgwbRss`P|;ai&v@g9@b)=ifzD@@+akmHOMeap z*EP@3xn9(tmo13Yf%l&eHNmkdqbyB;Sy~aQW5Fj;Acpg9Na}6c`A}9T@k#96?9*V@2*HzRjSvOjVyBdW`0fMo72~jtLE7`iStPn+gz17sb?bW zniP>4HC$^6kCS}KAidVH4=jbDjTw#2)TT$Ub)MBU2k2RFQOpKml)`qxW}Vk#DbPVmRM}HuZBnF zQZN>WF9(~fA2Vtg#K`!ZcPpxDBx{;)bx8{AGFO-^p>aDME z*NX@<-}OMYYS&pb*r-1uGcwK@c;cs4b=UTDyha`|4|T$N9` zc~I79ZP05EAZY)$5bUexVMAO`jj&eg_I37!zjIfCu0yNCC!gNuA4z@5IqLkr-ZRB! zT{-0T8EQ5e4rJg!`><@k`Sy@2DQk(jS_e&_!_jwS6$U-`PUOH>(tR-~V;;b;qHPNR z_yP2#T-3XQSYqzs+Q9s@#%sr3@>46hLjYrwAsg18j0RyUY6)fX9llzJF6=?3M2h_M z8(-S|O~ug=<$8Y0$)M!|;(`1$|A5w>b7O<&)w35ni%mB>Qerv?HB;ibkqbmJ7ISF2 zHW8_syhb%>Brkm?x52&NMjleA#13%=#LHUgoC#!q0<^KndWMcJ2zS1wP5&%C7cH+@ zI_nVvUe}m;vriI#jQ@G#a=#&ZJ(vE0rOK&-(7kyzs`Db~^MBwTW)3nK}oj?G}?)5(dz_JupAg?|Apbjf92` zvKN>bKl609^D69xnQ~c_{}UB9Ei6hgUqxsO75(mU6Ng2f$#W_@j~q$qY@)}X7nTp< zYXTd?+JE@L__TJ?G6SPk2%@4aMLq(hru+vk}6;4xKfL z)V8XCYtvwFH!ywEKA}waE^R)p>MG+7c-ul-+;0g)TZS`gR6&N8(3~XxCfWG}C`4&v zD!7EjTd0_02qf7y*y13f4p!wBRTso~O@9$S+Z13O{-W2My`n-ihJS!qv4S5(ZWo}r zJ)zZj)-a~Wpv}o98(kOQEFq_W9%m74|10*9e){0K){ph?)KAL;==E(3{`xxA?`C8( z;=ur|etJQXw+Nb(xT&=V4lElq8ZAz(c)m4OYZEYp33*^+aoLeR<~f()soXi6GOZM` z^t9BvS$PAwQw9o|`SaOh}<2ZarUJ6nPmOIkQzmw#{Hb}pYax~J=$8ol=GQF z45^L)t$nAD#JY?&!MBZu7KOJe~-0a?_Sm*(5 zN50d$X8Mdxm3pnq)GBE2bJ1Lf5QLU*3XC-Q!12EDK;7=P^=6_XyF9&Q43#cM?Gv
<&lD$$R-v0FjBbRLd!Hc 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 z }-2F=6`CI-T`4d7*hc8IZ&SwoLtAbd`MPVkA~kPd|Y_Ys$N{Hl&# zBBAP)FXGhATCIeauL_c6b4tEcYyf(^2>+CL+|voJzo*y#(flT8#<6k%l@(P2pT62Z<;#4Uf%?m%(b5XdDTuDi_8YO8|hP z%d*|?LfMzV4@AT1a8RII-t8VcPc^MGAz`a0ApIII!h}Cu8+ePmHD)B@)#2f%z!R3m zfzx1o;}#Pc6=FJHl_R@wJKd?$;@wPwx6q++m| zTj@z&*g+Lnh9z7g4FUu)#y39-c-Pe6xz`ogB1Iv0l>nID*QkGTIR1Y@qx49{YUQpyz&C6JK4)pU+>Qf#GZS`GT@6ET7hZ)7veOVp748K~z2U z!=!Sw5Q`{_8pMbD zH#m%LeAJma0O&NNtvECziZXP`&Q}?{;@llRr6vmLL;&~kc3F@r{_ce5gG{&4B$4#J zKh;|*aezvKg~(w%vj4W-x3LIMSCuNW0esWh%pbg2TmAhzjISA2`Cv?kt7!VM)5?R6 z_zn<>{qu5Brfx)+3>^`+N+q;AVpR}LC2~r_CQlTy3?b8Y$^FXjR}Q+9IGySl-QtWyxQS+HCqgwy^gE4d*j{8yo&&Rs8$@$k zNBlZ`tK$fx`rl^X`p#6tkoK>SZSz|Hl-=etr5x2PObbdZ9%1^47%lK?eHB1>_wO3h zUFC+hxD?vJ&*C9}%(hphAXOv0a+3a03n2pjo0{U&C}6p|9c)O(_kp&PC5fL07tv>Y zTZL-2pR|lqPX?-*nq!+#JC(Dse-?|sv97ATKjT@VlBEQB!Z}$3SJCwBmgRBt&7M9F z%^iWI6Nd-zeRg4DN-E0h#ALke?r*BZu5@?`0F>vM08ibgVM7Btv7zpGbznpCIq#@N z?)##}AN*BX5vm89O086R>Nu5CeN#pe6BP~|YrpR^p#{DZ?8l*#d+7Nz>N~^5K6lQm zT}1J&nN=t}HKfqHrpN>~`FznPbn?nVMVpiUaUiuL-6ULNb%YnV*q*MnnJ$Sqwt6{E z`f||=Ik+W!G4+-ByjpOAJy8+n%+r5p9nRAzX6Waa{ZXRKV<#d?@YfmoA&C;9ZuU*PA~m zYd@je&@;;Dqb-N20$cbqbq9zAr_XK*ML!Y=>z$>3BCk1HxonvUR*ddVd<$ z-|+IAWg*RfSE&9Iy}Dk-J7En|x73pUJs%qyYEnb>pPK!6v z|C>$&rOAY|v9CfS&rQjB$T2UsiZAq{JUf5(>XX7-%?vPt2D(Z?d3O}Jh!e)-A~{VU1+ephYRC$E?nZQd|4 zpPLoi{x0Mvb>bJ;RZqqLESH0;8Q(gYcGV}lLyFY8Rag{8xE4^c^k$vqj$gR=zwPv# z+U9SgA&#zllg>{?cdMV!4CX&JVp5PKFM;))MG0YhOWRT#Cx{H_v91ZB;^C?S#`<7t z$Nw*^yCHD?F@!$r(BhQRScRgC_jmRzJ$bTNj}94R`2jasAHH^!i8ST*+>X}J zPIPc*eTLQPpTUy9PS4+2j+S)>v#SnwFBh1T#!6TyP<45Mv4C4ZSmXw~Z|bkFHlNk& zbwK)j2iC#XV}F?Rj@$B6c21k#)l{u|Gc5OPP$2h@MGNv7oM||_)5bTJmULa5h=lX~ zvFPlr9qw=4l_M}QbvI9pg+ZRlra&9sL)otUsUKB++=rDvX;Ng-|HZ5RQI}MG#Kp@C z7Yv~fk{(P~$b@Yr*o09W&4LAbXB)%xE;gp&w!Q!nh=bdlsFO3u=?8~h^BK2$ZsZej2CAXkhaBeE! zRi6B8>oUqLV&`wmobB$|K5HZbKg70>nd(Kvz}F3?nHc&2TmN4H8WCk4{i$-5y?}ht zJ#uMLu9e*WOpMttkl^{oDNaS&2|zO z*(3CmI}R>O$fbHQ(`#+;Ay@&s1-&4`)xEc5+LQc>>+57uv~JLZ8!Y zwVpnn2Y{&XDN{hnUu-D&;mOqhY`R)*`G;IK=DMRI6=>Ip5f`9055hSLbM7)~#N;1|P5 zvK0t+B@|N<+Vf7X!1?dTZu}Wk7=Lmt@*x?gy>1P&uux6J{eQOr(v!OScy?r6l?Tml z3n6JdWat7R$ehC~TI}WF-RTGXf-Q%o{xE>p zIY1^HH&rVAoVde!D(bFx&1|o}{c80MHIX>(vEjz5eHEqOX0?5`A*dDO#YBstz0e)S z#!ENwf7Kb{D+-XUscfYi(`#<4fu+KFl}$HMXZPwiV=`0r98>%h{hT7WX6jWzhPms#2Rwo}{a&VDYo<|2mH@_B{hcUleC|-(?HY`dpvT|0XSOe4G7c2L|7<4w>V0?KVi zEIp$$UKI)h`F+19if3h*wu{%I4g<+i2A7nO)oB*?ZLV18S;TZo&dQ{QYxgC5KpKA2 z?H^gy2G#6<264;`a7++-a)uzVp=Ao54rid?Lw|lAGIT^bM=n-univjDgGwIRFDRl{ zuTlMrOx78^<6DWoT>$q(=4f2jHL3D2amU5}Kw-n7+r;IEI-mYc zxB3=H?EGfh^*i_oRGK86f(!X*mmIj+@2Wd~0R#BNxP^X`fz#)#W7vvNp;z0jz=7Y! z>aT`N1ZnzkqxsvYE5Q8RAAi&=QtL;a%vyWOts>Rwz-=$=?<8Z_AQhIe**NsM&4bS? zUYmoz+q|%bhjXf9Wu~#ysMF$8VBudAqKbkLbQ)m#Z=VFRLXd#%=kd@0E?4G#1H0O3 z{3nDzRZ1{I=vrrtd;JmX)QB%(LiyjwXdRqD(7dO{=XAG%^U?17KfD)9?diW= zxA!}&s=>^>CgvOZOVgv~Cg~E3OLoHhutAKP-WKZ~xmbWyCe^hRH}En5F7lit4R7<= zuS(%(z4wEd&G*bp^L9v{3`66q;?zyRjCjS3^M75ehjz??cYu3fm}IKL&hq8qI2?Qv zdXNYRiqXAT!EzKQ;ysw%nHt*#J9|GZ^_xTS1B}h~Nkk3QPL91sFiAZeYb)8;qCT@%D1j zwN;v>hM1=rMqgY{y_VfOZUGcGNdeA6519mU{>J;Cue{Srz`O=?CD&(LV~uCPCTRi+ zxpQR(OGCPMA&bmJv{h&=-NM_*nX5aQ41R)izW?LTcgEUN#?Js}^+l8;Z2tSQ0&n&O z^XA9(V2h}gAi@#EclXn}^H$Scq8qnH#V*6)pOn=$9&QgYmqQjEPH(LrEOVLoQn3EU zd3gBt$NGOZ3`_JM_!x;y%NTB*^gGPhKT@l3BT9 z(eTx|*rk+vkx@Kre8YA*;?wC*;D^^Ro~|R#sLEcl|w67W+C6+GG{{GkAchnS^YWQQTa{zMa69==TDhOPXF@RYxWSBj;r{*{k&sE--@g-`y_dU+be{fLT*!(T))c<&XC{QA zT$`ZFr`nWFbO7c3^`YhHimJvMxI5I`*+}8n@RahBXXG!R&zB-j+k|L%@2sx#ve#ax z{H`4q4Q>8rRU8^n^8SBldKZ7D|NsBLUS6eMih6lP<*-Uo38g~VR;eV1RSG#RrJT=a zHY1fJRte>_gq$ab&3Tj49Lk)>W`>a&!?2khf8L+p<@*;r50~ft@w`87_uK9Im~Rzh zBO4TummMp?jnQQaLj?^>D~?5en*5CVPBm`lL$t#?ot)D2wz2mmpj}Jj(4cun4aVtG}{Ws!|3Gg?Vdy60R z1)v)%rvW}unhaa|{>NJQaHS}*c9-XI%Kgh}VLC+ZU(11L!H>K1!=4r8TP_}p#QU4( z5Uu6NiN&hwr@0DFAwL7<*Or)f8f!zTyzDUQ$TDtI%x&Ck#sh_ z^{pwZ6=|>DCIS*n4P6e)K0WPZ#MFjroi7dZL=>I*mIkOG+>2?E5Q564levn3N_P-E$+x z8;aJ$hqp~83XH{zlLgcekxqJhRQ%!5bR_(z1ADdPT@dDggEl+pCUmm0R435ZE5N~b z^gW53@b7syp>dt$F<3Sk0JeFG(t7!Mx&CgD0W^FgdNN~7(X(S?>?x9C3yd7VZ{@tn}*i!;3+za2Ejep&`^$ivi zZ;gV0B6&xFILvJ$vD-OM-K%AR7NIvpKLIUaxM=r*Q?k}h8-K?~=kokQ8UlWOvx(DX zRJy+Sx6Z=(Mar>c&gqLY3w597F6wbEff9V%F zRfqU$hX9dOj{vuJvmrCEA_$&nZ(Ki?D=69asjv8~M3Nfo#+})3Z8vWIcy*~O`%snk zf0Qfupt7U3GhedCH1{%8RO?w8 zR+fgv*f|^Dlj*j1A5n3;5-e$!t6ACNu6Srbvb^!)KB$j`nJ$JKIfOYAM{6(Ei2 zBnrC_-~pBBat2ICxd7vtW5ku6os9FdsVUvmx@RlkQ*hB&y~mxw~lGVLM~&;2x%JLZL!0uo3qo|2+ny<0E75aAND5uZTz)1kf+K@60OGT zH?*OS!vFCfc%`>?Lwno(pNwGSdGi?wI~_NI|7@Xtz4Co>z=*$XpYUGVo+@@4V!Pk* zHfjxm(?i>$^cP!Ctv1iV!J z(z_M5#S`3~kMAh|NVmUn88zSduHpRGv)~_8Bdun~fi!;Tw+#X0>G3ya{a=B^KPVmQ1 zoXjm0x6jwYF?K+wFbFDAm|%Y!Jc7o}B-@imzm+b38`Z5W&mlhyy8^XA9$WJB6K&7( zd?(muqUD83`y%bpr~Bp56SPp$U#om6{S8t)$_dc`44HK|itZ$}h2&HiQKjXa2Kt7b zMw}KoFgI$fco-rW<|ae=EG_}GIV7MTz^_px1ym8EkNeXIQiHq_j8%cpvP0eHQ(1gX zw6}(BPSJKa@<_yNxY3XKyOgMoK*47R=W*OjuQL?@sS~V9Q&vF1mQm{jly5I7%O^@< zvu21h-9tZ4K*1W8j{-cvn=%r#s2eQCVjqNg5SI-p2zPZuHV% z+{*_tV7u7I`+|{T4K&)42U9g!ybFLaW}FiogAe4o8rdYSJ~g!^i-9DpiS1IU=`jUL z4mHYC+iH}`fn#o$%(sM{%Id%*h5B*zbp|%lfz`C&b+4%V5r%n{fB> zd!&{Td;gUUkK8{>U2(JVIODK=;o=dM*?2&7{`#2BYDp=YS)r0{9hl%9_%>NN=x46< zcY@qxv24@No7#rM^}cxn`fIOs0@)WpyDDCyH z$2Aml(D`Bux)NS{*S4>IEdTk;u9j}Z#Tdw67E-a2f;$ik-Du9|_uDF{Jmoq2$ojbr z<(D&Q2Dne_nin!UO|x#*SsTm&(Gql?p1HGS<^W)oKc@8jI3#n6VSJ z_F*@O!!xC-Mec>nFH;h}Semjp8EmPAW}3WdOvcpdX*4dPXV#WQK7PQcsJ5RC07s&l zPL7jb7=8uK)uIVmn5pOnh1X%V`uMFxO1dOff?IZ9_R>gB*XNKYF!U(OAUTISDOu}f z&F2)k1<^u-1i5}Zaj2(HF*QU8t&KAWP;fjX!bc#5TCd{rqG%)>n}R3;25&qts%upB zDWd+1TcF_bnx{FnwXdq`gM13$ze=4)Cnd<}D%x>ibcsU7qJE7IzZyC?xxQ>lDa482 zhHkD*j!bU6C1EfPL85HhmKIANAy8pW)l(>w90zi(n4v%XV%1#`>nAGaenD|MxhaxO zBsMAsW*)^umy*Na6pB4H&9_&;l=TyxhZQSq`0-~UzF>h2m@>H`@b#&v%T?&lA(Vg4 zLXU|_&@Bi{TFfQZ5-Q3}BV}{k5z|8wdqEkPoxqwce#)wd?y$uS5z;8#1ro=^-=x}7 zG*9GHuG$+;K=2?efn;)XWTr-;wpYi?PhyT}h7W2`2WNq^D~p!b}ZotIL1d;OZV>O!wv{dX&9d5nw-IQ(PbqtD;_D$NKr zDpcmVqiXR`Bhl(DIb*2G%EmXOG4ZAHoJ-3vbWHI|c>3hX!6cwqpE`OU0C$Y4S#5wkTG_kVbW6825EhJI)ip z4Knu`OjZ_NNbCTy&B}&5pEu=bU<~ayls%lBr&J@BrbEByR8t?Z1LxTm@Kn4bv_s%x zQ|?76wm(Nj(9~EXfG|r6%hZ7*b+T%nxiucvM7JfUcvblHYOMH3{Y-%;6*ml)Nb1R~67! z0xNO*(inJe;bPl0VBs>R851`!*{~>*28-ls7M%moqJHFP-eIUXj2ZAYCB&5L2rn|2 z6pNADeNzcu97gV)T&v>7Zi?><6cOtvED1k1$C^hh6jJurHZ?Vi5L-Ris$e%kGF~7j zXcaQ(a##Rg03N}K7jeZ@$FOI#tv;F$je|!(1U~`%M%Gknh`v(|Q&0SbKedLMWl0xF4Bs=i}xe$*ID-y#a+$@s!PheDi$X*yeGx{JGmzPT!#hAbM;L{BDPKP}Z35$QFKy zHVOivh{D+?e-4LwgYQA{jd^pj=}jS~z1IyC1Hu*K9Usq@?TV2BIgxYXH=6Qy9S;YI zeRgeu-fS7Po1KfPL=`_|Wz0W}!mC~>-o+sEzcg4!m1T!B7qB)I|MHQi2czHF6!IFX z?PMMhQEBZ@fU^zuGTIK$Y&IzOsXKwz#9GxTzANyBKg0+F`{so4Z-Oronk(T8&`2*z z)LcDxN3TWQ0K(D4)p@Z9#OxEWs00t+at=1s|mP?|h}Olac& z38ntFtp!Ie%Xl4^peW5N!lY21l%!HiMOf7%WpvK*A>c0s%4L!hb-B4QM;@DUE2&%% zj>Z-h?OM1)Jwm%jN+WJ95#8}T4tR2M%PXu_D$0%2@svOunL&g_b$I!C*(#H1Xc$$K z93?A!Vg%zAbEnz}WH<5jc3)O>;oNdFTC}CJ^=-QbxfSG|?mSj8L4mx@XvX{YMnOi9 zB&%WnzF`$kgSjK%XsGsZ&~YsPEFKh2biyRw+7@%UVcQ4_iXeme_Z=| zB()*R5sK6qRq4p)-0Z(2I_7hvk`KpI8`PE_(O$iEI?iamOAT7$@K z+$Mk85hz$BczR)`#+;B(vOw^rKTpaPBA-<@j$7YQyhEM9TLRQjYm1oVLNWn2ae zD`)*DobvUUwiC=kBH@Bqz}7(IEWML^3d(aMFGr?r$>HX%3K9@oiL3`&2R5Cn8%1k~ zEd&M3n?{gv8|GpQfe5-*!j(f#JVH7RKkWRhVavyDK?mmCNm% zvq-95{z`HRK+eGC(h&~@$$rAhNJl!5)j*jXtSxu20}V5~;~N&8D(%Y``x7+IYIsp< z5MRwtXKDf7{N053sBnbEJ(MAo#l4fD~T$WRA#Mq#7^ zuYCx)*|8Ye;aU90vp{uo%vxf6v+{lbl=HNUth&O4+tvV|MM9F?BqQ;jUX4f1eWKg~ z=Iq{UtWBr^Fl#GeaVi?e0NNNq<%5VW|iiRWA|YU^z;(Mb4JQ*wgJcoKW0GW0p& z*KRQ{rmrs;C16aEf?+~eO>qjXWF8R>0!XkOpf+{u?!BY4TX%N3BTfhZJV8$>)O)jh zlJT6+HWSAf0eDxJ%<~y?Dn$1}KQHU&lwN8FVdlvM%{V62Q{p#Vwysi|E8>UpCFPNDk6S+@lP1kzeQ>3Qk|*nk6;G-_>~Np z(z<3H4}WN#cv#-_LJ-Lc#shWs)wK^$fdJ*461fA7o6ZB=Wy+AON>ddzSj2%>)`$7| z&>lij+lBT!AxgCb4rggkefTs!Q9k@?{M(|17Ho3`_$X>u)JA?zW0?<8AHXN5>3YoPoD1Pvr0 z!tO-T;1cxqQk^ZD;OCAP^V#Dgr|71!m`k1&xP@fy#`LIfP(v4_OnvJl5SM75e4N4kWKU4)EC^W7=F6n7As}WX=`{2 z8KIx!>@iOgY+RAi2E05=TU_QRk)R~>B>d}>uW)8PWt#45XCfq|#eTVpAT6Z(!6C-AaeH z_T9qM@kbAvkX7y>Hd5XkK|GNsKTwCQlAnHX%&k7?^fRexKuK9#GvW{n;^zTX0H~kO z>Hqn?=W+Xlkj}#0-8zx~lCF4>vbm?@bwWpCYw}FN{I-kCdJ9?u`-7i?tM)gtm3Q}% zb)&x0oBo0O<)V#U)#7MR`j9i{7>=KTGE3S&J{ldEW&E|KR{u$OPrCL9+-NSH_og!Z z%yM6G((wRAMRw%sPwA*V=mvgC=%P>Up=O0aOw7L}8AtCGJ00-M;cC?^`qmW#g=2Ki zK40p?ingH_is5DiPihF&32@$7)MG@(Q8_=q`w^Z`V;qtHI$9G8MuXNkAz~aAt6%Cv zdb=%y9mTJe(k5|p4tNZFJU!aOq0G%eGOH+tus9WwPDX*WAy!Fg80kd$vhOJMSG52!ss>lto3^?i>HxUG+)m*K`po@WcpF9)l^Ol69cdL#M=C#gHuu2jE`9y} z2dB%$Zi@p+nzEl(Fx9V2jncTh0}VDo_vbkowH+De5#J1)XDySJ3<$Rve?UIGm{8u- zbtPm4+kjv~wE0F*#KkI-@x{@4FXSs~rlo%7`f+&hlcL1{gUAiWm4t=AzU@FwI9@t` za$z-}b%SBOdylWtKz0*cm)@wW3gdSoWx>f8;B=x!V;6(~E(p819zKAAVAVgLyZyx1 zw&B9b=pnX`0*dW=Rqs7}QA0g^VRx>yG?EP>SB<>gv(bo(W(0lJ-kAN5zb^Fa`?980e|y=4 zgRveO4PCi8G`3sJ@LXF84Jg+y`p0a`wxR25K4n!|0w&TR}ry z<6SQEX;u8`4BF>M_Z;42qv!9~F8Wpz019C$Wj7~_`LRwwX-64cM`Xh5=AcEK8$3z! zGxQtPnUbCgCU~K!k)0u?tjCr9C90UBjtO$k2zObs3i0%+CAyO)B7dkDiGOlKpqp{5 zMe*n+)^;+w$mt%jKj#cSG!;D0Wce1_EIwk8OT%brzFwI^kC9gejb0cwT-^~u@*$)g zLRS0CEkx2ClY-`R3O#?;SE!Wg_ox`ykuqAfbVi?qZP|(Z`yFJ$YP`@DfcHln=E?|0 zR@vyvWssem*OIqj(I;r$3Q+E(5^7tq{CuT&$1s(wvDmC+6#8HzbfkL0XfcE~0%{if z8%4F&1~ihH$&u<|^SOhVF?3xCZf9{VvtEq`C@=CmwK45ZIDtWbR z%{eng6BD4m_#j?RXalIa&KUg(Omc$5qvn3=_*FEpzemP7cYJ&98!va6LxZ@bc}c%3 zus<26jOeQf)R^LZFiJMtx`YN#?NmLVgXa*Q8gKN@udo_H0{3jN=0ntev$}&uGl75Y zQ?bz{s3t{Lfz%kG&bFR^YujCF- zbQ3TX*5C5{!fOD>D&kvEdoO<56}MoWJNVujK9)*-Ol@5@O0q2D>iG> z|DlAp_YDXS_o-Nhy*1FW1 zvEZfuA=6RyHH_mI6F0x`d#I!LK|G?f)pgVIIDz)R`V)3xZWXvHDx5UUWqcq|Vny-H z=Ra}W5?lOtrwGR5@ye2tSI$6UW7FnU5o0l&V#{GiDnvkm(Uo_jX1H=!a|+8lGUp#{ zj%E*HBE6q9yEg5t=(~zBC6~gO%cVuHvqjyc` z9G%Z0b6lDgzG`BAQ)q%5JXMwo^J!e^gL^9IC|((8>(G?iHJHqIvDGqQ zPKQZIuW?}mM$&Tzk)!XGbG zG-}Uxg+Du=o%0A}4bVmxMQk-eq8y@rn{3ufRx|PU0B1c15cJ7V6V}Us5gfmT5oZDX z)O45aSW%B&x#7ij02q2Pm5r|a$*Q;?+0TUZ4Rq^=>&AXi1?DDUvXmFniOBQ{IUV%#O(cGO5AuD_7qf9tAk z%kw7x4PWWVu)sA9x;d<4*Bg(Se`+5IyH2W;1B3q7Wo*3ppf~0nZF)txaT65Uda;16 zG_5NdXH))RU(oo1NIZY#{7nD3n6^A@c-0QEWV}&6ocOT{#0yEsZF2Rf)x?&va~GFR z7VRlY(0K%EQXgnqGZuW8hv2>sfezcWt3c*3-b#h=Eg^FU6vpmoizuA6 ze2dx7UrlUe1Uw5Yce+&(8fb`>oBN~owXDZ)uJ1}E35pO+t!Sc~zNuGUzE=))`pfyo z3~D^1YvCrw*=|jJ#AfGWNy6a$@(KIPW#`DJ(w*-I6{m7vYQQ>voCO<(jpbLUK7YM8 z(=5x(%W}~3Rfr(1-eqL)fXAu34vwdd++^g^JQe;__gqGn>X1evpUpWXc42I>(fkU< zWmzH#wDLve@`sHl_u=TezJ03B2ZCN)w=^!qj?7lt!13G_xOL;&UZVHr=z=1p5Z~xS z;ZJ3BDG+an{<@dKUF&;{R||z7>Z6gV=dNW zSm5KlqDkO6uH9kvW|t|BsPhV1Qw@E63$O{lhW`#J05JpdlP_cjtV4v<)dTmHFBg=DYaL6aR##KVZ8}Xg)X?d2A1`=#ejPLStNPqSgn7thm0aoh zcHGQ;=r=P)3k&}3G7k!#U*uV zzHGip!BB32$=kT#;d`DN=`h!Sxxp%j-Yx!v)bBH;#RJ$I+zmE^5dasu<`z2cCG>`! z1GhAG_O@>$MK;%fU{!Hg{Q}w+Uku2NeQAM$s*kt!TPM%zG+zVPi&6|P-|Ka?$u2eF zWSCW@{vt+mtJ`K}`%aFT2dLM6;SFAcx^_!>uv(bz+CFaP zn3W&dxqbzp-UL$Bbwb_2x;r(VAwPfzl8^M5%G!)$N9}B$PFYyKm}iZbSN$55iFZC* zlLd0PMea4SEhVV)t<#)kn!4u8{!G(P#_4!Uf-FCqdTpgbe!oa(UV5`o)g5;WUWUdx zeu9`2PMX}AY-@k_knvV2Uh!91FWCH)k^SR}y|D7rf~D$Es3z- z8S~8U#|=!sdZEFiOII~+Ll2R@JGyJv^vAUo0_SjNlXfeLhw3E-LZ!{Z0Z}HnC0xL} zE?R#U*7u{Y&BHKF_P@g2Ix3NdC6@>?v6AGtA)GRkTy%Zje0IT&KAvnL@^fUK~vuzH+2NSMP=? zDjwKob7I<}bI?x>VTeU-Q&lb;#BKe_j1OQQmn*I)8j*P|RD^QimVnx-#k10KV4BXu zBDu6uuO~Kg3L*E~VU{0RJF#c$?W(JPKQv|fd`n)mdI1CydBEHCdh3T8~5ccIKm zDW^qxh1}0!y5@5Kf()1ZfhApV#yJ#QylZHC>3=>~J>qir#C_CZ^wX$C4bd0FfhPs7 zn$FKwzkTMpYNZ}Ms^B>Ya%j4YQVkxxA0%3Waw!-G0I#TazGs>I@g8Nr#Te@|Rktzk zPnr4@hDf?G)*F+m|4uGgxtMs2=u;|)HS-4U8=eR{ZE|6lxpGG(F7$^FEz-)t*io}B zq~XSe5wV-b#2eeR#JTvYJlUOIy>rOOrNcHp8XCQ}&)RTNiWDqMeSY&3>t<=-+Q@ya zhkhlgPi!LnKV$ZP^B?MvGIrc2C;w1-&8bM#Qk}UN`(4?kv8|ur`7feQyL7qw6~$h2 zR@HNfc&kG3{T&FotdoCG9`noTiGqhvu4hmM$Qh6VwoR?33 zoxHohr4GiBsuVM(T7G}DFx1Tw-rw7H%x~(nDlaD1LYym&j9*Sk%?VU4g%Q5dZL$3$ z*@=>=Es~{P46Pt~hvaoMf|IC|lD1_?s2M%JTeS8b-0ZaxLMHAO$!y92R7(-x=IkpZ zuho?cOQSfN`7{zbf8AxDhKYe9?*+d#E#W*)SeA^k@=0*^i8Y4#j(X(HD)TBt9{Q_W zExT1r09y3{f{z5nxIP?xL2`Y;+X;eSJDax_`C|-^fHp2w^~RgYMB{XQ*+~Be8(-jR zX?%vP{nv6cM;1w2#k2%LBqBRUwQOR&0-qrke-3&mz0y_A0H3#rDQ8%bxUaVOF>S%W zk1Bdz&uSn)5Z7vi7q5k>FT0MrXI?#X*d}?rG}%JkE5AJagQvLOPW~<-%X0Mj*us_w zvpLdUr~1Ov?}yJJX_;D|XM!KB#{(yWU963kPSu~K--rA7cox{a_A-k&{Dnz;k{VVI zGQMz6Alm~kS9lk{7o9q|l?uQ7s4U7d`~HP{7nxgYKV7p2&m&wBmfviB&VEUaJknRP z^knX`gWzkkyZ&4v?D92?+S3BiKe|u>ys$TU%LKD#uaPtG%m^cD0y#C?$^B&>;zPmJ zGry{5VlF=|w#lbjdrlgbEsgfuYO*gMm7lYcZ=SDXJ5U8OQ0)|`Hq zbGsKbR>NOBmD`%qjm|tjB!6W?r$*%0g&Jeexo%sLg8KYz+=KUJ6LR!&lT*!#cd9V# zd|v}wEJsLhW9njcnUckoHQx)AEznFJ}ca)i@eSIs74we2kK@dP^-WT5#SY z=--!W17*&GsY1)i6DVwVC$6t!L2B>9;f-P9_ED&<{emCqkVe7vg`VQ_7h^iABEq*# z7FcvD)Z8?B0>_a5E4Z|Uv&{^JLxbG;=)#SOC_Rr}IP zC)K?QMo)%^mNs{AJ&^oG*X_+_(S@=TkP&r2R~%CoU3PLfefH8yru~)D;0O5|BiFn`-kSJW7R}zs zCf^nO!z`&9l?mrGIA-5+Vb$8y#^=fZ^Dt1JGG-I4^`$$NKX`QM!81FFhDPn^KbJgz zKmX#WxBo88`Ee$C<3{rXQ{o+;(>dsMWcNsPXY0t=gC(rRc|U8Fh3C5>tJGI7&uML= z12bl4G6OO?0^uqZYnWHLsnMDw+%w&a_cTfW4eRZXepGVE*WuFHwreX7vXzX_UK`mT z|G@K`5S^@^RLHq{LI05s=b;KwNv9NUk^U63%e3mZ#fXPBCiQ8_st1647k%HLCMD-P zZcu>=9(qplzo`K(AvNG_986M@o%y=X8}NuYT!3V7cQOgoZLMcWr& zU4$!d1JfT(^S+vChg?2SLQTCO@fPkFhQ2~7I|?;bGb6K=HU`>$D$bxLQNDq~rRN37 zJE*GmBm0%N*`7*!RH4kvtd4fQ`JI`2GGDTa6r;2og;nI*EBq~I)gybhfq1qX>MGPh z9y^A^mNOQVu;; zIpI*)`0?iZDK`&}$X@K1?wnC!xJ$Ven5MMlJ)e!Pj0B&V7HSUc?2;vYZM-x|Sni@9 z`EYCQW6+uoO?C@;{!A^bMUo2+FQ|N?T2!<)U8olM!&G_{2P~5JNXM1Zik0B0?;b{6 z3TeJCck#;}Q*Z{)wLFJzmU-B}G}4-MJ@}ZaFvd$=A#U~A zfjxd_OCW73=1_MHBd3V5E=Y`okgH?DJeG2*$$#J)$fIWXrtqlvWv+Q#SK{W@Zn@2? zSlZAP#IuV70o7~$XMfEqYWbKry)FEmKl#%AXX8OZ{p3jl%70CJ<}bbY&G}0Khb!+= zs|w~E$T+Y^K3$ze=kwA(_PGJ`scq}yq5*;KKuV|%`dzWqLXQ4cixhO`;=PcaO+biF z;^h2AtHg7Z1%H(yQPuTJr10ifIuRO3PWZsp;18^ws(X+(7Z(OD?kN{1Bv1ZHNm8Xm zHuCEXnY{<0`IZd7M;?a&(p6G^``MlSZ0uob>on~%Ed@#>%^x)SR~?UY^jD&9GIqXL z>4eu$qXd2cuaxOaID-odla(_^9gjY9_xL6EU-s|HSU8%Ud6=>~+jA`QJkMFtp3$S6 z^YT&BcO$9DS@u32d5MNUCk=6fRK#y!I+dt#{-QI9@rC^1-tOD_Ed|DvIxal}a_@7K z=&hRVaeXVoL-^OyDlhdW)dxO8bd+#i^u=jcZ(4JCVF|q0D`fh9a*W}|fxqL4r;*;V zsOH30idWA#8-GR0y$KN?o?lIAo}Y{&KTCJk%kSU>w{UuROj)U09d&E>zv@$DFWx+P@9IaD(k^l0P&W1UMA$&@=hBS4>@Phs})L& z+H|MO1bEqv9x>B>3e28W*&0p|^0|k^vzgrNjol(f^B0JoFlcFOk?d+mrx#tiqyK@k zLsbXIe*Ib!`*jn`C_)E6&?{K~K^id`+)K*arMQ(77OvS4%>}@0Re{Q8PEx_3Sg5XPmBL^tJF8&X(nRl@^*Aj znRx@Hx04$n?ZU_4NWCRs{&e?AIiWv#GVR`PfJjNqxNWFxhB&hTH(Fu6kxRY_(3uYx zBv-VWLT2`++D@D`9&0G)Hrp7UN2`Uq@IQtJZ&n36_&m^HBtJ}nFm0P>ko#1RS&ojZ zzm$_Zx<|Xp|HFQu@!(FZbUz_t8A9m3j->9j{?5~wQ{I#V8S}qOE6A0#$P~}aI=UC* zXRq0A?433-#|7^q5loO4D65?78~t5zY;N;404MfC*!IhA;s%hjE@t&8Fn27(0G%B* z{&^R6BM=>27yKvqbhv?we{lK2z_QKC!2*w#LX*rrvbs0*!=qwdTN9N=a;5DG%u9c? z)Cr5P1A6fGxZHQ8@PBgv!qVx$SvBN=hrWf+{=V?kLl_nV{n$ukA|~1 zYc)9*e!H7+;;Ee(iIb}Q(1TI(GuvNs^R)ss_`)D)8GM9AS z(ZHxsIl+&uR@Xh?t8r~8!?e)cUHMYE8h$YK4s7E@I6a9q*sHCw#tgX?YJ5_uk>D}t zPCwwd237@zYV7k1J_)ZHe5x4r^rGYHf}0s~{S0bvC4T_y*UTBs6${c0hIU7aehy@Y zDnL(J z`aYfS``7Tf&!EOjo1NMX`~Ud>nMX$RoWaKRvj;(L`wR1WPUs)QY5;U&esx*rSK2lOV^p^_v&~JTfjubrt%w$IsHOYo_94 zoD7fQt^qJ@L;_fN7@<8{d5?UZIbnL#8~#Ju&Z$V=H22X?y{(S)LzBaBrk>%DEF(Ki zXp?<*M|$M;lQ2l&f`vE6F!D8ig|QS*^|oQu)2Dujp73*q##8!Vl^3(C%Mk-eNYkd} zn!%EAoZLEf?r~H#n|+V5K-)e=qGpHqxTGh}322GhWhJRw_?}6=YzwUpy>ZH6M({G+ z8vAl>AJAaBNHwV~FW$#^b#3#*9ztb7^uqp^ru^XVa)5~BltKpcA^jNvd{%>{Xlng^B;zqW8hcD+nq6$3+t8supVFMF zUMkD>bbt%4FUGRSayd2BlmxV~h1Rk6r;j~%7`7KYq8fH+!`3+RO$lklohW_y76AYT&yjqM@xc( zzc+1*QxNRlYMoYLhL1o8lVvWN$OF8~s$vfM1S4)6KKt}1bM?JE_{f6y{xUZ}M&8n` zngL$PIW<~xCpaXOpn#t&%7gl^Wz!4Egb=g-}AmOp~Cva=Z6=B+iS7PMcb$S_&<@rnFOFUFD26IVkNvQNqv1fSPMGe_Gd zx5EY}Rcw?u__GTKwi>{)=eyEOQPB5eAIO5oE=ZHKh)YZuc0Dg>#^bEVZ`36wFI$vd`&y21$|h!Z zU)HZqH7s(r+x&GoBJwH}Im7mIuRo5YM;V>apfP0d{Ws<8uR6kSa9sbCAY z4uhRs{(d?sZLLG6SYyFi4p(Ctz7=t>M`6!#IFsx;KP`vg{gAVB-l+fZU8P<1lA>`l z+?fqFj=uE%e3kzUaN|<=TCqM`eCNxFp`mvCgAJUcH}^-aYJM3#IP@<)0&-?Y64DyW zxGHZ75r5t2lX}{4pP+`%W*Xb&xpVP!ojF-h$h9y=LcAQPVJ_1E zhUUou4POn0_d9tj{>A3m?`h41eN$Ai%5cg}IY|5J$D0q@-q&@L^PGvdO;IstOr4IRezeq5A`^yHLDNu3YE{upmyXcDNe}*r$9ALqLX`fAb0my-yurV z#mP{{9LZT*uYZWn?o_S0>OWv2zEQg(Uw~Mpc>bK2r5l}&SgXd$&L|zP&$m{TvKHmW zBQ2h9?Wqvc1NkPxJKCjqn?!~+el@(R)x>Y=t4wM{(mWT7Qz?jo*bNa+Z-E%qJwLq~iLS4EQZ&xY~eKT<_KtpdtsZYP?{tF;T9KT-WmRtD>MBw{ID|2-QU%5=>^2_((xGSX|u+?$v&}+mA3zt z!S;4}RK1OEVJ0*5wf%C@rJnx5JbXWSu!fhnL@zBAs1m6&n9P=vcQO2w1QPq3H5NB?KOc;-a^|moX!DWa z2AC^kXDZqG@!+D&vuG>Zitv=e@QqDu;XePLg|cIN6d82?%F7!sXPqLx9)wI@KhThg z*dhB8DvbS3$leP@ZPXpVz?DYA+H?T6u7o*uN7}4PYHoq? z&&=WNM{3Drs~};`vyPbtubT_aH8DT#cEk`gkh7F{Mz?MAppHsTf5F0SyutXwmlnb# z@ANbCJv!)#9vv(7Xoav?-t(gLlFZe$dyLlnfv96(S^u9J?eZ$qNNwW;`oh*!l*-cN zS0wW_Kwr3CUyH;TT{UceJ*Uekmp-y@=&IoL8;QB4n|@b|hGa6D9h@9|T9{C%tUux3 z_E^xS%Kb52IN_bzb?n+}RbjJu>Z3Gn^`x8&y8mUa#$@5b-YjNt$dJIa{?p$4U#+WK zJtO}cmZKY&8(gj{s|q)Yo>Cr7We;U##$1XdLezb3C~HN?IEi)~HG1VvZ@>++jIdQI zFx*z5GHm*ztoF0-Mk&tvX3?COf1$2(qye{8ZSIwwQ`-<@CGHWjbw;;N)LaK%`xtTd znqCBfWEOARg&un!tbXB)4D9RXk^0rYbu6M?+vg58)M;LtmNJ7lb>Lpc#iH6!xO2hm zc$tlc84ckKJA!Pc>izK)Y}VSZ)p)qmR|xdeNilA_s5+P~9D4ol%!usj2F#SqPy_~s zWAt5m+Hs7#qpOvPIqyV+{2eU_-61-Zdv+yU!eA+`^rC9k28IM5RpqBGIUiN7noClX zb6zrBch`R-)UIA_z|Vf+CQQz2X;nDesQmdB50mp~Jk$GsB7~Q~;91|1(c^rpyck0h z!?$-e%(jozAs;fl0t4EOR8_FwYN8L@R0m(x>@YN#WW3!6H;gjm7(h1Sb9Sb0n_Mjn zgTtd5gwyPto(+z$FzZZ8rnPzv>{;Mkr(hde`IwhLy`$EG02D>5QU@;cbfV7KJX`&m zmt?X#AUHZ%(x%kR8&fa_<|d$)g7vC^&pyevhtBN`|1|QpGCE+YCHA;+FykslFpwCc zj*s~8HcNaJ3{6>qYg?g8@%LteIQmu#lZ1gYNL8YhL4y=y_TrJd=&o1lz#M7E)!^w6 zP6NQ5U%9lxvZ(*}yW`#{FemUQT`8Wos3MErn(7 zI~%_F#o@MP3@^a{e#ZZNoAz3A&KP^(m%6zhoc&i{Np4N@*Y(3qvHoAvwF82)p{AA0 z5&X4GtJ|Q4g#(bI5JLz54T5$RW8l!%*s0)YMb$)AoONo>T8BRSkYtCxs{Ci((BtKo zJ460bM09Sd6I};77o}HPVa+=p=^VL<5Gn#a01P&QoNlc9<*l(&6lJLR+scEl>xUYh z`leNM8g+L#yv*A4`s)`F<}$cA0Y!oIjvMMi{TBU>!u8UfL5VsWni@a)Q4J|>LJL$p zF>5piX>53O(wow+ogb8EnvQ(0Y}g|8M7nX{iTu$o(>KQ&Y`+z<@_qVqore9-GxAE~ zr87WdP`%1TWU3A}FM+U~>N#z~+zB|ahWh_#I`6Qg_do1so-`|^@|2Ydjgy{^rIon{ zm6er)%F>)vTJDX8AYiGPnUa~Anvy#gI_Jp7*Ldj96RzW;E2 zKi~KJ{@nNdlJ4FGoqaIOi<{uZ0E1L9hHjk6*!Kr9URfYz&S3~d{%k-@qoM{f9<=M3%F8;LTn&_Ek3Wf(>K%(% zfUS4Q?zxb5L?h(X_$&0mXiD$lhE4VwjHAQ!NBHdR3n}PNOl0B*4~droIV&AO2Jow@ z+Lcq5!hP3N%=FOFa#xZJd$+W8kdpr%^C8aE1X?p#{qcyuKi*#zyWsP{I>^iIsY2ZT zwAj{V=zmAcD-{i^_UPa1fu8!QskM}>ZaWWN{8@v^hG z{y|Aurp?}vyb{t{xA-&So#oay33qPQ^(YAHU6usw!}eip=wj5$Aix+#%oq??ZmlqO z=|2G*A^?EDjkHTOH@ZFOT{|77pHtEzIl{a)iF!D^2&;&&ur zq(@Yu08n&*N1SARI!k-p+Ys|vZO$RrsSToD-0%5B1)yNx)^|p>mmyBlg6P>OS%l5{ z**c)(=vB^fPQ~$3^^lF=Oa}85w>~}|tc0A-`rj7CIab*ec;@u#3uh?t4(R7xTbY@9 zmCN3W3XAnW-(d}z~KJQCFX%nBK<*w=|8GMq+u4TW4G*1^& zWTRX0ldL@opaj4-ReD>5N~l<*R5N&BJbMQOnh&aOxR~DcQ1L%-qb%t?O%O$ ztzSh$01UH|rtZDxnr~LkJHPW$XH8AI{TV$bF3YWj2Tsl|P1pBH zNRe{`3b&&2tDb4vEl0{Lye{wRZC9}*?DrvaZvw^Qq!AEr+A4qB_V*_l*{{)3 z(AF37a`2=hRf9JBO##mzNt4z$9-OYhFz8xVey?ntB*G^TmW`Az|4pL%jz+TTQ zOi5-$OXmqXPAWU_BJlI4rL)`H6hG_-ow)s0%y>h;xDddO0kWs6#5vtlAp1#a$3mgK zVeR#k?~MR|qb_Fe{Htc)-~CLnX0oquiom;SziYm6WWqY=2K2gMDn78yYNLt?-T3MnRzBR>jW+S zMi$b2ufpK^<_&983k&twB-Ne0b=UsNPRI?v>0=0j*Q&F4mM3mtW~65palH+s^p&-N z)FaxJynn+Tc`F*r>&qc^_xN$D^tsX2SvudsA>?ozZ7!C@`%a)4TdEk6L;ctgOW^;b63E;dH_(R9+u~z zLY;XA;YQ^O;uSguj@U1}0&N0p;XwoIQ>&*!IEL+6b1^_bVGvDu(eua1>e5b)jGPE- ziO5P#XTjNfo%ES|)t~>JaxkMEo0idsyxcpQdM8y^(Ml>K_|hkD_lLfWJ88|hj@=K2 zdl{J;)r|5x%x1&)aXsFVpL%vRi;l~z2?C#1Y zXK5u`Waydn(9BJj95pMthI3x21UIkt9PZ+*;+I8$UYO4F+%ssUw;Op$v7)uPeNdOJ zvXN+D%Ed733h-IhkDmRIei;S=eB0Dg$*XtO0PV|j9mJQ%Rt*=0LH{fim4BO)`TB2)8ry5-71K?q z<%8@285!ZRQI;CCFaf{)k=M#>(-}2O;{d6q-^%F`aHQ^0V?!JO<)Fg+XsOL*e0VI> zRF_u%dXWW$fJCMm>E(oSQbgfsQD6Hcc6shD06LR}Q}^dZFm7r}T=pO0n%^qgRhB5U zMy7H7>h~xdNPy}O8t5_Q0Zz=s{_dqGxqGchQ?Og=wf*>+BpB!Cz#;gz`4XMyi%e(djuzvS=E;qU z%Kg*_9YagY!Z3|p1Yr4b)tFrXCxhVS$Lmn`LlR2Z(R$N#@xDH5=G=P=6ve9IZgRj) zl~9>1drIG#UpGM$yl<_pf?HVQEe@+~v(gw{+B;fr&-84}ffIV@CKDCr zZT(P_)cnMdFx96j1MQ$#^Iep=DAPQ}f0PavV%ly<+Zu)(YdUP_^1IuZ#}cr-{&zeU zasB&onneYM4?>R;=hm#CZ%O9+mSw&XRL007lE{b_od%4A*FGb_U0AoJ zRS(EvVKdof8o%#~uX5*KEdL!gYd8LvdlKuAL4ZkwS;+hYVEHF(ZDsUTl~>bjmtBU& zPfwOhf5ba}Zxkh~RaUjmf(u|*NFEZ?xCnbGQcj@EwL zMvmJ&%$wTj$UC3ELqnr;2_r>f3evs+e&q3rglW>3@LxVtCK27H{$; z;uogjtuz~U^Z%Vpgcbj9e}H9Nml==5HwsmE5BUe8pNQ=?-xWbl|9#RotQ)w1-u*Xn z;Q$9QN%_4npFLuMvtakkL|KIPtiq@G6LGx@4G;htahlFQ0J^OgiJ!lfMc>nto85P{ zzcnkW$NeyG3c6i7`;<;Wd76GrhW#G)8@6>VMoqr9kOn9#IfYuO$WM6%y`_||ij~@p zj;Q4WZ#xYrPZDBkKhWD=4@xF~mDIFcvP!R)?Mzp}4z|I4biK5812E-evU^-(7^ zQ(E00;Q-_43f89C98(qUM|ssi7shQ`c_{2A>fZLQfzgT=&MvtN zb6{WM^zZqW9&6YY#JsiCK_j=Rt6zWJ<4S1uOM*bTq8lo_2vzyC*yVS{9esQq&L@Bd z{l7Zh+f{=QL6qu2_?MrGam`N!VJ`{fv#|Di6rqdCcG;)RZdEMI4H z75tm%O?v=3`yH3xWsVhiT>T&xyDqcTmaxAdtLVsIS_s8dh0Xa+7I&Tk1K8udCmb-g%w7UG^ z+=#k9F1gM$;S&#^i0bUnY%3Gv0*W6Wvbjb%E|^J(OMdkz#c9Eu$CLk{>{X~+ttOyG zbHiG}yzGVjP(PQ^Yw8z0bh0G$63)RCww(JGq&e|fv}B6cAszph88qxdDf8+2=Pu7y zKzvV(4|i{>ZlPjz^XOHO(5qfD3U5BOY@!qGXGs#UKYU`#?VK|TVX3S2z$O*?!RT(C z6QlLgIXH`-UFuidU6t&a79pdia&?I<<3s3ata)i$ALFCW&u~laEB+^AySW>?K;UoF zj(}dxWCPpzM zlw`5mCoQy@m%R_Ak>NA(>})5-287N2`o-9eQcnJD>T1tS=kVqRmZ#tjoITklS)LyN zCD&`KW0Kc0Mc@jn_o?19-sZ4B%-SE&N(K5zL_2j=lV9({{I)llAE;7ZchCb?x`!B=h>0qsZ&VFaYA z8BjA2_dRJl9ZT=EHEngi>sO*Zo|-AgK}-J}>f}=e%eldw%Bya5!lgMPMrZ`J2d7zw ztG#K?uYPsDhg220PTlE}_ckpATo`O@;f%!*ALc!`P#==Ccz&tQooH+SAPRo~y{OAN zEdqt7ZtL_i{LgfMOKBVnkFkV3xq6ZDNzPL7(vO5gNu>6O@>eNxu+rnbea@g1-4np@ zk~_QgM9wwv=Dy;ZyI$5DIR2i;M~yGGJ*!wWx$v~=2H74A62ALd{}zkuXhGP z;NBeO_k_WGZ~g89?gH#eHD5b{Yo;As7M)3DY? z2}(uOy*`iko_b#RL5^X!Go-}(=lL~Al{DY-x_%v(n-?l*K$oW*J5kDC@fuvTcOYVw zSx@R^B>bFH&CaG06S&4;+z;=V@Z&5Ix z|IJSrrU~u1N~8N#_xC51z8SEuBfm{YOhN3rdi4_X_~z({x#?#^eg5Fr#vUd zfb2HYid7*6=kD6`)iy-9#NCGS3Cvgm$`iS@U-aBQMZe#tX6|b0SXu9jmxDLhMeEc* z+5?}pp<~+0qYjC-I^XhB{s9%;F(ccAxIL|6*34eDuYLkaO&%ZXF5*8fzEeS#1|(iE zrT($IH1R<7==om|VvVof@10GYxO`xG05sD5+Zq~YU^pT-IJ1ebA$TebckntMj*n{( zB^ApJNj5il)p)LE1T#h}Hh%~%55{vVs4WkoB%gk-yKmG`D00YXOucfvSNc1&gXK2n zE)Oraa4)}#v!PnKT}Lo9e>O%J>TLBzM>(DJIqezna;cakC-0o#oG?+<73c|tY4$1> zA#3I>QqP9B4A0B?V&$>pMyQLqJ7Qa%V)aE`c65}nx<)J^Y3X@yeI<_dlcn$>PU-6- zMwH>qsYa81#tP7si_x8$TXOrV!R_*CfK~=9W4#fvR`nS`?+q>-->U4;8gbC9-IWJK z{CKoG4lM7n)KATcRxsl3r**E_$f+hx#)?L^pPhT5qjxn5*74EsbW$njRLT{njL^(8 zmGdhDCT})cn_?W);re{TzFp)gvxKY*QsONO7sv4zH7SIql;#=z6PpLJvC;`u49VEv zG-sqvNrFHz?Maq~{n3C9Ytdg(-Jj=8j?%w@Ht6Ed!nkpH!qD+1x0AQCj(Aia>;G4) z=*pif<*cEC@v?DZZOw67ZRgNN8ZwU}e;-Nn~1_V&pHqrxCE-w{I<-|7+Eupwh- zXb#?LUkY)dppEZQq$Kd1E%RMqx5vu~w2j4UA0IGJQp3abg3~}QN!bUyCLmR`eyyny zXXAH#_`;XM=LTgH4cezfeF}BuM%&jEh;%_S&KJ8aLKiV>*?veGVaK1JMnZkN@HNmr zbqwZ?oP`J-YUZbqR05e{L#x4v9K8dG)+AR@Upjw4!&d=XRne8yHBc7gExJG=0Z=pY z%w_`ekwKP9RiFyd{v~lW^v?jzk%YS+@R9`P4Q!U{P#9S1*em4H`aM1s%wNH|(bs|? zUZ%O~9s}|lfx*Rpx<8Hm`W3MC+y*&{6?oMwwb<1gua+@=jkq*gAbJf)LLq%U!K^6- z8@;93WV=2i{?|_0K;06Ora@k=U=G{w_#nFjp?&C;S#jnY&Ax|h))3uI{Zd`vZTzFm zXu1ZSEey{yEF~{=`MTA7en|v4pe&FpfKUi>>)t@UY5lf0pP2dxY^y$zI%f{_PXF=QJvWC^BU^_u9Gv_# zM~zl%5x>QA=fbd)=C!xp4U;p9HE+zT!S0(4pAOj~3=I!)P9+Qpejf+pM??r@la+ey z@)4L>&|M>9|yGN12Do1;`}W%=do-Ah&=ZitP4%kq>W9 zD;CUF zyfE8!6Er7*riNG2>R0d8ooTSQ269VW<-47X^U$=)5_W(DzoTf<9yhm#>I5CyC@zB< z$Eu^&U^bb|JJ68t!qvLUD)Mq-UH=ObeE>acu_}J1xLlOJ(_1%A9Lo00u#N$Y6s&g# z2A8MJ`4WniA5o}ImvqSe-THx^v?}I%B4)&trsyOZ=9 zdJZTyYJ48d>KP=)1>CCgpa?ffZmo1&qcOlqMqwR;?4 zi)482pvX_k$DG*jk}6E3SG~akp@s(mv877eFRoMd_Ma`_Qbz;`asRL&p35VA@gX?{ zS@5fp1SIZI5(-K~&P{NWOE>m_w*=hY{XJeZ&zMN+oz|lHgCIy_VQRz_zT8B9$lMJ% zdhJP&x>npOEngSKaT7zjUnjiT9LSi?Hb1?bc*T}Tu5a4Rj8V6@{?qg@g(~b#Uq=|x!6sut=Q>jIw`tOtb9{>h)^Xc2FVX+d zmfod1%}EI<%rNW}=;`*mZPrp`a7P{0SLGTb8WXvA0|htzY4V(&t33O%QC8=G2F!|Vkz%TnyUk5`R;`Nk@SgE6@W~Y_fbny_8LFCG={QYV3=hW z(o7HR)@mF1tMoy|?30bWrS1F=f{XX@Xl=)Y=IDkCpC@WoYH0z^sfC+?9=v1Rx(S5v zm3ULCkS<6Y1;V<|&}Ng;ZE1UgN$cv=37_ic`A)=|T%*~-^fC21!BntiyV1g`VLo|d z)A%=cb;1UrKz)^C;oVa|%dI4AS0h;7rsR91EYy+?#w1nmVjq5cQq2>x631!u?I@zwvyFye!R8;y3zEb2QE;#bW3#&U#J#LnDz&eX-XoJs~ zn`y>%M$7SYq_jC7cPx$F%l%%~<00)!$?3YV;z{#NMCMz+A$g~}M{$+iUk)yET_-T& zI^HQ74WBkbYLxczv_T0>DlBGlxf&E^6g9-a6Zd3m^{fU0ZC~JhkWZ+~1)eu{vX^*4 zCG+KmCziXI@z|>GX@P$p(01nAgGWa(L)@`YQ}50%9zB9Q`WO(=H|niu(%B-Tv2WP; zQ@QHKcezz7Or)Z(D{uGl+d1vCuUBd1x zE`c)&$qI;r|lhg$hs!=}ICQad+vSqk1Rc4c>@1|I<; zni-Ms!(3qkWl}yJ4|{I(xo(;e0hhqdoFGWnviNWL6lXo~$7rPq2Ux?V-{}^TtkBeG zZFZSH@aOB(q5SoK%%gz%R%yGRs{IVGF!baVR@PVR`w5FJ2DC2WW!~O_kPq54K8vsI zbMU1Y9MAY;Vb-kqi2nk#^<9mILvbXTAi+T0$k9AfMRGIM#vUABH+4i*p%Mb|03d$v z3Cc8KUjI^fErhkAt!YzuF>&MZmwM_T0>%p8ip#Ql!O5DbOiZ zD~w#^rIP**nw@;oV?<(l>^~dGYSi$gb2xdVyo-hlKQ&|R_ZE8 z7jM419Fn;+sQ#uxLPIjMH|)#3v|Qt)0?X^+0Eo+Y8$bGpVQ>4w!Ko5*y~TLy(B?#q zZ`Yfmi#2_;{qB*Si2~UPPNTc8*QNWp1Cenyl=i@j-*!0qlh3fadV-k;pT`bF7%79p zUcQpQnP(65dSrbNx6f+$)7dKvS9u?g%8`9twkIKI2r!;01d?S&|4C;{*K7nA()C-U=>rvzjT=e#z`7#AI_;5-qgDj)XnVHhT4&j+^qm0^rD;~# z{`Jy;-#5Z^Z)82T@)oxc7Fn+E%t)KmX^*_4j56IlHha- zf-=A8&oZj99ONCX(dK~2B2LiS>x6-(( zg0s`e&Chq$a5-KDD#>$cWo4)-XB(0to<8nFX8z&QR(V~)tY(Fg;rA)!!!h1kA}@eG z|2@}6w3NoIhKxVTa~K4a#uBdIiN9!5o{AU3YhI2pnF%91ykpQhbqK}B;K<*C8r{l>^S*@_EOkC-i~n?wK9bt@UcAc_2|%rj%wfL&44 znhD`f@LGB}lOPhHm|S5EH6#fKeVJ!>z&P}qbzG;`hA(9*xEM>y7)-n9uj7<3(!AB@ zF5B3G?n$AUay+e| z-%%`7=+TrbDNBAv2h2RDIU()-kCpLRDt$w#)gy6M()p(D@KD(8r88HZ@NN4NzzDB* z%A6b0!Z6DGA?b6ZD?4oi00rYyCqnVP^IHK~>o=ijN{laGe>;-}-Y+HBgC8pKoGpmKS4Mf*mhtsDYSZOSEb$Jy>Z+s43 z$O4U|?^pnQG(s7jG)_OCnrnART<<~GH@{B$T9w7!1iIT8&oG$o5Med9Va|x8tUF!C zT;5+-jp_toTx-N0e=(PV^@sb~6$2^GP3t2v;kT7DxbN+X@$w)K$5HpgWfj{30%e*; z;|xc0Yh5vz;=vU+zDEvEglMVrg796TeccY?rqDjnHlC|VK%w}>bU21~Nsmrhuc1%; zQ6HnqjaQK^me&VRX>ujS*1;ZZQ8|WJ&h-RgtoRHN+=mv_-NkIjip$xz8bRag)d575 zAV^e#T7?MKwRP&UglPoPXYSiphlyaNT5?*@3XwZDN3Il(sfmA^1fU@NEhrj=93Y^| z9rf3LaL2*yEN@zf0qt`csiK&s11PKyswqlj*&Wibv3Mk`N}J8K?yFGDs16F(>ier- z%1Sq=_8!eZd#E#hin=GIoe-Qso+Ld>1U!bbS_?j>iW3=YFPb~Uypex7SgR}?YE@f_ zB=nA&-x4Q^MfH*uk6c>c(jyG`mm6bz2enOgybu!ng~O$>7H%E8AeJY@TAhPxin{OY z5fu!#Loxlr+I&9f3S42Vm*8Rc7Z4=-Du$W52va~SMt#~3I>!E2&$~I9ZbC^c7+Zoq zm4*&M&JWo{1^!T51-4pQ(Aa%7Jg)Yy!rL#&wR+M>6nE<<}b7+@UIJ6j#b-TVL z$0aPZhLj&@Ermk+K3}E&i(_xyBP6k?b+f2mmlM=KH`tinZJv%=YUH|5xY$PL?=9 zHOhOvqcwgr$z~gb4rqsNmuHMj_4;?(aH5<0G_H3npXh)xFYZjIW(Yq)d3rmC*cTAH zpe-6ZN2TjkBNV%@5rVVh=1(l59=Qr2BtxsZ_CWDFRtNs7zM*;FSCVk7y#Gg3%j58j zb`yPx6f?Vee*M4j*sUA=36SN^$%*OF7OC)jnZ3PtUoo{Nt)IvoSMh9cA40M%=+ z#am%0?ATaWM&4rBW)Ah^#YeMaC4r{=0>bv9zDb$!?!G%L+T2FC>yhHo~Pp#VAP_2wI z=_;vA>g7`JPHu`}%9jg7Nv(KWzp^6K@4&#+C0LC9iy|*WSX+l>8l$En&QlGfT#z-t zHX=8X;^M35vl6wWGCO@TLF?_S_Mzaj`1G*tfzRb7VthhZ<7nC9VRiVGaCfnd$2!zH zfVFk(u62;?7e8v$K};O;qXq)t^9ELOmKiffFGrbvUTGV+hS^rK>oCOQ1gv?t_A}d% zhaz()wwWj?NiF!DS|f^2pU<_4$iOP)bD0@I_D0{93B>XT_OW>K_5kw^WGjXEFyZkW zMxg-skQ~wMTfxjtX)#wWtt)*%Lwr_>eXKKgX5%lLAY<^Ox)%>a-3Pc+#b~dk-gqX{ zui4uwr6@~ey%_3G`=%64a_HDdJ5ynF%U%g}FPA%@f6oDu4`@3-bna5}-h$VOvndY6 zUKc_wRF+u9?;dQ}K)VXJY6ffy8sC4r-WQp|@h!M?g#Px5$4lbO2m4Y-Ga3PHe18tF zKH|*0kw*9K?2R8i^W4hf&gkp!sY7Joo2AE1 zktd{cJq5dSd)BpD*7kf+7fzshjr*+!=}0<%f-wS^jTn)BfZaB&n|=DBnAIe0#p~8B z5Pj&wIOt5kr~P_<mXb0z5UnBWn~C&pKrcqV{+=GHkJNQ5U9R)r{UqIAZI6 z84k)ZX5-_ayJ_Nh+Qzpt^Gesnxd_Hk$av!afF3CV;Bm^Y7aw_v(5*zt6{5W_A*+-- z(u1N=O+eh<;DxhE!`aK-~y43d|~uqjd*33}f*KXGuFzxJhxHn%MG?BnxZ z6~b%V6_suy@q9(D{}!HaNB(0{=w5af+~E5k^u4vV))n2t#jhn5%Z_+qy&wL-Gwul+ znfxoJ`R&~()i0c0&(MzrB5^cZA?^a~`41q+ zy16kgJwP%^itQW@>)3~bQ%9bx7C`&1xi|+3j5FhQZuKD8x^a1;o%ziqkwSv;e_d@( z+SsH=PFKIcU4F5x@4i68-SXR4?vk(A@mr;%3*LBGoc)f`{qv(=Yk|#@o(rdaHD)$j zcllNU@&Dls02hkcm;JeyP7ovps~tCn5cdk8H~%c!NY@#g4~z4o`q0-7-(`qQNTW*y zP}`y-N+w|8;!{qTXQ|!zi{DZg^|OZeX)CL=ZLD0iP~S-0dV1RHaek?+{BoZQl`8?o zDfx--tq2h7k|R%o|HVLXw=w@V794rb3X~h_*D*5CG^8;P@FjzRqbZ_uECmf z%aacU{mfcVkhQLqHw`-)SE<`LmA*UJ1 zI=K?<7^=o-OTUDgG*;qx?=W zHunqfMQV6y<)~dq$D%TSQoeuT-8g4st3&ZG1xm#7VN=NQ2-cZVAda(O4%#&BmznP5 zMM5SQMZ2u;3hgcxH687aayaPio{YaU-AngqxQ*jn+|p|L^egm`Ywa&P-!NbiN-Hqv zKXW6yA;4*3!b6}IgVVnHZYZ=0jrvV2Q&vJN=MO#qnn)s?Izd_cV(4L?8fuZZP14R? zDL?L_=znn-{(~sNdvwdEBG|4l-#VK4 zl5m{EaUkEbv;Vkw$|s}SfL@+IjPx7|X^;}8xY!}n?X;8eGcQ1({5!W}`x|}F2T5(; zRc_XO>Y$#!#ir+8&|(;uV%pqux#kv-FA;Iuu~BdH`>P%U6sEuVj2Uutf`&<}y{EG* zdD+s2o|J-}@7M`3G&IO%cH++xjFYj+Jmnn;MA=M)sb5hzc+2wbL|%Afs^QvShg+k7 zWO0Gcsq^+gmnJY+j8B+Z|wS|9l_r7FFlAzuX@3b<0Dda-kH{BVOAS?|Lr6J zjh5g0e5lxEFW$rRf zKV8+M`Li!^@aTue3bxU|-}y-j!8RQ`LgZ3sgbv+>I3zb1{oix6z2T2MmH1BPB;&yY z%_nNr_S#!}a#XsXe~Wap&sp@f@LGD6Y3X5GkT~s$7n&=}j8b3e0|OE$Rto%LEbXwC zZ36s<+fX&zEKMd*_P~a!@T4%6JS9x5KAJU2=-|Qyr$T(G|V_Kd!BwS=~ zTTYR8np)jaG?= z3_WTAZhfTq`fq7h_Suy`2i{0z)?TzhIx;-YKTi7xYi+Tnq(PVw6T0Ixq&Si$z6mX- zm{WNaxykIrs@5`9?M5s#-N$ia@uDa}(pc!wigD;ol{l3=n*ICK427I~jmr7CTp$q;J+ktnaHRM`QyxFU( z!VE#jSHuV7qwlGmZJPsy39->1HxhrEXhoB`DTOp>?WPfvTeISUS?dOS)ot>{M4#%# z#qAGfOmBj5NVfF@n>WN_*)f_EXQ0PZv=CJHkU#86$IJM8-+Any+lywaLPwnhAE7>* zV~zpDW?JCW{7OA=jSo=koOXVCLE`LIihvrU5pFRAR8{r3Y+p9oP7SobP}`9!`(7oU zs4IJ~E%GK!zkm$z{?WhA_pE?hdB42qTC8pLzC}*>w1lhdJ8F$HC$tMA)(@EN+_s3L z3${lpL~AJUZ=cGAZngwSok;VcP>fbhFkr8G7b{`aPEw8&P}Q=*$M(o~ z7DMJ}&(TUIE$}6BXB|rQp)e<&COV8-dkj_nsXz7xt-XMXC_O7YiBgEty@#!mYFflm zEKGst0vNH~YqbCF+eJk=F-W#+3jTnC3|9r8)%`Oy{)87rq+GUl|}U#z-=(3Z$U8{g^KS<vGfH8?#X_}q=A)U|F)?z;bz>-d=O*^1nyJ=X zq)aoK+>E&P{P99QKZab&zLRIsYKgx7!7}wArpI7PzaxnQKeh#=Csnno;=Lr;tUJCs z`gR2H^Sip1*!S&jGrX6fS37p8Lj86AeY$)*tv9JQ)7~x8c;O0ct8e=9t2n2Sn(Oj+ z2h`-=7%rmeb6P7V+kMVwY%AApLcPSy2^01mV4j+zUSceim$?aXW1WRIL0M;kg@hRK zH!CLQ$glB@=dGRuzIn~do^+}eRA(Rs$NRVY8Tqg6{6c);k?BUJKNba}+0_j`%z0?^ z=pG*pSQ#JR+13#Mx79%u?>cy{H$L$<4KH-z|LP)DtgDB@X|)x(WfcL)CnFg|l9wYs zsjoX<;ik@rsk`~>&E>j0<^1+#hqOPJ?ep5d-q$DrR=WDq$Rz7`o~aF7MpBerVllc0 z2nhC?pfHz->%Tng)%di2h9-5KG%@=5#i~at$p)FPupK;n^j(T733aw?X~ogojEwaA zbKGDN-i%-nT0TB)eo3^>^t`$KvtG!Yb6Vf#3KRr>H8A8t(a>ySxa;unyJ#ZwJwlJ! z8(QPMNuFJ=p^YUQEH(cu_V#(c>4)D`u32iX4SqTLPy_B$5Ov!dJv)K;Nq-3V#`nAq z9w!dV>ST;Z=100ylK^|IX0#sTcz=RnH4x*~N1YwZSxMzV4r%-{tBTW4pF z?|X#dC4%B+K|EeH0XMl_qO*gAM&`#1;zAjcjGL;UowdmScL0tX=W0=|{A?mWF3sm= zFYG;$b?xL8*0CdcvYR&s5~AcrX_7s_;1+z}zSTY%FO>&AK1opY*4m#knG(4_bDI}7 zX3N7XPR!oYe>Bo$F5A)Ac|O!R%xK#hwtP^kMR>5*@9Srn)GPl9e%7WS+EhhcrIseK zCk=ZQj&u;5Aj@oF<(T!)+5e>}KH+RuFXRBahUQE(=#2wO2zfvR^m{jp;0k4{Bn1r2 zb-qw*d_Z-(nIadKi|SS2&nk`<8LJxY9RdYcPC64{ld!zjPZOL!|Gx_WB=|1q&)4u5 zhZ@K7L{+Paskt8gOOiU$9%fChSPEN8K_&1KbaiJKHrLGa3m(-oyyxSJ@{XlsD;q&7VZd$k`d~UvLL=BiV>ZK-UW}Q$uH@>Xn`u7imxHYIUBx2BFCJ8 zqdQCyKaIJ({ciU9P)szL;F?=pP*^@an6F*5~EcaoY_vqK*_(XzznLjKO7B> z49dK5!9KPnJPT6BkqF^P{`nyK?*cIrA}${~p?lP5Yl9QtG*6J&ec>c?HyM+Sq#Uqj zSxKp0&X7SKXJya6N^eOvY~5(unQ4sMb$m+#k<}SiKyl32e7-PyT~*DODcSvxnNjcA z)%m-2>AcfPwPzqIA(`>6&hxOE-vQ#d%+JrxqfsmRM}?1PtzMufb+(y8DM6NC=ISCA z9cC;jeSn%@V^Ck0U%3zUs?D>0^K!_;uR?jJ@XiW@DtAezEJvluY$GF;>WhR^#zU99 zg9MDNjhxn$8vxpo0%OmBjb9kn1*Q#V2|&{^-nitARLb7IJ-gMR&_p@jxUjHe> zk3UUE*&ECic{BOAb?1$zDdWsJoT!6qvnqVT4+jgfQoim?bBCbopMuR$Zv>DD;Yu)f zSd%6@f+7lkLqssRJ)#`$S^5LeXtFOz z)b@y(LkJB?)msw3C%z%bnm<_y6$LdUVS}fW_?Wj(@1wBWp(8%zKpSMc8FU;diclrS zs3ZMo_q&ieT+^Px7$i1dQ;dwAwW2Of2;Oi%snr#B4PSCgB_X3ZPxwMoU5W8DrPzqC zrIAlWW|P?)b<~}80woVcOCb1+V5-@u1vP4w!ufL17MJcRnyy0?r32+i^bo#AMOk+U z%%Vx;Xz;@~gZv$C%w|DI1TqIuK9Qs6Tx5ps=e4U~s>yj0{g~gc0N8f8+x)IH$CF!S=K|cLW=1~}-vJ#s8V`|y z5B4VaibsouTQ;VwXm-BhH=j?6T|wtXlg%&BiwfnW369T9OSRdj^y-Z<~@CvAfur-5}mDz;f5KDCShL? zIK+?9`*+v=yZo(;-#*^)hMg>C`arfn+xz4L3k6m|W#G#&O60bOV#w@A@NL^^wU7=~ z?E~f;rcSNl>6WBWgfd6!^6j(A#sMX2SKNuSw%@zLc6!P+%dFMcj}hT(x{3egUX=cYvKCgWO;1aan8@4&(?Mzg9VZoi{Z{RVT@ z8vipekMk%9fA~^r|$^vo0S487Rn5oc2wK>3NOKQ<1I=h|A01Pe;C}Qd^_)v10 zdTy-=8PkjCW5!lDh#{-J^Q)~NqePFezrc-NKF7a zg7V?Nuk(wcq8?^DM5w^@GdfvxUdep~Gm{{`FIrHb+A5?ya{UKG6n46XdLz5A4m3Q4 z-4eWIV_cjj`cOtAR;5yP1az!#-Da*Q?N4|Db0T#olRW2~RGuRebb7C>;e+S#7EDQy z-XM^lU9g&{KlH4<&&w2(ao=XabMev#{bBXV3f!RQHt>Y;6Z>cxZ|a^};uLCEVdK#g z?+I&tY1+4Zsj80bMoAo;UiZ53j2r^7ZL~GhH*iKYYl#&_kTDOUHs^3{SU#8?+B3r8 zY)@m@OGA(uY$Evo@b%vRZ2s~0aMfFBZL0QesZz5gM$w`+ZPltRHCjYs?@^l&qpcC6 zMvW?}l$b#xq4ug3BVvybd;9u4KKJ)=|8(EKTz|mpx~}Kz`8?-5&ygR$6?}2ng3ps^ z4tBOEIhRM>npaiG+6y0%iZGhMO^j4~y~w#YJKx-(ERbT5{d_zzf=&ti0>GD(lzqKm zwKPIL72s8Opeh{O%zC9NA(eGoLy}a&V2|PUdpDJ$ne|VFveDQ({sla*gy;1(3NzC_-YQoQ&eo+045B3+* z`!Azyf^vwIY2blo@E|o1E;m3I=dhtT*MJmy2c&Z79L=)(->Cb2t)g}%u|p)Z=bhjRJtZOsjM}wBF}GEzwtl~ zG@lks_{=38FFGkR^IoRGI%7f(ObIH;?PsYS73e6sco7xVn-%y(>C) z^9%_T;|bj|(YKdkMo)s;xLHw_sa&slOR?qF2fPbg?g6@bPi_G_{m0ju^G4Akv!jc4 z2b}WjBgoTQ<8hAfY9XaYE;@-X^>aQgCt5?0D@FeHCZ};WJGc^zud;=l&HA?)qC0Qw zpLENNepRo+;1@bgqawzzA{ku#q6?N&}2(&jaf|u+8SF9|^NrreOwg zq1^~x7`1aBMYuz;PxW2Kyp>u`r$rODdzH;JFI6w$nuYO|Hi zhL*f5x>;#bMZVTpozUiUZeqZS|04OeANH>zea{Bu=M!BDVH?c!Lr*>YQld?a{U7*ywuAiZ?5r}+J5?JQkNio{gqdHncP8sE5^_jI!%xBUZy}@ zXz(f~-gX>L5hnQ!w%tsjuBTVAXR`FV*{&M^2xk}ur}0NVjM-P(V%6+ZD?7Dsb}S09 zJ4@OUcvO;>frh?sDsTMjX8oU|Zo0$UzrosDQ>rjf(8#dhWi0@{p!IPrbIAM_NVVzw zhs#3!)%?)|m1ZI9t3uS!M3bVUuIG@7WfHYS1E0@Ki)Q*R0{tMj4I2L4==H5lxC zMtDIHd2yRmRH7vRBjSP->V6uZD}lK>t>IkQ+CDk(TW8L@s|X6@ zoUrEdQoi)X5K*{Bv-myJia3=PJPI;CCK2x~dV~%=OH+Y1l4PGjnP7X55k?-IygiSvBu?co!3&*uYPlsA;Ry<>(!6i zz9No)V6oRaEx~Ghf$vKPEsqZ58JvXP2vL&#nHzT%f=UOjJR3-uc=D)^^Xe`=m;Bwd z^{mI~D#Dj1{fhRJg9op3KVXEf4zJUQDXsGpqGZ=8)PA=t9gZ_#MvrkA<`+pE;4so( zT07_im)jU%{Ip*bC!slRpy!Nyn4x1bO(}6tE(Ackc3aVEujC;OOtr25YtNv2PvJ(iB|m{n+X{Apum5Z{CV!2>B{ZV;&hO2bbKXOJ4%=^-^G~kd zn3w$9tv_oRnMXxzRv-Yf_Zv8o`c51jFxK%8Nlq%3jo-uIBSeKEp3`hBXSH2jnda$D zK7l*rv))N*7s5Y0owzV!y!CGlqB%=Akk@%GqnULXh$ukkU?`FEue37rOD<0jl3MdO zjpwGd!u`4Ot&6nbD5q^Zt7irZ%q@sLQXySKUQmNbqG)W?7ww!$3@vAoiCfdUX!Qfe z0jZL7_wHNu=n7Y7r4;zHt55oCZ8Ja7l#S&J?-Q=3gb!lg>~pFO6L+@e4xw!C0>dls zr0adG5+61f%E700U(B+$JPFwtzf_(*uH$9KpW7-CezRg~a{at5e>E$HoLy`u(uZ!M zQq?N48`gVMe%CZSR}*pOp2|g1-rH8n?^X++j^pYti|7V<7)dANqzIK`BdOm%7&rQx z_%6?*k@3Ele?W9dO@f?s;blehpH9m8r+;ON+(f_>4UPv;-QfB>Zxc{!}U=6z97Nb+_7sb^vK zSzi3rxy&|na(4zYp&u=aHONi=^z-1aCl3XD135bvg{g4+FQarbvux@ZdFYxUbM zAqdZ&3qDLuD6b57twf9;W5Nz9h$sF2l-j+bO1!mt@-Jyp$o2M~Qdt9ls{ zu+pQ;B%#M;zx4fUZFEY>-gl*rZd5da;(S$Cdq{;Ms z^ZS|_yBEu8OaQJXC8&~;a|wq*YbCk&Cq)gb+d%$9`@}>%GdFmc#9(ltN3{rcKc234 zhxLdzi7oXx8qA8L{B2jF0c@`64t{hfeeT`;9PltZo!A_Mo+XwJz+^5Gw-;$__h2aXH$4mYY*${i80Sp2;XHFO~V^snR#p z$FyPOwDB0NtMSrnvRPh3#By16$czqS4HM&hwEXuxRu{jZAff16USFTT(UD0V$zgsy z{a74iPPyjzz=>-{0cxVm$BugnG4rk%!xXxQWCGf~Z@=ipOyJ4aUcj;dwLwO!BU^4Y zM$A%*;`SDip1$7SpFCaN**wos=lCn-U39;){%<-*-R|egWFDkoYtXblq)%fYZ35$W zzAbTO6tryf4_kH7Yh?ee^~KbK`?3PTU9oaBhZU)(G8M0%LYhj9>rYcMxR~+cQZXj_ zSyH2%QX;`UeG!mS*`I1YOu?^sd-cZ9aqe1%)&E5CN6n*1S~5^OS5V-mq@x(VYM z%*zm`pxqNx1``Izb@S>OuQoL(jCt`n*DiADtHna9uDG^@A-X-8b=eheGn(n+UwI9) zAWLnelqo_&Humqo)Q~?Z8US38SNhmE~D^h!%480-qBl1M*y^~J2I^=@DZ zD6YQwqN>nP{X-$yQL|}d(w}85wdlwohMnZ0EL4=o?$M)JyKdT}JN55y;w3>F&koqW zK2$T*W&NbJW#JoY`g4B? z#4CMB<2a^nJFbI0$0%2e%#$5o8IaW!rs*~|gaEeQKPKbb?@HZl}L|BHSh z+m2FCJ6~&b48t$T>~Z%v{00%Yq!HxK&@U(<8l&b)kmK?NWg9vH9H!Zpm8g6baBbY! zkR$pKJvwaO3i31fuY**+(s;W%WR}PC^Td1p`BmSkF2eDm8pnCr<+?zpStOjV7yETz zoDu*!`ydw`a9#Tv4(szvcysH+8yi$gMY(JcNG_j3`ZZQSYq@Eafow3o8WXK0q=FOj z$x+!Vfra^#x51`Agpo3mmp!N|%|Y65^iL{#P{zjA#*kej-pd=Zl>6+B|KWdIr3!w+ zEG}Iu(g({!&wn=L%lNz=ig~n@3<_pWGewtU^h{}wMC{8UT1&9lu(9UM5zFCDW?YI` zEMoX~;FM*b$P9-m3*P+WnrK9UfaAzRxkBBg{`D-vyKyjw!Q+iskpzIrv-M#sT-Ha= z*Dzvf~@Kcyl%`g)DWP{8jdt=($+U8}0P8NbIV5ZyDgGxojG zwa&D?%Vy)HQZX_XIQA;CCDzdS?Nr5SEeANkxHuL#b=zPO1Az9KNky~4%$W?=en|9_ z!yc2gBKl~99#~PV*7mEkKLG`~-LUDJ+q=yMI?KWA#ev5kS9y}D)QsoZ2gQ@fDEpUB z0u5H#4?ht#KKEr)WYBUDI#~hq)Y1ux(Pa0<9aF+m;gSpXN<(RyD*XfgfaVdQnK&qZ zR&Ucc_}5-QvZ+(HQYfmFH~KV9xvGS4LnW7!?G|EV7(GL$k6h39;(Ijqny4gEVoaw~ z)n^u}eKUgQGrc?{D@O@W{9D*q*Qr&i*!ZD*xaM5vV2-b?x&`{lFiIg1P4HE`&p6HxossY; zO*f7L*@Ha+}BCf1$>-YaMryN$F62*cl`H9 z*K)}JJNzDB^m<` zI<@@cS`B>)^jX4Ycl|%q4LZpURXC@bAs)U^ukWwD&HIIS?X#^3ZZpK-&Ku#rga+wM zksRwAUfZx8T{^~1Ag#LDlnmJ5H^P!;bhJm~vpQFKFu^E5D%n{>&Hw2rGT_f$$jk$2 z|3^P8zkMEk`2!k7GU4xb3)=T1qjX|BWAAnuSMOq8K87Cr1TB&Kw#!omxGujpI%wmI zzQx6$|Dgw&a3SrZM*09|P0=_`%4ETc!zhKSG;|X4K|lG_qp_7#KBp zKcn$0p0c>+H{8VB%8&Q#M%VLUQ`y=Jq+bm(AsL@d{H2%Krl_*PP&`rYv@=owG_Taw zF4)n=-zykp#1kp#kajE6dG|gvz@C|sjoxlFoC3Yn^lY?UdZ`tB^|PzOo%>q z?y1Ya`|#Sx*UA9H6E@}=aa8d9VFPbiTFl0Ft5=SZ<0(WrH&i5uj90|h*4FuXu{rv8 zY)LVqwv>giKA%cAHFm#skb%f28}6r}G0s@N`W9pi=GR)_D=~eP=-+bRpNi4`1$Adi z-L3msi$w9;PC70cqSB@sn>sYloy+{zDH(?fyp2LXYbY}#$JUL{_%!2cbjTP`ML#w3 z5Z$o~weJK)epZ!mSG|2#)*MOrTlm1lvyt?Q%UU`-x%2Bz=zWxnNp9^j9MecE_+y8LRU+(Mh7bx}_ei<64eqNE@ z`nFE!zbMgCP4sT_vO`i6)ZE+7K+2kJ9#NebN++lcqJe}(g!*t+i6LPs+~1f%pD2@7 zl)^Zxz~n1rA;0&^wQTln!c{uYUiZzo^0*$dacm^=))Q)Cndni` zZ|&<-$%x?dq!r0@a+(NU&mZ%POG;Zlv&T|7;0~^p_vpS_h9UZs9Wa?&+{VtYG+$e*YvMk@P#y%!rq=DauwbsMv^QSI8x2}bM z25azofRi`imHqaY2{sK|y@X@XstkZYHqIa}fHu>}ZiRGiq*}4C3pmZbw;oc7r-ht#KKLbOhCbzs1@Th&Y)NK}YsMdRk5oNRvlS&xsiK1c( z;MquO_s`WDPkpqjzZ9%Km9d;uCH_7- zdGLMhhJPvy%nMA1-r6BdFU?hjdIuQ-mC2qf_nHfiN~H8D}byq+jpnOOxo z;K!i7V|zuOwLS2e;eWoF3{(sa28JB#N!2;y&1X2deP7BYBGs80S*3W z_fP9==GEDUU#w42W;?D1PjLy3PM0UP8L?n4*A7bwToQdRK8M(B)wcWOm>2G7=h~NO zFUU-aI~R(4*m1LF=1<0FS10{bTlpqsN=;L-dH>e~!3w2M%UvosOUF`uZh$!8L&la4 z!9?y?jcaRCGru16gOPU+Hh#=b`)f$=f2yv9l-zl2IY7GB{(RK zGFwfn?r3Y8)%g>jc+A|tN-H>^y^UWWpj;J%8@|<8EHMpN(Hc1Q%SA0BoVFJ{?-*JoxL;arpS- zE+C+L1L{FNMKEv7%KV_fM=CKY%!m%H!JqZYGO&q+WeGAdQVi~mo zM7-yoE-k1q>~lK`G|t9X7Y&kT<+>b(bR&dR?rT+5Ru zZMnx-!x^?JzojFc^bO1XvHLPp&v+GKn=s_X=E_1VYIx*_m!|@LG_`kU#U1&y(kc*Q ziE#9$0ZUt-yuB~lO;#e`kdmag-dNlH3CZS;;Nd;TdNBWslbg@voj=J)J*xjSx2O?- zXzF^iP#hF%5o>Y|o}enEGa4Bt3vzx!#|8LBWl;~ZQfPL}w4-uPc=k#Ky7x)7m=;8N zlBz=TOe5@)rZj`EmzI?h&r$$v=dxV5g&Tz%)ohiGuXr)NlG90qAXi1)A*qAfuZa?; z0%gI3Z0>#numO`%sZMw-i5n}6Uvnp`r@Dsx=m35Ex_Z{ir1NB$9kqs#lCL#I^J?Br z6&{@uF85&ZWy2=Q)-RX;b1ejR_`NQ+paM!g4S%mvM_{I32#cDwi&o6p`-_kC79U*^ z=dzE#H&PPt%R9ovIK~5zs`9;up000wT~IHa=S9uw{)^SfU#9%Zo(cV>`Jo*K_L8{U~}gKVw71o%@xG5#LQ&3Qjo# zw_y$_!70lJ;{4TdMTN%R>kI0$mXKL)763c?y{* z8c2Px;OnT5 zhpN4K8}n8L7f+{s;BYvs92+YM-C7)i;iFSvXE~Bh?P{3ZYDqc-SB$*Gyl|Gv|DLx& z$d$9*$`PpNvm&HMh# zl9%3zTT_00^hnvurO?aZ^8?{aseYsnpcQ!xc*Is{DoK> zzn;E_ice(i-cJA*slvuykW+hoqlI58ph?U%B(VNELWm+}n ztNz>1P}a`RwWw^Esl^sK3hM3%Kc1&yqNn~X=P{f-E31CT#M#oPAG(Iu z56AgHvQ~8&3!R~*h0kB4Q-IaX4Bh;j@!sxCP6(E~^KwIsVe^Il@Rb4!@&Zqf305Q~ z4uqUy{H{T^0uUGAZhFwcGQw9A&QP%~6oqN_8i}{~x%DQUrT1mwKRBSZrt$eV&B))8 z{9aoi^z2Z?kjyi|1#?QG*F>dDfB<9AGw;sr4=!2XRM=H8dDTwL2Aq(XT)TN?oEits zu`Sn)r0R@tIVu8-l<&XCL)BwR>rDkW}a#D_;vned6WKq z8gnm}$u%7|_2}>S{;s=C72=#1mCbK&2y;WMOdf^ihw>q296RC?kTsW}yp4`?ewCGt z07eNzL#|woE4A1H^(sW;h9-+7;jT3G<4rw&7}yNBh@y4)TqU~Y_BxW zsQw!}B4H#_u`Kj~o&LI2wP&yqkl@*E6G|e9Vl8Z8|6T3wf9?hbi43cppFcj`et5}p zY}A_5Tv zUmr_78;Y;Kuqdc<^8b8BkNrpe6?=Jxew>xQ{yk&{992iP=D0P2Z)y}b1c(VVmi62l zw3HI*XcBj0X#v&@$=q%H&sLl#d$__R_4`(CGS@G<#p(lJ17sr2kRuZTug@~`^cn>lTk z$0I{)I#|~1G z<3bXWuea`Lu!iqkr(T2t=+qg#+lzUrz;@Ej_|My%_n*5clZOf zjJ^iyl?ST!R1AUwCL_hAD6iG)5P*p%E>iqNaDx(S`S?$*fga>lr$A82g1hnwef7sq z5364gfDg_$^yeA~gABUVZ4@}t=_aqYxAzc>_WoXO(A$ae=CmKLYbwy(Wp>X0)|@q3 z+o!vS_FzQ7O)BGz$s>jy>$B*uNf6fv9^}WEsR{333HS|l7LPiHEN824l}e@Dgz#5~ z4rDyK%n8s!Y;qjFb}zSkk}>|t?$-B0pr}|%{>ivB;ZLD8YkSwM+HXrC5KldKJ%Lb6&*f;JAh{qZ)TNeo zPmS%s2MJ_dUJMMo)C(4QEex7cdoVX^bv8`vZ?#`h3;;%uZ8NPXE84D*ZqUsx2)B~B zRia61|G2Z~JCnd2G`xfv2bRM*D{0yq)KOr+X10mha=L%>qW+ z9T^2bu}TZ&%844H4FW~xKZoZVRO%`&u2!MSfS^)jN)#A1W6+U(?}$XR7Q3>Ku9-fR zr)Irk&9p`fj^1uOx%0>IU1U+u&!UZwP3wYE%?n|%(+y@w5U_c^a~#_=w>Kj7Pl0Q0 zZ$=`HcEbeY60$!@a^dx}(UbGtIGuD-5?}j7m6PVuA1jJeVH>xG{GnTTN;sTp z@;V0TaN&6%L7f!F{-&<2d?xEV*?tY$kp&N)p}gJJ3pxum--&s-n|J7AzFa$MzaKEb z?l10lgx8{`^s?gkmhI!0deVja?~x|v6SpyBRI*@7Kjm4(GYP1o0sO3;IyNdA)TbsP zseaSap@YBob;2!@?&SnJYUdU)XxHPmP5g;QtN03j*N{;$#B#2=-~X<e7%*DTcw%WS7Kihf-1pE9OgMpq`r|R2Gl1RpGj1**VNW zAQiR>LgO#Vge6a!ey|v^ z5oc=lXi~4!vj>$y!%I{A-VQF~;I~bVgxiKQchjwR5){Bju(E&ey^bmeM;It|ej_XJ z&a&!!bWn7?ji+07y`3ix>5hy=Ic`o>D~h+QcCf7t8#mB)-~BzgvGx zr=j@-0|l4B6f!jQcQ<9_el#s-s=hV&MNYcg&cISc4Q85)zFP%rWNTn3uS-#)w;s`# zHXgTov4|g~1e#6z?vEe%aP0b8y4H7+l8Tkq6&RsrPUJXmw2#fA_W<_Hxo29uWQ(R= zrTuBl2qIiGfd40-VP*OxD30%TfwISDq3kT+DI}jG`u0qkSF|g&wUrLmCfl&^#0v<%F;U=-3yD=xg@-)${gWb{pG`l=JyV~LzEl=1KolrI z++!&;v`AB zfa8}uZ4cA@z@dx-^Qv5S{ zrLSuTj?y171FH=-E_>)I?Fh|5bnL8ake9IPba$8WtsJ|%{k<{Z{~Fx~cwO@3AN5)W z>-_)xWYfPps3Gm1!*)2j;SuyT#`AXrS~!N!_$pJV%pmZ0`lBJVqOh!5E$GHDv{-zOK~oFuZl3<3_Em|{!fjGa zMp~Be_p&1|HF8~r4Duj_oJwg9OJX}f`_L?4cG&OP`@(;G_ZK|Fqa5rLAPzFo6H%g2 zcy+|Xm*3gp3eqiYj81Gk>;`$zxHM+uA<8a#L@xj>qgCV3^VRInM`HmlzSLlF-+_!B zEsc_NxHbSp^WQCRL8u30^}9$MtWVa_BfH;N5c78O}<|K!`V3Bs7s1g^$d3PLqmKcb`BKAZoml*nA*A@J)r z)aY;hs&$1{ay?wXX%#rm3l9K}IMrtQ$)b%x@ou%8lLyZW)+k+j- zOHaUN+npab-qg&H|D_=jzDP!tX^p+fn7+Rl(Y{^RNIOwPfbdRi0}fet4wXDY?_P`$ z$&NI`c_~7&H!sar*{#jOGWGQCyDRBQDX@@l`Yo&fiqQ=$Zu?*bNBY&~B-qtHquB5) z!|hebubr^q-x$rUrim)R-wnep(qmC#^$xKinatJWf>zF+%&FrQ2{*nRM;3H0?mtiI zU*%(2iA8w34GWZV;@a~2GFu~K$F$TVXy3}=`r5d^whm{B;|9mAm!vZHndr+f-cfxU z3acmgQP17$uy^Plb4o@&jJ!+u$i@lyohVeRM0A}+lhe_u;yPxcenmZ;{o`Va3%$Cy zowVs?V-pH~Dy@FwgT9_BmFg>1u`rcmh@$(b#Yq_N(v6)JCAAoDmrT3*F<-XLKb1F}_Oi&-MpP~@Wh zBaKEnw#^P;2a*18_~|(7jzl?77Ham6i?Dp(~9m zUiT}peHxe7PWg_Ike}=9xlSX@DHbW~wd`dg%<@HeLo#2}b$-85>8N+G< zZVg(9Eu| z#m-BWm9qFAwilAWyI)WNfowKBP!vN1pE9%H+^=wgrsbyrr0eS9?IGRVShZhxc&wl@ z?6$S64^06h+h0C$ez|fYguQH??oAhJzZz;!FJM@ z8P-mtf4p(LSJiT>OS%%_ea4MpFCS5q7Y+@urkk;584SsUs(L!=1XsyV4Jt90)C-M8 z?lf5Y>woaxb((>nqUMK9gNiL=3>KeO0i?sEZIP&4+LGFmg?&#kYcLE?4}0Ftdg3o$k@M&O!%G`!)z%6Xy3 z1DRoS^Nilom-h}tF(qvSo}nSd7n$LQH`~zIUs{aIop(4#hfh<=cIW8Bw7uGxF6VUf(>G2t2ONUFqW8N!*rpU)q4 z2j9qT(DF69pdiB2o&~#4gA;+oGP*&x4~`+ZE(zVxPN}ewXhSjlTnm z-J34F%p1eZ&RD?6W9U0)0*MJ#?nqq^Yz07Cg+=Ylnwc^^zes_F`Uh?AQk}OqD<{sO z2!sIcqS(m*oJ0wAYt(u7L zeIaaTFPR4jfb4nskYnADJswv5CV=MYETJ*z)ZxVyKBnMccm+EbOyVV!$Mh$dDjzig zC-GZvP%|vkzB4?*f`GnR<1?~R`jzam+7;_=U%eo2TYG{ zn&hCGc~pL@DEn@(0t*7Qxa_PvMjjkQ1Y}kmjxJmZ#t=9aw_(?&EM84OD;?X&m{fRa zctk2T?;d5t4+#k)qb`c=FlR99a1$advuCo&cbxC3HqUggyPu ze-{k(VfAsIr{$}8Bf8gBJd}8-vY`j}E{=+cN}!C`s^1UV~)KA~B1QW+G??kk@ zu5l*DH0Sk0`MC2s6?pt$h0gnedP7SS2#Aq?b@)pMb6QNnKT(P+8P`Jr=mTBcIHj{x;QX9K0 zA1)&_En_X77_~i!R>R==ckk1qMZ2(jl$@Y#r+iE>-hEg4Eu*R$-=gDdA_CaRIls)<;={x1YcS6@&H4Zz+Cs=t- z$&z!SCoxV7RP|%poB0+W8S($Q&o;|5w$B5AE=otofnv{uB01e@ftyMtyAUs>;br{w zWv&@|)rZYry(+lMOvvDp*i@M&0aMrv9`|y5KyrRmp*<{c%wT8oDFnyoq?*KC1)iDO#{jIDnNmM5KXt2F*i9%^79j4A6I)FG^R#hI z&K9q7@pP_aaMJUtKL@)^=Pf0QGUUa|w@F1GN6n+_#H2`kjt$2Jp{n)6V}bV|95*w( zz!L4uJPT<&~Tl~@B+zBc)2BdE^P_X**Gn(|M6l6$AR2#KGB8BQEajiwvlg+BLC@7^y-=HanSlU`2`n6dslM`emhVJOCuuZv7AJYbt~84+~R(8OM8tU$#3sSzzz;xU@GzCi>tW{{#&5;cTZq* zS0oL5&#c2k1)uR^0K6XEdD)(R#QSJqnPY)1u5t7YgH`I}jQ89ONf&w2zG_n^b+~=} zLXXFiMdgZGg?;;CEN_eqo;wk+)`&QdPgvl+8qa}TVonh5*r0PclRvp`1DTiM(Lwgxb1d62}1=5D7P(#oBn^z(&C z*?*~2BdK)b{HB(SzHI&bwV2Cq>TDkuybj{OjJ*wRXcPQH&JK)o3S(txsZF4~88LtW zLmqEa=TmD^Tec^*3q3~IpG#M!&_lY%!RHN}9bv!uV*UAw7<0lN&ek{?4ojxY$!Z2I zm=%%NFEN)5yy@lL{Ubkl{%l2iTe+B5a{o3xM3N4Bp|wx5Led7R$v1RgAQVS(zJQ-r z^Bae+iT!x*=7haJAj(+Kxc|}gz~TOW0b;3u+WutFD@YADb8_u!!Lahxg3WvRF`Y8_ zA>F1tTi!X`@MU?RLcd~Y8ak!e-oame_c%+qvAa5SY&WA>O~NmWex$};#B=`b-jAOr z#^dAg-v-5%*42+pD$FH}UD}G+uj3eBn**%eI#vIe9y||0REYcs_gA}W8i1@2QU=nL z=l~1ChT9Nj^J|$>ec-oMq-LJ76w!|LBJ}VuG~dZAlIFiSR##V^*;lSy(Q_mPR*#rz zWsCVPv5&gUw|l!uAnq{c6<9bj{}Qo zk4@DA%mRUZa8%BgKvT0m;juD-L- zw-72{?*6-g3qmV+ZgM*SXym>yT-;3DFHgh^C1un55QRcY^3J(^Oi&twyHRSJ6!?}{ z(>UGz)yxS|eVWrBd@c7o9+U}=jwjQqaoSJgf+4FrmlNJANq)Bbwm&VaAIO3(UN$c} zjBB3&vWay5B{~6OSgQW5G5QJOIw9o&? zqvp2fdpdTj9QP3iRx7DsKLH~0s2{Nk8Hh9aBk}SpZG!gb_rzqBJUN8)z=E)IEPkN- z_!5h~vd**JP6}`U4y!52D>H_kb^qjrmH%Ha03>W6^aN8{xs`apna5RKp(v|$Ki|-D zGQXYwi>DU60%4%NhYs6+t3?Sh-$gG(esLL=<|CR~<;C~3d}sRtB_&sS&;IgJbKTs6 z*)g`$S`m81=U~y4j60q+TkuLg>B$Us37n9^Wb;TAf2|Rr8`J;d27mlq@TbH)iQ9;{ zG)`I9U11ehDw_o$Gi#*;Ug>j-X!fEkaL(culJG+qjYEbQQ(F0_Fo&1h zv8QTb{Qo?Ktm%|d>D{l|u~ujVr_npN&Can#GDp=Pp4NpLhxKrbD zv@G#D+UYu4@9if4+Hq%X#HBYcMpZ-l%y9clIRaVf*kW2ZVZA5so<&syfXF`0>ARgV z#ILaRgUQWVOSVDGe6hAHo@$#J@=WH(?)xg6KeDaWPC_r8{+O4a%g2_dE(*mo6`HP3 zM+Z_C!Uwue-zvrYm9tvH4dyG+Vfm}{av2&Jey}nBh*Zlc9ys7|k_95(fxW_|4%^r@ zhZk0Cvwx(^2FiNc&eMRwH>V??;ETxIsj!BZtL9Io=*W7bxLRk3*X}pE+4ivxXj#cc z-FM>=jVZ$PC!D?zqyFl7`t-}UZDpdttGhEXqwq$%Glz&)K`3B!&fAxliB+!d8jmYN z0eT@GXa93(XQdrux&K}SPAwJNqj@BtDVIGDT;rT&jCuJ_ zEB%OE3Q(&&d$6a%OYb%FSpKqd6|QI~5z#_|Iz8jByr}D2e~7o#X2r#ZE!|oE8vE`b zXrC)H0b7A%TCu7Z0X1E4Ld@jU1@e#}zhKw3cic13lGa~uz0CV-Ys;Y8Pk_#<(j7ru zBcnNLmTDLPRY*iS4=+ZZ*JY;{@fAxl;|$%Cr|SJcvyHyG8M1JYznWJNYDS-M;^}cl zkS}za;H<0*SMO@`-djir;-(hW>L}r@hD6uLjb1G_RbvtqWmEqg(4f(|hPrhy#ZE}Vl zQxeAKt{OAMs$kS|Zt?ZX7cm44i9n6!?eSUOKxL1Ir|6V`jp-0+P|NWh?pD#xFigHF z*J?NmaF|nxWz2u=bW5buY#_)I(r0{4_^!Dq)?q)>&FHUE6zi&g+}4xN&2RQLk+4!7 zWLiNK3^aLn->bm`*?4KtB`Sm$G#2i)*mS>;-o7YRK`5kG;~tbZQl<`#6;eK7WF`15 zhQq<@DJvR0^IX!Mu{vNN>jLw&eY2@Rs=TXa5Hlq@Mhhc*iI*KRU?Yhz6J%dYFz2;N z6)AoJ6B_og+x}{k$5zOIJ#dIGr@s}rl>jd${4~)oq z+$n9axjDuQ2Eyx`1IovlKKvTwmoKvyZ;kp>eudm-*t>Fri2VEMiNczwL}9bAFa!935~+u{rQzgIOT zStG}#+fA@ujH<)KO62Bk$l8xS2(~guO3-Ao^2`^rWFe9GoXR%wsZe4SZmW;yW?{<- zlR>D;BBM<&kVx`u{yfle{7En={mu|QP$SFz7Lt41-g0eVb#|(B4fBl z53L;DF0`cO?#^38NOQ(i-Zagf>n6MsDO@$3jEdW)nDigA#zNQ*s~4CY*?gR=omecl zh)nHqn~%r&eG?`)*w~=()&Sk}>oRe%YVH5J`GmF#ro1Lz5t|mpWv{C_+0;aN;9sw) z@amwCRRAbmH!O=}kA-2O z?_|BMsa%_>-THgeF7^qns+5h#EbH4(r951_*&Fj}l%w)TNT{fZ(r)n04Pj)#4YPlU zNRE!A(i=^Mb_MQS{>R;WP<`%j3#X->y=`gge|d868MO3%NNjG!zPuvSeq6lj@lMYD zoxfDZU>;bHy=9Lu`}gM4HtMR#MWIrr-|7GU2}CpKs0e@OQ2Vl4sZ=qq0c@8mLWuM?##`I z!Wg%NQs<7#zA)Qx@rP%e#~{UPoBoNDYUkG|#F}&>twln_am^EEU!S*>O@@;+N#qD~ z?}g~fa+p1Cgn}6&UpgynmaS@V?f8vB1@H2eR+vc$t3l8q&&nR$^48WXNgd8_6W9Iz zw>UxebUC4e*Tgm6o&R?zq$FxA!bb0EK{N{ro*^bP{tnwc_>PYI#{e~K zU*8IkQQpc>x8FvO<|c65V&z#>Il1v$d4hf2R!ZN}1a~*HRuqJPnJ6MAam;4zj>El@ zmWkyL&x@w+cp!T)31k0l#lq@Ec$9T!y`7GWb6i}$sxCJI%I0#BG8R2}!q01YEuD>p z{cy}V*K|mkONGkBnQwC{Lz^O?c~W@K+3g(Lcv}I18NJm!F+WMj=p9Z3;iHFq7ky>O zHPdW~nf}&Ow>W-`qDe1qdOQQCn1+^^%#pp4_{!Gw1 zYGz9b8K+Ot-Ra+~^kR_?dHN2$W8A?th{ruB^30KN&vv-jKQe^-ZYP<4E4CRI!9@>R z+RvWI3oB%63@Es+VGM3#vSgj*u=0XhW&G5Eb_}Bm_OZMn8KAl2Bk=XJTAa|ihVQvV zM|IOyg$)W^?trs@?k>Rj7srm&W)Lm0s7k#G=PtpleN3HP5!oyw)WrJ-acY1^n%tKX zhF>kMcvKVTEox4*(J?94ef5X_PIx8N-e)hnZK9G@_D}lDnmPKHPI=jD4s{AgwV{K` zrllt*J+>&WisEnJ-e&YxIp@6B$;+*&t@-ny=(L=oQ`MeO_6^p>HjBt-h2NmlSiTqD zVrGRNqAO~_0Ut~BMv5O1?u$6(W)jtA0>WrhF8D7uCth@7WZAA?r~)c#&8f;)h|V6RwAYX){4tqXBvFW?<$5%?#yx~{S&%Y!h6s?vXz)y zz>*yN!(UCwYS-V&SFJX8dKBj+Cm`cYwMb(8MDaQZ-o#JCKU|E4hFQ>s;(J5+sZA-1 zY7sJP3+|S-rlzm@9x%)nb>|+Ywx%l*u1SMmd?KfmJ`9t8->tQbTjXy8Tl~JU(xJWA zW655rz~21&0i~DswLh|2Y>4rlLjGwdNl*Q1x77FOKN+K`oN?kA4m~5cwZaL@P^rxi z8D%ZGWf5NbC;<~<#az4=#CzAz&&9&(!plcCx_c_V>w2g>*q8vLSWdM{kk5Z_od3_h z3XZuOQ{g-%)`kq?cwBC$VkFKrBp28Ev!43B!5LL+!ix6N#iIp?oA%wjcU;-MqT7H~ zn`juez~p1K6$zXDJ&W(*Myjm5zAXMob~zRqe^~vhgXY7RItP{5zNxorpKWuB@MZPU zOtgtV&X=#wF_m4$-G%U#mNPiP407X4-^NmEKUd{ZkvUZOCxc@%grp`r+=AMg{Zu++ z;%_P+5ZzoS4w5iC=w+-9gS?!(>1OooB2pJjctmAoHQSU}y4S4Udl~5M*0o7J{ZCe2 z{xgGhl+7%g=G15OBtE*QAVZhd_x!ymQMqAkq!kN@_2XiYe#P}if6OacQi%1Z8qVaC z$vhDkZ|9pb%DtuiR>dj1FINLBh2w+kz*X}A58p_a`JNXxq%e!r%(~QD9{^aR2L1qn zeRo)+cUy+V<2T1b>G!h>dHL%`Qdf;7x{4fOLbA-ye?#8bkz^^+)0^gTy8h|`5nAqz zyV#Y@IzrR3q4uh6cia#dXR+|v@NaLi7Y}{6q%f0d3iJI{+HN$^Ji&%Xl`=3Yp!+I$ zdVIzKr?^=jtsy_zCdzN~$_=xAdUps&F_=Y2g*5!x|Bp4x(ATB>9D{iY+jB65@3{%m zLNZgp+mSSTLJ8>?;FeE8Q#=OhLVw#IZwLuaA=AgZo`gf%CVq^3{rHQ$-%;A-iPzUU z<6#llM;YYvPJ(?IwXdkr6UP0!rlzLtIvMxOa-Ux{sL9^uUeFzOHW2du^(f}{GuMI6 zLN{H!NJ*K?@e|W!+f*!uVA=PsD|1wo=ui~+S+&wK^k+8U2J6^zV&=#DdeO#}jAkv8 z|6c7BlwI3+_PUDkVFI;38-PF!6%-)GQAbXmT`L3)?XqoZE}ces3PC6iK`IBSyq#X{ zkM53^H!ZU2x~@_k0<*a;aq+ibEU|wgbj@^mPR23`>@ENN7+}!oN(ZOdE7{cQz_;91 z5t#flpyVHfm5%Y$*vPcEh++rDAss8jTJitKe6aow(ilaz5>$k|qP8rg1dd<7;6y6i zTQR{e!Lj%91fK0_f#tS>w*vDP9=*PN>z;YZnKtgejuKSYzC@`12Gp}D!y@my%=ba0J5nMF;$|<+ak+gi6^t!gBb1q5*xS-7 z|7_$5Tr8FtLn!`7KzE>Je6AhMo%xC36Fi^dC1dyiZS*mcG>(&DEK`@Cuv)!fn+cBu zx)SfCYB~B*(k^8DCa_OkI-B8Fl7O(&|4qmXL3P-Xj^wgrOh6@ zhQSBV!m)II@DGTWoLcMzYF@ zUtyRj<3C1Wz)&K60^>@ux`T5UJrP!+Kr2A(+)1E*`lx_6YeKy2%Qr{~j@g5o4%qY? zj#yRuc^wh*cYlYl6oT1&KX~J19}A=`N_VPa4Y}`ZKQ-F%v*A;en9kn%7YVoVy(T1k z(=Wq1%eV)1BbNFTh6h_SsmRwFDaC9S3W6N$E`9yq zspS%54$D>DnF>~Gi+h&Jz}4R?kJF=fG`rcD4j-W3J6cvr`v`C#t<%iIZ;&5j-7m`$ znPMe7#;ZCfju=tAhoOn_q)4TqdywW*k6vZsSkK3q%^bf0Rt z#TJj-sQX(s=s(E@v}AyHB>RUC#+eIFdM18ok)fZpPndkkUdA7~RCHAxoZ)xVo(2+! z&zBJ1(o+=#cSOB@^g&w_Dd71apzZveH{=>PaHBWdcUV4Jzi=y^-mAmzDGx$c)padu zGenOp!5;R|UDHmZE%fuX8*&n6t-{Yo|NK0$6D1~@lOIo&9ll}3{~>naT;{)NOw}Fc zV_n*>yJxA2(dE&7yL&JZ3+Wbj&+io~9DMkjOEOD9)Tsm0_m{V9I+i10pP6VoypIiZ zicYw}2SLf0?B+lr)niTsxE8dvS(@4XcB}U#IF6$^I=wX-aUy}8ee31kNjaPWU4)XD zqd|q`>n3NaeK?X?^d!gb%0rm%yOTPlO(m=mSScxB*yPT` zaC^^j-mUWp^Z1V+ctd{5-Q=G&=&VC}{#tB-wJTg}+-;bN{>U3i$Z`gBTn8$_kjJ0x z+Ayf)Fd@G~O}ZL|6!1kN>nxyNJ~EXN??t6|rOwK>v-#7fYiMlX&04!vsWztXi>5W- zG>qdKC4_=iYy?yA$=L`;%IY_Ifo})(6NM0k<_RyqO#|*U<3is>*+j$C>fU1!G0?R|cji&HvDhjf(Y^U}cjXvsH5##%HXP4PY3CR7aC5jO&70i){vX~!f=--m}>tr@T`bL@`@y0cBn2Wfzbl15Vxk`x9J0I zaq73m<|k}>!#ZwdKXY)1y-D|Sb2CoUtnn0Yel$AfdlCYa_0z@8FW~=fc=8gD@gWwb zKKpt*AD!t503{E*-w*e9MI#!A?QPTKuHtbQZN*HzUk(JT)6F*n^bPvO=Niz7==dQq zdlWZw;uebl#nzU12n_VaKQya^O6a+Wt7hF5idFlR`Y>L+{uGX1`K4#U(tY4M>5hnf z8t-@f1^I&R+j9=zfQF7=146df6L_z)w^IS>>7N&k!3I{&4v(Z*v1y1|F;kvXXvf2$ zG3Qgin@6cc9{*?hi48h@*C^FqYo((pm(Jl}N_8>?FF#}(;$X4!wp}P}G98%2O!Jt{ zHVl+BsYUJUkJR44JA;3O*T5oaJdK@r;<_gnuvIJ-80g-824A@W zi@Jk6HtQu)8iT?h#@~sKzBBx#LER>VG<=Qzloq>s?Ij%vZ?%_NfyA!DHdCzfyf?Kp>SOKi@btB) zPU69=4{ssZnJ{;&>1gdBzkd)R0RKdZob>U_%JT5PJxn1&qcphkhv^nOoxN+Pwth~* ztmcH|{WaOAzx$8q7s)7;q;|@=Tc8cvJTZZKrvpqOH|c8ss#ZMU7}l*L=9f-gJwHmr zw}0C!eRt;KPPx@DSpe*BZazCols$bGMA&kP;-5Th*E0w*G2Oq+UpXbq7qYVhR;@XA za~dyyZhgq^jzn|Z;F*$;`;w}`UM0l;P{LU%|TJzs!$~TRn*{8)Xp2bEQ45KVjtJM)nhKA193-&b>2#yYsWc5 zqMGUd(pv%rF~IO^drKzfN}SPi@S7Dg{LV^DA1=6E90Nh=k6Vwt{+Zl;48-J& zyY>2C3#Yh+*BX`QWv2#wFjRfmp|=@kMW3T#`YRtsl)33@wEDM0Q0S9*gG4&M1WHpo zK*JZFL`(mt&FO=V`fc3~Vgd_2)8=&tk4xiz7DD%LjR1C@EMYIOz;8P<-m3KC*j^fT zExBcp{LC;R>w_5KgyqZS?QWY-G@!B3!K3L=$;!daYhN(LKNvq!#N7Nx-qTFa4u_~z zvgeKHlN4B`0)EZZLq$NQZCqUT#_Iwrb#sGnHr@1ER2E)NBDDcaIR;as68xW%aLBN~v0{!E=kwoCk{+fGVb^T3! zU{U3Qv> zmO3=J=5{FrX0W|C#^t&$iyAj?n%wK5JSX9EE?iDWhhxo+YL=g9W1>42+gdOAim6~_ z%PwH!vlmT83BZ@TzWjGUD)mxgH_e-Z4l1Bup>W!qilrXd`tWdX*j^pbhkK zbEn^JXA>KVlV6IgwR$s1cfzQEr0^GTzy%@`v*Zc*r8{$XL0s}#+EJ{mA|6VN$XD~IHWvn6#{(DQK6wJTcdlCIC2_tu&v$;}= zd^_IhT{r+Lm3+4NQ>QlHbokdJry4l7PFFBV4TNUDf1c)isZRCxvyK&IJMpJOj%|PV zqt-BIyM}V*A|mPl$N1G>{$jR@1fKn(2%X85k_9BekXt5;#qZKP9vq&e9t= zbAjDj0cSzKqei36X>oB%o2?g^dN8>)*nD=WMo|fW(E!VpFUE+*I5&*PT!ug2yU-PB ztiSpQjK!y;+3|B&sinKnU%JzOCr7U)%4J1OhENEp#Fl&29nF-(wu2L&LW4$?Y^Gn! z{Hrlc67?7Hk7&ZSU&v{193~Yv7g4sKt(Ehj-e_tb*xqI;2RmGG9>8i|pH%i%R^72S zty*ZoZXKj&i@~p9KIXlDobK(b{q74=f?)BioL#Tz^M{`~hM57Xs;LVlqixOK-hE+X zV$M#XA6H-Pv;8eCBa@Ov4+>Hi{?m}#WU9yN@#tnCM<<;qG{1v-x0l8J!W{^<7NO$b zdf8k=a#wUSP5_XrEsx_mLr2aBs)*b9w)V_i|6<= z;vAcYEouGJO~y_6C&3JlImD^{yky}S6?ss&O1?CDLS zyNN{19~xe((SuC)S5B_$eRk1NhkYxbk#Cw= z+-&w1`xxG7a%(JJKYnoAKr)8+M2??)j1HmvfYoe9SJxj@dlhPl&VB!&bM5q< zC`{tt9#bQ*7_b%p3-}|Z7ei{pF7C$d0^+(lcgbB_ zu`7n0loB)*e{nn2s5ZESfvw%r!s|lZ>R{oCDfeGYkKnQ0F`^OTV_41f$@nC+9Q@rU z3S`QM?kOBSi6YIe^0KE*4RrNR#**x1m;PwfdX$yI1j9c<5+zbXUx}~8bdg3XA3So3 zT{&iqD|N}!nlQaqoUP?bB8*-g^-(u}T3hE`yc?_PlRNQ4rdlXP`14J^PrLdKllx=FPZC2xQlr&c*+zBZ|AC9Qi&A{5iCA54y*D%bc0LAkI*1w&pV{=SupzHv(ns z)Uebr2Ht;t^-6r58kaeCF56IVEy2aPi>0XGbLL0WGMU42iTU@jsLm0DVD!=E{yPOvWaOe#(j2W!FbecZgZ?-mznpKd5}NKCoKVP$Ws@3ZW*X zD{1!=u*kU*fv`IcAIxe$&N)@9%{xc}%{4_Yo%x>V-r84zZ2O!{?j=BuLdVDASf)^| z3LC^`gb1ZuO}R<`Ll)LYBT+l>3E{B$WHSp4 zGL3_lB1CoElk2?fy}sQ_JKzEDBxx>H`<-~KaViAsr6qNIY*?{*p-~9td7)=m6sM)F zNzhzA&Qb}^9Fi@#l@iV@3Ayd>sh(hRQ?FrD9e8!c9Q%jOfU6I9%RSQ3wDv0y?;m~B zUHK2T_mdyWX`)hd&&Ic<{-NV&t_gb@=(p%1-G$F)%`5P9aw?A^W6 ztHXfd;fqW#(ZkO3RSuq{duq2^6NhX|f0jqlcT}5S7Ka!N>b7t`kG#QuM9sb?=|p(T zG}Zx{n&sGUi__tokH14x7d-H!JgMaZ)!BJQcSH=j1C(9y7c{&B;f0zUaM|C?oKZ4MAvfaL+uOMzpX|b^my#6j_mjjeOlA8XPLu9<@0rpr*1iB$V?5qm z(8MxR-m<@|_9QcKnF*b=hA@yKZEFUP<69`DBw4H!Duh_HN#S%U@? z4gQ47FWx-&&a75lBPYd#1m25%xLpQ0H!K*+*nf%m1@dJ!D`XE zrv5Dfy7Z8&xRSVs$5~tXOZ4+2ehFp2i%XN2J}Q!~Jg$%0Xz8_dFm~P0@iq!_Zpsd8&<2S^!%@?Q;#@-8``0GJ+rl<9Zdo5WMWQ88}&lA{-D9 z6rA!N8yqxL~!%;6qy|B;#vdEurl)93L?t!5$Q_YCOUH#LDnGd~=x99FKc2F=vey_C^TP>>g@^iDd2{S z1Z$&yOu1>*wA}Cg=Bn;B_?Ttzoc8OAisn9oHf4PM#%sYVV^n_ec29hv5J{zrAe40Y zxo`ygmZ}5(vY#FQu6ysvP3NBz&$xjMuU>^8OV`$DYd%#;3xEPU6W?;iS{zs{*>G<* zRLpn_W=Nuw1h`O3txM*txq|`>Rt!E-RH}EIfb%iOQvh_V7plku=6{xTPi|*LvZn*P zUbQv92s%zm=%k95&Df#`z&^EwVSj{?9}if4q9-YY!;!MD`q8+l1gyWkutn|-aghWx zhSY6;7Xl_TmndBRU@o#uzngvj?FGKtzWmPo?sRo>gu9|!9qw|DeV*);q4V(9P(V8W!TK#kFrQ+)5;-4L%sS7JdY_CF@2KI;vK-Bpy>=6$gM!MjZKh$SHh zYmq5lbvu=)ie$G{weidaHu!Ytb5W<&xufu%R}2;I5ScbAUhotLp{cL+r^T!&YuNIG ze)`D;p2gEpIROiJLiz)_AJXFPyCgfNjDSUN{N%Ex@}wut4lR3Ihi1s|AzLb2*1SgT zI~cu!B4)yU5`m1NR46-&lWB9Hht)f6-d|8{?OWwPqtVp;z3eE@zl9(a_SFb`%LkJF z9Np6Ow=_ZkE_ca(Or^*Jg{AQqeW2=L8qR>C+{9 z=9=T&>rD-+c|Q>$0tZErfu^RBd%ojiE@1EVaD`YupQKdE)9h5{`{t-`SKBw}H^>NeN&Gbd7sCtGBAw#*SEs_~I7SeFg)%!rWvJ7G(8?PdQQCW7LpCC&$M6uUIjxY}NpPjE@4UICmKYKTRIW%@ zPLSSS_;d2Tn9L-2;6ig>hXyD>qj4FmA3};q-J*_Dj;8{PAed*zpPoIbUl0d?7>Xg( z&dXy7Q?s!aHe~$NL)0>tfV=fKAPM5pt#!U1FiS(Dv@YGz**6aAIQ=}D8ob}{CK49$ zmyq6$El%0jsCfg=pf#Czd+&+o%knOQo{O~pBF2&8X%3(~j#XmgcHFnYWjtw4q|e4c zf}&f~xfD(PoH<{W5-W-Zy=$DC^H>~s_of99b$tB%ChLzy< z*6+1!lh%R>@-+*$RrAkiie`?M9|`D?c2^$(<{6F#uV}{PXv`oBGA|h;s{Ff~>!0=) za99~|3^;0>?T3oVt2P8FlLK~E8J<)m)P_Rs7JJRlJnA;*R26)q<+jLSC~DH6)cvY; zeP>!f<#o;=lBlpum~KfQ>CIk5`xsp5O6uyJpHH3T8jh&>voWv{87eS9BVXQfYg-*X zpn;#=AvS+swlET65193H%w^kH=*tcinOxIptf|_p6 zXZtEfiJ2!eE7h5(G*UKP&GwBMY8+^c{pG{K>jT{6KF=zZb6^zgF?e`fF;Z;~u??O@XaZ z+s;?^0@i)&oM|9H+WJE5S|scpBMzN{=z|w+xVy%llg=P zG|%9rHC=J`5LN5zm7|0Tvd=&crL(>OV-b;@}tP4Xs;Y+`NS6 z^y5cWlaNx3TVf1gx+5>!Ea=7u&sf{6r1avg*uyRzihZth*8DJ_r~8(Yd<)Ad6pjw= zIO5tPE|vgJRx{_sjyQX#w0hq%iL!|G*UUJ$>$wa|e|ifDQJ@u5V$P)1=yKp{2zR=) ze_SZg-}rNZ!KStQF#?9-4J#ih%5Y+%bYC0TKi#fByJ&%cUK1K24$2*U9o6qv6Xbt^ z4PWi#xUe$B7xjUXCLolzmIIc!V@u4rN37EbxgM$0GGVczJqwY5e z!8swzR_0PX`voC8sB6$*$nfg6jfk(<%AA(-S(=f_tXxmeFSQ>mtNK9b$sw7(lz%$| zD*)!F?3;HOxB?xTgPrd~Htq2lauxe?@0o4Z@9_@^$UFy}k-(X>Y?PfG+B6Pp&6qzd z;5ZGrnr6?>tqCGB@5Crfn1e6WX)(d)5vf5A(3KGAD!MMsZ~uL1NyAxk^V-bVjXjV+ z)UbNl!9p0Elpx+VQFNXg3W1kFDCzfiBLTGhMq?vGYG5tqxB0zB-xVK(1fqpiAD;zcB>mNfAS4-jK z;fhj>K=8?jd?j9c(I>|K>oGFanFl04e=1;BmyST={V%Kwf*winPX1nxkCLfvj=I=- z9lv`4Ky(QLW~+m~@P^Db4<|?hAAS@WSp2coU1nfd&q>?H^e&OP0P6E1p|Zh3^yrNj z31M<_uwNyVF0F>2n(?t|Z_Ic{1%(F<{_> zO8!ry^AlvdK?3=-sDn6DOiPW&4l(D8TTk#}YZ z-k!g*o4RJ6>G3&6bmL0HlAebB*gfyBaar8bJ(nL8n{$%p2D4z|GrdjU#e)C5-={~c z3LIHrq+ligLOM>d?rUM*wrdZg#q2qS9GHaPikUKF+OO(xR>K;&{k%iPK6!4gLKWv$ zt_BZkGLf#pCv3U>)t-k}ytGm5%1PiKf|U)xKiY+S@5a-;4(rQ*&zM2(*8XB5W3``u z259-NP#GLhP|h1yP*GK+mHxtRT?AYR6#rZ)j6`?J|oWJh)LFAYV@FwO)Gu z!u)&XNm%1j#5^%e?xgtsnC{T*T`(^VQ zzlR1X^C*38z$AY?Z0S;`j7Txed?d32tr%DY*pMCrgY-J&P%;07qagv@AjOvOC&}lV zUCr6-aD31k{VW-WRG%mlBeOlKd#H`F4{mGUD~JeK?bu_!D1j0V+GNIFpAUAJG46WQ z;nyeJL7?o$`-1T4p;ZRbgRlJmtG+E$>~UFr>e*Siu%T%eMN$oEimY8&Uh8wmM!&0>?x4*hi3@v|ib%M%ReG!B14i#z0 zA1|lXCQttOfZz+*x0Q~;Ar1pQ5i^6c?eo3Rm}dqF*FXgr34M54L5O8E4(lNV)^ zA%yGg{~$m74+&marAfSApPa`(==nW!fh5NtDGMCcU&S1+DS0Joz^(7L-Yd;uO-!rZ zYZl(0aSB@1Q9Ks>ilVkR7d)Du+rFYanL!oi!($5K2|yt@A_bh4m90--@R))9@R(z`7Hw9<`Jog)IEX4?-Y2J?yBgLb8Ywk8f^c-#uY z*E{iJ1G7@_)gd2$2eyWkBBif+fbrc44*xk_k+{Y@*(G<|e(|+|BQuWModf$U{<|DW z!X%Kbu6k*%D<|rEUrb2;Q)Ioez(92|x7@MWn7*8HCw$QNm(x)1dsYEJfXy5L2`##|>aS)Io2R7{d9T>o)b z8Ja|i#~TS&81k-a(x=Y3Hvf{MD}^#u82bB75O9^;QW-4VIx?|s)``Tlg9v$nOsSz$SUk2B=hj8pnz*8HL4h!!3L0>+(W{BC#ReH;R zta79`xg?V$D$M5J2cNbTC{Xt&*&lo(2V@Fq{V-)fxD{zlS$okcIeN ztHRBHNZfy+;rGG-&%qOaLmqM(>XU6+S`mIYw0fY3dVsl{mGp15D9IU=pA+IWV!IJ_ zw&pnLdk|>stbFgwpZ>9Xr#)evyz)m>&?XSBfx#SK z>i?SkPas*(;4#@P=1vAnU+;EKSEkn)^J0q|^SM3ZUwYrDH(}cKk+r5t2Vra?W<4!4 z+p7{81HJJsU;A?7f-1$$Txaz+;#wWz?>L73j2E5G_?6N6w*adI5$V$ zU(uy{tw6SueF~G>At{gR!P!uKsS-BBP2^%t48qGG>r9Um%bE3?3blX2W@VbIGx1bH zbjr4Pqr;*YkI_>tHVKx);oPzGqW>r@4;Bwq*?tatZ6OBIk$ zD&r^=-BsaG%+~E$yV?xJa2`CWHgf!JESE8x)HG~Ufw~jVG6G1xRa`81z+o5kK$UW_ z6BR9b17~?)(8JVq0EPN?R{nW!ct$BSve;E3uSZCU279i-ZB#| z-p%{J`=DwxS}LRj>009Zzc1zZC2s6ym%>lJD@;}GCb1&v5%(*pSE@8eY+L7kV(k(Q z`d4r`_lF?~8W^3M`-K%~uS@=kMw8DcXIJs2`pgtt4pjQ9HyL#AINQ^|@2TfOorUYD z#~X|q?YCGu4Q@@8vTnQ!lCM7an55lErC4|gZ03T9vBHqlDxOP~Sq({V{RWbeB@c|f z%5?oc;EP^c=VMwlLagqv0?%SWE3ts1znk9@)+-hKh$@1I#(of1YS{h$EX7IKfZX(j zEjubFEu;fcw=+!J2zUz*j|(=h+EY_#uD66s1y3k++IV`u9ec-DE3t+U4Tu6GYsZ|D zI9@}`06|VqOLQH5qbaAA@^Wn#M_H*$?X1qpHjm1x0cK~g12O1S;?y|I7x-?F+G7NP zv2;9+G&~J;-HoB=52Q_|@jmp-Kq?Ltbh}1W>>XwKGf&%plvUB^AE;HtTgTAm;RH8~-;dr*mN^qCK0#UXCG+NP0@+n+=) z@jh(q(oV0m@(%)>{={>EMjJz>CH4vwi*0wx-`fxqtGaDME6eWmc7WsP!@)5^t<&~U z#V+87&9wy7AOS5@~HecEV~ijt3Ekz@E1W}uo>xUs;dy~SpKvj znr=QPj4UjRbsAVEI6de%y)$!*tbV>-wMz>-C76WDvib~z$)t@Kvu(|aFqqZ7gH-ge zx?l5Am;qhq)+n%9f$`(!jjB$LQ_l0Z&jid!!ooHrEH}|0xJY^3RUJls&kmF@AlobOM}tAZzBe)H0|Tl>0ZAjG(j_%h}q8Le@A6?rnTvWq~g5 zyRuFs9#<+*0Hw~e1GeL{+fbMl26>nshnLS*45oNVUs$qva9*U;c$&MJJAedOXo^D%Ly6Z0-z14-A+t8eM zZ%LLgIhMx$w8^~B8bep>9A2-lKYik=E#$) z1M0S9K)<&mHu>wy@t^NvRZK8)+uy-xiMi(@)2pGk-*5W6T+2d^3M09uw ze`=bCcwNbYHEYOX8^jhSm{M_GPOPKVN)Iftvx84MQA1yEF}-J+Co&Xh%W)SO2#{)< zW(toVYJqmq!PT8)E^{lCnPYI7j5Ec=l2eIElT+a`9lK;%Ih9Bw-`4dY(g3S78~qTg zlyVGRu2X@b(fn+pE$;%O&JzkF@*mxwNw#8gw(w`9k5_*OU8$J&mKxNI#zCu8DZ|6r zHl|WkDrn+XeC+lueS!CIl#vLJ$EB}YMuaTZJ`YS2+80b*=}7bDIqDKlc+mMtcm2)- z@N>81Y4J$A@2Aq$2R7>kuDhYJ6;XdLU4j)->@#0@w$umRaO*J36uj3jDwlCfYWYOL zQ!h=~c6s3Gy@VgLx&o-GCxNr%fjw0b+-|HDZmt{hkLf5D;l7^FB1nFEQ4dlIy?v!< zuz(4P^fdtraiAZJDED-PYUzqqA+sV5;StwRXfbo-)9Ycn` zs;D4W*LUjcon9*PH&EUnPO=>dm9l=vvz9cF_dyfp^r17zOl z;N~>(qlS{hn-X+=R6$N%?Qwy-gXpg;JKejIf=gQ8^G)ZI3RIzyx73yoxm`T_OP!ZCXW zgO8(d(ZJ0&wIH6L3FZV@B_1k}$yd$K&L0rQ4d{7}&cCE6@xXu;lZU9B&ixVmVum&@ zVYTUBvrKF9hn}-i)?`fzEWqif&SZ+BeRmN zq>fHb!p8uM$c>=}+gNhN)Y!b?$N52{4vQ00n8{rzMgno)YyPy zG&`-y+EF~J7MEPF4(_suwGr!h{NE4u_YRSe6Q6LQ(Ebel2SCMLf7AE7gQrVq#?|Ai zPOOMSnKJ6qKPRe044L>NLZ*Bmr_c7Ljzo~PCK{=&zC9@H{4_X_8$?Op_^vR7!rM3i z#$KoDd@iOK@CI&|X-x2DB~Ol6HH!R9HCh=Hg}AS3^Al{ibw;zVhYTD|eD@2W%{aXR z5BjAUIKKHiO**MMI(V=jVCR>zv01m}651E6%zh|iIXvbqds3LHQViQebUmaqw+uYp z=_~-QvQ~(WEic?v+qN#~Uk3McebJg=n;2-mvv#BM4wI7q*N^J-7bmCp*as7$m;WiD z=DMHvm15Lh{*Y0Ku?1yiW7x~|x8h0z^&d8H`dv-|bdbvXf=)+G#{@!j~a8R$X?Vx>&n$d7&~c9d+HJ&ty9eO{#drND^em%? zJje{c+u0s$311BZz#y3re@l4}Kh%vTCEv~>3oV~`MW2cUDSW^E%mrpDb5$uEQ=@2r1+u(qIFQ

;U%~s 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 z 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 { - console.log('Handle Username Callback'); - const cb = step.getCallbackOfType('NameCallback'); - console.log(`Prompt from NameCallback is ${cb.getPrompt()}`); - cb.setName(un); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Handle Text Input Callback'); - const cb = step.getCallbackOfType('TextInputCallback'); - console.log(`Prompt from TextInputCallback is ${cb.getPrompt()}`); - cb.setInput('Text Input String'); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Handle Password Callback'); - const cb = step.getCallbackOfType('PasswordCallback'); - console.log(`Prompt from PasswordCallback is ${cb.getPrompt()}`); - cb.setPassword(pw); - return forgerock.FRAuth.next(step); - }), - mergeMap((step) => { - console.log('Handle Choice Callback'); - const cb = step.getCallbackOfType('ChoiceCallback'); - const prompt = cb.getPrompt(); - console.log(prompt); - const defaultChoice = cb.getDefaultChoice(); - console.log(defaultChoice); - const choices = cb.getChoices(); - console.log(choices); - cb.setChoiceIndex(2); - cb.setChoiceValue('green'); - console.log('Value of "green" is set'); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Handle Confirmation Callback'); - const confirmCB = step.getCallbackOfType('ConfirmationCallback'); - const textCB = step.getCallbackOfType('TextOutputCallback'); - const message = textCB.getMessage(); - console.log(`Message for confirmation is: ${message}`); - const options = confirmCB.getOptions(); - confirmCB.setOptionValue(options[1]); - confirmCB.setOptionIndex(0); - console.log('Setting value to "Yes"'); - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - console.log('Handle Polling Callback'); - const cb = step.getCallbackOfType('PollingWaitCallback'); - const message = cb.getMessage(); - console.log(message); - const waitTime = cb.getWaitTime(); - console.log(`Wait time is ${waitTime} milliseconds`); - return new Promise((resolve) => { - setTimeout(() => { - resolve(step); - }, waitTime + 1000); - }); - }), - rxDelay(delay), - mergeMap((step) => { - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/misc-callbacks/index.html b/e2e/autoscript-apps/src/misc-callbacks/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/misc-callbacks/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/src/register-basic/Registration.png b/e2e/autoscript-apps/src/register-basic/Registration.png deleted file mode 100644 index c34a3a904570be647e858928fceb15bfe7f78a04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169927 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

Login successful

'; - } else { - throw new Error('Something went wrong.'); - } - }, - (step) => step, - ), - rxDelay(delay), - mergeMap((step) => { - return forgerock.SessionManager.logout(); - }), - map((response) => { - if (response.ok) { - console.log('Logout successful'); - document.body.innerHTML = '

Logout successful

'; - } else { - throw new Error('Logout_Error'); - } - }), - ) - .subscribe({ - error: (err) => { - console.log(`Error: ${err.message}`); - document.body.innerHTML = `

${err.message}

`; - }, - complete: () => { - console.log('Test script complete'); - document.body.innerHTML = `

Test script complete

`; - }, - }); - }, 250); -} - -autoscript(); -export default autoscript; diff --git a/e2e/autoscript-apps/src/register-basic/index.html b/e2e/autoscript-apps/src/register-basic/index.html deleted file mode 100644 index 016c1758f..000000000 --- a/e2e/autoscript-apps/src/register-basic/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - E2E Test | ForgeRock JavaScript SDK - - - - - - - - - - - - - diff --git a/e2e/autoscript-apps/tsconfig.app.json b/e2e/autoscript-apps/tsconfig.app.json deleted file mode 100644 index 1af188a98..000000000 --- a/e2e/autoscript-apps/tsconfig.app.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "dist", - "composite": true, - "moduleResolution": "Bundler", - "target": "ES2020", - "module": "ES2020", - "allowUmdGlobalAccess": true - }, - "exclude": ["**/*.spec.ts"], - "include": ["**/*.ts"] -} diff --git a/e2e/autoscript-apps/tsconfig.json b/e2e/autoscript-apps/tsconfig.json deleted file mode 100644 index 2e6faed4e..000000000 --- a/e2e/autoscript-apps/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "files": [], - "include": [], - "compilerOptions": { - "forceConsistentCasingInFileNames": true, - "strict": false, - "noImplicitOverride": false, - "noPropertyAccessFromIndexSignature": false, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true - }, - "references": [ - { - "path": "./tsconfig.app.json" - } - ] -} diff --git a/e2e/autoscript-apps/vite.config.ts b/e2e/autoscript-apps/vite.config.ts deleted file mode 100644 index f9d0a6219..000000000 --- a/e2e/autoscript-apps/vite.config.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { defineConfig } from 'vite'; -import * as path from 'path'; - -const pages = [ - 'authn-basic', - 'authn-central-login', - 'authn-central-login-wellknown', - 'authn-device-profile', - 'authn-protect', - 'authn-email-suspend', - 'authn-no-session', - 'authn-oauth', - 'authn-wellknown', - 'authn-platform', - 'authn-saml', - 'authn-second-factor', - 'authn-social-login-am', - 'authn-social-login-idm', - 'authn-webauthn', - 'authn-webauthn-device-registration', - 'authn-otp-reg', - 'authz-token', - 'authz-tree-basic-json', - 'authz-tree-basic-redirect', - 'authz-txn-basic-json', - 'authz-txn-basic-redirect', - 'authz-txn-oauth', - 'config-custom-paths', - 'config-request-middleware', - 'config-token-storage', - 'misc-callbacks', - 'register-basic', -]; - -export default defineConfig({ - root: __dirname, - cacheDir: '../../node_modules/.vite/e2e/autoscript-apps', - - server: { - cors: true, - port: 8443, - host: 'localhost', - headers: { - 'Access-Control-Allow-Credentials': 'true', - 'Access-Control-Allow-Origin': 'null', - 'Access-Control-Allow-Headers': 'x-authorize-middleware', - }, - }, - preview: { - port: 8443, - host: 'localhost', - headers: { - 'Access-Control-Allow-Origin': 'http://localhost:8443', - }, - }, - build: { - outDir: './dist', - reportCompressedSize: true, - rollupOptions: { - input: { - main: path.resolve(__dirname, 'index.html'), - ...pages.reduce( - (acc, page) => { - acc[page as keyof typeof pages] = path.resolve(__dirname, `src/${page}/index.html`); - return acc; - }, - {} as Record, - ), - }, - output: { - entryFileNames: 'src/[name]/main.js', - }, - }, - }, -}); diff --git a/e2e/autoscript-suites/.eslintignore b/e2e/autoscript-suites/.eslintignore deleted file mode 100644 index ddb904672..000000000 --- a/e2e/autoscript-suites/.eslintignore +++ /dev/null @@ -1,10 +0,0 @@ -node_modules -*.md -LICENSE -.babelrc -.env* -.bin -dist -.eslintignore -*.html -.playwright/ diff --git a/e2e/autoscript-suites/.eslintrc.json b/e2e/autoscript-suites/.eslintrc.json deleted file mode 100644 index 91a80921a..000000000 --- a/e2e/autoscript-suites/.eslintrc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.spec.ts"], - "extends": ["plugin:playwright/recommended"] - }, - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": {} - } - ] -} diff --git a/e2e/autoscript-suites/config.ts b/e2e/autoscript-suites/config.ts deleted file mode 100644 index 97fcc1e94..000000000 --- a/e2e/autoscript-suites/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { workspaceRoot } from '@nx/devkit'; -import { PlaywrightTestConfig } from '@playwright/test'; -import { baseConfig } from './playwright.config'; - -export const config: PlaywrightTestConfig = { - ...baseConfig, - reporter: process.env.CI ? 'github' : 'list', - testIgnore: '**/authz-txn*', - use: { - baseURL, - ignoreHTTPSErrors: true, - geolocation: { latitude: 24.9884, longitude: -87.3459 }, - bypassCSP: true, - trace: process.env.CI ? 'retry-with-trace' : 'retain-on-failure', - }, - webServer: [ - { - command: 'pnpm nx serve mock-api', - url: 'http://localhost:9443/healthcheck', - ignoreHTTPSErrors: true, - reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, - }, - { - command: 'pnpm nx serve mock-api-v2', - url: 'http://localhost:9444/healthcheck', - ignoreHTTPSErrors: true, - reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, - }, - { - command: 'pnpm nx serve autoscript-apps', - url: 'http://localhost:8443', - ignoreHTTPSErrors: true, - reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, - }, - ], -}; diff --git a/e2e/autoscript-suites/package.json b/e2e/autoscript-suites/package.json deleted file mode 100644 index 670fafe3c..000000000 --- a/e2e/autoscript-suites/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@forgerock/autoscript-suites", - "version": "0.0.0", - "private": true, - "description": "ForgeRock JavaScript SDK E2E Suites", - "main": "index.js", - "type": "module", - "author": "", - "license": "ISC", - "repository": { - "type": "git", - "url": "git+https://github.com/ForgeRock/forgerock-javascript-sdk.git" - }, - "bugs": { - "url": "https://github.com/ForgeRock/forgerock-javascript-sdk/issues" - }, - "homepage": "https://github.com/ForgeRock/forgerock-javascript-sdk#readme", - "dependencies": {}, - "scripts": { - "e2e": "playwright test", - "e2e:ui": "playwright test --ui", - "lint": "eslint **/*.ts" - }, - "nx": { - "implicitDependencies": [ - "@forgerock/autoscript-apps", - "@forgerock/mock-api", - "@forgerock/mock-api-v2" - ] - } -} diff --git a/e2e/autoscript-suites/playwright.config.ts b/e2e/autoscript-suites/playwright.config.ts deleted file mode 100644 index 63d4c4076..000000000 --- a/e2e/autoscript-suites/playwright.config.ts +++ /dev/null @@ -1,65 +0,0 @@ -import * as os from 'os'; -import { nxE2EPreset } from '@nx/playwright/preset'; -import { workspaceRoot } from '@nx/devkit'; -import { fileURLToPath } from 'url'; - -const __filename = fileURLToPath(import.meta.url); - -// For CI, you may want to set BASE_URL to the deployed application. -const baseURL = process.env['BASE_URL'] || 'http://localhost:8443'; - -const baseConfig = nxE2EPreset(__filename, { - testDir: './src/suites', -}); - -const config = { - ...baseConfig, - outputDir: './.playwright', - reporter: process.env.CI ? 'github' : 'list', - testIgnore: '**/authz-txn*', - use: { - baseURL, - ignoreHTTPSErrors: true, - geolocation: { latitude: 24.9884, longitude: -87.3459 }, - bypassCSP: true, - trace: process.env.CI ? 'retry-with-trace' : 'retain-on-failure', - }, - projects: [ - { - name: 'Chromium', - }, - { - name: 'Firefox', - }, - os.type() === 'Darwin' - ? { - name: 'Safari', - } - : undefined, - ].filter(Boolean), - webServer: [ - { - command: 'pnpm nx serve @forgerock/mock-api', - url: 'http://localhost:9443/healthcheck', - ignoreHTTPSErrors: true, - reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, - }, - { - command: 'pnpm nx serve @forgerock/mock-api-v2', - url: 'http://localhost:9444/healthcheck', - ignoreHTTPSErrors: true, - reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, - }, - { - command: 'pnpm nx serve @forgerock/autoscript-apps', - url: 'http://localhost:8443', - ignoreHTTPSErrors: true, - reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, - }, - ], -}; - -export default config; diff --git a/e2e/autoscript-suites/src/env.config.ts b/e2e/autoscript-suites/src/env.config.ts deleted file mode 100644 index 37d025f2d..000000000 --- a/e2e/autoscript-suites/src/env.config.ts +++ /dev/null @@ -1,74 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * env.config.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { env } from 'process'; - -/** - * Configure your environment defaults below. - */ -const oauth = { - client: 'WebOAuthClient', - scope: 'openid profile me.read', -}; - -const origins = { - // Ensure all domains are added to the security cert creation - app: process.env.LIVE ? 'https://sdkapp.petrov.ca' : 'http://localhost', - forgeops: 'https://default.forgeops.petrov.ca', - mock: 'http://localhost', - resource: 'http://localhost', -}; - -const paths = { - am: '/am', -}; - -const ports = { - app: '8443', - forgeops: '443', - mock: '9443', - resource: '9443', -}; -const realm = 'root'; -const testUsers = [ - { - // Already exists in forgeops... - pw: 'password', - un: 'sdkuser', - }, -]; - -/** - * The below will be composed of the above values. - * Do not edit unless you know what you're doing. - */ -let amUrl; -let amPort; - -if (env.LIVE) { - amUrl = origins.forgeops; - amPort = ports.forgeops; -} else { - amUrl = origins.mock; - amPort = ports.mock; -} - -export const APP_PORT = ports.app; -export const AM_PORT = amPort; -export const MOCK_PORT = ports.mock; - -export const AM_URL = `${amUrl}:${amPort}${paths.am}`; -export const BASE_URL = `${origins.app}:${ports.app}`; -export const CLIENT_ID = oauth.client; -export const FORGEOPS = origins.forgeops; -export const REALM_PATH = realm; -export const RESOURCE_URL = `${origins.resource}:${ports.resource}`; -export const SCOPE = oauth.scope; -export const USERS = testUsers; diff --git a/e2e/autoscript-suites/src/suites/authn-basic.lc.neg.test.ts b/e2e/autoscript-suites/src/suites/authn-basic.lc.neg.test.ts deleted file mode 100644 index ad50871b3..000000000 --- a/e2e/autoscript-suites/src/suites/authn-basic.lc.neg.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-basic.lc.neg.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test bad login flow', () => { - test(`Login UNsuccessfully`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-basic/', { - pw: 'wrong_password_123!', - }); - - // Test assertions - expect(messageArray.includes('Error: Auth_Error')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-basic.lc.test.ts b/e2e/autoscript-suites/src/suites/authn-basic.lc.test.ts deleted file mode 100644 index d352c5599..000000000 --- a/e2e/autoscript-suites/src/suites/authn-basic.lc.test.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-basic.lc.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test Basic login flow', () => { - test(`should login successfully and then log out`, async ({ browserName, page }) => { - const { headerArray, messageArray } = await setupAndGo(page, browserName, 'authn-basic/'); - - // Test assertions - expect(messageArray.includes('Basic login successful')).toBe(true); - expect(messageArray.includes('Logout successful')).toBe(true); - expect(messageArray.includes('Starting authentication with service')).toBe(true); - expect(messageArray.includes('Continuing authentication with service')).toBe(true); - - expect(headerArray.find((headers) => headers.get('x-requested-platform'))).toBeFalsy(); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-central-login-wellknown.test.ts b/e2e/autoscript-suites/src/suites/authn-central-login-wellknown.test.ts deleted file mode 100644 index 7ff1eecdc..000000000 --- a/e2e/autoscript-suites/src/suites/authn-central-login-wellknown.test.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-central-login-wellknown.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test OAuth login flow with .wellknown config', () => { - // eslint-disable-next-line - test(`should use full redirect to request auth code, then token exchange`, async ({ - page, - browserName, - }) => { - const { messageArray, networkArray } = await setupAndGo( - page, - browserName, - 'authn-central-login-wellknown/', - { - clientId: 'CentralLoginOAuthClient', - wellknown: 'http://localhost:9443/am/.well-known/oidc-configuration', - }, - ); - - // Test assertions - // Test log messages - expect(messageArray.includes('OAuth authorization successful')).toBe(true); - expect(messageArray.includes('Test script complete')).toBe(true); - // Test network requests - // Authorize endpoint should use iframe, which is type "document" - expect(networkArray.includes('/am/oauth2/realms/root/authorize, document')).toBe(true); - expect(networkArray.includes('/am/oauth2/realms/root/access_token, fetch')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-central-login.test.ts b/e2e/autoscript-suites/src/suites/authn-central-login.test.ts deleted file mode 100644 index 11c50d5b5..000000000 --- a/e2e/autoscript-suites/src/suites/authn-central-login.test.ts +++ /dev/null @@ -1,77 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-central-login.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test OAuth login flow', () => { - // eslint-disable-next-line - test(`should use full redirect to request auth code, then token exchange`, async ({ - page, - browserName, - }) => { - const { messageArray, networkArray } = await setupAndGo( - page, - browserName, - 'authn-central-login/', - ); - - // Test assertions - // Test log messages - expect(messageArray.includes('OAuth authorization successful')).toBe(true); - expect(messageArray.includes('Test script complete')).toBe(true); - // Test network requests - // Authorize endpoint should use iframe, which is type "document" - expect(networkArray.includes('/am/oauth2/realms/root/authorize, document')).toBe(true); - expect(networkArray.includes('/am/oauth2/realms/root/access_token, fetch')).toBe(true); - }); - - test(`should use sessionStorage for OAuth tokens, then token exchange`, async ({ - page, - browserName, - }) => { - const { messageArray, networkArray } = await setupAndGo( - page, - browserName, - 'authn-central-login/', - { tokenStore: 'sessionStorage' }, - ); - - // Test assertions - // Test log messages - expect(messageArray.includes('OAuth authorization successful')).toBe(true); - expect(messageArray.includes('Test script complete')).toBe(true); - // Test network requests - // Authorize endpoint should use iframe, which is type "document" - expect(networkArray.includes('/am/oauth2/realms/root/authorize, document')).toBe(true); - expect(networkArray.includes('/am/oauth2/realms/root/access_token, fetch')).toBe(true); - }); - - test(`should use hidden iframe to request auth code,then token exchange`, async ({ - page, - browserName, - }) => { - const { messageArray, networkArray } = await setupAndGo( - page, - browserName, - 'authn-central-login/', - { preAuthenticated: 'true' }, - ); - - // Test assertions - // Test log messages - expect(messageArray.includes('OAuth authorization successful')).toBe(true); - expect(messageArray.includes('Test script complete')).toBe(true); - // Test network requests - // Authorize endpoint should NOT be called using document or fetch - expect(networkArray.includes('/am/oauth2/realms/root/authorize, document')).toBe(true); - expect(networkArray.includes('/am/oauth2/realms/root/access_token, fetch')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-central-logout.test.ts b/e2e/autoscript-suites/src/suites/authn-central-logout.test.ts deleted file mode 100644 index 10037e966..000000000 --- a/e2e/autoscript-suites/src/suites/authn-central-logout.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { test, expect } from '@playwright/test'; - -test('should login and logout with pingone', async ({ page }) => { - await page.goto('http://localhost:8443/'); - await page.getByRole('link', { name: 'AuthN: Central Logout Ping' }).click(); - await expect(page).toHaveURL('http://localhost:8443/src/authn-central-logout/index.html'); - await expect(page.getByRole('button', { name: /Force Renew/ })).toBeVisible(); - const btn = page.getByRole('button', { name: /Login/ }); - await expect(btn).toBeVisible(); - await btn.click({ delay: 1000 }); - await page.waitForURL(/ping/); - await page.getByRole('textbox', { name: 'Username' }).click(); - await page.getByPlaceholder('Username').fill('sdk.user'); - await page.getByRole('textbox', { name: 'Password' }).click(); - await page.getByRole('textbox', { name: 'Password' }).fill('XZY8gqn3gau*jmv1hwg'); - await page.getByRole('button', { name: 'Sign On' }).click(); - - await expect(page.getByText('preferred_username')).toContainText('sdk.user'); - await page.getByRole('button', { name: 'Sign Out' }).click({ clickCount: 1, delay: 300 }); - await page.getByRole('button', { name: 'Login' }).click({ delay: 300 }); - await page.waitForRequest(/pingone/); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-device-profile.lc.test.ts b/e2e/autoscript-suites/src/suites/authn-device-profile.lc.test.ts deleted file mode 100644 index b67778349..000000000 --- a/e2e/autoscript-suites/src/suites/authn-device-profile.lc.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-device-profile.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test bad login flow', () => { - test.use({ permissions: ['geolocation'] }); - test(`Login with device profile callback`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-device-profile/'); - - // Test assertions - expect(messageArray.includes('Collecting profile ...')).toBe(true); - expect(messageArray.includes('Profile collected.')).toBe(true); - expect(messageArray.includes('Login with profile successful.')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-email-suspend.test.ts b/e2e/autoscript-suites/src/suites/authn-email-suspend.test.ts deleted file mode 100644 index 9f5dde2c6..000000000 --- a/e2e/autoscript-suites/src/suites/authn-email-suspend.test.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-email-suspend.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test basic registration flow', () => { - test(`should register user successfully and then log out`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-email-suspend/'); - - // Test assertions - expect( - messageArray.includes( - // eslint-disable-next-line max-len - 'An email has been sent to the address you entered. Click the link in that email to proceed.', - ), - ).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-no-session.lc.test.ts b/e2e/autoscript-suites/src/suites/authn-no-session.lc.test.ts deleted file mode 100644 index 55815680d..000000000 --- a/e2e/autoscript-suites/src/suites/authn-no-session.lc.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-no-session.lc.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test Basic login flow', () => { - test(`should login successfully and then log out with`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-no-session/'); - - // Test assertions - expect(messageArray.includes('Adding "noSession" query param to URL')).toBe(true); - expect(messageArray.includes('Basic login with "noSession" completed successfully')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-oauth.lc.test.ts b/e2e/autoscript-suites/src/suites/authn-oauth.lc.test.ts deleted file mode 100644 index 14006141a..000000000 --- a/e2e/autoscript-suites/src/suites/authn-oauth.lc.test.ts +++ /dev/null @@ -1,34 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-oauth.lc.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test OAuth login flow', () => { - test(`should login successfully and then log out with`, async ({ page, browserName }) => { - const { messageArray, networkArray } = await setupAndGo(page, browserName, 'authn-oauth/'); - - // Test assertions - // Test log messages - expect(messageArray.includes('OAuth login successful')).toBe(true); - expect(messageArray.includes('Logout successful')).toBe(true); - expect(messageArray.includes('Calling authorize endpoint')).toBe(true); - expect(messageArray.includes('Calling access token exchange endpoint')).toBe(true); - expect(messageArray.includes('Get user info from OAuth endpoint')).toBe(true); - expect(messageArray.includes('New OAuth tokens retrieved')).toBe(true); - - // Test network requests - // Make sure revoke request is made twice, one for force renew and one for logout - const revokeRequests = networkArray.filter( - (request) => request === '/am/oauth2/realms/root/token/revoke, fetch', - ); - expect(revokeRequests.length).toBe(2); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-otp-reg.test.ts b/e2e/autoscript-suites/src/suites/authn-otp-reg.test.ts deleted file mode 100644 index 6bfeed9fb..000000000 --- a/e2e/autoscript-suites/src/suites/authn-otp-reg.test.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-otp-reg.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test QR Code flows', () => { - test(`Login and register OTP successfully`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-otp-reg/'); - - // Test assertions - expect( - messageArray.includes( - 'Scan the QR code image below with the ForgeRock Authenticator app to register your device with your login.', - ), - ).toBe(true); - expect(messageArray.includes('otp')).toBe(true); - expect( - messageArray.includes( - 'otpauth://totp/ForgeRock:jlowery?secret=QITSTC234FRIU8DD987DW3VPICFY======&issuer=ForgeRock&period=30&digits=6&b=032b75', - ), - ).toBe(true); - expect(messageArray.includes('Basic login with OTP registration step successful')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-ping-marketplace.test.ts b/e2e/autoscript-suites/src/suites/authn-ping-marketplace.test.ts deleted file mode 100644 index d29322a02..000000000 --- a/e2e/autoscript-suites/src/suites/authn-ping-marketplace.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-otp-reg.test.ts - * - * Copyright (c) 2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Login with marketplace nodes', () => { - test(`Ping marketplace nodes`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-protect-metadata/'); - - // Test assertions - expect(messageArray.includes('Submitting ping protect start')).toBe(true); - - expect(messageArray.includes('Submitting ping protect evaluation')).toBe(true); - expect(messageArray.includes('Basic login with Protect successful')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-platform.lc.test.ts b/e2e/autoscript-suites/src/suites/authn-platform.lc.test.ts deleted file mode 100644 index 45c34bd0d..000000000 --- a/e2e/autoscript-suites/src/suites/authn-platform.lc.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-platform.lc.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test Basic login flow', () => { - test(`should login successfully and then log out with`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-platform/'); - - // Test assertions - expect(messageArray.includes('Basic login with platform nodes successful')).toBe(true); - expect(messageArray.includes('Logout successful')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-protect.test.ts b/e2e/autoscript-suites/src/suites/authn-protect.test.ts deleted file mode 100644 index b877f056e..000000000 --- a/e2e/autoscript-suites/src/suites/authn-protect.test.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-basic.lc.test.ts - * - * Copyright (c) 2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test basic login flow with Ping Protect', () => { - test(`should send Protect data and login successfully`, async ({ browserName, page }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-protect/'); - const configJson = messageArray.find((message) => message.includes('envId')); - - let configObj; - try { - configObj = JSON.parse(configJson); - } catch (err) { - console.log('Error parsing configJson'); - configObj = {}; - } - - // Test assertions - expect(configObj.envId.length).toBeGreaterThan(5); - expect(configObj.consoleLogEnabled).toBe(true); - expect(configObj.deviceAttributesToIgnore).toStrictEqual(['userAgent']); - expect(configObj.customHost).toBe('http://localhost'); - expect(configObj.lazyMetadata).toBe(false); - expect(configObj.behavioralDataCollection).toBe(true); - expect(configObj.deviceKeyRsyncIntervals).toBe(14); - expect(configObj.enableTrust).toBe(false); - expect(configObj.disableTags).toBe(false); - expect(configObj.disableHub).toBe(false); - - expect(messageArray.includes('[SignalsSDK] Starting Signals SDK...')).toBe(true); - expect(messageArray.includes('[SignalsSDK] calculated device attributes.')).toBe(true); - expect(messageArray.includes('getPauseBehavioralData: true')).toBe(true); - expect(messageArray.includes('Basic login with Protect successful')).toBe(true); - expect(messageArray.includes('Test script complete')).toBe(true); - }); - - test('should not pause behavioral data if false', async ({ browserName, page }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-protect/', { - pauseBehaviorData: 'false', - }); - expect(messageArray.includes('[SignalsSDK] Starting Signals SDK...')).toBe(true); - expect(messageArray.includes('[SignalsSDK] calculated device attributes.')).toBe(true); - expect(messageArray.includes('getPauseBehavioralData: false')).toBe(true); - expect(messageArray.includes('Basic login with Protect successful')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-saml.test.ts b/e2e/autoscript-suites/src/suites/authn-saml.test.ts deleted file mode 100644 index 8fae80eee..000000000 --- a/e2e/autoscript-suites/src/suites/authn-saml.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-social-login-am.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('SAML Flow', () => { - test(`Login with SAML`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-saml/', { - tree: 'SAMLTest', - }); - // Test assertions - expect(messageArray.includes('init step')).toBe(true); - expect(messageArray.includes('redirecting...')).toBe(true); - expect(messageArray.includes('resumed')).toBe(true); - expect(messageArray.includes('SAML Login successful')).toBe(true); - }); - test(`Error on SAML handled`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-saml/', { - tree: 'SAMLTestFailure', - }); - - // Test assertions - expect(messageArray.includes('init step')).toBe(true); - expect(messageArray.includes('redirecting...')).toBe(true); - expect(messageArray.includes('resumed')).toBe(true); - expect(messageArray.includes('errorSaml')).toBe(true); - expect(messageArray.includes('401')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-second-factor.test.ts b/e2e/autoscript-suites/src/suites/authn-second-factor.test.ts deleted file mode 100644 index cea7aab94..000000000 --- a/e2e/autoscript-suites/src/suites/authn-second-factor.test.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-second-factor.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test Second Factor login flow', () => { - test(`should login successfully with OTP and then log out with`, async ({ - page, - browserName, - }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-second-factor/'); - - // Test assertions - expect(messageArray.includes('Set given OTP to password callback')).toBe(true); - expect(messageArray.includes('Logout successful')).toBe(true); - expect(messageArray.includes('Second Factor login successful')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-social-login-am.test.ts b/e2e/autoscript-suites/src/suites/authn-social-login-am.test.ts deleted file mode 100644 index 6479c12bd..000000000 --- a/e2e/autoscript-suites/src/suites/authn-social-login-am.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-social-login-am.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test Social Login flow with AM nodes', () => { - test(`Login with identity provide`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-social-login-am/', { - clientId: 'IDMSocialLogin', - }); - - console.log(messageArray); - // Test assertions - expect(messageArray.includes('Set provider on SelectIdPCallback')).toBe(true); - expect(messageArray.includes('Redirect to ID Provider')).toBe(true); - expect(messageArray.includes('Returning from provider')).toBe(true); - expect(messageArray.includes('Social Login successful')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authn-social-login-idm.test.ts b/e2e/autoscript-suites/src/suites/authn-social-login-idm.test.ts deleted file mode 100644 index baf34f338..000000000 --- a/e2e/autoscript-suites/src/suites/authn-social-login-idm.test.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authn-social-login-idm.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test Social Login flow with AM nodes', () => { - test(`Login with identity provider`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authn-social-login-idm/', { - clientId: 'IDMSocialLogin', - }); - - // Test assertions - expect(messageArray.includes('Set provider on SelectIdPCallback')).toBe(true); - expect(messageArray.includes('Redirect to ID Provider')).toBe(true); - expect(messageArray.includes('Returning from provider')).toBe(true); - expect(messageArray.includes('Social Login successful')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authz-token.test.ts b/e2e/autoscript-suites/src/suites/authz-token.test.ts deleted file mode 100644 index 5d8f77a69..000000000 --- a/e2e/autoscript-suites/src/suites/authz-token.test.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authz-token.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test OAuth token management', () => { - test(`should proactively refresh tokens if they expire within the threshold`, async ({ - page, - browserName, - }) => { - // Default threshold - const defaultThresholdResult = await setupAndGo(page, browserName, 'authz-token/', { - realmPath: 'tokens-expiring-soon', - }); - expect( - defaultThresholdResult.messageArray.includes( - 'OAuth tokens expiring soon; proactively refreshed', - ), - ).toBe(true); - expect( - defaultThresholdResult.messageArray.includes( - 'OAuth tokens expiring soon; proactively refreshed by HttpClient call', - ), - ).toBe(true); - - // Specified threshold - const specifiedThresholdResult = await setupAndGo(page, browserName, 'authz-token/', { - realmPath: 'tokens-expiring-soon', - oauthThreshold: '25000', - }); - expect( - specifiedThresholdResult.messageArray.includes( - 'OAuth tokens expiring soon; proactively refreshed', - ), - ).toBe(true); - expect( - specifiedThresholdResult.messageArray.includes( - 'OAuth tokens expiring soon; proactively refreshed by HttpClient call', - ), - ).toBe(true); - - // Expired - const expiredResult = await setupAndGo(page, browserName, 'authz-token/', { - realmPath: 'tokens-expired', - }); - expect( - expiredResult.messageArray.includes('OAuth tokens expiring soon; proactively refreshed'), - ).toBe(true); - expect( - expiredResult.messageArray.includes( - 'OAuth tokens expiring soon; proactively refreshed by HttpClient call', - ), - ).toBe(true); - }); - - test(`should not proactively refresh tokens if they expire outside the threshold`, async ({ - page, - browserName, - }) => { - // Default threshold - const defaultThresholdResult = await setupAndGo(page, browserName, 'authz-token/', {}); - expect( - defaultThresholdResult.messageArray.includes('OAuth tokens not expiring soon; not refreshed'), - ).toBe(true); - expect( - defaultThresholdResult.messageArray.includes( - 'OAuth tokens not expiring soon; not refreshed by HttpClient call', - ), - ).toBe(true); - }); - test(`should not proactively refresh tokens if they expire outside the specified threshold`, async ({ - page, - browserName, - }) => { - // Specified threshold - const specifiedThresholdResult = await setupAndGo(page, browserName, 'authz-token/', { - realmPath: 'tokens-expiring-soon', - oauthThreshold: '10000', - }); - expect( - specifiedThresholdResult.messageArray.includes( - 'OAuth tokens not expiring soon; not refreshed', - ), - ).toBe(true); - expect( - specifiedThresholdResult.messageArray.includes( - 'OAuth tokens not expiring soon; not refreshed by HttpClient call', - ), - ).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authz-tree-basic-json.test.ts b/e2e/autoscript-suites/src/suites/authz-tree-basic-json.test.ts deleted file mode 100644 index 99dac0bf3..000000000 --- a/e2e/autoscript-suites/src/suites/authz-tree-basic-json.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authz-tree-basic-json.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test Tree Based Authorization flow using JSON response', () => { - test(`Trigger Tree Based Auth appropriately`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authz-tree-basic-json/'); - - // Test assertions - expect(messageArray.includes('IG resource requires additional authorization')).toBe(true); - expect(messageArray.includes('Request to IG resource successfully responded')).toBe(true); - expect(messageArray.includes('Starting authentication with composite advice')).toBe(true); - expect(messageArray.includes('Continuing authentication with composite advice')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authz-tree-basic-redirect.test.ts b/e2e/autoscript-suites/src/suites/authz-tree-basic-redirect.test.ts deleted file mode 100644 index 9d19c1d64..000000000 --- a/e2e/autoscript-suites/src/suites/authz-tree-basic-redirect.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -// /* -// * @forgerock/javascript-sdk -// * -// * authz-tree-basic-redirect.test.ts -// * -// * Copyright (c) 2020 ForgeRock. All rights reserved. -// * This software may be modified and distributed under the terms -// * of the MIT license. See the LICENSE file for details. -// */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test Tree Based Authorization flow using Redirect response', () => { - // eslint-disable-next-line playwright/no-skipped-test - test.skip(`Trigger Tree Based Auth appropriately`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authz-tree-basic-redirect/'); - - // Test assertions - expect(messageArray.includes('IG resource requires additional authorization')).toBe(true); - expect(messageArray.includes('Rest resource requires additional authorization')).toBe(true); - expect(messageArray.includes('Request to IG resource successfully responded')).toBe(true); - expect(messageArray.includes('Request to REST resource successfully responded')).toBe(true); - expect(messageArray.includes('Starting authentication with composite advice')).toBe(true); - expect(messageArray.includes('Continuing authentication with composite advice')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authz-txn-basic-json.test.ts b/e2e/autoscript-suites/src/suites/authz-txn-basic-json.test.ts deleted file mode 100644 index 003be7790..000000000 --- a/e2e/autoscript-suites/src/suites/authz-txn-basic-json.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authz-txn-basic-json.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test Transaction Authorization flow using JSON response', () => { - test(`Trigger Txn Auth appropriately`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authz-txn-basic-json/'); - - // Test assertions - expect(messageArray.includes('IG resource requires additional authorization')).toBe(true); - expect(messageArray.includes('Request to IG resource successfully responded')).toBe(true); - expect(messageArray.includes('Starting authentication with composite advice')).toBe(true); - expect(messageArray.includes('Continuing authentication with composite advice')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/authz-txn-basic-redirect.test.ts b/e2e/autoscript-suites/src/suites/authz-txn-basic-redirect.test.ts deleted file mode 100644 index 9359a36ca..000000000 --- a/e2e/autoscript-suites/src/suites/authz-txn-basic-redirect.test.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * authz-txn-basic-redirect.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test Transaction Authorization flow using Redirect response', () => { - test(`Trigger Txn Auth appropriately`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'authz-txn-basic-redirect/'); - - // Test assertions - expect(messageArray.includes('IG resource requires additional authorization')).toBe(true); - expect(messageArray.includes('Rest resource requires additional authorization')).toBe(true); - expect(messageArray.includes('Request to IG resource successfully responded')).toBe(true); - expect(messageArray.includes('Request to REST resource successfully responded')).toBe(true); - expect(messageArray.includes('Starting authentication with composite advice')).toBe(true); - expect(messageArray.includes('Continuing authentication with composite advice')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/config-custom-paths.test.ts b/e2e/autoscript-suites/src/suites/config-custom-paths.test.ts deleted file mode 100644 index eb93718f1..000000000 --- a/e2e/autoscript-suites/src/suites/config-custom-paths.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * config-custom-paths.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test OAuth login flow with custom paths', () => { - test(`should login successfully and then log out with`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'config-custom-paths/'); - - // Test assertions - expect(messageArray.includes('OAuth login successful')).toBe(true); - expect(messageArray.includes('Logout successful')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/config-request-middleware.test.ts b/e2e/autoscript-suites/src/suites/config-request-middleware.test.ts deleted file mode 100644 index c445c2371..000000000 --- a/e2e/autoscript-suites/src/suites/config-request-middleware.test.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * config-request-middleware.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test request middleware with login flow', () => { - test(`Full login and oauth using middleware at Config`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'config-request-middleware/', { - realmPath: 'middleware', - middleware: 'atConfig', - }); - - // Test assertions - // Test log messages - expect(messageArray.includes('Auth tree successfully completed')).toBe(true); - expect(messageArray.includes('OAuth login successful')).toBe(true); - expect(messageArray.includes('User info successfully responded')).toBe(true); - expect(messageArray.includes('Logout successful')).toBe(true); - - // Test for absence of error logs for FRUser.logout - expect(messageArray.includes('Session logout was not successful')).toBe(false); - expect(messageArray.includes('OAuth endSession was not successful')).toBe(false); - expect(messageArray.includes('OAuth revokeToken was not successful')).toBe(false); - }); - - test(`Full login and oauth using middleware at Call Site`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'config-request-middleware/', { - realmPath: 'middleware', - middleware: 'atCallSite', - }); - - // Test assertions - // Test log messages - expect(messageArray.includes('Auth tree successfully completed')).toBe(true); - expect(messageArray.includes('OAuth login successful')).toBe(true); - expect(messageArray.includes('User info successfully responded')).toBe(true); - expect(messageArray.includes('Logout successful')).toBe(true); - - // Test for absence of error logs for FRUser.logout - expect(messageArray.includes('Session logout was not successful')).toBe(false); - expect(messageArray.includes('OAuth endSession was not successful')).toBe(false); - expect(messageArray.includes('OAuth revokeToken was not successful')).toBe(false); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/config-token-storage.test.ts b/e2e/autoscript-suites/src/suites/config-token-storage.test.ts deleted file mode 100644 index f53090075..000000000 --- a/e2e/autoscript-suites/src/suites/config-token-storage.test.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * config-token-storage.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test oauth login flow with tokenStore configurations', () => { - test(`store tokens in sessionStorage`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'config-token-storage/', { - tokenStore: 'sessionStorage', - }); - - // Test assertions - expect(messageArray.includes('Access token is correct')).toBe(true); - expect(messageArray.includes('Logout successful')).toBe(true); - }); - - test(`store tokens in customStore`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'config-token-storage/', { - tokenStore: 'customStore', - }); - - // Test assertions - expect(messageArray.includes('Custom token setter used.')).toBe(true); - expect(messageArray.includes('Custom token getter used.')).toBe(true); - expect(messageArray.includes('Custom token remover used.')).toBe(true); - expect(messageArray.includes('Access token is correct')).toBe(true); - expect(messageArray.includes('Logout successful')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/misc-callbacks.lc.test.ts b/e2e/autoscript-suites/src/suites/misc-callbacks.lc.test.ts deleted file mode 100644 index 8b8ff41ac..000000000 --- a/e2e/autoscript-suites/src/suites/misc-callbacks.lc.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * misc-callbacks.lc.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test Basic login flow', () => { - test(`should login successfully and then log out`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'misc-callbacks/'); - - // Test assertions - expect(messageArray.includes('Prompt from NameCallback is User Name')).toBe(true); - expect( - messageArray.includes('Prompt from TextInputCallback is Provide a nickname for this account'), - ).toBe(true); - expect(messageArray.includes('Prompt from PasswordCallback is Password')).toBe(true); - expect(messageArray.includes('Choose your color')).toBe(true); - expect(messageArray.includes('Value of "green" is set')).toBe(true); - expect(messageArray.includes('Message for confirmation is: Is it true?')).toBe(true); - expect(messageArray.includes('Waiting for response...')).toBe(true); - expect(messageArray.includes('Wait time is 1000 milliseconds')).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/register-basic.lc.test.ts b/e2e/autoscript-suites/src/suites/register-basic.lc.test.ts deleted file mode 100644 index 516ec8a10..000000000 --- a/e2e/autoscript-suites/src/suites/register-basic.lc.test.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * register-basic.lc.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { v4 } from 'uuid'; -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -test.describe('Test basic registration flow', () => { - const un = v4(); - const email = `${un}@me.com`; - - test(`should register user successfully and then log ou`, async ({ page, browserName }) => { - const { messageArray } = await setupAndGo(page, browserName, 'register-basic/', { - un, - email, - }); - - // Test assertions - expect(messageArray.includes('Prompt from UsernameCallback is Username')).toBe(true); - expect(messageArray.includes('Prompt from PasswordCallback is Password')).toBe(true); - expect(messageArray.includes('Prompt 1: First Name')).toBe(true); - expect(messageArray.includes('Prompt 2: Last Name')).toBe(true); - expect(messageArray.includes('Prompt 3: Email Address')).toBe(true); - expect(messageArray.includes('Prompt 4: Send me special offers and services')).toBe(true); - expect(messageArray.includes('Prompt 5: Send me news and updates')).toBe(true); - // expect(messageArray.includes('Prompt 6: Age')).toBe(true); - expect(messageArray.includes('Prompt 7: Select a security question')).toBe(true); - expect(messageArray.includes(`Predefined Question1: What's your favorite color?`)).toBe(true); - expect(messageArray.includes('Terms version: 0.0')).toBe(true); - expect( - messageArray.includes( - // eslint-disable-next-line - 'Terms text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', - ), - ).toBe(true); - }); -}); diff --git a/e2e/autoscript-suites/src/suites/send-request-header.test.ts b/e2e/autoscript-suites/src/suites/send-request-header.test.ts deleted file mode 100644 index 38805ad0d..000000000 --- a/e2e/autoscript-suites/src/suites/send-request-header.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * send-request-header.test.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { test, expect } from '@playwright/test'; -import { setupAndGo } from '../utilities/setup-and-go'; - -// eslint-disable-next-line -test(`should verifies x-requested-platform header is present in the request`, async ({ - page, - browserName, -}) => { - const { headerArray } = await setupAndGo(page, browserName, 'authn-basic/', { - platformHeader: 'true', - }); - - expect(headerArray.find((headers) => headers.get('x-requested-platform'))).toBeTruthy(); -}); diff --git a/e2e/autoscript-suites/src/utilities/setup-and-go.ts b/e2e/autoscript-suites/src/utilities/setup-and-go.ts deleted file mode 100644 index a451302fa..000000000 --- a/e2e/autoscript-suites/src/utilities/setup-and-go.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * setup-and-go.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import type { Page } from '@playwright/test'; -import { AM_URL, BASE_URL, CLIENT_ID, RESOURCE_URL, SCOPE, REALM_PATH, USERS } from '../env.config'; - -export async function setupAndGo( - page: Page, - browserType: string, - path: string, - config?: { - allowGeo?: boolean; - amUrl?: string; - pauseBehaviorData?: string; // for protect behavioral data collection - clientId?: string; - code?: string; - dialogInput?: string; - email?: string; - middleware?: string; - platformHeader?: string; - preAuthenticated?: string; - pw?: string; - realmPath?: string; - resourceUrl?: string; - selector?: string; - scope?: string; - state?: string; - support?: string; - tokenStore?: string; - tree?: string; - un?: string; - oauthThreshold?: string; - wellknown?: string; - }, - // eslint-disable-next-line @typescript-eslint/no-explicit-any -): Promise<{ - headerArray: Headers[]; - messageArray: string[]; - networkArray: string[]; -}> { - const headerArray: Headers[] = []; - const messageArray: string[] = []; - const networkArray: string[] = []; - - // If anything fails, ensure we close the browser to end the process - const url = new URL(`${BASE_URL}/src/${path}`); - - url.searchParams.set('amUrl', (config && config.amUrl) || AM_URL); - url.searchParams.set('pauseBehaviorData', (config && config.pauseBehaviorData) || ''); - url.searchParams.set('clientId', (config && config.clientId) || CLIENT_ID); - config && config.code && url.searchParams.set('code', (config && config.code) || ''); - url.searchParams.set('email', (config && config.email) || ''); - url.searchParams.set('middleware', (config && config.middleware) || ''); - url.searchParams.set('platformHeader', (config && config.platformHeader) || ''); - url.searchParams.set('preAuthenticated', (config && config.preAuthenticated) || ''); - url.searchParams.set('pw', (config && config.pw) || USERS[0].pw); - url.searchParams.set('realmPath', (config && config.realmPath) || REALM_PATH); - url.searchParams.set('resourceUrl', (config && config.resourceUrl) || RESOURCE_URL); - url.searchParams.set('scope', (config && config.scope) || SCOPE); - config && config.state && url.searchParams.set('state', (config && config.state) || ''); - url.searchParams.set('support', (config && config.support) || ''); - url.searchParams.set('tokenStore', (config && config.tokenStore) || ''); - url.searchParams.set('tree', (config && config.tree) || ''); - url.searchParams.set('un', (config && config.un) || USERS[0].un); - url.searchParams.set('oauthThreshold', (config && config.oauthThreshold) || ''); - url.searchParams.set('wellknown', (config && config.wellknown) || ''); - - // log out the URL used for the test, but only for chromium; - // the other browser URLs would just be duplicates - if (browserType === 'chromium') { - console.log(url.toString()); - } - - // Listen for events on page - page.on('console', async (msg) => { - messageArray.push(msg.text()); - return Promise.resolve(true); - }); - - page.on('request', async (req) => { - networkArray.push(`${new URL(req.url()).pathname}, ${req.resourceType()}`); - }); - - page.on('request', async (req) => { - const headers = req.headers(); - - headerArray.push(new Headers(headers)); - }); - - page.on('dialog', async (dialog) => { - await dialog.accept(config?.dialogInput || 'abc123'); - }); - - await page.goto(url.toString()); - - // Test script complete - const locator = page.locator('.Test_Complete'); - await locator.waitFor({ state: 'visible' }); - - page.removeListener('console', (msg) => console.log(msg.text())); - - return { headerArray, messageArray, networkArray }; -} diff --git a/e2e/autoscript-suites/tsconfig.json b/e2e/autoscript-suites/tsconfig.json deleted file mode 100644 index 1a678b631..000000000 --- a/e2e/autoscript-suites/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "sourceMap": false, - "allowJs": true, - "types": ["node"], - "outDir": "dist", - "module": "ES2020", - "moduleResolution": "NodeNext", - "allowUmdGlobalAccess": true, - "target": "ES2015" - }, - "references": [ - { - "path": "./tsconfig.spec.json" - } - ] -} diff --git a/e2e/autoscript-suites/tsconfig.spec.json b/e2e/autoscript-suites/tsconfig.spec.json deleted file mode 100644 index f1d3e2bb3..000000000 --- a/e2e/autoscript-suites/tsconfig.spec.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/e2e/javascript-sdk-app/", - "composite": true, - "strict": false, - "noImplicitAny": false, - "module": "NodeNext" - }, - "include": [ - "playwright.config.ts", - "utilities/*", - "suites/*", - "**/*.test.ts", - "**/*.spec.ts", - "**/*.test.tsx", - "**/*.spec.tsx", - "**/*.test.js", - "**/*.spec.js", - "**/*.test.jsx", - "**/*.spec.jsx", - "**/*.d.ts" - ], - "exclude": ["dist/"] -} diff --git a/e2e/davinci-app/package.json b/e2e/davinci-app/package.json index edf7370fa..c253325e6 100644 --- a/e2e/davinci-app/package.json +++ b/e2e/davinci-app/package.json @@ -12,6 +12,7 @@ "scripts": { "build": "vite build --watch false", "dev": "vite dev", + "serve": "vite preview", "preview": "vite preview", "lint": "eslint **/*.ts --fix" } diff --git a/e2e/davinci-suites/package.json b/e2e/davinci-suites/package.json index abc9f2592..adaa3412b 100644 --- a/e2e/davinci-suites/package.json +++ b/e2e/davinci-suites/package.json @@ -14,5 +14,8 @@ "bugs": { "url": "https://github.com/ForgeRock/forgerock-javascript-sdk/issues" }, - "homepage": "https://github.com/ForgeRock/forgerock-javascript-sdk#readme" + "homepage": "https://github.com/ForgeRock/forgerock-javascript-sdk#readme", + "scripts": { + "e2e": "playwright test -c ./playwright.config.ts" + } } diff --git a/e2e/davinci-suites/playwright.config.ts b/e2e/davinci-suites/playwright.config.ts index e5a88272d..d1b17ba97 100644 --- a/e2e/davinci-suites/playwright.config.ts +++ b/e2e/davinci-suites/playwright.config.ts @@ -1,20 +1,16 @@ import { PlaywrightTestConfig } from '@playwright/test'; -import { nxE2EPreset } from '@nx/playwright/preset'; import { workspaceRoot } from '@nx/devkit'; -import { fileURLToPath } from 'url'; - -const __filename = fileURLToPath(import.meta.url); // For CI, you may want to set BASE_URL to the deployed application. const baseURL = process.env['BASE_URL'] || 'http://localhost:5829'; -const baseConfig = nxE2EPreset(__filename, { - testDir: './src', -}); - const config: PlaywrightTestConfig = { +<<<<<<< HEAD ...baseConfig, outputDir: './.playwright', +======= + testDir: './src', +>>>>>>> c9c7c19 (chore: remove-ping-protect-and-e2es) reporter: process.env.CI ? 'github' : 'list', timeout: 30000, use: { @@ -25,13 +21,6 @@ const config: PlaywrightTestConfig = { trace: process.env.CI ? 'on-first-retry' : 'retain-on-failure', }, webServer: [ - // { - // command: 'pnpm nx serve mock-api-v2', - // url: 'http://localhost:9444/healthcheck', - // ignoreHTTPSErrors: true, - // reuseExistingServer: !process.env.CI, - // cwd: workspaceRoot, - // }, { command: 'pnpm nx serve @forgerock/davinci-app', port: 5829, diff --git a/e2e/mock-api-v2/package.json b/e2e/mock-api-v2/package.json index 8b1ee76d7..fcf8714fc 100644 --- a/e2e/mock-api-v2/package.json +++ b/e2e/mock-api-v2/package.json @@ -17,7 +17,6 @@ "@effect/platform": "^0.58.27", "@effect/platform-node": "^0.53.26", "effect-http": "^0.73.0", - "effect-http-node": "^0.16.1", - "esbuild": "^0.14.10" + "effect-http-node": "^0.16.1" } } diff --git a/e2e/mock-api/.babelrc b/e2e/mock-api/.babelrc deleted file mode 100644 index aed1b9711..000000000 --- a/e2e/mock-api/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": [["@nx/js/babel", { "useBuiltIns": "entry" }]] -} diff --git a/e2e/mock-api/.eslintignore b/e2e/mock-api/.eslintignore deleted file mode 100644 index 7787c22e4..000000000 --- a/e2e/mock-api/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -node_modules -*.md -LICENSE -.babelrc -.env* -.bin -dist -.eslintignore \ No newline at end of file diff --git a/e2e/mock-api/.eslintrc.json b/e2e/mock-api/.eslintrc.json deleted file mode 100644 index 9d9c0db55..000000000 --- a/e2e/mock-api/.eslintrc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": {} - }, - { - "files": ["*.ts", "*.tsx"], - "rules": {} - }, - { - "files": ["*.js", "*.jsx"], - "rules": {} - } - ] -} diff --git a/e2e/mock-api/package.json b/e2e/mock-api/package.json deleted file mode 100644 index 07764ab2e..000000000 --- a/e2e/mock-api/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@forgerock/mock-api", - "version": "0.0.0", - "private": true, - "description": "", - "main": "./index.js", - "keywords": [], - "author": "", - "type": "commonjs", - "license": "ISC", - "scripts": { - "build": "tsc --project ./tsconfig.app.json", - "build:watch": "tsc --project ./tsconfig.app.json --watch", - "serve": "node dist/e2e/mock-api/src/index.js", - "lint": "eslint **/*.ts --fix" - } -} diff --git a/e2e/mock-api/src/app/.gitkeep b/e2e/mock-api/src/app/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/e2e/mock-api/src/app/app.auth.js b/e2e/mock-api/src/app/app.auth.js deleted file mode 100644 index 45f75e3f5..000000000 --- a/e2e/mock-api/src/app/app.auth.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * app.auth.js - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import request from 'superagent'; -import { AM_URL, REALM_PATH } from './env.config.js'; - -export let session; - -export async function authorizeApp({ un, pw }) { - try { - const response = await request - .post(`${AM_URL}/json/realms/${REALM_PATH}/authenticate`) - .set('Content-Type', 'application/json') - .set('Accept-API-Version', 'resource=2.0, protocol=1.0') - .set('X-OpenAM-Username', un) - .set('X-OpenAM-Password', pw) - .send({}); - - session = response.body; - - console.log(`REST app identity token: ${session.tokenId}`); - - return session; - } catch (error) { - console.warn('\n###################################################'); - console.warn('WARNING: REST app user for Step Up/Txn Auth missing'); - console.warn('###################################################\n'); - } -} diff --git a/e2e/mock-api/src/app/constants.js b/e2e/mock-api/src/app/constants.js deleted file mode 100644 index e9bba07ed..000000000 --- a/e2e/mock-api/src/app/constants.js +++ /dev/null @@ -1,65 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * constants.js - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -export const authPaths = { - tokenExchange: [ - '/am/auth/tokenExchange', - '/am/oauth2/realms/root/access_token', - '/am/oauth2/realms/root/realms/middleware/access_token', - '/am/oauth2/realms/root/realms/middleware-modern/access_token', - '/am/oauth2/realms/root/realms/tokens-expiring-soon/access_token', - '/am/oauth2/realms/root/realms/tokens-expired/access_token', - ], - authenticate: [ - '/am/auth/authenticate', - '/am/json/realms/root/authenticate', - '/am/json/realms/root/realms/middleware/authenticate', - '/am/json/realms/root/realms/tokens-expiring-soon/authenticate', - '/am/json/realms/root/realms/tokens-expired/authenticate', - ], - htmlAuthenticate: ['/am/'], - authorize: [ - '/am/auth/authorize', - '/am/oauth2/realms/root/authorize', - '/am/oauth2/realms/root/realms/middleware/authorize', - '/am/oauth2/realms/root/realms/middleware-modern/authorize', - '/am/oauth2/realms/root/realms/tokens-expiring-soon/authorize', - '/am/oauth2/realms/root/realms/tokens-expired/authorize', - ], - endSession: [ - '/am/auth/endSession', - '/am/oauth2/realms/root/connect/endSession', - '/am/oauth2/realms/root/realms/middleware/connect/endSession', - '/am/oauth2/realms/root/realms/tokens-expiring-soon/connect/endSession', - '/am/oauth2/realms/root/realms/tokens-expired/connect/endSession', - ], - userInfo: [ - '/am/auth/userInfo', - '/am/oauth2/realms/root/userinfo', - '/am/oauth2/realms/root/realms/middleware/userinfo', - '/am/oauth2/realms/root/realms/tokens-expiring-soon/userinfo', - '/am/oauth2/realms/root/realms/tokens-expired/userinfo', - ], - revoke: [ - '/am/auth/revoke', - '/am/oauth2/realms/root/token/revoke', - '/am/oauth2/realms/root/realms/middleware/token/revoke', - '/am/oauth2/realms/root/realms/tokens-expiring-soon/token/revoke', - '/am/oauth2/realms/root/realms/tokens-expired/token/revoke', - ], - sessions: [ - '/am/auth/sessions', - '/am/json/realms/root/sessions', - '/am/json/realms/root/realms/middleware/sessions', - '/am/json/realms/root/realms/tokens-expiring-soon/sessions', - '/am/json/realms/root/realms/tokens-expired/sessions', - ], - accounts: ['/o/oauth2/v2/auth', '/SAMLFailure', '/SAMLTest'], -}; diff --git a/e2e/mock-api/src/app/env.config.js b/e2e/mock-api/src/app/env.config.js deleted file mode 100644 index c34d7c8de..000000000 --- a/e2e/mock-api/src/app/env.config.js +++ /dev/null @@ -1,71 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * env.config.js - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { env } from 'process'; - -/** - * Configure your environment defaults below. - */ -const oauth = { - client: 'WebOAuthClient', - scope: 'openid profile me.read', -}; -const origins = { - // Ensure all domains are added to the security cert creation - app: process.env.NODE_ENV === 'LIVE' ? 'https://sdkapp.petrov.ca' : 'http://localhost', - forgeops: 'https://default.forgeops.petrov.ca', - mock: 'http://localhost', - resource: 'http://localhost', -}; -const paths = { - am: '/am', -}; -const ports = { - app: '8443', - forgeops: '443', - mock: '9443', - resource: '9443', -}; -const realm = 'root'; -const testUsers = [ - { - // Already exists in forgeops... - pw: 'password', - un: 'sdkuser', - }, -]; - -/** - * The below will be composed of the above values. - * Do not edit unless you know what you're doing. - */ -let amUrl; -let amPort; - -if (env.LIVE) { - amUrl = origins.forgeops; - amPort = ports.forgeops; -} else { - amUrl = origins.mock; - amPort = ports.mock; -} - -export const APP_PORT = ports.app; -export const AM_PORT = amPort; -export const MOCK_PORT = process.env.PORT || ports.mock; - -export const AM_URL = `${amUrl}:${amPort}${paths.am}`; -export const BASE_URL = `${origins.app}:${ports.app}`; -export const CLIENT_ID = oauth.client; -export const FORGEOPS = origins.forgeops; -export const REALM_PATH = realm; -export const RESOURCE_URL = `${origins.resource}:${ports.resource}`; -export const SCOPE = oauth.scope; -export const USERS = testUsers; diff --git a/e2e/mock-api/src/app/response.registration.js b/e2e/mock-api/src/app/response.registration.js deleted file mode 100644 index 3ec70f2f9..000000000 --- a/e2e/mock-api/src/app/response.registration.js +++ /dev/null @@ -1,224 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * response.registration.js - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -export default { - authId: 'foo', - callbacks: [ - { - type: 'ValidatedCreateUsernameCallback', - output: [ - { - name: 'policies', - value: [ - { policyId: 'unique' }, - { policyId: 'no-internal-user-conflict' }, - { policyId: 'cannot-contain-characters', params: { forbiddenChars: ['/'] } }, - ], - }, - { name: 'failedPolicies', value: [] }, - { name: 'validateOnly', value: false }, - { name: 'prompt', value: 'Username' }, - ], - input: [ - { name: 'IDToken1', value: '' }, - { name: 'IDToken1validateOnly', value: false }, - ], - _id: 0, - }, - { - type: 'StringAttributeInputCallback', - output: [ - { name: 'name', value: 'givenName' }, - { name: 'prompt', value: 'First Name' }, - { name: 'required', value: true }, - { name: 'policies', value: [] }, - { name: 'failedPolicies', value: [] }, - { name: 'validateOnly', value: false }, - { name: 'value', value: '' }, - ], - input: [ - { name: 'IDToken2', value: '' }, - { name: 'IDToken2validateOnly', value: false }, - ], - _id: 1, - }, - { - type: 'StringAttributeInputCallback', - output: [ - { name: 'name', value: 'sn' }, - { name: 'prompt', value: 'Last Name' }, - { name: 'required', value: true }, - { name: 'policies', value: [] }, - { name: 'failedPolicies', value: [] }, - { name: 'validateOnly', value: false }, - { name: 'value', value: '' }, - ], - input: [ - { name: 'IDToken3', value: '' }, - { name: 'IDToken3validateOnly', value: false }, - ], - _id: 2, - }, - // { - // type: 'NumberAttributeInputCallback', - // input: [ - // { name: 'IDToken4', value: null }, - // { name: 'IDToken4validateOnly', value: false }, - // ], - // output: [ - // { name: 'name', value: 'age' }, - // { name: 'prompt', value: 'Age' }, - // { name: 'required', value: true }, - // { - // name: 'policies', - // value: { - // policyRequirements: ['VALID_TYPE'], - // fallbackPolicies: null, - // name: 'age', - // policies: [ - // { - // policyRequirements: ['VALID_TYPE'], - // policyId: 'valid-type', - // params: { types: ['number'] }, - // }, - // ], - // conditionalPolicies: null, - // }, - // }, - // { name: 'failedPolicies', value: [] }, - // { name: 'validateOnly', value: false }, - // { name: 'value', value: null }, - // ], - // }, - { - type: 'StringAttributeInputCallback', - output: [ - { name: 'name', value: 'mail' }, - { name: 'prompt', value: 'Email Address' }, - { name: 'required', value: true }, - { name: 'policies', value: [{ policyId: 'valid-email-address-format' }] }, - { name: 'failedPolicies', value: [] }, - { name: 'validateOnly', value: false }, - { name: 'value', value: '' }, - ], - input: [ - { name: 'IDToken4', value: '' }, - { name: 'IDToken4validateOnly', value: false }, - ], - _id: 3, - }, - { - type: 'BooleanAttributeInputCallback', - output: [ - { name: 'name', value: 'preferences/marketing' }, - { name: 'prompt', value: 'Send me special offers and services' }, - { name: 'required', value: true }, - { name: 'policies', value: [] }, - { name: 'failedPolicies', value: [] }, - { name: 'validateOnly', value: false }, - { name: 'value', value: false }, - ], - input: [ - { name: 'IDToken5', value: false }, - { name: 'IDToken5validateOnly', value: false }, - ], - _id: 4, - }, - { - type: 'BooleanAttributeInputCallback', - output: [ - { name: 'name', value: 'preferences/updates' }, - { name: 'prompt', value: 'Send me news and updates' }, - { name: 'required', value: true }, - { name: 'policies', value: [] }, - { name: 'failedPolicies', value: [] }, - { name: 'validateOnly', value: false }, - { name: 'value', value: false }, - ], - input: [ - { name: 'IDToken6', value: false }, - { name: 'IDToken6validateOnly', value: false }, - ], - _id: 5, - }, - { - type: 'ValidatedCreatePasswordCallback', - output: [ - { name: 'echoOn', value: false }, - { - name: 'policies', - value: [ - { policyId: 'at-least-X-capitals', params: { numCaps: 1 } }, - { policyId: 'at-least-X-numbers', params: { numNums: 1 } }, - { - policyId: 'cannot-contain-others', - params: { disallowedFields: ['userName', 'givenName', 'sn'] }, - }, - ], - }, - { name: 'failedPolicies', value: [] }, - { name: 'validateOnly', value: false }, - { name: 'prompt', value: 'Password' }, - ], - input: [ - { name: 'IDToken7', value: '' }, - { name: 'IDToken7validateOnly', value: false }, - ], - _id: 6, - }, - { - type: 'KbaCreateCallback', - output: [ - { name: 'prompt', value: 'Select a security question' }, - { - name: 'predefinedQuestions', - value: [`What's your favorite color?`, 'Who was your first employer?'], - }, - ], - input: [ - { name: 'IDToken8question', value: '' }, - { name: 'IDToken8answer', value: '' }, - ], - _id: 7, - }, - { - type: 'KbaCreateCallback', - output: [ - { name: 'prompt', value: 'Select a security question' }, - { - name: 'predefinedQuestions', - value: [`What's your favorite color?`, 'Who was your first employer?'], - }, - ], - input: [ - { name: 'IDToken9question', value: '' }, - { name: 'IDToken9answer', value: '' }, - ], - _id: 8, - }, - { - type: 'TermsAndConditionsCallback', - output: [ - { name: 'version', value: '0.0' }, - { - name: 'terms', - // eslint-disable-next-line - value: - 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', - }, - { name: 'createDate', value: '2019-10-28T04:20:11.320Z' }, - ], - input: [{ name: 'IDToken10', value: false }], - _id: 9, - }, - ], - header: 'Sign Up', - description: 'Already have an account?
Sign In', -}; diff --git a/e2e/mock-api/src/app/responses.js b/e2e/mock-api/src/app/responses.js deleted file mode 100644 index 12cc6173d..000000000 --- a/e2e/mock-api/src/app/responses.js +++ /dev/null @@ -1,1267 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * responses.js - * - * Copyright (c) 2020-2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { AM_URL, RESOURCE_URL } from './env.config.js'; - -export const oauthTokens = { - access_token: 'baz', - refresh_token: 'qux', - scope: 'openid profile me.read', - id_token: 'mox', - token_type: 'Bearer', - expires_in: 3598, -}; - -export const oauthTokensExpiringSoon = { - access_token: 'baz', - refresh_token: 'qux', - scope: 'openid profile me.read', - id_token: 'mox', - token_type: 'Bearer', - expires_in: 20, -}; - -export const oauthTokensExpired = { - access_token: 'baz', - refresh_token: 'qux', - scope: 'openid profile me.read', - id_token: 'mox', - token_type: 'Bearer', - expires_in: 1, -}; - -export const authFail = { - code: 401, - message: 'Authentication Failed For Given Credentials', -}; - -export const authSuccess = { - tokenId: 'bar', - successUrl: '/console', - realm: '/', -}; - -export const createTxnStepUpUrl = (url) => { - console.log(url); - // Grab the client's desired AM URL - const referer = new URL(url); - const amUrl = referer.searchParams.get('amUrl'); - // Create the redirect URL - const redirectUrl = new URL(amUrl || AM_URL); - redirectUrl.searchParams.set('goto', `${RESOURCE_URL}/ig`); - redirectUrl.searchParams.set('realm', '/'); - redirectUrl.searchParams.set('authIndexType', 'composite_advice'); - redirectUrl.searchParams.set( - 'authIndexValue', - // eslint-disable-next-line max-len - '%3CAdvices%3E%3CAttributeValuePair%3E%3CAttribute%20name%3D%22TransactionConditionAdvice%22/%3E%3CValue%3E39dfdd15-59a3-473c-a7fc-ecda3bbc3bc8%3C/Value%3E%3C/AttributeValuePair%3E%3C/Advices%3E', - ); - - return redirectUrl.toString(); -}; - -export const createTreeStepUpUrl = (url) => { - // Grab the client's desired AM URL - const referer = new URL(url); - const amUrl = referer.searchParams.get('amUrl'); - // Create the redirect URL - const redirectUrl = new URL(amUrl || AM_URL); - redirectUrl.searchParams.set('goto', `${RESOURCE_URL}/ig`); - redirectUrl.searchParams.set('realm', '/'); - redirectUrl.searchParams.set('authIndexType', 'composite_advice'); - redirectUrl.searchParams.set( - 'authIndexValue', - // eslint-disable-next-line max-len - '%3CAdvices%3E%3CAttributeValuePair%3E%3CAttribute%20name=%22AuthenticateToServiceConditionAdvice%22/%3E%3CValue%3E/sdk:ConfirmPassword%3C/Value%3E%3C/AttributeValuePair%3E%3C/Advices%3E', - ); - - return redirectUrl.toString(); -}; - -export const createTxnStepUpHeader = (url) => { - // Grab the client's desired AM URL - const referer = new URL(url); - const amUrl = referer.searchParams.get('amUrl') || AM_URL; - - // Base 64 of {"TransactionConditionAdvice":["39dfdd15-59a3-473c-a7fc-ecda3bbc3bc8"]} - const advices = - 'eyJUcmFuc2FjdGlvbkNvbmRpdGlvbkFkdmljZSI6WyIzOWRmZGQxNS01OWEzLTQ3M2MtYTdmYy1lY2RhM2JiYzNiYzgiXX0='; - const realm = '/'; - const headerValue = `SSOADVICE realm="${realm}",advices="${advices}",am_uri="${amUrl}"`; - return headerValue; -}; - -export const createTreeStepUpHeader = (url) => { - // Grab the client's desired AM URL - const referer = new URL(url); - const amUrl = referer.searchParams.get('amUrl') || AM_URL; - - // Base 64 of {"AuthenticateToServiceConditionAdvice":["/sdk:ConfirmPassword"]} - const advices = - 'eyJBdXRoZW50aWNhdGVUb1NlcnZpY2VDb25kaXRpb25BZHZpY2UiOlsiL3NkazpDb25maXJtUGFzc3dvcmQiXX0='; - const realm = '/'; - const headerValue = `SSOADVICE realm="${realm}",advices="${advices}",am_uri="${amUrl}"`; - return headerValue; -}; - -export const authByTreeResponse = { - resource: '', - actions: {}, - attributes: {}, - advices: { - AuthenticateToServiceConditionAdvice: ['/sdk:ConfirmPassword'], - }, - ttl: 0, -}; - -export const authByTxnResponse = { - resource: '', - actions: {}, - attributes: {}, - advices: { - TransactionConditionAdvice: ['39dfdd15-59a3-473c-a7fc-ecda3bbc3bc8'], - }, - ttl: 0, -}; - -export const emailSuspend = { - authId: 'foo', - callbacks: [ - { - type: 'SuspendedTextOutputCallback', - output: [ - { - name: 'message', - value: - // eslint-disable-next-line max-len - 'An email has been sent to the address you entered. Click the link in that email to proceed.', - }, - { name: 'messageType', value: '0' }, - ], - }, - ], -}; - -export const idpChoiceCallback = { - authId: 'foo', - callbacks: [ - { - type: 'ChoiceCallback', - output: [ - { name: 'prompt', value: 'Select Provider' }, - { name: 'choices', value: ['google', 'facebook'] }, - { name: 'defaultChoice', value: 0 }, - ], - input: [{ name: 'IDToken1', value: 0 }], - }, - ], -}; -export const nameCallback = { - authId: 'foo', - callbacks: [ - { - type: 'NameCallback', - output: [{ name: 'prompt', value: 'User Name' }], - input: [{ name: 'IDToken1', value: '' }], - _id: 0, - }, - ], -}; -export const textInputCallback = { - authId: 'foo', - callbacks: [ - { - type: 'TextInputCallback', - output: [ - { - name: 'prompt', - value: 'Provide a nickname for this account', - }, - ], - input: [ - { - name: 'IDToken1', - value: '', - }, - ], - }, - ], -}; - -export const initialBasicLogin = { - authId: 'foo', - callbacks: [ - { - type: 'NameCallback', - output: [{ name: 'prompt', value: 'User Name' }], - input: [{ name: 'IDToken1', value: '' }], - _id: 0, - }, - { - type: 'PasswordCallback', - output: [{ name: 'prompt', value: 'Password' }], - input: [{ name: 'IDToken2', value: '' }], - _id: 1, - }, - ], - stage: 'UsernamePassword', -}; - -export const initialLoginWithEmailResponse = { - authId: 'foo', - callbacks: [ - { - type: 'ValidatedCreateUsernameCallback', - output: [ - { name: 'policies', value: {} }, - { name: 'failedPolicies', value: [] }, - { name: 'validateOnly', value: false }, - { name: 'prompt', value: 'Username' }, - ], - input: [ - { name: 'IDToken1', value: '' }, - { name: 'IDToken1validateOnly', value: false }, - ], - }, - ], -}; - -export const initialPlatformLogin = { - authId: 'foo', - callbacks: [ - { - type: 'ValidatedCreateUsernameCallback', - input: [ - { name: 'IDToken1', value: '' }, - { name: 'IDToken1validateOnly', value: false }, - ], - output: [ - { name: 'policies', value: [] }, - { name: 'failedPolicies', value: [] }, - { name: 'validateOnly', value: false }, - { name: 'prompt', value: 'Username' }, - ], - _id: 0, - }, - { - type: 'ValidatedCreatePasswordCallback', - output: [{ name: 'prompt', value: 'Password' }], - input: [ - { name: 'IDToken2', value: '' }, - { name: 'IDToken2validateOnly', value: false }, - ], - _id: 1, - }, - ], - stage: 'UsernamePassword', -}; - -export const initialMiscCallbacks = { - authId: 'foo', - callbacks: [ - { - type: 'NameCallback', - output: [{ name: 'prompt', value: 'User Name' }], - input: [{ name: 'IDToken1', value: '' }], - }, - ], -}; - -export const passwordCallback = { - authId: 'foo', - callbacks: [ - { - type: 'PasswordCallback', - output: [{ name: 'prompt', value: 'Password' }], - input: [{ name: 'IDToken1', value: '' }], - }, - ], -}; - -export const pingProtectEvaluate = { - authId: 'foo', - callbacks: [ - { - type: 'PingOneProtectEvaluationCallback', - output: [ - { - name: 'pauseBehavioralData', - value: true, - }, - ], - input: [ - { - name: 'IDToken1signals', - value: '', - }, - { - name: 'IDToken1clientError', - value: '', - }, - ], - }, - ], -}; - -export const pingProtectInitialize = { - authId: 'foo', - callbacks: [ - { - type: 'PingOneProtectInitializeCallback', - output: [ - { - name: 'envId', - value: '02fb1243-189a-4bc7-9d6c-a919edf6447', - }, - { - name: 'consoleLogEnabled', - value: true, - }, - { - name: 'deviceAttributesToIgnore', - value: ['userAgent'], - }, - { - name: 'customHost', - value: 'http://localhost', - }, - { - name: 'lazyMetadata', - value: false, - }, - { - name: 'behavioralDataCollection', - value: true, - }, - { - name: 'deviceKeyRsyncIntervals', - value: 14, - }, - { - name: 'enableTrust', - value: false, - }, - { - name: 'disableTags', - value: false, - }, - { - name: 'disableHub', - value: false, - }, - ], - input: [ - { - name: 'IDToken1clientError', - value: '', - }, - ], - }, - ], -}; - -export const choiceCallback = { - authId: 'foo', - callbacks: [ - { - type: 'ChoiceCallback', - output: [ - { name: 'prompt', value: 'Choose your color' }, - { name: 'choices', value: ['red', 'green', 'blue'] }, - { name: 'defaultChoice', value: 0 }, - ], - input: [{ name: 'IDToken1', value: 0 }], - }, - ], -}; - -export const secondFactorChoiceCallback = { - authId: 'foo', - callbacks: [ - { - type: 'ChoiceCallback', - output: [ - { name: 'prompt', value: 'Choose Second Factor' }, - { name: 'choices', value: ['Email', 'SMS'] }, - { name: 'defaultChoice', value: 0 }, - ], - input: [{ name: 'IDToken1', value: 0 }], - }, - ], -}; - -export const messageCallback = { - authId: 'foo', - callbacks: [ - { - type: 'TextOutputCallback', - output: [ - { name: 'message', value: 'Is it true?' }, - { name: 'messageType', value: '0' }, - ], - }, - { - type: 'ConfirmationCallback', - output: [ - { name: 'prompt', value: '' }, - { name: 'messageType', value: 0 }, - { name: 'options', value: ['Yes', 'No'] }, - { name: 'optionType', value: -1 }, - { name: 'defaultOption', value: 1 }, - ], - input: [{ name: 'IDToken2', value: 0 }], - }, - ], -}; - -export const noSessionSuccess = { successUrl: '/am/console', realm: '/' }; - -export const pollingCallback = { - authId: 'foo', - callbacks: [ - { - type: 'PollingWaitCallback', - output: [ - { name: 'waitTime', value: '1000' }, - { name: 'message', value: 'Waiting for response...' }, - ], - }, - ], -}; - -export const selectIdPCallback = { - authId: 'foo', - callbacks: [ - { - type: 'SelectIdPCallback', - output: [ - { - name: 'providers', - value: [ - { - provider: 'google', - uiConfig: { - buttonImage: 'images/g-logo.png', - buttonCustomStyle: 'background-color: #fff; color: #757575; border-color: #ddd;', - buttonClass: '', - buttonCustomStyleHover: - 'color: #6d6d6d; background-color: #eee; border-color: #ccc;', - buttonDisplayName: 'Google', - iconFontColor: 'white', - iconClass: 'fa-google', - iconBackground: '#4184f3', - }, - }, - { - provider: 'facebook', - uiConfig: { - buttonImage: '', - buttonCustomStyle: 'background-color: #3b5998;border-color: #3b5998; color: white;', - buttonClass: 'fa-facebook-official', - buttonCustomStyleHover: - 'background-color: #334b7d;border-color: #334b7d; color: white;', - buttonDisplayName: 'Facebook', - iconFontColor: 'white', - iconClass: 'fa-facebook', - iconBackground: '#3b5998', - }, - }, - { provider: 'localAuthentication' }, - ], - }, - { name: 'value', value: '' }, - ], - input: [{ name: 'IDToken1', value: '' }], - _id: 0, - }, - ], -}; - -export const secondFactorCallback = { - authId: 'foo', - callbacks: [ - { - type: 'PasswordCallback', - output: [{ name: 'prompt', value: 'One Time Password' }], - input: [{ name: 'IDToken1', value: '' }], - _id: 0, - }, - ], - stage: 'OneTimePasswordEmail', -}; - -export const otpQRCodeCallbacks = { - authId: 'foo', - callbacks: [ - { - type: 'TextOutputCallback', - output: [ - { - name: 'message', - value: - 'Scan the QR code image below with the ForgeRock Authenticator app to register your device with your login.', - }, - { - name: 'messageType', - value: '0', - }, - ], - }, - { - type: 'TextOutputCallback', - output: [ - { - name: 'message', - value: - // eslint-disable-next-line quotes - "window.QRCodeReader.createCode({\n id: 'callback_0',\n text: 'otpauth\\x3A\\x2F\\x2Ftotp\\x2FForgeRock\\x3Ajlowery\\x3Fperiod\\x3D30\\x26b\\x3D032b75\\x26digits\\x3D6\\x26secret\\QITSTC234FRIU8DD987DW3VPICFY\\x3D\\x3D\\x3D\\x3D\\x3D\\x3D\\x26issuer\\x3DForgeRock',\n version: '20',\n code: 'L'\n});", - }, - { - name: 'messageType', - value: '4', - }, - ], - }, - { - type: 'HiddenValueCallback', - output: [ - { - name: 'value', - value: - 'otpauth://totp/ForgeRock:jlowery?secret=QITSTC234FRIU8DD987DW3VPICFY======&issuer=ForgeRock&period=30&digits=6&b=032b75', - }, - { - name: 'id', - value: 'mfaDeviceRegistration', - }, - ], - input: [ - { - name: 'IDToken3', - value: 'mfaDeviceRegistration', - }, - ], - }, - { - type: 'ConfirmationCallback', - output: [ - { - name: 'prompt', - value: '', - }, - { - name: 'messageType', - value: 0, - }, - { - name: 'options', - value: ['Next'], - }, - { - name: 'optionType', - value: -1, - }, - { - name: 'defaultOption', - value: 0, - }, - ], - input: [ - { - name: 'IDToken4', - value: 0, - }, - ], - }, - ], -}; - -export const redirectCallback = { - authId: 'foo', - callbacks: [ - { - type: 'RedirectCallback', - output: [ - { - name: 'redirectUrl', - value: - // eslint-disable-next-line max-len - 'http://localhost:9443/o/oauth2/v2/auth?nonce=ko7fdf2v3b6yctgq35bdpndel0p9qiq&response_type=code&client_id=546064052569-ke17g9ufsmvda3kgg7s5kp2hpf3gnqi8.apps.googleusercontent.com&scope=openid%20profile%20email&code_challenge=Bh_6aMiI04KGI1wVILtEamByklmXnQY9JKhKhlwsIxk&code_challenge_method=S256&state=rtu8pz65dbg6baw985d532myfbbnf5v', - }, - { name: 'redirectMethod', value: 'GET' }, - { name: 'trackingCookie', value: true }, - ], - }, - ], -}; -export const redirectCallbackSaml = { - authId: 'foo', - callbacks: [ - { - type: 'RedirectCallback', - output: [ - { - name: 'redirectUrl', - value: - // eslint-disable-next-line max-len - 'http://localhost:9443/SAMLTest/', - }, - { name: 'redirectMethod', value: 'GET' }, - { name: 'trackingCookie', value: true }, - ], - }, - ], -}; -export const redirectCallbackFailureSaml = { - authId: 'foo', - callbacks: [ - { - type: 'RedirectCallback', - output: [ - { - name: 'redirectUrl', - value: - // eslint-disable-next-line max-len - 'http://localhost:9443/SAMLFailure', - }, - { name: 'redirectMethod', value: 'GET' }, - { name: 'trackingCookie', value: true }, - ], - }, - ], -}; -export const txnAuthz = { - authId: 'bar', - callbacks: [ - { - type: 'PasswordCallback', - output: [{ name: 'prompt', value: 'Password' }], - input: [{ name: 'IDToken2', value: '' }], - _id: 1, - }, - ], - stage: 'TransactionAuthorization', -}; -export const treeAuthz = { - authId: 'bar', - callbacks: [ - { - type: 'PasswordCallback', - output: [{ name: 'prompt', value: 'Password' }], - input: [{ name: 'IDToken2', value: '' }], - _id: 1, - }, - ], - stage: 'TreeBasedAuthorization', -}; - -export const userInfo = { - family_name: 'Tester', - given_name: 'Bob', - name: 'Bob Tester', - updated_at: 1575671644, - sub: 'thetester', -}; - -export const requestDeviceProfile = { - authId: 'foo', - callbacks: [ - { - type: 'DeviceProfileCallback', - output: [ - { - name: 'metadata', - value: true, - }, - { - name: 'location', - value: true, - }, - { - name: 'message', - value: 'Collecting profile ...', - }, - ], - input: [ - { - name: 'IDToken1', - value: '', - }, - ], - }, - ], -}; - -export const wellKnownForgeRock = { - request_parameter_supported: true, - pushed_authorization_request_endpoint: 'http://localhost:9443/am/oauth2/realms/root/par', - introspection_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'RSA-OAEP', - 'ECDH-ES+A128KW', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - claims_parameter_supported: false, - introspection_endpoint: 'http://localhost:9443/am/oauth2/realms/root/introspect', - issuer: 'http://localhost:9443/am/oauth2/realms/root', - id_token_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - userinfo_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - authorization_endpoint: 'http://localhost:9443/am/oauth2/realms/root/authorize', - authorization_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'RSA-OAEP', - 'ECDH-ES+A128KW', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - introspection_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - claims_supported: [], - rcs_request_signing_alg_values_supported: [ - 'PS384', - 'ES384', - 'RS384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - token_endpoint_auth_methods_supported: [ - 'client_secret_post', - 'private_key_jwt', - 'self_signed_tls_client_auth', - 'tls_client_auth', - 'none', - 'client_secret_basic', - ], - tls_client_certificate_bound_access_tokens: true, - response_modes_supported: [ - 'fragment.jwt', - 'form_post', - 'form_post.jwt', - 'jwt', - 'fragment', - 'query.jwt', - 'query', - ], - backchannel_logout_session_supported: true, - token_endpoint: 'http://localhost:9443/am/oauth2/realms/root/access_token', - response_types_supported: [ - 'code token id_token', - 'code', - 'code id_token', - 'device_code', - 'id_token', - 'code token', - 'token', - 'token id_token', - ], - authorization_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - revocation_endpoint_auth_methods_supported: [ - 'client_secret_post', - 'private_key_jwt', - 'self_signed_tls_client_auth', - 'tls_client_auth', - 'none', - 'client_secret_basic', - ], - request_uri_parameter_supported: true, - grant_types_supported: [ - 'implicit', - 'urn:ietf:params:oauth:grant-type:saml2-bearer', - 'refresh_token', - 'password', - 'client_credentials', - 'urn:ietf:params:oauth:grant-type:device_code', - 'authorization_code', - 'urn:openid:params:grant-type:ciba', - 'urn:ietf:params:oauth:grant-type:uma-ticket', - 'urn:ietf:params:oauth:grant-type:jwt-bearer', - ], - version: '3.0', - prompt_values_supported: ['none', 'login', 'consent'], - userinfo_endpoint: 'http://localhost:9443/am/oauth2/realms/root/userinfo', - require_request_uri_registration: true, - code_challenge_methods_supported: ['plain', 'S256'], - id_token_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'RSA-OAEP', - 'ECDH-ES+A128KW', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - authorization_signing_alg_values_supported: [ - 'PS384', - 'RS384', - 'EdDSA', - 'ES384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - request_object_signing_alg_values_supported: [ - 'PS384', - 'ES384', - 'RS384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - request_object_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'ECDH-ES+A128KW', - 'RSA-OAEP', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - rcs_response_signing_alg_values_supported: [ - 'PS384', - 'ES384', - 'RS384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - introspection_signing_alg_values_supported: [ - 'PS384', - 'RS384', - 'EdDSA', - 'ES384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - check_session_iframe: 'http://localhost:9443/am/oauth2/realms/root/connect/checkSession', - scopes_supported: [ - 'address', - 'phone', - 'openid', - 'profile', - 'fr:idm:*', - 'am-introspect-all-tokens', - 'email', - ], - backchannel_logout_supported: true, - acr_values_supported: [], - request_object_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - rcs_request_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'RSA-OAEP', - 'ECDH-ES+A128KW', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - userinfo_signing_alg_values_supported: [ - 'ES384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - ], - require_pushed_authorization_requests: false, - rcs_response_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - userinfo_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'RSA-OAEP', - 'ECDH-ES+A128KW', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - end_session_endpoint: 'http://localhost:9443/am/oauth2/realms/root/connect/endSession', - rcs_request_encryption_enc_values_supported: [ - 'A256GCM', - 'A192GCM', - 'A128GCM', - 'A128CBC-HS256', - 'A192CBC-HS384', - 'A256CBC-HS512', - ], - revocation_endpoint: 'http://localhost:9443/am/oauth2/realms/root/token/revoke', - rcs_response_encryption_alg_values_supported: [ - 'ECDH-ES+A256KW', - 'ECDH-ES+A192KW', - 'ECDH-ES+A128KW', - 'RSA-OAEP', - 'RSA-OAEP-256', - 'A128KW', - 'A256KW', - 'ECDH-ES', - 'dir', - 'A192KW', - ], - token_endpoint_auth_signing_alg_values_supported: [ - 'PS384', - 'ES384', - 'RS384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - jwks_uri: 'http://localhost:9443/am/oauth2/realms/root/connect/jwk_uri', - subject_types_supported: ['public', 'pairwise'], - id_token_signing_alg_values_supported: [ - 'PS384', - 'ES384', - 'RS384', - 'HS256', - 'HS512', - 'ES256', - 'RS256', - 'HS384', - 'ES512', - 'PS256', - 'PS512', - 'RS512', - ], - registration_endpoint: 'http://localhost:9443/am/oauth2/realms/root/register', -}; - -export const wellKnownPing = { - issuer: 'https://ping.example.com:9443/02fb4743-189a-4bc7-9d6c-a919edfe6447/as', - authorization_endpoint: - 'https://ping.example.com:9443/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/authorize', - pushed_authorization_request_endpoint: - 'https://ping.example.com:9443/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/par', - token_endpoint: 'https://ping.example.com:9443/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/token', - userinfo_endpoint: - 'https://ping.example.com:9443/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/userinfo', - jwks_uri: 'https://ping.example.com:9443/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/jwks', - end_session_endpoint: - 'https://ping.example.com:9443/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/signoff', - introspection_endpoint: - 'https://ping.example.com:9443/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/introspect', - revocation_endpoint: - 'https://ping.example.com:9443/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/revoke', - device_authorization_endpoint: - 'https://ping.example.com:9443/02fb4743-189a-4bc7-9d6c-a919edfe6447/as/device_authorization', - claims_parameter_supported: false, - request_parameter_supported: true, - request_uri_parameter_supported: false, - require_pushed_authorization_requests: false, - scopes_supported: ['openid', 'profile', 'email', 'address', 'phone'], - response_types_supported: [ - 'code', - 'id_token', - 'token id_token', - 'code id_token', - 'code token', - 'code token id_token', - ], - response_modes_supported: ['pi.flow', 'query', 'fragment', 'form_post'], - grant_types_supported: [ - 'authorization_code', - 'implicit', - 'client_credentials', - 'refresh_token', - 'urn:ietf:params:oauth:grant-type:device_code', - ], - subject_types_supported: ['public'], - id_token_signing_alg_values_supported: ['RS256'], - userinfo_signing_alg_values_supported: ['none'], - request_object_signing_alg_values_supported: [ - 'none', - 'HS256', - 'HS384', - 'HS512', - 'RS256', - 'RS384', - 'RS512', - ], - token_endpoint_auth_methods_supported: [ - 'client_secret_basic', - 'client_secret_post', - 'client_secret_jwt', - 'private_key_jwt', - ], - token_endpoint_auth_signing_alg_values_supported: [ - 'HS256', - 'HS384', - 'HS512', - 'RS256', - 'RS384', - 'RS512', - ], - claim_types_supported: ['normal'], - claims_supported: [ - 'sub', - 'iss', - 'auth_time', - 'acr', - 'name', - 'given_name', - 'family_name', - 'middle_name', - 'preferred_username', - 'profile', - 'picture', - 'zoneinfo', - 'phone_number', - 'updated_at', - 'address', - 'email', - 'locale', - ], - code_challenge_methods_supported: ['plain', 'S256'], -}; - -export const MetadataMarketPlaceInitialize = { - authId: 'foo', - callbacks: [ - { - type: 'MetadataCallback', - output: [ - { - name: 'data', - value: { - _type: 'PingOneProtect', - _action: 'protect_initialize', - envId: 'some_id', - consoleLogEnabled: true, - deviceAttributesToIgnore: [], - customHost: '', - lazyMetadata: true, - behavioralDataCollection: true, - disableHub: true, - deviceKeyRsyncIntervals: 10, - enableTrust: true, - disableTags: true, - }, - }, - ], - }, - { - type: 'HiddenValueCallback', - output: [ - { - name: 'value', - value: '', - }, - { - name: 'id', - value: 'clientError', - }, - ], - input: [ - { - name: 'IDToken1', - value: '', - }, - ], - }, - ], -}; - -export const MetadataMarketPlacePingOneEvaluation = { - authId: 'foo', - callbacks: [ - { - type: 'MetadataCallback', - output: [ - { - name: 'data', - value: { - _type: 'PingOneProtect', - _action: 'protect_risk_evaluation', - envId: 'some_id', - pauseBehavioralData: true, - }, - }, - ], - }, - { - type: 'HiddenValueCallback', - output: [ - { - name: 'value', - value: '', - }, - { - name: 'id', - value: 'pingone_risk_evaluation_signals', - }, - ], - input: [ - { - name: 'IDToken1', - value: 'pingone_risk_evaluation_signals', - }, - ], - }, - { - type: 'HiddenValueCallback', - output: [ - { - name: 'value', - value: '', - }, - { - name: 'id', - value: 'clientError', - }, - ], - input: [ - { - name: 'IDToken1', - value: '', - }, - ], - }, - ], -}; - -export const recaptchaEnterpriseCallback = { - authId: 'foo', - callbacks: [ - { - type: 'ReCaptchaEnterpriseCallback', - output: [ - { - name: 'recaptchaSiteKey', - value: '6LdSu_spAAAAAKz3UhIy4JYQld2lm_WRt7dEhf9T', - }, - { - name: 'captchaApiUri', - value: 'https://www.google.com/recaptcha/enterprise.js', - }, - { - name: 'captchaDivClass', - value: 'g-recaptcha', - }, - ], - input: [ - { - name: 'IDToken1token', - value: '', - }, - { - name: 'IDToken1action', - value: '', - }, - { - name: 'IDToken1clientError', - value: '', - }, - { - name: 'IDToken1payload', - value: '', - }, - ], - }, - ], -}; diff --git a/e2e/mock-api/src/app/routes.auth.js b/e2e/mock-api/src/app/routes.auth.js deleted file mode 100644 index 95768433d..000000000 --- a/e2e/mock-api/src/app/routes.auth.js +++ /dev/null @@ -1,641 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * routes.auth.js - * - * Copyright (c) 2020-2024 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { v4 } from 'uuid'; -import { authPaths } from './constants.js'; -import { AM_URL, USERS } from './env.config.js'; -import { - oauthTokens, - authFail, - authSuccess, - emailSuspend, - idpChoiceCallback, - initialBasicLogin, - initialLoginWithEmailResponse, - initialMiscCallbacks, - initialPlatformLogin, - passwordCallback, - choiceCallback, - messageCallback, - noSessionSuccess, - pollingCallback, - pingProtectEvaluate, - pingProtectInitialize, - redirectCallback, - redirectCallbackSaml, - requestDeviceProfile, - secondFactorCallback, - secondFactorChoiceCallback, - selectIdPCallback, - userInfo, - oauthTokensExpiringSoon, - oauthTokensExpired, - nameCallback, - redirectCallbackFailureSaml, - textInputCallback, - treeAuthz, - txnAuthz, - otpQRCodeCallbacks, - wellKnownForgeRock, - wellKnownPing, - recaptchaEnterpriseCallback, - MetadataMarketPlaceInitialize, - MetadataMarketPlacePingOneEvaluation, -} from './responses.js'; -import initialRegResponse from './response.registration.js'; -import wait from './wait.js'; - -console.log(`Your user password from 'env.config' file: ${USERS[0].pw}`); - -export const baz = { - canWithdraw: false, -}; - -export default function (app) { - app.post(authPaths.authenticate, wait, async (req, res) => { - if (!req.body.callbacks) { - if (req.query.authIndexType === 'composite_advice') { - if (req.query.authIndexValue.includes('TransactionConditionAdvice')) { - res.json(txnAuthz); - } else if (req.query.authIndexValue.includes('AuthenticateToServiceConditionAdvice')) { - res.json(treeAuthz); - } - } else if (req.query.authIndexValue === 'MiscCallbacks') { - res.json(initialMiscCallbacks); - } else if (req.query.authIndexValue === 'PlatformUsernamePasswordTest') { - res.json(initialPlatformLogin); - } else if (req.query.authIndexValue === 'Registration') { - res.json(initialRegResponse); - } else if (req.query.authIndexValue === 'LoginWithEmail') { - if (typeof req.query.suspendedId === 'string' && req.query.suspendedId.length) { - res.cookie('iPlanetDirectoryPro', 'abcd1234', { domain: 'localhost' }); - res.json(authSuccess); - } else { - res.json(initialLoginWithEmailResponse); - } - } else if ( - req.query.authIndexValue === 'SAMLTest' || - req.query.authIndexValue === 'SAMLFailure' - ) { - res.json(nameCallback); - } else if (req.query.authIndexValue === 'TEST_LoginPingProtect') { - res.json(pingProtectInitialize); - } else if (req.query.authIndexValue === 'IDMSocialLogin') { - res.json(selectIdPCallback); - } else if (req.query.authIndexValue === 'TEST_MetadataMarketPlace') { - res.json(MetadataMarketPlaceInitialize); - } else if (req.query.authIndexValue === 'AMSocialLogin') { - res.json(idpChoiceCallback); - } else if (req.query.authIndexValue === 'RecaptchaEnterprise') { - res.json(initialBasicLogin); - } else { - if (req.path.includes('middleware')) { - if ( - req.query['start-authenticate-middleware'] === 'start-authentication' && - req.headers['x-start-authenticate-middleware'] === 'start-authentication' && - !req.headers['x-logout-middleware'] && - !req.query['logout-middleware'] - ) { - res.json(initialBasicLogin); - } else { - res.status(406).send('Middleware additions are missing.'); - } - } else { - res.json(initialBasicLogin); - } - } - } else if (req.query.authIndexValue === 'LoginWithEmail') { - res.json(emailSuspend); - } else if (req.query.authIndexValue === 'RecaptchaEnterprise') { - console.log(req.body.callbacks); - if (req.body.callbacks[0].type === 'NameCallback') { - const [username, password] = req.body.callbacks; - if (username && username.type === 'NameCallback' && username.input[0].value === 'demo') { - if ( - password && - password.type === 'PasswordCallback' && - password.input[0].value === 'Password' - ) { - res.json(recaptchaEnterpriseCallback); - } - } - } else { - const [captcha] = req.body.callbacks; - if (captcha && captcha.input[0].value === '123') { - res.json(authSuccess); - } - } - } else if (req.query.authIndexValue === 'TEST_MetadataMarketPlace') { - if (req.body.callbacks.find((cb) => cb.type === 'MetadataCallback')) { - const metadataCb = req.body.callbacks.find((cb) => cb.type === 'MetadataCallback'); - const action = metadataCb.output[0].value._action; - console.log('the action', action); - if (action === 'protect_initialize') { - if (req.body.callbacks.find((cb) => cb.type === 'HiddenValueCallback')) { - const hiddenCb = req.body.callbacks.find((cb) => cb.type === 'HiddenValueCallback'); - if (hiddenCb.input[0].value === 'we had an error') { - return res.json(authFail); - } - return res.json(MetadataMarketPlacePingOneEvaluation); - } - } - if (action === 'protect_risk_evaluation') { - if (req.body.callbacks.find((cb) => cb.type === 'HiddenValueCallback')) { - const hiddenCb = req.body.callbacks.find((cb) => cb.type === 'HiddenValueCallback'); - if (hiddenCb.input[0].value === 'we had an error') { - return res.json(authFail); - } - return res.json(authSuccess); - } - } - } else { - if (req.body.callbacks.find((cb) => cb.type === 'PingOneEvaluationCallback')) { - const cb = req.body.callbacks.find((cb) => cb.type === 'PingOneEvaluationCallback'); - if (cb.input[0].value === 'the value to set') { - return res.json(authSuccess); - } else { - return res.json(authFail); - } - } - } - return res.json(MetadataMarketPlacePingOneEvaluation); - } else if (req.query.authIndexValue === 'QRCodeTest') { - // If QR Code callbacks are being returned, return success - if (req.body.callbacks.find((cb) => cb.type === 'HiddenValueCallback')) { - return res.json(authSuccess); - } - // Client is returning callbacks from username password, so return QR Code callbacks - res.json(otpQRCodeCallbacks); - } else if (req.query.authIndexValue === 'SAMLTestFailure') { - if (req.body.callbacks.find((cb) => cb.type === 'RedirectCallback')) { - if ( - req.query.error === 'true' && - req.query.errorCode === '401' && - req.body.errorMessage === 'errorSaml' - ) { - res.json(authFail); - } else { - res.json(authSuccess); - } - } else { - res.json(redirectCallbackFailureSaml); - } - } else if (req.query.authIndexValue === 'SAMLTest') { - if (req.body.callbacks.find((cb) => cb.type === 'RedirectCallback')) { - if ( - req.query.RelayState === 'https://forgerock.com' && - req.query.responsekey === '885cae87-f88b-4d75-a0fd-0ae1400b766f' && - req.body.authId === 'foo' - ) { - res.json(authSuccess); - } else { - res.json(authFail); - } - } else { - res.json(redirectCallbackSaml); - } - } else if (req.query.authIndexValue === 'MiscCallbacks') { - if (req.body.callbacks.find((cb) => cb.type === 'NameCallback')) { - const cb = req.body.callbacks.find((cb) => cb.type === 'NameCallback'); - if (cb.input[0].value !== USERS[0].un) { - res.json(authFail); - } else { - res.json(textInputCallback); - } - } else if (req.body.callbacks.find((cb) => cb.type === 'TextInputCallback')) { - const cb = req.body.callbacks.find((cb) => cb.type === 'TextInputCallback'); - if (cb.input[0].value !== 'Text Input String') { - res.json(authFail); - } else { - res.json(passwordCallback); - } - } else if (req.body.callbacks.find((cb) => cb.type === 'PasswordCallback')) { - const cb = req.body.callbacks.find((cb) => cb.type === 'PasswordCallback'); - if (cb.input[0].value !== USERS[0].pw) { - res.json(authFail); - } else { - res.json(choiceCallback); - } - } else if (req.body.callbacks.find((cb) => cb.type === 'ChoiceCallback')) { - const cb = req.body.callbacks.find((cb) => cb.type === 'ChoiceCallback'); - if (cb.input[0].value !== 1) { - res.json(authFail); - } else { - res.json(messageCallback); - } - } else if (req.body.callbacks.find((cb) => cb.type === 'ConfirmationCallback')) { - const cb = req.body.callbacks.find((cb) => cb.type === 'ConfirmationCallback'); - if (cb.input[0].value !== 0) { - res.json(authFail); - } else { - res.json(pollingCallback); - } - } else if (req.body.callbacks.find((cb) => cb.type === 'PollingCallback')) { - res.cookie('iPlanetDirectoryPro', 'abcd1234', { domain: 'localhost' }); - res.json(authSuccess); - } else { - res.json(authFail); - } - } else if (req.query.authIndexValue === 'PlatformUsernamePasswordTest') { - const pwCb = req.body.callbacks.find((cb) => cb.type === 'ValidatedCreatePasswordCallback'); - // If validate only, return callbacks - if (pwCb.input[1].value) { - res.json(initialPlatformLogin); - } else if (pwCb.input[0].value !== USERS[0].pw) { - res.status(401).json(authFail); - } else { - res.cookie('iPlanetDirectoryPro', 'abcd1234', { domain: 'localhost' }); - res.json(authSuccess); - } - } else if (req.query.authIndexValue === 'Registration') { - const un = req.body.callbacks.find((cb) => cb.type === 'ValidatedCreateUsernameCallback'); - const [fn, ln, em] = req.body.callbacks.filter( - (cb) => cb.type === 'StringAttributeInputCallback', - ); - // const age = req.body.callbacks.find((cb) => cb.type === 'NumberAttributeInputCallback'); - const [mktg, update] = req.body.callbacks.filter( - (cb) => cb.type === 'BooleanAttributeInputCallback', - ); - const pw = req.body.callbacks.find((cb) => cb.type === 'ValidatedCreatePasswordCallback'); - const [kba1, kba2] = req.body.callbacks.filter((cb) => cb.type === 'KbaCreateCallback'); - const terms = req.body.callbacks.find((cb) => cb.type === 'TermsAndConditionsCallback'); - if ( - un.input[0].value.length && - fn.input[0].value === 'Sally' && - ln.input[0].value === 'Tester' && - // age.input[0].value === 40 && - em.input[0].value.length && - mktg.input[0].value === false && - update.input[0].value === false && - pw.input[0].value === USERS[0].pw && - kba1.input[0].value === 'What is your favorite color?' && - kba1.input[1].value === 'Red' && - kba2.input[0].value === 'Who was your first employer?' && - kba2.input[1].value === 'AAA Engineering' && - terms.input[0].value === true - ) { - res.cookie('iPlanetDirectoryPro', 'abcd1234', { domain: 'localhost' }); - res.json(authSuccess); - } else { - res.status(401).json(authFail); - } - } else if (req.query.authIndexValue === 'SecondFactor') { - if (req.body.callbacks.find((cb) => cb.type === 'NameCallback')) { - res.json(secondFactorChoiceCallback); - } else if (req.body.callbacks.find((cb) => cb.type === 'ChoiceCallback')) { - res.json(secondFactorCallback); - } else if (req.body.callbacks.find((cb) => cb.type === 'PasswordCallback')) { - const pwCb = req.body.callbacks.find((cb) => cb.type === 'PasswordCallback'); - if (pwCb.input[0].value !== 'abc123') { - res.status(401).json(authFail); - } else { - res.cookie('iPlanetDirectoryPro', 'abcd1234', { domain: 'localhost' }); - res.json(authSuccess); - } - } - } else if (req.query.authIndexValue === 'IDMSocialLogin') { - if (req.body.callbacks.find((cb) => cb.type === 'SelectIdPCallback')) { - const idPCb = req.body.callbacks.find((cb) => cb.type === 'SelectIdPCallback'); - if (idPCb.input[0].value !== 'google') { - res.status(401).json(authFail); - } else { - res.json(redirectCallback); - } - } else if (req.body.callbacks.find((cb) => cb.type === 'RedirectCallback')) { - if (req.body.authId && req.query.code && req.query.state) { - res.cookie('iPlanetDirectoryPro', 'abcd1234', { domain: 'localhost' }); - res.json(authSuccess); - } else { - res.status(401).json(authFail); - } - } - } else if (req.query.authIndexValue === 'AMSocialLogin') { - if (req.body.callbacks.find((cb) => cb.type === 'ChoiceCallback')) { - const idPCb = req.body.callbacks.find((cb) => cb.type === 'ChoiceCallback'); - if (idPCb.input[0].value !== 0) { - res.status(401).json(authFail); - } else { - res.json(redirectCallback); - } - } else if (req.body.callbacks.find((cb) => cb.type === 'RedirectCallback')) { - if (req.body.authId && req.query.code && req.query.state) { - res.cookie('iPlanetDirectoryPro', 'abcd1234', { domain: 'localhost' }); - res.json(authSuccess); - } else { - res.status(401).json(authFail); - } - } - } else if (req.query.authIndexValue === 'TEST_LoginPingProtect') { - const protectInitCb = req.body.callbacks.find( - (cb) => cb.type === 'PingOneProtectInitializeCallback', - ); - const usernameCb = req.body.callbacks.find((cb) => cb.type === 'NameCallback'); - const protectEvalCb = req.body.callbacks.find( - (cb) => cb.type === 'PingOneProtectEvaluationCallback', - ); - if (protectInitCb) { - res.json(initialBasicLogin); - } else if (usernameCb && usernameCb.input[0].value) { - res.json(pingProtectEvaluate); - } else if (protectEvalCb && protectEvalCb.input[0].value) { - res.json(authSuccess); - } else { - res.status(401).json(authFail); - } - } else if (req.body.callbacks.find((cb) => cb.type === 'PasswordCallback')) { - const pwCb = req.body.callbacks.find((cb) => cb.type === 'PasswordCallback'); - if (pwCb.input[0].value !== USERS[0].pw) { - res.status(401).json(authFail); - } else { - if (req.query.authIndexValue === 'DeviceProfileCallbackTest') { - res.json(requestDeviceProfile); - } else { - if ( - req.body.stage === 'TransactionAuthorization' || - req.body.stage === 'TreeBasedAuthorization' - ) { - baz.canWithdraw = true; - } - if (req.path.includes('middleware')) { - if ( - req.query['authenticate-middleware'] === 'authentication' && - req.headers['x-authenticate-middleware'] === 'authentication' && - !req.headers['x-logout-middleware'] && - !req.query['logout-middleware'] - ) { - res.cookie('iPlanetDirectoryPro', 'abcd1234', { domain: 'localhost' }); - res.json(authSuccess); - } else { - res.status(406).send('Middleware additions are missing.'); - } - } else { - res.cookie('iPlanetDirectoryPro', 'abcd1234', { domain: 'localhost' }); - res.json(req.query.noSession === 'true' ? noSessionSuccess : authSuccess); - } - } - } - } else if (req.body.callbacks.find((cb) => cb.type === 'DeviceProfileCallback')) { - const deviceCb = req.body.callbacks.find((cb) => cb.type === 'DeviceProfileCallback') || {}; - const inputArr = deviceCb.input || []; - const input = inputArr[0] || {}; - const value = JSON.parse(input.value); - const location = value.location || {}; - const metadata = value.metadata || {}; - // location is not allowed in some browser automation - // const location = value.location || {}; - - // We just need property existence to ensure profile is generated - // We don't care about values since they are unique per browser - if ( - location && - location.latitude && - location.longitude && - metadata.browser && - metadata.browser.userAgent && - metadata.platform && - metadata.platform.deviceName && - metadata.platform.fonts && - metadata.platform.fonts.length > 0 && - metadata.platform.timezone && - value.identifier && - value.identifier.length > 0 - ) { - res.cookie('iPlanetDirectoryPro', 'abcd1234', { domain: 'localhost' }); - res.json(authSuccess); - } else { - // Just failing the auth for testing, but in reality, - // an additional auth callback would be sent, like OTP - res.json(authFail); - } - } - }); - - app.post(authPaths.tokenExchange, wait, async (req, res) => { - // eslint-disable-next-line - const access_token = v4(); - const refresh_token = v4(); - // eslint-disable-next-line - const tokens = { ...oauthTokens, access_token, refresh_token }; - - if (req.path.includes('middleware')) { - if ( - req.query['exchange-token-middleware'] === 'exchange-token' && - req.headers['x-exchange-token-middleware'] === 'exchange-token' && - !req.headers['x-logout-middleware'] && - !req.query['logout-middleware'] - ) { - res.json(tokens); - } else { - res.status(406).send('Middleware header is missing.'); - } - } else if (req.path.includes('tokens-expiring-soon')) { - const tokensExpiringSoon = { ...oauthTokensExpiringSoon, access_token, refresh_token }; - res.json(tokensExpiringSoon); - } else if (req.path.includes('tokens-expired')) { - const tokensExpired = { ...oauthTokensExpired, access_token, refresh_token }; - res.json(tokensExpired); - } else { - res.json(tokens); - } - }); - - app.get(authPaths.accounts, wait, async (req, res) => { - if (req.url.includes('SAMLFailure')) { - const referrer = new URL(req.get('Referer')); - const additionalQueryParams = 'error=true&errorCode=401&errorMessage=errorSaml'; - const redirectUrl = `${referrer.href}${ - referrer.href.includes('?') ? '&' : '?' - }${additionalQueryParams}`; - return res.redirect(redirectUrl); - } else if (req.url.includes('SAMLTest')) { - const referrer = new URL(req.get('Referer')); - const additionalQueryParams = - 'responsekey=885cae87-f88b-4d75-a0fd-0ae1400b766f&RelayState=https://forgerock.com'; - const redirectUrl = `${referrer.href}${ - referrer.href.includes('?') ? '&' : '?' - }${additionalQueryParams}`; - return res.redirect(redirectUrl); - } else { - const referrer = new URL(req.get('Referer')); - const additionalQueryParams = - // eslint-disable-next-line max-len - 'state=rtu8pz65dbg6baw985d532myfbbnf5v&code=4%2F0AY0e-g5vHGhzfggdAuIofxnblW-iR1Y30G5lN5RvbrU8Zv5ZmtUVheTzSX7YMJF_usbzUA&scope=email+profile+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&authuser=0&hd=forgerock.com&prompt=none'; - const redirectUrl = `${referrer.href}${ - referrer.href.includes('?') ? '&' : '?' - }${additionalQueryParams}`; - res.redirect(redirectUrl); - } - }); - - app.get(authPaths.authorize, wait, async (req, res) => { - const loginUrl = new URL(`${req.protocol}://${req.headers.host}/login`); - loginUrl.searchParams.set('client_id', req.query.client_id); - loginUrl.searchParams.set('acr_values', req.query.acr_values); - loginUrl.searchParams.set('redirect_uri', req.query.redirect_uri); - loginUrl.searchParams.set('state', req.query.state); - - // Detect if Central Login to enforce ACR value presence - if ( - req.query.client_id === 'CentralLoginOAuthClient' && - req.query.acr_values !== 'SpecificTree' - ) { - return res.status(400).json({ message: 'acr_values did not match "SpecificTree"' }); - } - if (req.path.includes('middleware-modern')) { - if ( - req.query['authorize-middleware'] === 'authorization' && - req.headers['x-authorize-middleware'] === 'authorization' && - !req.query['logout-middleware'] && - !req.headers['x-logout-middleware'] - ) { - res.redirect(loginUrl); - } else { - res.status(406).send('Middleware additions are missing.'); - } - } else if (req.path.includes('middleware')) { - if ( - req.query['authorize-middleware'] === 'authorization' && - !req.query['logout-middleware'] - ) { - res.redirect(loginUrl); - } else { - res.status(406).send('Middleware additions are missing.'); - } - } else { - if (req.cookies.iPlanetDirectoryPro) { - const redirectUrl = new URL(`${req.query.redirect_uri}`); - - console.log(`Request URL: ${req.query.client_id}`); - - redirectUrl.searchParams.set('client_id', req.query.client_id); - redirectUrl.searchParams.set('code', 'foo'); - redirectUrl.searchParams.set('iss', `${AM_URL}/oauth2`); - redirectUrl.searchParams.set('state', req.query.state); - - res.redirect(redirectUrl); - } else if (req.cookies.redirected === 'true') { - res.redirect(loginUrl); - } else { - res.cookie('redirected', 'true'); - - const interactionNeeded = 'The request requires some interaction that is not allowed.'; - const redirectErrorUrl = new URL( - `${req.query.redirect_uri}?error_description=${interactionNeeded}`, - ); - - res.redirect(redirectErrorUrl); - } - } - }); - - app.get('/login', async (req, res) => { - const domain = req.url.includes('localhost') ? 'localhost' : 'example.com'; - - res.clearCookie('redirected'); - res.cookie('iPlanetDirectoryPro', 'abcd1234', { domain, sameSite: 'none', secure: true }); - - const url = new URL(`${req.protocol}://${req.headers.host}${authPaths.authorize[1]}`); - url.searchParams.set('client_id', req.query.client_id); - url.searchParams.set('acr_values', req.query.acr_values); - url.searchParams.set('redirect_uri', req.query.redirect_uri); - url.searchParams.set('state', req.query.state); - - res.redirect(url); - }); - - app.get(authPaths.userInfo, wait, async (req, res) => { - if (req.headers['authorization'] && req.path.includes('middleware')) { - if ( - req.query['userinfo-middleware'] === 'userinfo' && - req.headers['x-userinfo-middleware'] === 'userinfo' && - !req.headers['x-logout-middleware'] && - !req.query['logout-middleware'] - ) { - res.json(userInfo); - } else { - res.status(406).send('Middleware additions are missing.'); - } - } else if (req.headers['authorization']) { - res.json(userInfo); - } else { - res.status(401).send('Unauthorized'); - } - }); - - app.get(authPaths.endSession, wait, async (req, res) => { - if (req.path.includes('middleware')) { - if ( - req.query['end-session-middleware'] === 'end-session' && - req.headers['x-end-session-middleware'] === 'end-session' && - !req.headers['x-logout-middleware'] && - !req.query['logout-middleware'] - ) { - res.status(204).send(); - } else { - res.status(406).send('Middleware additions are missing missing.'); - } - } else { - res.status(204).send(); - } - }); - - app.post(authPaths.revoke, wait, async (req, res) => { - if (req.path.includes('middleware')) { - if ( - req.query['revoke-token-middleware'] === 'revoke-token' && - req.headers['x-revoke-token-middleware'] === 'revoke-token' && - !req.headers['x-logout-middleware'] && - !req.query['logout-middleware'] - ) { - res.status(200).send(); - } else { - res.status(406).send('Middleware header is missing.'); - } - } else { - res.status(200).send(); - } - }); - - app.all(authPaths.htmlAuthenticate, wait, async (req, res) => { - res.type('html'); - res.status(200).send(''); - }); - - app.post(authPaths.sessions, wait, async (req, res) => { - if (req.query._action === 'logout') { - if (req.path.includes('middleware')) { - if ( - req.query['logout-middleware'] === 'logout' && - req.headers['x-logout-middleware'] === 'logout' && - !req.headers['x-auth-middleware'] && - !req.query['auth-middleware'] - ) { - res.clearCookie('iPlanetDirectoryPro', { domain: 'localhost', path: '/' }); - res.status(204).send(); - } else { - res.status(406).send('Middleware header is missing.'); - } - } else { - res.clearCookie('iPlanetDirectoryPro', { domain: 'localhost', path: '/' }); - res.status(204).send(); - } - } - }); - - app.get('/callback', (req, res) => res.status(200).send('ok')); - - app.get('/am/.well-known/oidc-configuration', (req, res) => { - res.send(wellKnownForgeRock); - }); - - app.get('/as/.well-known/oidc-configuration', (req, res) => { - res.send(wellKnownPing); - }); -} diff --git a/e2e/mock-api/src/app/routes.resource.js b/e2e/mock-api/src/app/routes.resource.js deleted file mode 100644 index e6c9313ed..000000000 --- a/e2e/mock-api/src/app/routes.resource.js +++ /dev/null @@ -1,191 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * routes.resource.js - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -import { env } from 'process'; -import request from 'superagent'; -import { session } from './app.auth.js'; -import { AM_URL, AM_PORT, FORGEOPS, REALM_PATH } from './env.config.js'; -import { - authByTreeResponse, - authByTxnResponse, - createTxnStepUpHeader, - createTreeStepUpHeader, - createTxnStepUpUrl, - createTreeStepUpUrl, -} from './responses.js'; -import { baz } from './routes.auth.js'; -import wait from './wait.js'; - -async function authorization(req, res, next) { - if (env.NODE_ENV === 'LIVE' && req.hostname !== FORGEOPS) { - const fullURL = `${req.protocol}://${req.host}:${AM_PORT}${req.url}`; - let realms; - const body = { - application: req.path.includes('authz-by-txn') ? 'TxnBasedPolicy' : 'TreeBasedPolicy', - resources: [fullURL], - subject: { - ssoToken: req.headers['x-idtoken'] || req.cookies.iPlanetDirectoryPro, - }, - }; - if (req.headers['x-txid']) { - body.environment = { - TxId: [req.headers['x-txid']], - }; - } - if (REALM_PATH !== 'root') { - realms = `realms/root/realms/${REALM_PATH}`; - } else { - realms = 'realms/root'; - } - const response = await request - // eslint-disable-next-line - .post(`${AM_URL}/json/${realms}/policies/?_action=evaluate`) - // .key(key) - // .cert(cert) - .set('Content-Type', 'application/json') - .set('Accept-API-Version', 'resource=2.1') - .set('iPlanetDirectoryPro', session.tokenId) - .send(body); - - req.access = response.body[0] || {}; - next(); - } else { - next(); - } -} - -export default function (app) { - // Passthrough route that enforces authentication - app.all('/resource/*', async (req, res, next) => { - if (env.NODE_ENV === 'LIVE' && req.hostname === FORGEOPS) { - // Only enforce authentication if IG is not used - // In other words, the call comes directly from app - let response; - if (req.headers.authorization) { - // Using OAuth - const authHeaderArr = req.headers.authorization.split(' '); - response = await request - .post(`${AM_URL}/oauth2/introspect`) - .set('Content-Type', 'application/json') - .set('iPlanetDirectoryPro', session.tokenId) - .set('Accept-API-Version', 'resource=1.2') - .send({ token: authHeaderArr[1] }); - } else { - // Using SSO - response = await request - .post(`${AM_URL}/json/sessions/?_action=validate`) - .set('Content-Type', 'application/json') - .set('iPlanetDirectoryPro', session.tokenId) - .set('Accept-API-Version', 'resource=2.1, protocol=1.0') - .send({ tokenId: req.cookies.iPlanetDirectoryPro }); - } - - if (response.body.active || response.body.valid) { - next(); - } else { - res.status(401).send(); - } - } else { - // Call came from a proxy, so proxy (e.g. IG) will enforce auth - next(); - } - }); - - app.get('/resource/reflect-authz-header', wait, authorization, async (req, res) => { - // Respond with the value of the authorization header to assist in testing http client - res.json({ message: req.headers['authorization'] }); - }); - - app.get('/resource/ig/authz-by-txn', wait, authorization, async (req, res) => { - if (req.hostname === FORGEOPS) { - // Calls are coming from IG, so Auth is already enforced - res.json({ message: 'Successfully retrieved resource!' }); - } else { - // Calls are coming directly from app, so let's mocks IG's behavior - if ( - req.cookies.iPlanetDirectoryPro === 'abcd1234' && - baz.canWithdraw && - req.query._txid === authByTxnResponse.advices.TransactionConditionAdvice[0] - ) { - baz.canWithdraw = false; - res.json({ message: 'Successfully retrieved resource!' }); - } else { - console.log(req.headers['x-authenticate-response']); - if ( - req.headers['x-authenticate-response'] && - req.headers['x-authenticate-response'] === 'header' && - req.headers.referer.includes('json') - ) { - res.setHeader('WWW-Authenticate', createTxnStepUpHeader(req.headers.referer)); - res.send(401, null); - } else { - res.redirect(307, createTxnStepUpUrl(req.headers.referer)); - } - } - } - }); - - app.get('/resource/ig/authz-by-tree', wait, authorization, async (req, res) => { - if (req.hostname === FORGEOPS) { - // Calls are coming from IG, so Auth is already enforced - res.json({ message: 'Successfully retrieved resource!' }); - } else { - // Calls are coming directly from app, so let's mocks IG's behavior - if (req.cookies.iPlanetDirectoryPro === 'abcd1234' && baz.canWithdraw) { - baz.canWithdraw = false; - res.json({ message: 'Successfully retrieved resource!' }); - } else { - if ( - req.headers['x-authenticate-response'] && - req.headers['x-authenticate-response'] === 'header' && - req.headers.referer.includes('json') - ) { - res.setHeader('WWW-Authenticate', createTreeStepUpHeader(req.headers.referer)); - res.send(401, null); - } else { - res.redirect(307, createTreeStepUpUrl(req.headers.referer)); - } - } - } - }); - - app.get('/resource/rest/*', wait, authorization, async (req, res) => { - if (env.NODE_ENV === 'live') { - if (req.access.actions && req.access.actions.GET) { - res.json({ message: 'Successfully retrieved resource!' }); - } else if ( - req.access.advices && - (req.access.advices.TransactionConditionAdvice || - req.access.advices.AuthenticateToServiceConditionAdvice) - ) { - res.json(req.access); - } else { - res.status(401).send(); - } - } else { - if ( - req.cookies.iPlanetDirectoryPro === 'abcd1234' && - baz.canWithdraw && - (req.headers['x-txid'] === authByTxnResponse.advices.TransactionConditionAdvice[0] || - req.headers['x-tree'] === - authByTreeResponse.advices.AuthenticateToServiceConditionAdvice[0]) - ) { - baz.canWithdraw = false; - res.json({ message: 'Successfully retrieved resource!' }); - } else { - if (req.path.includes('authz-by-txn')) { - res.json(authByTxnResponse); - } else if (req.path.includes('authz-by-tree')) { - res.json(authByTreeResponse); - } - } - } - }); -} diff --git a/e2e/mock-api/src/app/wait.js b/e2e/mock-api/src/app/wait.js deleted file mode 100644 index be41fb7cc..000000000 --- a/e2e/mock-api/src/app/wait.js +++ /dev/null @@ -1,15 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * wait.js - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ - -const delay = 0; - -export default function wait(req, res, next) { - setTimeout(() => next(), delay); -} diff --git a/e2e/mock-api/src/assets/.gitkeep b/e2e/mock-api/src/assets/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/e2e/mock-api/src/environments/environment.prod.ts b/e2e/mock-api/src/environments/environment.prod.ts deleted file mode 100644 index c9669790b..000000000 --- a/e2e/mock-api/src/environments/environment.prod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: true, -}; diff --git a/e2e/mock-api/src/environments/environment.ts b/e2e/mock-api/src/environments/environment.ts deleted file mode 100644 index a24f6ba2c..000000000 --- a/e2e/mock-api/src/environments/environment.ts +++ /dev/null @@ -1,9 +0,0 @@ -export const environment = { - AM_URL: 'https://openam-crbrl-01.forgeblocks.com/am/', - REALM_PATH: 'alpha', - WEB_OAUTH_CLIENT: 'WebOAuthClient', - JOURNEY_LOGIN: 'UsernamelessWebAuthn', - JOURNEY_REGISTER: 'Registration', - API_URL: 'http://localhost:9443', - production: 'development', -}; diff --git a/e2e/mock-api/src/index.js b/e2e/mock-api/src/index.js deleted file mode 100644 index 7d80a924c..000000000 --- a/e2e/mock-api/src/index.js +++ /dev/null @@ -1,57 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * index.js - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -import * as dns from 'dns'; -import cors from 'cors'; -import express from 'express'; -import cookieParser from 'cookie-parser'; -import { createServer } from 'http'; -import { env } from 'process'; -import path from 'path'; -import { authorizeApp } from './app/app.auth.js'; -import { MOCK_PORT } from './app/env.config.js'; -import authRoutes from './app/routes.auth.js'; -import resourceRoutes from './app/routes.resource.js'; - -dns.setDefaultResultOrder('ipv4first'); - -const app = express(); - -app.use(express.json()); -app.use('/am/XUI/images', express.static(path.join(__dirname, 'public'))); -app.use(cookieParser()); -app.use( - cors({ - exposedHeaders: ['www-authenticate'], - credentials: true, - origin: function (origin, callback) { - return callback(null, true); - }, - }), -); -app.use((req, res, next) => { - console.log(`${req.method} ${req.path}`); - next(); -}); - -if (env.NODE_ENV === 'LIVE') { - authorizeApp({ - un: '9190fcce-d6d7-4473-9449-412f281f9bc6', - pw: '7fh9sj7*NP$%F6978', - }); -} - -authRoutes(app); -resourceRoutes(app); - -app.get('/healthcheck', (req, res) => res.status(200).send('ok')); - -env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0; -createServer(app).listen(MOCK_PORT); -console.log(`Listening to HTTP on secure port: ${MOCK_PORT}`); diff --git a/e2e/mock-api/tsconfig.app.json b/e2e/mock-api/tsconfig.app.json deleted file mode 100644 index a60f0bd1b..000000000 --- a/e2e/mock-api/tsconfig.app.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "module": "Node16", - "moduleResolution": "Node16", - "composite": true, - "allowJs": true - }, - "exclude": ["**/*.spec.ts", "**/*.test.ts", "dist"], - "include": ["**/*.ts", "**/*.js"] -} diff --git a/e2e/mock-api/tsconfig.json b/e2e/mock-api/tsconfig.json deleted file mode 100644 index 63dbe35fb..000000000 --- a/e2e/mock-api/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.app.json" - }, - { - "path": "./tsconfig.spec.json" - } - ] -} diff --git a/e2e/mock-api/tsconfig.spec.json b/e2e/mock-api/tsconfig.spec.json deleted file mode 100644 index c5b810b20..000000000 --- a/e2e/mock-api/tsconfig.spec.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "module": "commonjs", - "types": ["node"] - }, - "include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"] -} diff --git a/nx.json b/nx.json index 2d0de4444..0d184f5f1 100644 --- a/nx.json +++ b/nx.json @@ -55,44 +55,6 @@ "appsDir": "", "libsDir": "" }, - "plugins": [ - { - "plugin": "@nx/playwright/plugin", - "options": { - "ciTargetName": "e2e-ci", - "targetName": "e2e" - } - }, - { - "plugin": "@nx/eslint/plugin", - "options": { - "targetName": "lint" - } - }, - { - "plugin": "@nx/vite/plugin", - "options": { - "buildTargetName": "build", - "serveTargetName": "serve", - "previewTargetName": "preview", - "testTargetName": "test", - "serveStaticTargetName": "serve-static", - "typecheckTargetName": "typecheck" - }, - "include": ["e2e/**/*", "packages/**/*"] - }, - { - "plugin": "@nx/vite/plugin", - "options": { - "buildTargetName": "vite:build", - "testTargetName": "vite:test", - "serveTargetName": "vite:serve", - "previewTargetName": "vite:preview", - "serveStaticTargetName": "vite:serve-static", - "typecheckTargetName": "vite:typecheck" - } - } - ], "useDaemonProcess": true, "useInferencePlugins": true, "defaultBase": "develop", diff --git a/package.json b/package.json index 6f882dae1..8d8248947 100644 --- a/package.json +++ b/package.json @@ -45,15 +45,9 @@ "@effect/schema": "^0.68.23", "@effect/vitest": "^0.6.7", "@nx/devkit": "20.2.2", - "@nx/esbuild": "20.2.2", - "@nx/eslint": "20.2.2", "@nx/eslint-plugin": "20.2.2", - "@nx/express": "20.2.2", + "@nx/eslint": "20.2.2", "@nx/js": "20.2.2", - "@nx/node": "20.2.2", - "@nx/playwright": "20.2.2", - "@nx/vite": "20.2.2", - "@nx/web": "20.2.2", "@nx/workspace": "20.2.2", "@playwright/test": "^1.47.2", "@swc-node/register": "1.9.2", @@ -66,18 +60,14 @@ "@typescript-eslint/parser": "7.16.1", "@typescript-eslint/typescript-estree": "5.59.5", "@typescript-eslint/utils": "^8.13.0", - "@vitejs/plugin-basic-ssl": "1.1.0", "@vitest/coverage-v8": "^1.5.0", "@vitest/ui": "^1.4.0", "conventional-changelog-conventionalcommits": "^7.0.2", - "cookie-parser": "^1.4.6", - "cors": "^2.8.5", "cz-conventional-changelog": "^3.3.0", "cz-git": "^1.6.1", "effect": "^3.5.3", "effect-http": "^0.73.0", "effect-http-node": "^0.16.1", - "esbuild": "^0.19.2", "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.27.5", @@ -89,15 +79,12 @@ "jsdom": "22.1.0", "jsonc-eslint-parser": "^2.1.0", "lint-staged": "^13.2.2", - "mkcert": "^3.2.0", "npm-cli-login": "^1.0.0", "nx": "20.2.2", "playwright": "^1.47.2", "prettier": "^3.2.5", "pretty-quick": "^4.0.0", - "sass": "^1.71.1", "shx": "^0.3.4", - "superagent": "^8.1.2", "swc-loader": "0.1.15", "ts-node": "10.9.1", "tslib": "^2.5.0", @@ -105,7 +92,6 @@ "typedoc-github-theme": "0.2.0", "typedoc-plugin-rename-defaults": "^0.7.2", "typescript": "5.6.3", - "uuid": "^9.0.1", "verdaccio": "^5.29.2", "vite": "^5.4.8", "vite-plugin-dts": "^4.2.2", diff --git a/packages/ping-protect/.eslintignore b/packages/ping-protect/.eslintignore deleted file mode 100644 index a1d4b2ec4..000000000 --- a/packages/ping-protect/.eslintignore +++ /dev/null @@ -1,12 +0,0 @@ -node_modules -*.md -LICENSE -.babelrc -.env* -.bin -dist -src/lib/ping-signals-sdk.js -.eslintignore -docs -coverage -vite.config.*.timestamp* diff --git a/packages/ping-protect/.eslintrc.json b/packages/ping-protect/.eslintrc.json deleted file mode 100644 index 9d9c0db55..000000000 --- a/packages/ping-protect/.eslintrc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": {} - }, - { - "files": ["*.ts", "*.tsx"], - "rules": {} - }, - { - "files": ["*.js", "*.jsx"], - "rules": {} - } - ] -} diff --git a/packages/ping-protect/CHANGELOG.md b/packages/ping-protect/CHANGELOG.md deleted file mode 100644 index a2a146b61..000000000 --- a/packages/ping-protect/CHANGELOG.md +++ /dev/null @@ -1,23 +0,0 @@ -# Changelog - -## v4.6.0 (2024-08-15) - -### 🚀 Features - -- support-metadata-marketplace-protect ([a3494b9](https://github.com/ForgeRock/forgerock-javascript-sdk/commit/a3494b9)) - -### ❤️ Thank You - -- ryanbas21 - -## [4.4.2] - 2024-05-15 - -fix(ping-protect): update-module-type by @ryanbas21 in #434 -fix(ping-protect): update-signals-sdk by @ryanbas21 in #437 -fix(ping-protect): bundling by @ryanbas21 in #440 -fix(ping-protect): update-ping-protect-signals-sdk by @ryanbas21 in #441 -fix(ping-protect): dynamically load ping protect in start and transpile as esmodule - -## [4.4.0] - 2024-03-12 - -feat(ping-protect): Add a new module for Ping Protect and allow for use of .wellknown endpoint for configuration of PingOne as an oauth server diff --git a/packages/ping-protect/README.md b/packages/ping-protect/README.md deleted file mode 100644 index 2577ec8d5..000000000 --- a/packages/ping-protect/README.md +++ /dev/null @@ -1,138 +0,0 @@ -# Ping Protect - -The Ping Protect module is intended to be used along with the ForgeRock JavaScript SDK to provide the Ping Protect feature to our existing ForgeRock SDK customers. - -## Overall Design - -There are two components on the server side and two components on the client side to enable this feature. You'll need to have the following: - -1. ForgeRock Identity Cloud (aka ID Cloud) platform or an up-to-date ForgeRock Access Management (aka AM) -2. PingOne tenant with Protect enabled -3. A Ping Protect Service configured in ID Cloud or AM -4. A journey/tree with the appropriate Protect Nodes -5. A client application with the `@forgerock/javascript-sdk` and `@forgerock/ping-protect` modules installed - -## Quick Start for Client Application - -Install both modules and their latest versions: - -```sh -npm install @forgerock/javascript-sdk @forgerock/ping-protect -``` - -The two main responsibilities of the Ping Protect module is the initialization of the profiling and data collection and the completion and preparation of the collected data for the server. You can find the two methods on the `PIProtect` module found within the `@forgerock/ping-protect` module. - -- `PIProtect.start()` -- `PIProtect.getData()` - -The `start` method can be called at application startup, or when you receive the `PingOneProtectInitializeCallback` callback from the server. We recommend you call `start` as soon as you can to collect as much data as possible for higher accuracy. - -When calling `start`, you have many different options to configure what and how the data is collected. The most important and required of these settings is the `envId`. All other settings are optional. - -```js -import { PIProtect } from '@forgerock/ping-protect'; - -// Call early in your application startup -PIProtect.start({ envId: '02fb1243-189a-4bc7-9d6c-a919edf6447' }); -``` - -Alternatively, you can delay the initialization until you receive the instruction from the server by way of the special callback: `PingOneProtectInitializeCallback`. To do this, you would call the `start` method when the callback is present in the journey. - -```js -import { PIProtect } from '@forgerock/ping-protect'; - -if (step.getCallbacksOfType('PingOneProtectInitializeCallback')) { - try { - // Asynchronous call - await PIProtect.start({ envId: '02fb1243-189a-4bc7-9d6c-a919edf6447' }); - } catch (err) { - // handle error - } -} -``` - -You then call the `FRAuth.next` method after initialization to move the user forward in the journey. - -```js -FRAuth.next(step); -``` - -At some point in the journey, and as late as possible in order to collect as much data as you can, you will come across the `PingOneProtectEvaluationCallback`. This is when you call the `getData` method to package what's been collected for the server to evaluate. - -```js -import { PIProtect } from '@forgerock/ping-protect'; - -let data; - -if (step.getCallbacksOfType('PingOneProtectEvaluationCallback')) { - try { - // Asynchronous call - data = await PIProtect.getData(); - } catch (err) { - // handle error - } -} -``` - -Now that we have the data, set it on the callback in order to send it to the server when we call `next`. - -```js -callback.setData(data); - -FRAuth.next(step); -``` - -## Error Handling - -When you encounter an error during initialization or evaluation, set the error message on the callback using the `setClientError` method. Setting the message on the callback is how it gets sent to the server on the `FRAuth.next` method call. - -```js -if (step.getCallbacksOfType('PingOneProtectInitializeCallback')) { - const callback = step.getCallbackOfType('PingOneProtectInitializeCallback'); - try { - // Asynchronous call - await PIProtect.start({ envId: '02fb1243-189a-4bc7-9d6c-a919edf6447' }); - } catch (err) { - callback.setClientError(err.message); - } -} -``` - -A similar process is used for the evaluation step. - -```js -let data; - -if (step.getCallbacksOfType('PingOneProtectEvaluationCallback')) { - const callback = step.getCallbackOfType('PingOneProtectEvaluationCallback'); - try { - // Asynchronous call - data = await PIProtect.getData(); - } catch (err) { - callback.setClientError(err.message); - } -} -``` - -## Full API - -```js -// PIProtect class methods -PIProtect.start(); -PIProtect.getData(); -PIProtect.pauseBehavioralData(); -PIProtect.resumeBehavioralData(); -``` - -```js -// PingOneProtectInitializeCallback class methods -callback.getConfig(); -callback.setClientError(); -``` - -```js -// PingOneProtectEvaluationCallback class methods -callback.setData(); -callback.setClientError(); -callback.getPauseBehavioralData(); -``` diff --git a/packages/ping-protect/package.json b/packages/ping-protect/package.json deleted file mode 100644 index bba813255..000000000 --- a/packages/ping-protect/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@forgerock/ping-protect", - "version": "4.6.0", - "private": false, - "type": "module", - "files": ["dist"], - "module": "./dist/index.js", - "main": "./dist/index.js", - "repository": { - "type": "git", - "url": "git+https://github.com:ForgeRock/forgerock-javascript-sdk.git", - "directory": "packages/ping-protect" - }, - "sideEffects": ["./dist/lib/ping-signals-sdk.js"], - "exports": { - ".": { - "types": "./dist/index.ts.d.ts", - "default": "./dist/index.js" - } - }, - "types": "./dist/index.ts.d.ts", - "dependencies": { - "@forgerock/javascript-sdk": "4.6.0" - }, - "scripts": { - "build": "vite build", - "test": "vitest", - "test:coverage": "vitest --coverage", - "lint": "eslint **/*.ts --fix" - } -} diff --git a/packages/ping-protect/src/index.test.ts b/packages/ping-protect/src/index.test.ts deleted file mode 100644 index 5a79bdfc9..000000000 --- a/packages/ping-protect/src/index.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import * as module from './index.js'; - -describe('PIProtect', () => { - it('should be defined', () => { - expect(module.PIProtect).toBeDefined(); - }); -}); diff --git a/packages/ping-protect/src/index.ts b/packages/ping-protect/src/index.ts deleted file mode 100644 index e3ec0887a..000000000 --- a/packages/ping-protect/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './lib/ping-protect.js'; diff --git a/packages/ping-protect/src/lib/ping-protect.mock.data.ts b/packages/ping-protect/src/lib/ping-protect.mock.data.ts deleted file mode 100644 index d02a18aae..000000000 --- a/packages/ping-protect/src/lib/ping-protect.mock.data.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { CallbackType, FRStep } from '@forgerock/javascript-sdk'; - -export const standardPingProtectInitializeStep = new FRStep({ - authId: 'foo', - callbacks: [ - { - type: 'MetadataCallback' as CallbackType.MetadataCallback, - output: [ - { - name: 'data', - value: { - _type: 'PingOneProtect', - _action: 'protect_initialize', - envId: 'some_id', - consoleLogEnabled: true, - deviceAttributesToIgnore: [], - customHost: '', - lazyMetadata: true, - behavioralDataCollection: true, - disableHub: true, - deviceKeyRsyncIntervals: 10, - enableTrust: true, - disableTags: true, - }, - }, - ], - }, - { - type: 'HiddenValueCallback' as CallbackType.HiddenValueCallback, - output: [ - { - name: 'value', - value: '', - }, - { - name: 'id', - value: 'clientError', - }, - ], - input: [ - { - name: 'IDToken1', - value: 'clientError', - }, - ], - }, - ], -}); - -export const standardPingProtectEvaluationStep = new FRStep({ - authId: 'foo', - callbacks: [ - { - type: 'MetadataCallback' as CallbackType.MetadataCallback, - output: [ - { - name: 'data', - value: { - _type: 'PingOneProtect', - _action: 'protect_risk_evaluation', - envId: 'some_id', - pauseBehavioralData: true, - }, - }, - ], - }, - { - type: 'HiddenValueCallback' as CallbackType.HiddenValueCallback, - output: [ - { - name: 'value', - value: '', - }, - { - name: 'id', - value: 'pingone_risk_evaluation_signals', - }, - ], - input: [ - { - name: 'IDToken1', - value: 'pingone_risk_evaluation_signals', - }, - ], - }, - { - type: 'HiddenValueCallback' as CallbackType.HiddenValueCallback, - output: [ - { - name: 'value', - value: '', - }, - { - name: 'id', - value: 'clientError', - }, - ], - input: [ - { - name: 'IDToken1', - value: 'clientError', - }, - ], - }, - ], -}); - -export const noProtectType = new FRStep({ - authId: 'foo', - callbacks: [ - { - type: 'HiddenValueCallback' as CallbackType.HiddenValueCallback, - output: [ - { - name: 'value', - value: '', - }, - { - name: 'id', - value: 'pingone_risk_evaluation_signals', - }, - ], - input: [ - { - name: 'IDToken1', - value: 'pingone_risk_evaluation_signals', - }, - ], - }, - { - type: 'HiddenValueCallback' as CallbackType.HiddenValueCallback, - output: [ - { - name: 'value', - value: '', - }, - { - name: 'id', - value: 'clientError', - }, - ], - input: [ - { - name: 'IDToken1', - value: 'clientError', - }, - ], - }, - ], -}); diff --git a/packages/ping-protect/src/lib/ping-protect.test.ts b/packages/ping-protect/src/lib/ping-protect.test.ts deleted file mode 100644 index a34fac396..000000000 --- a/packages/ping-protect/src/lib/ping-protect.test.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { vi, expect, describe, it } from 'vitest'; -import { PIProtect } from './ping-protect.js'; -import { - noProtectType, - standardPingProtectEvaluationStep, - standardPingProtectInitializeStep, -} from './ping-protect.mock.data.js'; -import { CallbackType, HiddenValueCallback } from '@forgerock/javascript-sdk'; - -describe('PIProtect', () => { - it('should be defined', () => { - expect(PIProtect).toBeDefined(); - expect(PIProtect.start).toBeDefined(); - expect(PIProtect.getData).toBeDefined(); - expect(PIProtect.pauseBehavioralData).toBeDefined(); - expect(PIProtect.resumeBehavioralData).toBeDefined(); - }); - it('should call start', async () => { - const protectMock = vi.spyOn(PIProtect, 'start'); - const config = { - envId: '12345', - consoleLogEnabled: true, - deviceAttributesToIgnore: ['userAgent'], - customHost: 'https://example.com', - lazyMetadata: false, - behavioralDataCollection: true, - deviceKeyRsyncIntervals: 14, - enableTrust: false, - disableTags: false, - disableHub: false, - }; - await PIProtect.start(config); - expect(protectMock).toHaveBeenCalledWith(config); - }); - it('should call pause behavioralData', () => { - const protectMock = vi.spyOn(PIProtect, 'pauseBehavioralData'); - PIProtect.pauseBehavioralData(); - expect(protectMock).toHaveBeenCalled(); - }); - it('should call resume behavioralData', () => { - const protectMock = vi.spyOn(PIProtect, 'resumeBehavioralData'); - PIProtect.resumeBehavioralData(); - expect(protectMock).toHaveBeenCalled(); - }); - - describe('should test the marketplace node setup', () => { - it('should test getPauseBehavioralData with marketplace data', () => { - const result = PIProtect.getPauseBehavioralData(standardPingProtectEvaluationStep); - - expect(result).toEqual(false); - - const secondResult = PIProtect.getPauseBehavioralData(standardPingProtectInitializeStep); - - expect(secondResult).toEqual(true); - }); - it('should test the getPingProtectType method', () => { - const result = PIProtect.getPingProtectType(standardPingProtectInitializeStep); - - expect(result).toEqual('initialize'); - - const result2 = PIProtect.getPingProtectType(standardPingProtectEvaluationStep); - - expect(result2).toEqual('evaluate'); - - const result3 = PIProtect.getPingProtectType(noProtectType); - expect(result3).toEqual('none'); - }); - it('should setNodeInputValue', () => { - const step = standardPingProtectEvaluationStep; - - PIProtect.setNodeInputValue(step, 'the value'); - const [hc] = step.getCallbacksOfType(CallbackType.HiddenValueCallback); - - expect(hc.getInputValue()).toEqual('the value'); - }); - }); - - it('should get the node config', () => { - const result = PIProtect.getNodeConfig(standardPingProtectInitializeStep); - expect(result).toEqual( - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - standardPingProtectInitializeStep!.payload.callbacks![0].output[0].value, - ); - - const result2 = PIProtect.getNodeConfig(noProtectType); - expect(result2).toBeUndefined(); - }); - it('should set an error with marketplace nodes', () => { - PIProtect.setNodeClientError(standardPingProtectEvaluationStep, 'we errored!'); - - const [, err] = standardPingProtectEvaluationStep.getCallbacksOfType( - CallbackType.HiddenValueCallback, - ); - - expect(err.getInputValue()).toBe('we errored!'); - }); -}); diff --git a/packages/ping-protect/src/lib/ping-protect.ts b/packages/ping-protect/src/lib/ping-protect.ts deleted file mode 100644 index 2a6bf90df..000000000 --- a/packages/ping-protect/src/lib/ping-protect.ts +++ /dev/null @@ -1,270 +0,0 @@ -import { - CallbackType, - FRStep, - HiddenValueCallback, - MetadataCallback, - PingOneProtectEvaluationCallback, - PingOneProtectInitializeCallback, -} from '@forgerock/javascript-sdk'; -import { ProtectEvaluationConfig, ProtectInitializeConfig } from './ping-protect.types'; - -export interface Identifiers { - [key: string]: string; -} - -/** - * InitParams - Interface for the init method parameters - * envId: string - Required; the environment id from your PingOne tenant - * * - All other parameters are optional - */ -export interface InitParams { - envId: string; // environment id - consoleLogEnabled?: boolean; // true to enable SDK logs in the developer console. default is false - waitForWindowLoad?: boolean; // true to init the SDK on load event, instead of DOMContentLoaded event. default is true - hubUrl?: string; // iframe url for cross-storage device ID - disableHub?: boolean; // when true, the SDK store the deviceId to the localStorage only and won't use an iframe (hub). default is false - deviceAttributesToIgnore?: string[]; // metadata blacklist - lazyMetadata?: boolean; // true to calculate the metadata only on getData invocation, otherwise do it automatically on init. default is false - behavioralDataCollection?: boolean; // true to collect behavioral data. default is true - disableTags?: boolean; // true to skip tag collection. default is false, - externalIdentifiers?: Identifiers; // optional customer external identifiers that should be reflected on a device entity - deviceKeyRsyncIntervals?: number; // number of days used to window the next time the device attestation should use the device fallback key. default is 14 days - enableTrust?: boolean; // tie the device payload to a non-extractable crypto key stored on the browser for content authenticity verification -} - -// Add Signals SDK namespace to the window object -declare global { - interface Window { - _pingOneSignals: { - init: (initParams?: InitParams) => Promise; - getData: () => Promise; - pauseBehavioralData: () => void; - resumeBehavioralData: () => void; - }; - } -} - -/** - * @class PIProtect - Class to interact with the underlying PingOne Signals SDK - */ -export abstract class PIProtect { - /** *********************************************************************************************** - * The following methods are methods for the interacting with PingOne Signals SDK - */ - - /** - * @method getData - Method to get the device data - * @returns {Promise} - Returns the device data - */ - public static async getData(): Promise { - return await window._pingOneSignals.getData(); - } - - /** - * @method start - Method to initialize and start the PingOne Signals SDK - * @param {InitParams} options - The init parameters - * @returns {Promise} - Returns a promise - */ - public static async start(options: InitParams): Promise { - try { - /* - * Load the Ping Signals SDK - * this automatically pollutes the window - * there are no exports of this module - */ - await import('./ping-signals-sdk.js' as string); - } catch (err) { - console.error('error loading ping signals', err); - } - await window._pingOneSignals.init(options); - - if (options.behavioralDataCollection === true) { - window._pingOneSignals.resumeBehavioralData(); - } - } - - /** - * @method pauseBehavioralData - Method to pause the behavioral data collection - * @returns {void} - * @description Pause the behavioral data collection only; device profile data will still be collected - */ - public static pauseBehavioralData(): void { - window._pingOneSignals.pauseBehavioralData(); - } - - /** - * @method resumeBehavioralData - Method to resume the behavioral data collection - * @returns {void} - * @description Resume the behavioral data collection - */ - public static resumeBehavioralData(): void { - window._pingOneSignals.resumeBehavioralData(); - } - - /** *********************************************************************************************** - * Required when using the Ping Protect Marketplace nodes, which has generic callbacks - * But, can be used for native nodes and/or either callback type - */ - - public static getPauseBehavioralData(step: FRStep): boolean { - // Check for native callback first - try { - const nativeCallback = step.getCallbackOfType( - CallbackType.PingOneProtectEvaluationCallback, - ); - - const shouldPause = nativeCallback?.getPauseBehavioralData(); - return shouldPause || false; - } catch (err) { - // Do nothing - } - - // If we are here, we are dealing with Marketplace nodes - const cbs = step.getCallbacksOfType(CallbackType.MetadataCallback); - - if (!cbs.length) { - return false; - } - - const protectMetadataCb = cbs.find((metadataCallback) => { - const data = metadataCallback.getData() as { _type: string; _action: string }; - return data._type === 'PingOneProtect'; - }); - - if (!protectMetadataCb) { - return false; - } - - const data: ProtectInitializeConfig | ProtectEvaluationConfig = ( - protectMetadataCb as MetadataCallback - ).getData(); - - if (data._action === 'protect_risk_evaluation') { - return false; - } else { - return !!(data as ProtectInitializeConfig).behavioralDataCollection; - } - } - - public static getNodeConfig(step: FRStep): ProtectInitializeConfig | undefined { - // Check for native callback first - try { - const nativeCallback = step.getCallbackOfType( - CallbackType.PingOneProtectInitializeCallback, - ); - - const config = nativeCallback?.getConfig() as ProtectInitializeConfig; - return config; - } catch (err) { - // Do nothing - } - - const cbs = step.getCallbacksOfType(CallbackType.MetadataCallback); - - if (!cbs.length) { - return undefined; - } - - const protectMetadataCb = cbs.find((metadataCallback) => { - const data = metadataCallback.getData() as { _type: string; _action: string }; - return data._action === 'protect_initialize'; - }); - - if (!protectMetadataCb) { - return undefined; - } - - const data = (protectMetadataCb as MetadataCallback).getData() as ProtectInitializeConfig; - - return data; - } - - public static getPingProtectType(step: FRStep): 'initialize' | 'evaluate' | 'none' { - const cbs = step.getCallbacksOfType(CallbackType.MetadataCallback); - - if (!cbs.length) { - return 'none'; - } - - const protectMetadataCb = cbs.find((cb) => { - const metadataCallback = cb as MetadataCallback; - const data = metadataCallback.getData() as { _type: string; _action: string }; - return data._type === 'PingOneProtect'; - }); - - if (!protectMetadataCb) { - return 'none'; - } - - const data = (protectMetadataCb as MetadataCallback).getData() as ProtectInitializeConfig; - - return data._action === 'protect_initialize' ? 'initialize' : 'evaluate'; - } - - public static setNodeClientError(step: FRStep, value: string): void { - // Check for native callback first - const nativeEvaluationCallback = step.getCallbacksOfType( - CallbackType.PingOneProtectEvaluationCallback, - ); - const nativeInitializeCallback = step.getCallbacksOfType( - CallbackType.PingOneProtectInitializeCallback, - ); - const arr = [...nativeEvaluationCallback, ...nativeInitializeCallback]; - - if (arr.length) { - const cb = arr[0]; - cb.setClientError(value); - return; - } - - // If we are here, we are dealing with Marketplace nodes - const cbs = step.getCallbacksOfType(CallbackType.HiddenValueCallback); - - if (!cbs.length) { - return; - } - - const clientErrorCb = cbs.find((hiddenValueCallback) => { - const output = hiddenValueCallback.getOutputByName('id', ''); - return output === 'clientError'; - }); - - if (!clientErrorCb) { - return; - } - - clientErrorCb.setInputValue(value); - } - - public static setNodeInputValue(step: FRStep, value: string): void { - // Check for native callback first - try { - const nativeCallback = step.getCallbackOfType( - CallbackType.PingOneProtectEvaluationCallback, - ); - - nativeCallback?.setData(value); - return; - } catch (err) { - // Do nothing - } - - // If we are here, we are dealing with Marketplace nodes - const cbs = step.getCallbacksOfType(CallbackType.HiddenValueCallback); - - if (!cbs.length) { - return; - } - - const inputCb = cbs.find((hiddenValueCallback) => { - const output = hiddenValueCallback.getOutputByName('id', ''); - return output === 'pingone_risk_evaluation_signals'; - }); - - if (!inputCb) { - return; - } - - inputCb.setInputValue(value); - } -} diff --git a/packages/ping-protect/src/lib/ping-protect.types.ts b/packages/ping-protect/src/lib/ping-protect.types.ts deleted file mode 100644 index 1df9a6963..000000000 --- a/packages/ping-protect/src/lib/ping-protect.types.ts +++ /dev/null @@ -1,21 +0,0 @@ -export interface ProtectInitializeConfig { - _type: 'PingOneProtect'; - _action: 'protect_initialize'; - envId?: string; - consoleLogEnabled?: boolean; - deviceAttributesToIgnore?: string[]; - customHost?: string; - lazyMetadata?: boolean; - behavioralDataCollection?: boolean; - deviceKeyRsyncIntervals?: number; - enableTrust?: boolean; - disableTags?: boolean; - disableHub?: boolean; -} - -export interface ProtectEvaluationConfig { - _type: 'PingOneProtect'; - _action: 'protect_risk_evaluation'; - envId: string; - pauseBehavioralData: boolean; -} diff --git a/packages/ping-protect/src/lib/ping-signals-sdk.js b/packages/ping-protect/src/lib/ping-signals-sdk.js deleted file mode 100644 index d05857e05..000000000 --- a/packages/ping-protect/src/lib/ping-signals-sdk.js +++ /dev/null @@ -1,14434 +0,0 @@ -if (typeof window !== 'undefined') { - var _POSignalsEntities; - !(function (t, e) { - 'use strict'; - 'function' != typeof t.CustomEvent && - (t.CustomEvent = (function () { - return function (t, e) { - e = e || { bubbles: !1, cancelable: !1, detail: null }; - var n = document.createEvent('CustomEvent'); - return n.initCustomEvent(t, e.bubbles, e.cancelable, e.detail), n; - }; - })()); - })(window), - (function () { - 'use strict'; - var t = 'st-ping-div'; - function e(t) { - 'loading' !== document.readyState ? t() : document.addEventListener('DOMContentLoaded', t); - } - function n(n) { - e(function () { - if (n) { - var e = - (i = document.getElementById(t)) || - (((i = document.createElement('div')).style.border = 'none'), - (i.style.position = 'absolute'), - (i.style.top = '-999px'), - (i.style.left = '-999px'), - (i.style.width = '0'), - (i.style.height = '0'), - (i.style.visibility = 'hidden'), - (i.style.overflow = 'hidden'), - (i.id = t), - document.body.appendChild(i), - i); - (window._pingOneSignalsToken = getComputedStyle(e, '::after').content.replace( - /['"]+/g, - '', - )), - document.dispatchEvent(new CustomEvent('PingOneSignalsTokenReadyEvent')); - } - var i, r; - (r = 'Finished - ' + (n ? 'success' : 'failure')), - window['enable-logs-pingOneSignals'] && console.log(r); - }); - } - var i, - r, - a, - o, - s = document.querySelector('script[data-pingOneSignalsSkipToken]'); - if (s && 'true' === s.getAttribute('data-pingOneSignalsSkipToken')) - return ( - (window._pingOneSignalsToken = 'skipped_token_' + new Date().getTime()), - e(function () { - document.dispatchEvent(new CustomEvent('PingOneSignalsTokenSkippedEvent')); - }) - ); - window._pingOneSignalsToken || - (window._pingOneSignalsToken = 'uninitialized_token_' + new Date().getTime()), - (i = window._pingOneSignalsCustomHost || 'apps.pingone.com'), - (r = { sdkVersion: '5.3.5w', platform: navigator.platform || '' }), - (a = encodeURIComponent( - (function (t) { - var e, - n, - i, - r, - a, - o, - s, - u = '', - c = 0, - l = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - for ( - t = (function (t) { - t = t.replace(/\r\n/g, '\n'); - for (var e = '', n = 0; n < t.length; n++) { - var i = t.charCodeAt(n); - i < 128 - ? (e += String.fromCharCode(i)) - : (127 < i && i < 2048 - ? (e += String.fromCharCode((i >> 6) | 192)) - : ((e += String.fromCharCode((i >> 12) | 224)), - (e += String.fromCharCode(((i >> 6) & 63) | 128))), - (e += String.fromCharCode((63 & i) | 128))); - } - return e; - })(t); - c < t.length; - - ) - (r = (e = t.charCodeAt(c++)) >> 2), - (a = ((3 & e) << 4) | ((n = t.charCodeAt(c++)) >> 4)), - (o = ((15 & n) << 2) | ((i = t.charCodeAt(c++)) >> 6)), - (s = 63 & i), - isNaN(n) ? (o = s = 64) : isNaN(i) && (s = 64), - (u = u + l.charAt(r) + l.charAt(a) + l.charAt(o) + l.charAt(s)); - return u; - })( - (function (t, e) { - for (var n = [], i = 0; i < t.length; i++) { - var r = t.charCodeAt(i) ^ e.charCodeAt(i % e.length); - n.push(String.fromCharCode(r)); - } - return n.join(''); - })(JSON.stringify(r), 'dkiBm42'), - ), - )), - ((o = document.createElement('link')).type = 'text/css'), - (o.rel = 'stylesheet'), - (o.href = 'https://' + i + '/signals/sdk/pong.css?body=' + a + '&e=2'), - (document.head || document.getElementsByTagName('head')[0]).appendChild(o), - (o.onload = function () { - n(!0); - }), - (o.onerror = function () { - n(!1); - }); - })(), - (function (t) { - t._POSignalsEntities || (t._POSignalsEntities = {}), - t._pingOneSignals && console.warn('PingOne Signals script was imported multiple times'); - })(window), - (function (t) { - 'use strict'; - function e(t) { - var e = this.constructor; - return this.then( - function (n) { - return e.resolve(t()).then(function () { - return n; - }); - }, - function (n) { - return e.resolve(t()).then(function () { - return e.reject(n); - }); - }, - ); - } - var n = setTimeout; - function i(t) { - return Boolean(t && void 0 !== t.length); - } - function r() {} - function a(t) { - if (!(this instanceof a)) throw new TypeError('Promises must be constructed via new'); - if ('function' != typeof t) throw new TypeError('not a function'); - (this._state = 0), - (this._handled = !1), - (this._value = void 0), - (this._deferreds = []), - l(t, this); - } - function o(t, e) { - for (; 3 === t._state; ) t = t._value; - 0 !== t._state - ? ((t._handled = !0), - a._immediateFn(function () { - var n = 1 === t._state ? e.onFulfilled : e.onRejected; - if (null !== n) { - var i; - try { - i = n(t._value); - } catch (t) { - return void u(e.promise, t); - } - s(e.promise, i); - } else (1 === t._state ? s : u)(e.promise, t._value); - })) - : t._deferreds.push(e); - } - function s(t, e) { - try { - if (e === t) throw new TypeError('A promise cannot be resolved with itself.'); - if (e && ('object' == typeof e || 'function' == typeof e)) { - var n = e.then; - if (e instanceof a) return (t._state = 3), (t._value = e), void c(t); - if ('function' == typeof n) - return void l( - ((i = n), - (r = e), - function () { - i.apply(r, arguments); - }), - t, - ); - } - (t._state = 1), (t._value = e), c(t); - } catch (e) { - u(t, e); - } - var i, r; - } - function u(t, e) { - (t._state = 2), (t._value = e), c(t); - } - function c(t) { - 2 === t._state && - 0 === t._deferreds.length && - a._immediateFn(function () { - t._handled || a._unhandledRejectionFn(t._value); - }); - for (var e = 0, n = t._deferreds.length; e < n; e++) o(t, t._deferreds[e]); - t._deferreds = null; - } - function l(t, e) { - var n = !1; - try { - t( - function (t) { - n || ((n = !0), s(e, t)); - }, - function (t) { - n || ((n = !0), u(e, t)); - }, - ); - } catch (t) { - if (n) return; - (n = !0), u(e, t); - } - } - (a.prototype.catch = function (t) { - return this.then(null, t); - }), - (a.prototype.then = function (t, e) { - var n = new this.constructor(r); - return ( - o( - this, - new (function (t, e, n) { - (this.onFulfilled = 'function' == typeof t ? t : null), - (this.onRejected = 'function' == typeof e ? e : null), - (this.promise = n); - })(t, e, n), - ), - n - ); - }), - (a.prototype.finally = e), - (a.all = function (t) { - return new a(function (e, n) { - if (!i(t)) return n(new TypeError('Promise.all accepts an array')); - var r = Array.prototype.slice.call(t); - if (0 === r.length) return e([]); - var a = r.length; - function o(t, i) { - try { - if (i && ('object' == typeof i || 'function' == typeof i)) { - var s = i.then; - if ('function' == typeof s) - return void s.call( - i, - function (e) { - o(t, e); - }, - n, - ); - } - (r[t] = i), 0 == --a && e(r); - } catch (t) { - n(t); - } - } - for (var s = 0; s < r.length; s++) o(s, r[s]); - }); - }), - (a.resolve = function (t) { - return t && 'object' == typeof t && t.constructor === a - ? t - : new a(function (e) { - e(t); - }); - }), - (a.reject = function (t) { - return new a(function (e, n) { - n(t); - }); - }), - (a.race = function (t) { - return new a(function (e, n) { - if (!i(t)) return n(new TypeError('Promise.race accepts an array')); - for (var r = 0, o = t.length; r < o; r++) a.resolve(t[r]).then(e, n); - }); - }), - (a._immediateFn = - ('function' == typeof setImmediate && - function (t) { - setImmediate(t); - }) || - function (t) { - n(t, 0); - }), - (a._unhandledRejectionFn = function (t) { - 'undefined' != typeof console && - console && - console.warn('Possible Unhandled Promise Rejection:', t); - }), - 'function' != typeof t.Promise - ? (t.Promise = a) - : t.Promise.prototype.finally || (t.Promise.prototype.finally = e); - })(window), - (function (t, e) { - 'use strict'; - (_POSignalsEntities || (_POSignalsEntities = {})).PromiseQueue = (function () { - var t = function () {}; - function e(t, e, n) { - (this.options = n = n || {}), - (this.pendingPromises = 0), - (this.maxPendingPromises = void 0 !== t ? t : 1 / 0), - (this.maxQueuedPromises = void 0 !== e ? e : 1 / 0), - (this.queue = []); - } - return ( - (e.prototype.add = function (e) { - var n = this; - return new Promise(function (i, r, a) { - n.queue.length >= n.maxQueuedPromises - ? r(new Error('Queue limit reached')) - : (n.queue.push({ promiseGenerator: e, resolve: i, reject: r, notify: a || t }), - n._dequeue()); - }); - }), - (e.prototype.getPendingLength = function () { - return this.pendingPromises; - }), - (e.prototype.getQueueLength = function () { - return this.queue.length; - }), - (e.prototype._dequeue = function () { - var t = this; - if (this.pendingPromises >= this.maxPendingPromises) return !1; - var e, - n = this.queue.shift(); - if (!n) return this.options.onEmpty && this.options.onEmpty(), !1; - try { - this.pendingPromises++, - ((e = n.promiseGenerator()), - e && 'function' == typeof e.then - ? e - : new Promise(function (t) { - t(e); - })).then( - function (e) { - t.pendingPromises--, n.resolve(e), t._dequeue(); - }, - function (e) { - t.pendingPromises--, n.reject(e), t._dequeue(); - }, - function (t) { - n.notify(t); - }, - ); - } catch (e) { - t.pendingPromises--, n.reject(e), t._dequeue(); - } - return !0; - }), - e - ); - })(); - })(), - (function (t) { - 'use strict'; - var e = 'input is invalid type', - n = !t.JS_SHA256_NO_ARRAY_BUFFER && 'undefined' != typeof ArrayBuffer, - i = '0123456789abcdef'.split(''), - r = [-2147483648, 8388608, 32768, 128], - a = [24, 16, 8, 0], - o = [ - 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, - 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, - 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, - 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, - 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, - 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, - 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, - 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, - 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, - 3329325298, - ], - s = ['hex', 'array', 'digest', 'arrayBuffer'], - u = []; - (!t.JS_SHA256_NO_NODE_JS && Array.isArray) || - (Array.isArray = function (t) { - return '[object Array]' === Object.prototype.toString.call(t); - }), - !n || - (!t.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView) || - (ArrayBuffer.isView = function (t) { - return 'object' == typeof t && t.buffer && t.buffer.constructor === ArrayBuffer; - }); - var c = function (t, e) { - return function (n) { - return new f(e, !0).update(n)[t](); - }; - }, - l = function (t) { - var e = c('hex', t); - (e.create = function () { - return new f(t); - }), - (e.update = function (t) { - return e.create().update(t); - }); - for (var n = 0; n < s.length; ++n) { - var i = s[n]; - e[i] = c(i, t); - } - return e; - }, - d = function (t, e) { - return function (n, i) { - return new g(n, e, !0).update(i)[t](); - }; - }, - h = function (t) { - var e = d('hex', t); - (e.create = function (e) { - return new g(e, t); - }), - (e.update = function (t, n) { - return e.create(t).update(n); - }); - for (var n = 0; n < s.length; ++n) { - var i = s[n]; - e[i] = d(i, t); - } - return e; - }; - function f(t, e) { - e - ? ((u[0] = - u[16] = - u[1] = - u[2] = - u[3] = - u[4] = - u[5] = - u[6] = - u[7] = - u[8] = - u[9] = - u[10] = - u[11] = - u[12] = - u[13] = - u[14] = - u[15] = - 0), - (this.blocks = u)) - : (this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), - t - ? ((this.h0 = 3238371032), - (this.h1 = 914150663), - (this.h2 = 812702999), - (this.h3 = 4144912697), - (this.h4 = 4290775857), - (this.h5 = 1750603025), - (this.h6 = 1694076839), - (this.h7 = 3204075428)) - : ((this.h0 = 1779033703), - (this.h1 = 3144134277), - (this.h2 = 1013904242), - (this.h3 = 2773480762), - (this.h4 = 1359893119), - (this.h5 = 2600822924), - (this.h6 = 528734635), - (this.h7 = 1541459225)), - (this.block = this.start = this.bytes = this.hBytes = 0), - (this.finalized = this.hashed = !1), - (this.first = !0), - (this.is224 = t); - } - function g(t, i, r) { - var a, - o = typeof t; - if ('string' === o) { - var s, - u = [], - c = t.length, - l = 0; - for (a = 0; a < c; ++a) - (s = t.charCodeAt(a)) < 128 - ? (u[l++] = s) - : s < 2048 - ? ((u[l++] = 192 | (s >> 6)), (u[l++] = 128 | (63 & s))) - : s < 55296 || s >= 57344 - ? ((u[l++] = 224 | (s >> 12)), - (u[l++] = 128 | ((s >> 6) & 63)), - (u[l++] = 128 | (63 & s))) - : ((s = 65536 + (((1023 & s) << 10) | (1023 & t.charCodeAt(++a)))), - (u[l++] = 240 | (s >> 18)), - (u[l++] = 128 | ((s >> 12) & 63)), - (u[l++] = 128 | ((s >> 6) & 63)), - (u[l++] = 128 | (63 & s))); - t = u; - } else { - if ('object' !== o) throw new Error(e); - if (null === t) throw new Error(e); - if (n && t.constructor === ArrayBuffer) t = new Uint8Array(t); - else if (!(Array.isArray(t) || (n && ArrayBuffer.isView(t)))) throw new Error(e); - } - t.length > 64 && (t = new f(i, !0).update(t).array()); - var d = [], - h = []; - for (a = 0; a < 64; ++a) { - var g = t[a] || 0; - (d[a] = 92 ^ g), (h[a] = 54 ^ g); - } - f.call(this, i, r), - this.update(h), - (this.oKeyPad = d), - (this.inner = !0), - (this.sharedMemory = r); - } - (f.prototype.update = function (t) { - if (!this.finalized) { - var i, - r = typeof t; - if ('string' !== r) { - if ('object' !== r) throw new Error(e); - if (null === t) throw new Error(e); - if (n && t.constructor === ArrayBuffer) t = new Uint8Array(t); - else if (!(Array.isArray(t) || (n && ArrayBuffer.isView(t)))) throw new Error(e); - i = !0; - } - for (var o, s, u = 0, c = t.length, l = this.blocks; u < c; ) { - if ( - (this.hashed && - ((this.hashed = !1), - (l[0] = this.block), - (l[16] = - l[1] = - l[2] = - l[3] = - l[4] = - l[5] = - l[6] = - l[7] = - l[8] = - l[9] = - l[10] = - l[11] = - l[12] = - l[13] = - l[14] = - l[15] = - 0)), - i) - ) - for (s = this.start; u < c && s < 64; ++u) l[s >> 2] |= t[u] << a[3 & s++]; - else - for (s = this.start; u < c && s < 64; ++u) - (o = t.charCodeAt(u)) < 128 - ? (l[s >> 2] |= o << a[3 & s++]) - : o < 2048 - ? ((l[s >> 2] |= (192 | (o >> 6)) << a[3 & s++]), - (l[s >> 2] |= (128 | (63 & o)) << a[3 & s++])) - : o < 55296 || o >= 57344 - ? ((l[s >> 2] |= (224 | (o >> 12)) << a[3 & s++]), - (l[s >> 2] |= (128 | ((o >> 6) & 63)) << a[3 & s++]), - (l[s >> 2] |= (128 | (63 & o)) << a[3 & s++])) - : ((o = 65536 + (((1023 & o) << 10) | (1023 & t.charCodeAt(++u)))), - (l[s >> 2] |= (240 | (o >> 18)) << a[3 & s++]), - (l[s >> 2] |= (128 | ((o >> 12) & 63)) << a[3 & s++]), - (l[s >> 2] |= (128 | ((o >> 6) & 63)) << a[3 & s++]), - (l[s >> 2] |= (128 | (63 & o)) << a[3 & s++])); - (this.lastByteIndex = s), - (this.bytes += s - this.start), - s >= 64 - ? ((this.block = l[16]), (this.start = s - 64), this.hash(), (this.hashed = !0)) - : (this.start = s); - } - return ( - this.bytes > 4294967295 && - ((this.hBytes += (this.bytes / 4294967296) << 0), - (this.bytes = this.bytes % 4294967296)), - this - ); - } - }), - (f.prototype.finalize = function () { - if (!this.finalized) { - this.finalized = !0; - var t = this.blocks, - e = this.lastByteIndex; - (t[16] = this.block), - (t[e >> 2] |= r[3 & e]), - (this.block = t[16]), - e >= 56 && - (this.hashed || this.hash(), - (t[0] = this.block), - (t[16] = - t[1] = - t[2] = - t[3] = - t[4] = - t[5] = - t[6] = - t[7] = - t[8] = - t[9] = - t[10] = - t[11] = - t[12] = - t[13] = - t[14] = - t[15] = - 0)), - (t[14] = (this.hBytes << 3) | (this.bytes >>> 29)), - (t[15] = this.bytes << 3), - this.hash(); - } - }), - (f.prototype.hash = function () { - var t, - e, - n, - i, - r, - a, - s, - u, - c, - l = this.h0, - d = this.h1, - h = this.h2, - f = this.h3, - g = this.h4, - p = this.h5, - v = this.h6, - _ = this.h7, - m = this.blocks; - for (t = 16; t < 64; ++t) - (e = (((r = m[t - 15]) >>> 7) | (r << 25)) ^ ((r >>> 18) | (r << 14)) ^ (r >>> 3)), - (n = (((r = m[t - 2]) >>> 17) | (r << 15)) ^ ((r >>> 19) | (r << 13)) ^ (r >>> 10)), - (m[t] = (m[t - 16] + e + m[t - 7] + n) << 0); - for (c = d & h, t = 0; t < 64; t += 4) - this.first - ? (this.is224 - ? ((a = 300032), - (_ = ((r = m[0] - 1413257819) - 150054599) << 0), - (f = (r + 24177077) << 0)) - : ((a = 704751109), - (_ = ((r = m[0] - 210244248) - 1521486534) << 0), - (f = (r + 143694565) << 0)), - (this.first = !1)) - : ((e = - ((l >>> 2) | (l << 30)) ^ ((l >>> 13) | (l << 19)) ^ ((l >>> 22) | (l << 10))), - (i = (a = l & d) ^ (l & h) ^ c), - (_ = - (f + - (r = - _ + - (n = - ((g >>> 6) | (g << 26)) ^ - ((g >>> 11) | (g << 21)) ^ - ((g >>> 25) | (g << 7))) + - ((g & p) ^ (~g & v)) + - o[t] + - m[t])) << - 0), - (f = (r + (e + i)) << 0)), - (e = ((f >>> 2) | (f << 30)) ^ ((f >>> 13) | (f << 19)) ^ ((f >>> 22) | (f << 10))), - (i = (s = f & l) ^ (f & d) ^ a), - (v = - (h + - (r = - v + - (n = - ((_ >>> 6) | (_ << 26)) ^ - ((_ >>> 11) | (_ << 21)) ^ - ((_ >>> 25) | (_ << 7))) + - ((_ & g) ^ (~_ & p)) + - o[t + 1] + - m[t + 1])) << - 0), - (e = - (((h = (r + (e + i)) << 0) >>> 2) | (h << 30)) ^ - ((h >>> 13) | (h << 19)) ^ - ((h >>> 22) | (h << 10))), - (i = (u = h & f) ^ (h & l) ^ s), - (p = - (d + - (r = - p + - (n = - ((v >>> 6) | (v << 26)) ^ - ((v >>> 11) | (v << 21)) ^ - ((v >>> 25) | (v << 7))) + - ((v & _) ^ (~v & g)) + - o[t + 2] + - m[t + 2])) << - 0), - (e = - (((d = (r + (e + i)) << 0) >>> 2) | (d << 30)) ^ - ((d >>> 13) | (d << 19)) ^ - ((d >>> 22) | (d << 10))), - (i = (c = d & h) ^ (d & f) ^ u), - (g = - (l + - (r = - g + - (n = - ((p >>> 6) | (p << 26)) ^ - ((p >>> 11) | (p << 21)) ^ - ((p >>> 25) | (p << 7))) + - ((p & v) ^ (~p & _)) + - o[t + 3] + - m[t + 3])) << - 0), - (l = (r + (e + i)) << 0); - (this.h0 = (this.h0 + l) << 0), - (this.h1 = (this.h1 + d) << 0), - (this.h2 = (this.h2 + h) << 0), - (this.h3 = (this.h3 + f) << 0), - (this.h4 = (this.h4 + g) << 0), - (this.h5 = (this.h5 + p) << 0), - (this.h6 = (this.h6 + v) << 0), - (this.h7 = (this.h7 + _) << 0); - }), - (f.prototype.hex = function () { - this.finalize(); - var t = this.h0, - e = this.h1, - n = this.h2, - r = this.h3, - a = this.h4, - o = this.h5, - s = this.h6, - u = this.h7, - c = - i[(t >> 28) & 15] + - i[(t >> 24) & 15] + - i[(t >> 20) & 15] + - i[(t >> 16) & 15] + - i[(t >> 12) & 15] + - i[(t >> 8) & 15] + - i[(t >> 4) & 15] + - i[15 & t] + - i[(e >> 28) & 15] + - i[(e >> 24) & 15] + - i[(e >> 20) & 15] + - i[(e >> 16) & 15] + - i[(e >> 12) & 15] + - i[(e >> 8) & 15] + - i[(e >> 4) & 15] + - i[15 & e] + - i[(n >> 28) & 15] + - i[(n >> 24) & 15] + - i[(n >> 20) & 15] + - i[(n >> 16) & 15] + - i[(n >> 12) & 15] + - i[(n >> 8) & 15] + - i[(n >> 4) & 15] + - i[15 & n] + - i[(r >> 28) & 15] + - i[(r >> 24) & 15] + - i[(r >> 20) & 15] + - i[(r >> 16) & 15] + - i[(r >> 12) & 15] + - i[(r >> 8) & 15] + - i[(r >> 4) & 15] + - i[15 & r] + - i[(a >> 28) & 15] + - i[(a >> 24) & 15] + - i[(a >> 20) & 15] + - i[(a >> 16) & 15] + - i[(a >> 12) & 15] + - i[(a >> 8) & 15] + - i[(a >> 4) & 15] + - i[15 & a] + - i[(o >> 28) & 15] + - i[(o >> 24) & 15] + - i[(o >> 20) & 15] + - i[(o >> 16) & 15] + - i[(o >> 12) & 15] + - i[(o >> 8) & 15] + - i[(o >> 4) & 15] + - i[15 & o] + - i[(s >> 28) & 15] + - i[(s >> 24) & 15] + - i[(s >> 20) & 15] + - i[(s >> 16) & 15] + - i[(s >> 12) & 15] + - i[(s >> 8) & 15] + - i[(s >> 4) & 15] + - i[15 & s]; - return ( - this.is224 || - (c += - i[(u >> 28) & 15] + - i[(u >> 24) & 15] + - i[(u >> 20) & 15] + - i[(u >> 16) & 15] + - i[(u >> 12) & 15] + - i[(u >> 8) & 15] + - i[(u >> 4) & 15] + - i[15 & u]), - c - ); - }), - (f.prototype.toString = f.prototype.hex), - (f.prototype.digest = function () { - this.finalize(); - var t = this.h0, - e = this.h1, - n = this.h2, - i = this.h3, - r = this.h4, - a = this.h5, - o = this.h6, - s = this.h7, - u = [ - (t >> 24) & 255, - (t >> 16) & 255, - (t >> 8) & 255, - 255 & t, - (e >> 24) & 255, - (e >> 16) & 255, - (e >> 8) & 255, - 255 & e, - (n >> 24) & 255, - (n >> 16) & 255, - (n >> 8) & 255, - 255 & n, - (i >> 24) & 255, - (i >> 16) & 255, - (i >> 8) & 255, - 255 & i, - (r >> 24) & 255, - (r >> 16) & 255, - (r >> 8) & 255, - 255 & r, - (a >> 24) & 255, - (a >> 16) & 255, - (a >> 8) & 255, - 255 & a, - (o >> 24) & 255, - (o >> 16) & 255, - (o >> 8) & 255, - 255 & o, - ]; - return this.is224 || u.push((s >> 24) & 255, (s >> 16) & 255, (s >> 8) & 255, 255 & s), u; - }), - (f.prototype.array = f.prototype.digest), - (f.prototype.arrayBuffer = function () { - this.finalize(); - var t = new ArrayBuffer(this.is224 ? 28 : 32), - e = new DataView(t); - return ( - e.setUint32(0, this.h0), - e.setUint32(4, this.h1), - e.setUint32(8, this.h2), - e.setUint32(12, this.h3), - e.setUint32(16, this.h4), - e.setUint32(20, this.h5), - e.setUint32(24, this.h6), - this.is224 || e.setUint32(28, this.h7), - t - ); - }), - (g.prototype = new f()), - (g.prototype.finalize = function () { - if ((f.prototype.finalize.call(this), this.inner)) { - this.inner = !1; - var t = this.array(); - f.call(this, this.is224, this.sharedMemory), - this.update(this.oKeyPad), - this.update(t), - f.prototype.finalize.call(this); - } - }); - var p = l(); - (p.sha256 = p), - (p.sha224 = l(!0)), - (p.sha256.hmac = h()), - (p.sha224.hmac = h(!0)), - (t.sha256 = p.sha256), - (t.sha224 = p.sha224); - })(_POSignalsEntities || (_POSignalsEntities = {})), - ((_POSignalsEntities || (_POSignalsEntities = {})).FingerprintJS = (function (t) { - 'use strict'; - function e(t, e) { - (t = [t[0] >>> 16, 65535 & t[0], t[1] >>> 16, 65535 & t[1]]), - (e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]]); - var n = [0, 0, 0, 0]; - return ( - (n[3] += t[3] + e[3]), - (n[2] += n[3] >>> 16), - (n[3] &= 65535), - (n[2] += t[2] + e[2]), - (n[1] += n[2] >>> 16), - (n[2] &= 65535), - (n[1] += t[1] + e[1]), - (n[0] += n[1] >>> 16), - (n[1] &= 65535), - (n[0] += t[0] + e[0]), - (n[0] &= 65535), - [(n[0] << 16) | n[1], (n[2] << 16) | n[3]] - ); - } - function n(t, e) { - (t = [t[0] >>> 16, 65535 & t[0], t[1] >>> 16, 65535 & t[1]]), - (e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]]); - var n = [0, 0, 0, 0]; - return ( - (n[3] += t[3] * e[3]), - (n[2] += n[3] >>> 16), - (n[3] &= 65535), - (n[2] += t[2] * e[3]), - (n[1] += n[2] >>> 16), - (n[2] &= 65535), - (n[2] += t[3] * e[2]), - (n[1] += n[2] >>> 16), - (n[2] &= 65535), - (n[1] += t[1] * e[3]), - (n[0] += n[1] >>> 16), - (n[1] &= 65535), - (n[1] += t[2] * e[2]), - (n[0] += n[1] >>> 16), - (n[1] &= 65535), - (n[1] += t[3] * e[1]), - (n[0] += n[1] >>> 16), - (n[1] &= 65535), - (n[0] += t[0] * e[3] + t[1] * e[2] + t[2] * e[1] + t[3] * e[0]), - (n[0] &= 65535), - [(n[0] << 16) | n[1], (n[2] << 16) | n[3]] - ); - } - function i(t, e) { - return 32 == (e %= 64) - ? [t[1], t[0]] - : e < 32 - ? [(t[0] << e) | (t[1] >>> (32 - e)), (t[1] << e) | (t[0] >>> (32 - e))] - : ((e -= 32), [(t[1] << e) | (t[0] >>> (32 - e)), (t[0] << e) | (t[1] >>> (32 - e))]); - } - function r(t, e) { - return 0 == (e %= 64) - ? t - : e < 32 - ? [(t[0] << e) | (t[1] >>> (32 - e)), t[1] << e] - : [t[1] << (e - 32), 0]; - } - function a(t, e) { - return [t[0] ^ e[0], t[1] ^ e[1]]; - } - function o(t) { - return (t = a( - (t = n( - (t = a((t = n((t = a(t, [0, t[0] >>> 1])), [4283543511, 3981806797])), [ - 0, - t[0] >>> 1, - ])), - [3301882366, 444984403], - )), - [0, t[0] >>> 1], - )); - } - function s(t, s) { - (t = t || ''), (s = s || 0); - var u, - c = t.length % 16, - l = t.length - c, - d = [0, s], - h = [0, s], - f = [0, 0], - g = [0, 0], - p = [2277735313, 289559509], - v = [1291169091, 658871167]; - for (u = 0; u < l; u += 16) - (f = [ - (255 & t.charCodeAt(u + 4)) | - ((255 & t.charCodeAt(u + 5)) << 8) | - ((255 & t.charCodeAt(u + 6)) << 16) | - ((255 & t.charCodeAt(u + 7)) << 24), - (255 & t.charCodeAt(u)) | - ((255 & t.charCodeAt(u + 1)) << 8) | - ((255 & t.charCodeAt(u + 2)) << 16) | - ((255 & t.charCodeAt(u + 3)) << 24), - ]), - (g = [ - (255 & t.charCodeAt(u + 12)) | - ((255 & t.charCodeAt(u + 13)) << 8) | - ((255 & t.charCodeAt(u + 14)) << 16) | - ((255 & t.charCodeAt(u + 15)) << 24), - (255 & t.charCodeAt(u + 8)) | - ((255 & t.charCodeAt(u + 9)) << 8) | - ((255 & t.charCodeAt(u + 10)) << 16) | - ((255 & t.charCodeAt(u + 11)) << 24), - ]), - (d = e( - n( - (d = e((d = i((d = a(d, (f = n((f = i((f = n(f, p)), 31)), v)))), 27)), h)), - [0, 5], - ), - [0, 1390208809], - )), - (h = e( - n( - (h = e((h = i((h = a(h, (g = n((g = i((g = n(g, v)), 33)), p)))), 31)), d)), - [0, 5], - ), - [0, 944331445], - )); - switch (((f = [0, 0]), (g = [0, 0]), c)) { - case 15: - g = a(g, r([0, t.charCodeAt(u + 14)], 48)); - case 14: - g = a(g, r([0, t.charCodeAt(u + 13)], 40)); - case 13: - g = a(g, r([0, t.charCodeAt(u + 12)], 32)); - case 12: - g = a(g, r([0, t.charCodeAt(u + 11)], 24)); - case 11: - g = a(g, r([0, t.charCodeAt(u + 10)], 16)); - case 10: - g = a(g, r([0, t.charCodeAt(u + 9)], 8)); - case 9: - h = a(h, (g = n((g = i((g = n((g = a(g, [0, t.charCodeAt(u + 8)])), v)), 33)), p))); - case 8: - f = a(f, r([0, t.charCodeAt(u + 7)], 56)); - case 7: - f = a(f, r([0, t.charCodeAt(u + 6)], 48)); - case 6: - f = a(f, r([0, t.charCodeAt(u + 5)], 40)); - case 5: - f = a(f, r([0, t.charCodeAt(u + 4)], 32)); - case 4: - f = a(f, r([0, t.charCodeAt(u + 3)], 24)); - case 3: - f = a(f, r([0, t.charCodeAt(u + 2)], 16)); - case 2: - f = a(f, r([0, t.charCodeAt(u + 1)], 8)); - case 1: - d = a(d, (f = n((f = i((f = n((f = a(f, [0, t.charCodeAt(u)])), p)), 31)), v))); - } - return ( - (d = a(d, [0, t.length])), - (h = e((h = a(h, [0, t.length])), (d = e(d, h)))), - (d = o(d)), - (h = e((h = o(h)), (d = e(d, h)))), - ('00000000' + (d[0] >>> 0).toString(16)).slice(-8) + - ('00000000' + (d[1] >>> 0).toString(16)).slice(-8) + - ('00000000' + (h[0] >>> 0).toString(16)).slice(-8) + - ('00000000' + (h[1] >>> 0).toString(16)).slice(-8) - ); - } - var u = function () { - return (u = - Object.assign || - function (t) { - for (var e, n = 1, i = arguments.length; n < i; n++) - for (var r in (e = arguments[n])) - Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); - return t; - }).apply(this, arguments); - }; - function c(t, e, n, i) { - return new (n || (n = Promise))(function (r, a) { - function o(t) { - try { - u(i.next(t)); - } catch (t) { - a(t); - } - } - function s(t) { - try { - u(i.throw(t)); - } catch (t) { - a(t); - } - } - function u(t) { - var e; - t.done - ? r(t.value) - : ((e = t.value), - e instanceof n - ? e - : new n(function (t) { - t(e); - })).then(o, s); - } - u((i = i.apply(t, e || [])).next()); - }); - } - function l(t, e) { - var n, - i, - r, - a, - o = { - label: 0, - sent: function () { - if (1 & r[0]) throw r[1]; - return r[1]; - }, - trys: [], - ops: [], - }; - return ( - (a = { next: s(0), throw: s(1), return: s(2) }), - 'function' == typeof Symbol && - (a[Symbol.iterator] = function () { - return this; - }), - a - ); - function s(a) { - return function (s) { - return (function (a) { - if (n) throw new TypeError('Generator is already executing.'); - for (; o; ) - try { - if ( - ((n = 1), - i && - (r = - 2 & a[0] - ? i.return - : a[0] - ? i.throw || ((r = i.return) && r.call(i), 0) - : i.next) && - !(r = r.call(i, a[1])).done) - ) - return r; - switch (((i = 0), r && (a = [2 & a[0], r.value]), a[0])) { - case 0: - case 1: - r = a; - break; - case 4: - return o.label++, { value: a[1], done: !1 }; - case 5: - o.label++, (i = a[1]), (a = [0]); - continue; - case 7: - (a = o.ops.pop()), o.trys.pop(); - continue; - default: - if ( - !(r = (r = o.trys).length > 0 && r[r.length - 1]) && - (6 === a[0] || 2 === a[0]) - ) { - o = 0; - continue; - } - if (3 === a[0] && (!r || (a[1] > r[0] && a[1] < r[3]))) { - o.label = a[1]; - break; - } - if (6 === a[0] && o.label < r[1]) { - (o.label = r[1]), (r = a); - break; - } - if (r && o.label < r[2]) { - (o.label = r[2]), o.ops.push(a); - break; - } - r[2] && o.ops.pop(), o.trys.pop(); - continue; - } - a = e.call(t, o); - } catch (t) { - (a = [6, t]), (i = 0); - } finally { - n = r = 0; - } - if (5 & a[0]) throw a[1]; - return { value: a[0] ? a[1] : void 0, done: !0 }; - })([a, s]); - }; - } - } - var d = window; - function h(t) { - return parseInt(t); - } - function f(t) { - return parseFloat(t); - } - function g(t) { - return t.reduce(function (t, e) { - return t + (e ? 1 : 0); - }, 0); - } - var p = window, - v = navigator, - _ = document; - function m() { - return ( - g([ - 'MSCSSMatrix' in p, - 'msSetImmediate' in p, - 'msIndexedDB' in p, - 'msMaxTouchPoints' in v, - 'msPointerEnabled' in v, - ]) >= 4 - ); - } - function y() { - return ( - g(['msWriteProfilerMark' in p, 'MSStream' in p, 'msLaunchUri' in v, 'msSaveBlob' in v]) >= - 3 && !m() - ); - } - function b() { - return ( - g([ - 'webkitPersistentStorage' in v, - 'webkitTemporaryStorage' in v, - 0 === v.vendor.indexOf('Google'), - 'webkitResolveLocalFileSystemURL' in p, - 'BatteryManager' in p, - 'webkitMediaStream' in p, - 'webkitSpeechGrammar' in p, - ]) >= 5 - ); - } - function E() { - return ( - g([ - 'ApplePayError' in p, - 'CSSPrimitiveValue' in p, - 'Counter' in p, - 0 === v.vendor.indexOf('Apple'), - 'getStorageUpdates' in v, - 'WebKitMediaKeys' in p, - ]) >= 4 - ); - } - function w() { - return ( - g([ - 'safari' in p, - !('DeviceMotionEvent' in p), - !('ongestureend' in p), - !('standalone' in v), - ]) >= 3 - ); - } - var S = window, - A = document; - function O(t, e, n) { - (function (t) { - return t && 'function' == typeof t.setValueAtTime; - })(e) && e.setValueAtTime(n, t.currentTime); - } - function P(t) { - var e = new Error(t); - return (e.name = t), e; - } - var T = document, - I = 'mmMwWLliI0O&1', - D = ['monospace', 'sans-serif', 'serif'], - C = [ - 'sans-serif-thin', - 'ARNO PRO', - 'Agency FB', - 'Arabic Typesetting', - 'Arial Unicode MS', - 'AvantGarde Bk BT', - 'BankGothic Md BT', - 'Batang', - 'Bitstream Vera Sans Mono', - 'Calibri', - 'Century', - 'Century Gothic', - 'Clarendon', - 'EUROSTILE', - 'Franklin Gothic', - 'Futura Bk BT', - 'Futura Md BT', - 'GOTHAM', - 'Gill Sans', - 'HELV', - 'Haettenschweiler', - 'Helvetica Neue', - 'Humanst521 BT', - 'Leelawadee', - 'Letter Gothic', - 'Levenim MT', - 'Lucida Bright', - 'Lucida Sans', - 'Menlo', - 'MS Mincho', - 'MS Outlook', - 'MS Reference Specialty', - 'MS UI Gothic', - 'MT Extra', - 'MYRIAD PRO', - 'Marlett', - 'Meiryo UI', - 'Microsoft Uighur', - 'Minion Pro', - 'Monotype Corsiva', - 'PMingLiU', - 'Pristina', - 'SCRIPTINA', - 'Segoe UI Light', - 'Serifa', - 'SimHei', - 'Small Fonts', - 'Staccato222 BT', - 'TRAJAN PRO', - 'Univers CE 55 Medium', - 'Vrinda', - 'ZWAdobeF', - ], - M = { - fontStyle: 'normal', - fontWeight: 'normal', - letterSpacing: 'normal', - lineBreak: 'auto', - lineHeight: 'normal', - textTransform: 'none', - textAlign: 'left', - textDecoration: 'none', - textShadow: 'none', - whiteSpace: 'normal', - wordBreak: 'normal', - wordSpacing: 'normal', - position: 'absolute', - left: '-9999px', - fontSize: '48px', - }, - L = navigator, - U = window, - k = navigator, - x = window, - R = window, - N = window, - B = document, - H = { - osCpu: function () { - return navigator.oscpu; - }, - languages: function () { - var t = [], - e = k.language || k.userLanguage || k.browserLanguage || k.systemLanguage; - if ((void 0 !== e && t.push([e]), Array.isArray(k.languages))) - (b() && - g([ - !('MediaSettingsRange' in p), - 'RTCEncodedAudioFrame' in p, - '' + p.Intl == '[object Intl]', - '' + p.Reflect == '[object Reflect]', - ]) >= 3) || - t.push(k.languages); - else if ('string' == typeof k.languages) { - var n = k.languages; - n && t.push(n.split(',')); - } - return t; - }, - colorDepth: function () { - return window.screen.colorDepth; - }, - deviceMemory: function () { - return ( - (t = f(navigator.deviceMemory)), - (e = void 0), - 'number' == typeof t && isNaN(t) ? e : t - ); - var t, e; - }, - screenResolution: function () { - var t = [h(x.screen.width), h(x.screen.height)]; - return t.sort().reverse(), t; - }, - availableScreenResolution: function () { - if (R.screen.availWidth && R.screen.availHeight) { - var t = [h(R.screen.availWidth), h(R.screen.availHeight)]; - return t.sort().reverse(), t; - } - }, - hardwareConcurrency: function () { - try { - var t = h(navigator.hardwareConcurrency); - return isNaN(t) ? 1 : t; - } catch (t) { - return 1; - } - }, - timezoneOffset: function () { - var t = new Date().getFullYear(); - return Math.max( - f(new Date(t, 0, 1).getTimezoneOffset()), - f(new Date(t, 6, 1).getTimezoneOffset()), - ); - }, - timezone: function () { - var t; - if (null === (t = N.Intl) || void 0 === t ? void 0 : t.DateTimeFormat) - return new N.Intl.DateTimeFormat().resolvedOptions().timeZone; - }, - sessionStorage: function () { - try { - return !!window.sessionStorage; - } catch (t) { - return !0; - } - }, - localStorage: function () { - try { - return !!window.localStorage; - } catch (t) { - return !0; - } - }, - indexedDB: function () { - if (!m() && !y()) - try { - return !!window.indexedDB; - } catch (t) { - return !0; - } - }, - openDatabase: function () { - return !!window.openDatabase; - }, - cpuClass: function () { - return navigator.cpuClass; - }, - platform: function () { - return navigator.platform; - }, - plugins: function () { - if (m()) return []; - if (navigator.plugins) { - for (var t = [], e = 0; e < navigator.plugins.length; ++e) { - var n = navigator.plugins[e]; - if (n) { - for (var i = [], r = 0; r < n.length; ++r) { - var a = n[r]; - i.push({ type: a.type, suffixes: a.suffixes }); - } - t.push({ name: n.name, description: n.description, mimeTypes: i }); - } - } - return t; - } - }, - canvas: function () { - var t = (function () { - var t = document.createElement('canvas'); - return ( - (t.width = 240), - (t.height = 140), - (t.style.display = 'inline'), - [t, t.getContext('2d')] - ); - })(), - e = t[0], - n = t[1]; - if ( - !(function (t, e) { - return !(!e || !t.toDataURL); - })(e, n) - ) - return { winding: !1, data: '' }; - n.rect(0, 0, 10, 10), n.rect(2, 2, 6, 6); - var i = !n.isPointInPath(5, 5, 'evenodd'); - return ( - (n.textBaseline = 'alphabetic'), - (n.fillStyle = '#f60'), - n.fillRect(125, 1, 62, 20), - (n.fillStyle = '#069'), - (n.font = '11pt no-real-font-123'), - n.fillText('Cwm fjordbank 😃 gly', 2, 15), - (n.fillStyle = 'rgba(102, 204, 0, 0.2)'), - (n.font = '18pt Arial'), - n.fillText('Cwm fjordbank 😃 gly', 4, 45), - (n.globalCompositeOperation = 'multiply'), - (n.fillStyle = 'rgb(255,0,255)'), - n.beginPath(), - n.arc(50, 50, 50, 0, 2 * Math.PI, !0), - n.closePath(), - n.fill(), - (n.fillStyle = 'rgb(0,255,255)'), - n.beginPath(), - n.arc(100, 50, 50, 0, 2 * Math.PI, !0), - n.closePath(), - n.fill(), - (n.fillStyle = 'rgb(255,255,0)'), - n.beginPath(), - n.arc(75, 100, 50, 0, 2 * Math.PI, !0), - n.closePath(), - n.fill(), - (n.fillStyle = 'rgb(255,0,255)'), - n.arc(75, 75, 75, 0, 2 * Math.PI, !0), - n.arc(75, 75, 25, 0, 2 * Math.PI, !0), - n.fill('evenodd'), - { - winding: i, - data: (function (t) { - return t.toDataURL(); - })(e), - } - ); - }, - touchSupport: function () { - var t, - e = 0; - void 0 !== L.maxTouchPoints - ? (e = h(L.maxTouchPoints)) - : void 0 !== L.msMaxTouchPoints && (e = L.msMaxTouchPoints); - try { - document.createEvent('TouchEvent'), (t = !0); - } catch (e) { - t = !1; - } - return { maxTouchPoints: e, touchEvent: t, touchStart: 'ontouchstart' in U }; - }, - fonts: function () { - var t = T.body, - e = T.createElement('div'), - n = T.createElement('div'), - i = {}, - r = {}, - a = function () { - var t = T.createElement('span'); - t.textContent = I; - for (var e = 0, n = Object.keys(M); e < n.length; e++) { - var i = n[e]; - t.style[i] = M[i]; - } - return t; - }, - o = function (t) { - return D.some(function (e, n) { - return t[n].offsetWidth !== i[e] || t[n].offsetHeight !== r[e]; - }); - }, - s = D.map(function (t) { - var n = a(); - return (n.style.fontFamily = t), e.appendChild(n), n; - }); - t.appendChild(e); - for (var u = 0, c = D.length; u < c; u++) - (i[D[u]] = s[u].offsetWidth), (r[D[u]] = s[u].offsetHeight); - var l = (function () { - for ( - var t = {}, - e = function (e) { - t[e] = D.map(function (t) { - var i = (function (t, e) { - var n = a(); - return (n.style.fontFamily = "'" + t + "'," + e), n; - })(e, t); - return n.appendChild(i), i; - }); - }, - i = 0, - r = C; - i < r.length; - i++ - ) - e(r[i]); - return t; - })(); - t.appendChild(n); - for (var d = [], h = 0, f = C.length; h < f; h++) o(l[C[h]]) && d.push(C[h]); - return t.removeChild(n), t.removeChild(e), d; - }, - audio: function () { - return c(this, void 0, void 0, function () { - var t, e, n, i, r, a; - return l(this, function (o) { - switch (o.label) { - case 0: - if (!(t = S.OfflineAudioContext || S.webkitOfflineAudioContext)) return [2, -2]; - if ( - E() && - !w() && - !( - g([ - 'DOMRectList' in p, - 'RTCPeerConnectionIceEvent' in p, - 'SVGGeometryElement' in p, - 'ontransitioncancel' in p, - ]) >= 3 - ) - ) - return [2, -1]; - (e = new t(1, 44100, 44100)), - ((n = e.createOscillator()).type = 'triangle'), - O(e, n.frequency, 1e4), - (i = e.createDynamicsCompressor()), - O(e, i.threshold, -50), - O(e, i.knee, 40), - O(e, i.ratio, 12), - O(e, i.reduction, -20), - O(e, i.attack, 0), - O(e, i.release, 0.25), - n.connect(i), - i.connect(e.destination), - n.start(0), - (o.label = 1); - case 1: - return ( - o.trys.push([1, 3, 4, 5]), - [ - 4, - (function (t) { - return new Promise(function (e, n) { - t.oncomplete = function (t) { - return e(t.renderedBuffer); - }; - var i = 3, - r = function () { - switch ((t.startRendering(), t.state)) { - case 'running': - setTimeout(function () { - return n(P('timeout')); - }, 1e3); - break; - case 'suspended': - A.hidden || i--, i > 0 ? setTimeout(r, 500) : n(P('suspended')); - } - }; - r(); - }); - })(e), - ] - ); - case 2: - return (r = o.sent()), [3, 5]; - case 3: - if ('timeout' === (a = o.sent()).name || 'suspended' === a.name) return [2, -3]; - throw a; - case 4: - return n.disconnect(), i.disconnect(), [7]; - case 5: - return [ - 2, - (function (t) { - for (var e = 0, n = 4500; n < 5e3; ++n) e += Math.abs(t[n]); - return e; - })(r.getChannelData(0)), - ]; - } - }); - }); - }, - pluginsSupport: function () { - return void 0 !== navigator.plugins; - }, - productSub: function () { - return navigator.productSub; - }, - emptyEvalLength: function () { - return eval.toString().length; - }, - errorFF: function () { - try { - throw 'a'; - } catch (t) { - try { - return t.toSource(), !0; - } catch (t) { - return !1; - } - } - }, - vendor: function () { - return navigator.vendor; - }, - chrome: function () { - return void 0 !== window.chrome; - }, - cookiesEnabled: function () { - try { - B.cookie = 'cookietest=1; SameSite=Strict;'; - var t = -1 !== B.cookie.indexOf('cookietest='); - return ( - (B.cookie = 'cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT'), - t - ); - } catch (t) { - return !1; - } - }, - }; - function F(t, e, n) { - return c(this, void 0, void 0, function () { - var i, r, a, o, s, c, d, h, f; - return l(this, function (l) { - switch (l.label) { - case 0: - (i = Date.now()), (r = {}), (a = 0), (o = Object.keys(t)), (l.label = 1); - case 1: - if (!(a < o.length)) return [3, 7]; - if ( - ((s = o[a]), - (function (t, e) { - for (var n = 0, i = t.length; n < i; ++n) if (t[n] === e) return !0; - return !1; - })(n, s)) - ) - return [3, 6]; - (c = void 0), (l.label = 2); - case 2: - return l.trys.push([2, 4, , 5]), (f = {}), [4, t[s](e)]; - case 3: - return (f.value = l.sent()), (c = f), [3, 5]; - case 4: - return ( - (d = l.sent()), - (c = - d && 'object' == typeof d && 'message' in d - ? { error: d } - : { error: { message: d } }), - [3, 5] - ); - case 5: - (h = Date.now()), (r[s] = u(u({}, c), { duration: h - i })), (i = h), (l.label = 6); - case 6: - return a++, [3, 1]; - case 7: - return [2, r]; - } - }); - }); - } - function j(t) { - return JSON.stringify( - t, - function (t, e) { - return e instanceof Error - ? u( - { - name: (n = e).name, - message: n.message, - stack: null === (i = n.stack) || void 0 === i ? void 0 : i.split('\n'), - }, - n, - ) - : e; - var n, i; - }, - 2, - ); - } - function G(t) { - return s( - (function (t) { - for (var e = '', n = 0, i = Object.keys(t); n < i.length; n++) { - var r = i[n], - a = t[r], - o = a.error ? 'error' : JSON.stringify(a.value); - e += (e ? '|' : '') + r.replace(/([:|\\])/g, '\\$1') + ':' + o; - } - return e; - })(t), - ); - } - var V = (function () { - function t() {} - return ( - (t.prototype.get = function (t) { - return ( - void 0 === t && (t = {}), - c(this, void 0, void 0, function () { - var e, n; - return l(this, function (i) { - switch (i.label) { - case 0: - return [4, F(H, void 0, [])]; - case 1: - return ( - (e = i.sent()), - (n = (function (t) { - var e; - return { - components: t, - get visitorId() { - return void 0 === e && (e = G(this.components)), e; - }, - set visitorId(t) { - e = t; - }, - }; - })(e)), - t.debug && - console.log( - 'Copy the text below to get the debug data:\n\n```\nversion: 3.0.5\nuserAgent: ' + - navigator.userAgent + - '\ngetOptions: ' + - JSON.stringify(t, void 0, 2) + - '\nvisitorId: ' + - n.visitorId + - '\ncomponents: ' + - j(e) + - '\n```', - ), - [2, n] - ); - } - }); - }) - ); - }), - t - ); - })(); - function z(t) { - var e = (void 0 === t ? {} : t).delayFallback, - n = void 0 === e ? 50 : e; - return c(this, void 0, void 0, function () { - return l(this, function (t) { - switch (t.label) { - case 0: - return [ - 4, - ((e = n), - (i = 2 * n), - void 0 === i && (i = 1 / 0), - new Promise(function (t) { - d.requestIdleCallback - ? d.requestIdleCallback( - function () { - return t(); - }, - { timeout: i }, - ) - : setTimeout(t, Math.min(e, i)); - })), - ]; - case 1: - return t.sent(), [2, new V()]; - } - var e, i; - }); - }); - } - var K = { load: z, hashComponents: G, componentsToDebugString: j }, - Y = s; - return ( - (t.componentsToDebugString = j), - (t.default = K), - (t.getComponents = F), - (t.hashComponents = G), - (t.isChromium = b), - (t.isDesktopSafari = w), - (t.isEdgeHTML = y), - (t.isGecko = function () { - var t; - return ( - g([ - 'buildID' in v, - (null === (t = _.documentElement) || void 0 === t ? void 0 : t.style) && - 'MozAppearance' in _.documentElement.style, - 'MediaRecorderErrorEvent' in p, - 'mozInnerScreenX' in p, - 'CSSMozDocumentRule' in p, - 'CanvasCaptureMediaStream' in p, - ]) >= 4 - ); - }), - (t.isTrident = m), - (t.isWebKit = E), - (t.load = z), - (t.murmurX64Hash128 = Y), - t - ); - })({})), - (function (t) { - 'use strict'; - var e, - n, - i = function (t, e) { - var n = 'function' == typeof Symbol && t[Symbol.iterator]; - if (!n) return t; - var i, - r, - a = n.call(t), - o = []; - try { - for (; (void 0 === e || e-- > 0) && !(i = a.next()).done; ) o.push(i.value); - } catch (t) { - r = { error: t }; - } finally { - try { - i && !i.done && (n = a.return) && n.call(a); - } finally { - if (r) throw r.error; - } - } - return o; - }, - r = function (t, e, n) { - if (n || 2 === arguments.length) - for (var i, r = 0, a = e.length; r < a; r++) - (!i && r in e) || (i || (i = Array.prototype.slice.call(e, 0, r)), (i[r] = e[r])); - return t.concat(i || Array.prototype.slice.call(e)); - }, - a = new WeakMap(), - o = new WeakMap(), - s = new WeakMap(), - u = new WeakMap(), - c = new WeakMap(), - l = { - get: function (t, e, n) { - if (t instanceof IDBTransaction) { - if ('done' === e) return o.get(t); - if ('objectStoreNames' === e) return t.objectStoreNames || s.get(t); - if ('store' === e) - return n.objectStoreNames[1] ? void 0 : n.objectStore(n.objectStoreNames[0]); - } - return f(t[e]); - }, - set: function (t, e, n) { - return (t[e] = n), !0; - }, - has: function (t, e) { - return (t instanceof IDBTransaction && ('done' === e || 'store' === e)) || e in t; - }, - }; - function d(t) { - return t !== IDBDatabase.prototype.transaction || - 'objectStoreNames' in IDBTransaction.prototype - ? ( - n || - (n = [ - IDBCursor.prototype.advance, - IDBCursor.prototype.continue, - IDBCursor.prototype.continuePrimaryKey, - ]) - ).includes(t) - ? function () { - for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; - return t.apply(g(this), e), f(a.get(this)); - } - : function () { - for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; - return f(t.apply(g(this), e)); - } - : function (e) { - for (var n = [], a = 1; a < arguments.length; a++) n[a - 1] = arguments[a]; - var o = t.call.apply(t, r([g(this), e], i(n), !1)); - return s.set(o, e.sort ? e.sort() : [e]), f(o); - }; - } - function h(t) { - return 'function' == typeof t - ? d(t) - : (t instanceof IDBTransaction && - (function (t) { - if (!o.has(t)) { - var e = new Promise(function (e, n) { - var i = function () { - t.removeEventListener('complete', r), - t.removeEventListener('error', a), - t.removeEventListener('abort', a); - }, - r = function () { - e(), i(); - }, - a = function () { - n(t.error || new DOMException('AbortError', 'AbortError')), i(); - }; - t.addEventListener('complete', r), - t.addEventListener('error', a), - t.addEventListener('abort', a); - }); - o.set(t, e); - } - })(t), - (n = t), - (e || (e = [IDBDatabase, IDBObjectStore, IDBIndex, IDBCursor, IDBTransaction])).some( - function (t) { - return n instanceof t; - }, - ) - ? new Proxy(t, l) - : t); - var n; - } - function f(t) { - if (t instanceof IDBRequest) - return ( - (e = t), - (n = new Promise(function (t, n) { - var i = function () { - e.removeEventListener('success', r), e.removeEventListener('error', a); - }, - r = function () { - t(f(e.result)), i(); - }, - a = function () { - n(e.error), i(); - }; - e.addEventListener('success', r), e.addEventListener('error', a); - })) - .then(function (t) { - t instanceof IDBCursor && a.set(t, e); - }) - .catch(function () {}), - c.set(n, e), - n - ); - var e, n; - if (u.has(t)) return u.get(t); - var i = h(t); - return i !== t && (u.set(t, i), c.set(i, t)), i; - } - var g = function (t) { - return c.get(t); - }, - p = function () { - return (p = - Object.assign || - function (t) { - for (var e, n = 1, i = arguments.length; n < i; n++) - for (var r in (e = arguments[n])) - Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); - return t; - }).apply(this, arguments); - }, - v = function (t, e, n, i) { - return new (n || (n = Promise))(function (r, a) { - function o(t) { - try { - u(i.next(t)); - } catch (t) { - a(t); - } - } - function s(t) { - try { - u(i.throw(t)); - } catch (t) { - a(t); - } - } - function u(t) { - var e; - t.done - ? r(t.value) - : ((e = t.value), - e instanceof n - ? e - : new n(function (t) { - t(e); - })).then(o, s); - } - u((i = i.apply(t, e || [])).next()); - }); - }, - _ = function (t, e) { - var n, - i, - r, - a, - o = { - label: 0, - sent: function () { - if (1 & r[0]) throw r[1]; - return r[1]; - }, - trys: [], - ops: [], - }; - return ( - (a = { next: s(0), throw: s(1), return: s(2) }), - 'function' == typeof Symbol && - (a[Symbol.iterator] = function () { - return this; - }), - a - ); - function s(a) { - return function (s) { - return (function (a) { - if (n) throw new TypeError('Generator is already executing.'); - for (; o; ) - try { - if ( - ((n = 1), - i && - (r = - 2 & a[0] - ? i.return - : a[0] - ? i.throw || ((r = i.return) && r.call(i), 0) - : i.next) && - !(r = r.call(i, a[1])).done) - ) - return r; - switch (((i = 0), r && (a = [2 & a[0], r.value]), a[0])) { - case 0: - case 1: - r = a; - break; - case 4: - return o.label++, { value: a[1], done: !1 }; - case 5: - o.label++, (i = a[1]), (a = [0]); - continue; - case 7: - (a = o.ops.pop()), o.trys.pop(); - continue; - default: - if ( - !( - (r = (r = o.trys).length > 0 && r[r.length - 1]) || - (6 !== a[0] && 2 !== a[0]) - ) - ) { - o = 0; - continue; - } - if (3 === a[0] && (!r || (a[1] > r[0] && a[1] < r[3]))) { - o.label = a[1]; - break; - } - if (6 === a[0] && o.label < r[1]) { - (o.label = r[1]), (r = a); - break; - } - if (r && o.label < r[2]) { - (o.label = r[2]), o.ops.push(a); - break; - } - r[2] && o.ops.pop(), o.trys.pop(); - continue; - } - a = e.call(t, o); - } catch (t) { - (a = [6, t]), (i = 0); - } finally { - n = r = 0; - } - if (5 & a[0]) throw a[1]; - return { value: a[0] ? a[1] : void 0, done: !0 }; - })([a, s]); - }; - } - }, - m = function (t, e) { - var n = 'function' == typeof Symbol && t[Symbol.iterator]; - if (!n) return t; - var i, - r, - a = n.call(t), - o = []; - try { - for (; (void 0 === e || e-- > 0) && !(i = a.next()).done; ) o.push(i.value); - } catch (t) { - r = { error: t }; - } finally { - try { - i && !i.done && (n = a.return) && n.call(a); - } finally { - if (r) throw r.error; - } - } - return o; - }, - y = function (t, e, n) { - if (n || 2 === arguments.length) - for (var i, r = 0, a = e.length; r < a; r++) - (!i && r in e) || (i || (i = Array.prototype.slice.call(e, 0, r)), (i[r] = e[r])); - return t.concat(i || Array.prototype.slice.call(e)); - }, - b = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'], - E = ['put', 'add', 'delete', 'clear'], - w = new Map(); - function S(t, e) { - if (t instanceof IDBDatabase && !(e in t) && 'string' == typeof e) { - if (w.get(e)) return w.get(e); - var n = e.replace(/FromIndex$/, ''), - i = e !== n, - r = E.includes(n); - if (n in (i ? IDBIndex : IDBObjectStore).prototype && (r || b.includes(n))) { - var a = function (t) { - for (var e = [], a = 1; a < arguments.length; a++) e[a - 1] = arguments[a]; - return v(this, void 0, void 0, function () { - var a, o, s; - return _(this, function (u) { - switch (u.label) { - case 0: - return ( - (a = this.transaction(t, r ? 'readwrite' : 'readonly')), - (o = a.store), - i && (o = o.index(e.shift())), - [4, Promise.all([(s = o)[n].apply(s, y([], m(e), !1)), r && a.done])] - ); - case 1: - return [2, u.sent()[0]]; - } - }); - }); - }; - return w.set(e, a), a; - } - } - } - (l = (function (t) { - return p(p({}, t), { - get: function (e, n, i) { - return S(e, n) || t.get(e, n, i); - }, - has: function (e, n) { - return !!S(e, n) || t.has(e, n); - }, - }); - })(l)), - (t.deleteDB = function (t, e) { - var n = (void 0 === e ? {} : e).blocked, - i = indexedDB.deleteDatabase(t); - return ( - n && - i.addEventListener('blocked', function (t) { - return n(t.oldVersion, t); - }), - f(i).then(function () {}) - ); - }), - (t.openDB = function (t, e, n) { - var i = void 0 === n ? {} : n, - r = i.blocked, - a = i.upgrade, - o = i.blocking, - s = i.terminated, - u = indexedDB.open(t, e), - c = f(u); - return ( - a && - u.addEventListener('upgradeneeded', function (t) { - a(f(u.result), t.oldVersion, t.newVersion, f(u.transaction), t); - }), - r && - u.addEventListener('blocked', function (t) { - return r(t.oldVersion, t.newVersion, t); - }), - c - .then(function (t) { - s && - t.addEventListener('close', function () { - return s(); - }), - o && - t.addEventListener('versionchange', function (t) { - return o(t.oldVersion, t.newVersion, t); - }); - }) - .catch(function () {}), - c - ); - }), - (t.unwrap = g), - (t.wrap = f); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - function e(t, n) { - var i; - (n = n || {}), - (this._id = e._generateUUID()), - (this._promise = n.promise || Promise), - (this._frameId = n.frameId || 'CrossStorageClient-' + this._id), - (this._origin = e._getOrigin(t)), - (this._requests = {}), - (this._connected = !1), - (this._closed = !1), - (this._count = 0), - (this._timeout = n.timeout || 5e3), - (this._listener = null), - this._installListener(), - n.frameId && (i = document.getElementById(n.frameId)), - i && this._poll(), - (i = i || this._createFrame(t)), - (this._hub = i.contentWindow); - } - (e.frameStyle = { - width: 0, - height: 0, - border: 'none', - display: 'none', - position: 'absolute', - top: '-999px', - left: '-999px', - }), - (e._getOrigin = function (t) { - var e; - return ( - ((e = document.createElement('a')).href = t), - e.host || (e = window.location), - ( - (e.protocol && ':' !== e.protocol ? e.protocol : window.location.protocol) + - '//' + - e.host - ).replace(/:80$|:443$/, '') - ); - }), - (e._generateUUID = function () { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (t) { - var e = (16 * Math.random()) | 0; - return ('x' == t ? e : (3 & e) | 8).toString(16); - }); - }), - (e.prototype.onConnect = function () { - var t = this; - return this._connected - ? this._promise.resolve() - : this._closed - ? this._promise.reject(new Error('CrossStorageClient has closed')) - : (this._requests.connect || (this._requests.connect = []), - new this._promise(function (e, n) { - var i = setTimeout(function () { - n(new Error('CrossStorageClient could not connect')); - }, t._timeout); - t._requests.connect.push(function (t) { - if ((clearTimeout(i), t)) return n(t); - e(); - }); - })); - }), - (e.prototype.set = function (t, e) { - return this._request('set', { key: t, value: e }); - }), - (e.prototype.getSignedPayload = function (t, e) { - return ( - console.log('sending payload: ', t, ' deviceId: ', e), - this._request('getSignedData', { payload: t, deviceId: e }) - ); - }), - (e.prototype.getDeviceDetails = function (t) { - return this._request('getDeviceDetails', { deviceName: t }); - }), - (e.prototype.setDeviceDetails = function (t, e) { - return this._request('setDeviceDetails', { deviceName: t, deviceId: e }); - }), - (e.prototype.get = function (t) { - var e = Array.prototype.slice.call(arguments); - return this._request('get', { keys: e }); - }), - (e.prototype.del = function () { - var t = Array.prototype.slice.call(arguments); - return this._request('del', { keys: t }); - }), - (e.prototype.clear = function () { - return this._request('clear'); - }), - (e.prototype.getKeys = function () { - return this._request('getKeys'); - }), - (e.prototype.close = function (t) { - const e = this._frameId, - n = this; - this._request('close') - .catch(function (t) {}) - .finally(function () { - try { - var i = document.getElementById(e); - i && !t && i.parentNode.removeChild(i), - window.removeEventListener - ? window.removeEventListener('message', n._listener, !1) - : window.detachEvent('onmessage', n._listener), - (n._connected = !1), - (n._closed = !0); - } catch (t) {} - }); - }), - (e.prototype._installListener = function () { - var t = this; - (this._listener = function (e) { - var n, i, r; - if ( - !t._closed && - e.data && - 'string' == typeof e.data && - ('null' === e.origin ? 'file://' : e.origin) === t._origin - ) - if ('cross-storage:unavailable' !== e.data) { - if (-1 !== e.data.indexOf('cross-storage:') && !t._connected) { - if (((t._connected = !0), !t._requests.connect)) return; - for (n = 0; n < t._requests.connect.length; n++) t._requests.connect[n](i); - delete t._requests.connect; - } - if ('cross-storage:ready' !== e.data) { - try { - r = JSON.parse(e.data); - } catch (t) { - return; - } - r.id && t._requests[r.id] && t._requests[r.id](r.error, r.result); - } - } else { - if ((t._closed || t.close(), !t._requests.connect)) return; - for ( - i = new Error('Closing client. Could not access localStorage in hub.'), n = 0; - n < t._requests.connect.length; - n++ - ) - t._requests.connect[n](i); - } - }), - window.addEventListener - ? window.addEventListener('message', this._listener, !1) - : window.attachEvent('onmessage', this._listener); - }), - (e.prototype._poll = function () { - var t, e, n; - (n = 'file://' === (t = this)._origin ? '*' : t._origin), - (e = setInterval(function () { - if (t._connected) return clearInterval(e); - t._hub && t._hub.postMessage('cross-storage:poll', n); - }, 1e3)); - }), - (e.prototype._createFrame = function (t) { - var n, i; - for (i in (((n = window.document.createElement('iframe')).id = this._frameId), - e.frameStyle)) - e.frameStyle.hasOwnProperty(i) && (n.style[i] = e.frameStyle[i]); - return window.document.body.appendChild(n), (n.src = t), n; - }), - (e.prototype._request = function (t, e) { - var n, i; - return this._closed - ? this._promise.reject(new Error('CrossStorageClient has closed')) - : ((i = this)._count++, - (n = { id: this._id + ':' + i._count, method: 'cross-storage:' + t, params: e }), - new this._promise(function (t, e) { - var r, a, o; - (r = setTimeout(function () { - i._requests[n.id] && - (delete i._requests[n.id], - e(new Error('Timeout: could not perform ' + n.method))); - }, i._timeout)), - (i._requests[n.id] = function (a, o) { - if ((clearTimeout(r), delete i._requests[n.id], a)) return e(new Error(a)); - t(o); - }), - Array.prototype.toJSON && - ((a = Array.prototype.toJSON), (Array.prototype.toJSON = null)), - (o = 'file://' === i._origin ? '*' : i._origin), - i._hub.postMessage(JSON.stringify(n), o), - a && (Array.prototype.toJSON = a); - })); - }), - (t.CrossStorageClient = e); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function () { - 'use strict'; - 'function' != typeof Object.assign && - Object.defineProperty(Object, 'assign', { - value: function (t, e) { - if (null === t || void 0 === t) - throw new TypeError('Cannot convert undefined or null to object'); - for (var n = Object(t), i = 1; i < arguments.length; i++) { - var r = arguments[i]; - if (null !== r && void 0 !== r) - for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (n[a] = r[a]); - } - return n; - }, - writable: !0, - configurable: !0, - }); - })(), - Array.from || - (Array.from = (function () { - var t = Object.prototype.toString, - e = function (e) { - return 'function' == typeof e || '[object Function]' === t.call(e); - }, - n = Math.pow(2, 53) - 1, - i = function (t) { - var e = (function (t) { - var e = Number(t); - return isNaN(e) - ? 0 - : 0 !== e && isFinite(e) - ? (e > 0 ? 1 : -1) * Math.floor(Math.abs(e)) - : e; - })(t); - return Math.min(Math.max(e, 0), n); - }; - return function (t) { - var n = Object(t); - if (null == t) - throw new TypeError('Array.from requires an array-like object - not null or undefined'); - var r, - a = arguments.length > 1 ? arguments[1] : void 0; - if (void 0 !== a) { - if (!e(a)) - throw new TypeError( - 'Array.from: when provided, the second argument must be a function', - ); - arguments.length > 2 && (r = arguments[2]); - } - for ( - var o, s = i(n.length), u = e(this) ? Object(new this(s)) : new Array(s), c = 0; - c < s; - - ) - (o = n[c]), (u[c] = a ? (void 0 === r ? a(o, c) : a.call(r, o, c)) : o), (c += 1); - return (u.length = s), u; - }; - })()), - (function () { - 'use strict'; - String.prototype.endsWith || - (String.prototype.endsWith = function (t, e) { - return ( - (void 0 === e || e > this.length) && (e = this.length), - this.substring(e - t.length, e) === t - ); - }); - })(), - (function () { - 'use strict'; - Promise.allSettled = - Promise.allSettled || - function (t) { - return Promise.all( - t.map(function (t) { - return t - .then(function (t) { - return { status: 'fulfilled', value: t }; - }) - .catch(function (t) { - return { status: 'rejected', reason: t }; - }); - }), - ); - }; - })(), - (function (t, e) { - 'use strict'; - var n = 'model', - i = 'name', - r = 'type', - a = 'vendor', - o = 'version', - s = 'mobile', - u = 'tablet', - c = 'smarttv', - l = function (t) { - for (var e = {}, n = 0; n < t.length; n++) e[t[n].toUpperCase()] = t[n]; - return e; - }, - d = function (t, e) { - return 'string' == typeof t && -1 !== h(e).indexOf(h(t)); - }, - h = function (t) { - return t.toLowerCase(); - }, - f = function (t, e) { - if ('string' == typeof t) - return ( - (t = t.replace(/^\s\s*/, '').replace(/\s\s*$/, '')), - void 0 === e ? t : t.substring(0, 255) - ); - }, - g = function (t, e) { - for (var n, i, r, a, o, s, u = 0; u < e.length && !o; ) { - var c = e[u], - l = e[u + 1]; - for (n = i = 0; n < c.length && !o; ) - if ((o = c[n++].exec(t))) - for (r = 0; r < l.length; r++) - (s = o[++i]), - 'object' == typeof (a = l[r]) && a.length > 0 - ? 2 === a.length - ? 'function' == typeof a[1] - ? (this[a[0]] = a[1].call(this, s)) - : (this[a[0]] = a[1]) - : 3 === a.length - ? 'function' != typeof a[1] || (a[1].exec && a[1].test) - ? (this[a[0]] = s ? s.replace(a[1], a[2]) : void 0) - : (this[a[0]] = s ? a[1].call(this, s, a[2]) : void 0) - : 4 === a.length && - (this[a[0]] = s ? a[3].call(this, s.replace(a[1], a[2])) : void 0) - : (this[a] = s || void 0); - u += 2; - } - }, - p = function (t, e) { - for (var n in e) - if ('object' == typeof e[n] && e[n].length > 0) { - for (var i = 0; i < e[n].length; i++) - if (d(e[n][i], t)) return '?' === n ? void 0 : n; - } else if (d(e[n], t)) return '?' === n ? void 0 : n; - return t; - }, - v = { - ME: '4.90', - 'NT 3.11': 'NT3.51', - 'NT 4.0': 'NT4.0', - 2000: 'NT 5.0', - XP: ['NT 5.1', 'NT 5.2'], - Vista: 'NT 6.0', - 7: 'NT 6.1', - 8: 'NT 6.2', - 8.1: 'NT 6.3', - 10: ['NT 6.4', 'NT 10.0'], - RT: 'ARM', - }, - _ = { - browser: [ - [/\b(?:crmo|crios)\/([\w\.]+)/i], - [o, [i, 'Chrome']], - [/edg(?:e|ios|a)?\/([\w\.]+)/i], - [o, [i, 'Edge']], - [ - /(opera mini)\/([-\w\.]+)/i, - /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, - /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i, - ], - [i, o], - [/opios[\/ ]+([\w\.]+)/i], - [o, [i, 'Opera Mini']], - [/\bopr\/([\w\.]+)/i], - [o, [i, 'Opera']], - [ - /(kindle)\/([\w\.]+)/i, - /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, - /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i, - /(ba?idubrowser)[\/ ]?([\w\.]+)/i, - /(?:ms|\()(ie) ([\w\.]+)/i, - /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i, - /(weibo)__([\d\.]+)/i, - ], - [i, o], - [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i], - [o, [i, 'UCBrowser']], - [/\bqbcore\/([\w\.]+)/i], - [o, [i, 'WeChat(Win) Desktop']], - [/micromessenger\/([\w\.]+)/i], - [o, [i, 'WeChat']], - [/konqueror\/([\w\.]+)/i], - [o, [i, 'Konqueror']], - [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i], - [o, [i, 'IE']], - [/yabrowser\/([\w\.]+)/i], - [o, [i, 'Yandex']], - [/(avast|avg)\/([\w\.]+)/i], - [[i, /(.+)/, '$1 Secure Browser'], o], - [/\bfocus\/([\w\.]+)/i], - [o, [i, 'Firefox Focus']], - [/\bopt\/([\w\.]+)/i], - [o, [i, 'Opera Touch']], - [/coc_coc\w+\/([\w\.]+)/i], - [o, [i, 'Coc Coc']], - [/dolfin\/([\w\.]+)/i], - [o, [i, 'Dolphin']], - [/coast\/([\w\.]+)/i], - [o, [i, 'Opera Coast']], - [/miuibrowser\/([\w\.]+)/i], - [o, [i, 'MIUI Browser']], - [/fxios\/([-\w\.]+)/i], - [o, [i, 'Firefox']], - [/\bqihu|(qi?ho?o?|360)browser/i], - [[i, '360 Browser']], - [/(oculus|samsung|sailfish)browser\/([\w\.]+)/i], - [[i, /(.+)/, '$1 Browser'], o], - [/(comodo_dragon)\/([\w\.]+)/i], - [[i, /_/g, ' '], o], - [ - /(electron)\/([\w\.]+) safari/i, - /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, - /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i, - ], - [i, o], - [/(metasr)[\/ ]?([\w\.]+)/i, /(lbbrowser)/i], - [i], - [/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i], - [[i, 'Facebook'], o], - [ - /safari (line)\/([\w\.]+)/i, - /\b(line)\/([\w\.]+)\/iab/i, - /(chromium|instagram)[\/ ]([-\w\.]+)/i, - ], - [i, o], - [/\bgsa\/([\w\.]+) .*safari\//i], - [o, [i, 'GSA']], - [/headlesschrome(?:\/([\w\.]+)| )/i], - [o, [i, 'Chrome Headless']], - [/ wv\).+(chrome)\/([\w\.]+)/i], - [[i, 'Chrome WebView'], o], - [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i], - [o, [i, 'Android Browser']], - [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i], - [i, o], - [/version\/([\w\.]+) .*mobile\/\w+ (safari)/i], - [o, [i, 'Mobile Safari']], - [/version\/([\w\.]+) .*(mobile ?safari|safari)/i], - [o, i], - [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i], - [ - i, - [ - o, - p, - { - '1.0': '/8', - 1.2: '/1', - 1.3: '/3', - '2.0': '/412', - '2.0.2': '/416', - '2.0.3': '/417', - '2.0.4': '/419', - '?': '/', - }, - ], - ], - [/(webkit|khtml)\/([\w\.]+)/i], - [i, o], - [/(navigator|netscape\d?)\/([-\w\.]+)/i], - [[i, 'Netscape'], o], - [/mobile vr; rv:([\w\.]+)\).+firefox/i], - [o, [i, 'Firefox Reality']], - [ - /ekiohf.+(flow)\/([\w\.]+)/i, - /(swiftfox)/i, - /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i, - /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i, - /(firefox)\/([\w\.]+)/i, - /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, - /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i, - /(links) \(([\w\.]+)/i, - ], - [i, o], - ], - cpu: [ - [/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i], - [['architecture', 'amd64']], - [/(ia32(?=;))/i], - [['architecture', h]], - [/((?:i[346]|x)86)[;\)]/i], - [['architecture', 'ia32']], - [/\b(aarch64|arm(v?8e?l?|_?64))\b/i], - [['architecture', 'arm64']], - [/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i], - [['architecture', 'armhf']], - [/windows (ce|mobile); ppc;/i], - [['architecture', 'arm']], - [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i], - [['architecture', /ower/, '', h]], - [/(sun4\w)[;\)]/i], - [['architecture', 'sparc']], - [ - /((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i, - ], - [['architecture', h]], - ], - device: [ - [/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i], - [n, [a, 'Samsung'], [r, u]], - [/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i, /samsung[- ]([-\w]+)/i, /sec-(sgh\w+)/i], - [n, [a, 'Samsung'], [r, s]], - [/\((ip(?:hone|od)[\w ]*);/i], - [n, [a, 'Apple'], [r, s]], - [ - /\((ipad);[-\w\),; ]+apple/i, - /applecoremedia\/[\w\.]+ \((ipad)/i, - /\b(ipad)\d\d?,\d\d?[;\]].+ios/i, - ], - [n, [a, 'Apple'], [r, u]], - [/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i], - [n, [a, 'Huawei'], [r, u]], - [ - /(?:huawei|honor)([-\w ]+)[;\)]/i, - /\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i, - ], - [n, [a, 'Huawei'], [r, s]], - [ - /\b(poco[\w ]+)(?: bui|\))/i, - /\b; (\w+) build\/hm\1/i, - /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, - /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, - /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i, - ], - [ - [n, /_/g, ' '], - [a, 'Xiaomi'], - [r, s], - ], - [/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i], - [ - [n, /_/g, ' '], - [a, 'Xiaomi'], - [r, u], - ], - [ - /; (\w+) bui.+ oppo/i, - /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i, - ], - [n, [a, 'OPPO'], [r, s]], - [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i], - [n, [a, 'Vivo'], [r, s]], - [/\b(rmx[12]\d{3})(?: bui|;|\))/i], - [n, [a, 'Realme'], [r, s]], - [ - /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, - /\bmot(?:orola)?[- ](\w*)/i, - /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i, - ], - [n, [a, 'Motorola'], [r, s]], - [/\b(mz60\d|xoom[2 ]{0,2}) build\//i], - [n, [a, 'Motorola'], [r, u]], - [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i], - [n, [a, 'LG'], [r, u]], - [ - /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, - /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i, - /\blg-?([\d\w]+) bui/i, - ], - [n, [a, 'LG'], [r, s]], - [ - /(ideatab[-\w ]+)/i, - /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i, - ], - [n, [a, 'Lenovo'], [r, u]], - [/(?:maemo|nokia).*(n900|lumia \d+)/i, /nokia[-_ ]?([-\w\.]*)/i], - [ - [n, /_/g, ' '], - [a, 'Nokia'], - [r, s], - ], - [/(pixel c)\b/i], - [n, [a, 'Google'], [r, u]], - [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i], - [n, [a, 'Google'], [r, s]], - [ - /droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i, - ], - [n, [a, 'Sony'], [r, s]], - [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], - [ - [n, 'Xperia Tablet'], - [a, 'Sony'], - [r, u], - ], - [/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i], - [n, [a, 'OnePlus'], [r, s]], - [/(alexa)webm/i, /(kf[a-z]{2}wi)( bui|\))/i, /(kf[a-z]+)( bui|\)).+silk\//i], - [n, [a, 'Amazon'], [r, u]], - [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i], - [ - [n, /(.+)/g, 'Fire Phone $1'], - [a, 'Amazon'], - [r, s], - ], - [/(playbook);[-\w\),; ]+(rim)/i], - [n, a, [r, u]], - [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i], - [n, [a, 'BlackBerry'], [r, s]], - [/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i], - [n, [a, 'ASUS'], [r, u]], - [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i], - [n, [a, 'ASUS'], [r, s]], - [/(nexus 9)/i], - [n, [a, 'HTC'], [r, u]], - [ - /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, - /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, - /(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i, - ], - [a, [n, /_/g, ' '], [r, s]], - [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i], - [n, [a, 'Acer'], [r, u]], - [/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i], - [n, [a, 'Meizu'], [r, s]], - [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], - [n, [a, 'Sharp'], [r, s]], - [ - /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i, - /(hp) ([\w ]+\w)/i, - /(asus)-?(\w+)/i, - /(microsoft); (lumia[\w ]+)/i, - /(lenovo)[-_ ]?([-\w]+)/i, - /(jolla)/i, - /(oppo) ?([\w ]+) bui/i, - ], - [a, n, [r, s]], - [ - /(archos) (gamepad2?)/i, - /(hp).+(touchpad(?!.+tablet)|tablet)/i, - /(kindle)\/([\w\.]+)/i, - /(nook)[\w ]+build\/(\w+)/i, - /(dell) (strea[kpr\d ]*[\dko])/i, - /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, - /(trinity)[- ]*(t\d{3}) bui/i, - /(gigaset)[- ]+(q\w{1,9}) bui/i, - /(vodafone) ([\w ]+)(?:\)| bui)/i, - ], - [a, n, [r, u]], - [/(surface duo)/i], - [n, [a, 'Microsoft'], [r, u]], - [/droid [\d\.]+; (fp\du?)(?: b|\))/i], - [n, [a, 'Fairphone'], [r, s]], - [/(u304aa)/i], - [n, [a, 'AT&T'], [r, s]], - [/\bsie-(\w*)/i], - [n, [a, 'Siemens'], [r, s]], - [/\b(rct\w+) b/i], - [n, [a, 'RCA'], [r, u]], - [/\b(venue[\d ]{2,7}) b/i], - [n, [a, 'Dell'], [r, u]], - [/\b(q(?:mv|ta)\w+) b/i], - [n, [a, 'Verizon'], [r, u]], - [/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i], - [n, [a, 'Barnes & Noble'], [r, u]], - [/\b(tm\d{3}\w+) b/i], - [n, [a, 'NuVision'], [r, u]], - [/\b(k88) b/i], - [n, [a, 'ZTE'], [r, u]], - [/\b(nx\d{3}j) b/i], - [n, [a, 'ZTE'], [r, s]], - [/\b(gen\d{3}) b.+49h/i], - [n, [a, 'Swiss'], [r, s]], - [/\b(zur\d{3}) b/i], - [n, [a, 'Swiss'], [r, u]], - [/\b((zeki)?tb.*\b) b/i], - [n, [a, 'Zeki'], [r, u]], - [/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i], - [[a, 'Dragon Touch'], n, [r, u]], - [/\b(ns-?\w{0,9}) b/i], - [n, [a, 'Insignia'], [r, u]], - [/\b((nxa|next)-?\w{0,9}) b/i], - [n, [a, 'NextBook'], [r, u]], - [/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i], - [[a, 'Voice'], n, [r, s]], - [/\b(lvtel\-)?(v1[12]) b/i], - [[a, 'LvTel'], n, [r, s]], - [/\b(ph-1) /i], - [n, [a, 'Essential'], [r, s]], - [/\b(v(100md|700na|7011|917g).*\b) b/i], - [n, [a, 'Envizen'], [r, u]], - [/\b(trio[-\w\. ]+) b/i], - [n, [a, 'MachSpeed'], [r, u]], - [/\btu_(1491) b/i], - [n, [a, 'Rotor'], [r, u]], - [/(shield[\w ]+) b/i], - [n, [a, 'Nvidia'], [r, u]], - [/(sprint) (\w+)/i], - [a, n, [r, s]], - [/(kin\.[onetw]{3})/i], - [ - [n, /\./g, ' '], - [a, 'Microsoft'], - [r, s], - ], - [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i], - [n, [a, 'Zebra'], [r, u]], - [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i], - [n, [a, 'Zebra'], [r, s]], - [/(ouya)/i, /(nintendo) ([wids3utch]+)/i], - [a, n, [r, 'console']], - [/droid.+; (shield) bui/i], - [n, [a, 'Nvidia'], [r, 'console']], - [/(playstation [345portablevi]+)/i], - [n, [a, 'Sony'], [r, 'console']], - [/\b(xbox(?: one)?(?!; xbox))[\); ]/i], - [n, [a, 'Microsoft'], [r, 'console']], - [/smart-tv.+(samsung)/i], - [a, [r, c]], - [/hbbtv.+maple;(\d+)/i], - [ - [n, /^/, 'SmartTV'], - [a, 'Samsung'], - [r, c], - ], - [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i], - [ - [a, 'LG'], - [r, c], - ], - [/(apple) ?tv/i], - [a, [n, 'Apple TV'], [r, c]], - [/crkey/i], - [ - [n, 'Chromecast'], - [a, 'Google'], - [r, c], - ], - [/droid.+aft(\w)( bui|\))/i], - [n, [a, 'Amazon'], [r, c]], - [/\(dtv[\);].+(aquos)/i], - [n, [a, 'Sharp'], [r, c]], - [ - /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, - /hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i, - ], - [ - [a, f], - [n, f], - [r, c], - ], - [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i], - [[r, c]], - [/((pebble))app/i], - [a, n, [r, 'wearable']], - [/droid.+; (glass) \d/i], - [n, [a, 'Google'], [r, 'wearable']], - [/droid.+; (wt63?0{2,3})\)/i], - [n, [a, 'Zebra'], [r, 'wearable']], - [/(quest( 2)?)/i], - [n, [a, 'Facebook'], [r, 'wearable']], - [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i], - [a, [r, 'embedded']], - [/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i], - [n, [r, s]], - [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i], - [n, [r, u]], - [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i], - [[r, u]], - [/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i], - [[r, s]], - [/(android[-\w\. ]{0,9});.+buil/i], - [n, [a, 'Generic']], - ], - engine: [ - [/windows.+ edge\/([\w\.]+)/i], - [o, [i, 'EdgeHTML']], - [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], - [o, [i, 'Blink']], - [ - /(presto)\/([\w\.]+)/i, - /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, - /ekioh(flow)\/([\w\.]+)/i, - /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, - /(icab)[\/ ]([23]\.[\d\.]+)/i, - ], - [i, o], - [/rv\:([\w\.]{1,9})\b.+(gecko)/i], - [o, i], - ], - os: [ - [/microsoft (windows) (vista|xp)/i], - [i, o], - [ - /(windows) nt 6\.2; (arm)/i, - /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i, - /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i, - ], - [i, [o, p, v]], - [/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i], - [ - [i, 'Windows'], - [o, p, v], - ], - [/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, /cfnetwork\/.+darwin/i], - [ - [o, /_/g, '.'], - [i, 'iOS'], - ], - [/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i], - [ - [i, 'Mac OS'], - [o, /_/g, '.'], - ], - [/droid ([\w\.]+)\b.+(android[- ]x86)/i], - [o, i], - [ - /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, - /(blackberry)\w*\/([\w\.]*)/i, - /(tizen|kaios)[\/ ]([\w\.]+)/i, - /\((series40);/i, - ], - [i, o], - [/\(bb(10);/i], - [o, [i, 'BlackBerry']], - [/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i], - [o, [i, 'Symbian']], - [/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i], - [o, [i, 'Firefox OS']], - [/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i], - [o, [i, 'webOS']], - [/crkey\/([\d\.]+)/i], - [o, [i, 'Chromecast']], - [/(cros) [\w]+ ([\w\.]+\w)/i], - [[i, 'Chromium OS'], o], - [ - /(nintendo|playstation) ([wids345portablevuch]+)/i, - /(xbox); +xbox ([^\);]+)/i, - /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, - /(mint)[\/\(\) ]?(\w*)/i, - /(mageia|vectorlinux)[; ]/i, - /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, - /(hurd|linux) ?([\w\.]*)/i, - /(gnu) ?([\w\.]*)/i, - /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, - /(haiku) (\w+)/i, - ], - [i, o], - [/(sunos) ?([\w\.\d]*)/i], - [[i, 'Solaris'], o], - [ - /((?:open)?solaris)[-\/ ]?([\w\.]*)/i, - /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, - /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i, - /(unix) ?([\w\.]*)/i, - ], - [i, o], - ], - }, - m = function (t, e) { - if (('object' == typeof t && ((e = t), (t = void 0)), !(this instanceof m))) - return new m(t, e).getResult(); - var n = - t || - ('undefined' != typeof window && window.navigator && window.navigator.userAgent - ? window.navigator.userAgent - : ''), - i = e - ? (function (t, e) { - var n = {}; - for (var i in t) - e[i] && e[i].length % 2 == 0 ? (n[i] = e[i].concat(t[i])) : (n[i] = t[i]); - return n; - })(_, e) - : _; - return ( - (this.getBrowser = function () { - var t, - e = {}; - return ( - (e.name = void 0), - (e.version = void 0), - g.call(e, n, i.browser), - (e.major = - 'string' == typeof (t = e.version) - ? t.replace(/[^\d\.]/g, '').split('.')[0] - : void 0), - e - ); - }), - (this.getCPU = function () { - var t = { architecture: void 0 }; - return g.call(t, n, i.cpu), t; - }), - (this.getDevice = function () { - var t = { vendor: void 0, model: void 0, type: void 0 }; - return g.call(t, n, i.device), t; - }), - (this.getEngine = function () { - var t = { name: void 0, version: void 0 }; - return g.call(t, n, i.engine), t; - }), - (this.getOS = function () { - var t = { name: void 0, version: void 0 }; - return g.call(t, n, i.os), t; - }), - (this.getResult = function () { - return { - ua: this.getUA(), - browser: this.getBrowser(), - engine: this.getEngine(), - os: this.getOS(), - device: this.getDevice(), - cpu: this.getCPU(), - }; - }), - (this.getUA = function () { - return n; - }), - (this.setUA = function (t) { - return (n = 'string' == typeof t && t.length > 255 ? f(t, 255) : t), this; - }), - this.setUA(n), - this - ); - }; - (m.VERSION = '1.0.2'), - (m.BROWSER = l([i, o, 'major'])), - (m.CPU = l(['architecture'])), - (m.DEVICE = l([n, a, r, 'console', s, c, u, 'wearable', 'embedded'])), - (m.ENGINE = m.OS = l([i, o])), - (t.UAParser = m); - })(_POSignalsEntities || (_POSignalsEntities = {})), - ((_POSignalsEntities || (_POSignalsEntities = {})).pako = (function t(e, n, i) { - function r(o, s) { - if (!n[o]) { - if (!e[o]) { - var u = 'function' == typeof require && require; - if (!s && u) return u(o, !0); - if (a) return a(o, !0); - var c = new Error("Cannot find module '" + o + "'"); - throw ((c.code = 'MODULE_NOT_FOUND'), c); - } - var l = (n[o] = { exports: {} }); - e[o][0].call( - l.exports, - function (t) { - var n = e[o][1][t]; - return r(n || t); - }, - l, - l.exports, - t, - e, - n, - i, - ); - } - return n[o].exports; - } - for (var a = 'function' == typeof require && require, o = 0; o < i.length; o++) r(i[o]); - return r; - })( - { - 1: [ - function (t, e, n) { - 'use strict'; - function i(t, e) { - return Object.prototype.hasOwnProperty.call(t, e); - } - var r = - 'undefined' != typeof Uint8Array && - 'undefined' != typeof Uint16Array && - 'undefined' != typeof Int32Array; - (n.assign = function (t) { - for (var e = Array.prototype.slice.call(arguments, 1); e.length; ) { - var n = e.shift(); - if (n) { - if ('object' != typeof n) throw new TypeError(n + 'must be non-object'); - for (var r in n) i(n, r) && (t[r] = n[r]); - } - } - return t; - }), - (n.shrinkBuf = function (t, e) { - return t.length === e ? t : t.subarray ? t.subarray(0, e) : ((t.length = e), t); - }); - var a = { - arraySet: function (t, e, n, i, r) { - if (e.subarray && t.subarray) t.set(e.subarray(n, n + i), r); - else for (var a = 0; a < i; a++) t[r + a] = e[n + a]; - }, - flattenChunks: function (t) { - var e, n, i, r, a, o; - for (i = 0, e = 0, n = t.length; e < n; e++) i += t[e].length; - for (o = new Uint8Array(i), r = 0, e = 0, n = t.length; e < n; e++) - (a = t[e]), o.set(a, r), (r += a.length); - return o; - }, - }, - o = { - arraySet: function (t, e, n, i, r) { - for (var a = 0; a < i; a++) t[r + a] = e[n + a]; - }, - flattenChunks: function (t) { - return [].concat.apply([], t); - }, - }; - (n.setTyped = function (t) { - t - ? ((n.Buf8 = Uint8Array), - (n.Buf16 = Uint16Array), - (n.Buf32 = Int32Array), - n.assign(n, a)) - : ((n.Buf8 = Array), (n.Buf16 = Array), (n.Buf32 = Array), n.assign(n, o)); - }), - n.setTyped(r); - }, - {}, - ], - 2: [ - function (t, e, n) { - 'use strict'; - function i(t, e) { - if (e < 65537 && ((t.subarray && o) || (!t.subarray && a))) - return String.fromCharCode.apply(null, r.shrinkBuf(t, e)); - for (var n = '', i = 0; i < e; i++) n += String.fromCharCode(t[i]); - return n; - } - var r = t('./common'), - a = !0, - o = !0; - try { - String.fromCharCode.apply(null, [0]); - } catch (t) { - a = !1; - } - try { - String.fromCharCode.apply(null, new Uint8Array(1)); - } catch (t) { - o = !1; - } - for (var s = new r.Buf8(256), u = 0; u < 256; u++) - s[u] = u >= 252 ? 6 : u >= 248 ? 5 : u >= 240 ? 4 : u >= 224 ? 3 : u >= 192 ? 2 : 1; - (s[254] = s[254] = 1), - (n.string2buf = function (t) { - var e, - n, - i, - a, - o, - s = t.length, - u = 0; - for (a = 0; a < s; a++) - 55296 == (64512 & (n = t.charCodeAt(a))) && - a + 1 < s && - 56320 == (64512 & (i = t.charCodeAt(a + 1))) && - ((n = 65536 + ((n - 55296) << 10) + (i - 56320)), a++), - (u += n < 128 ? 1 : n < 2048 ? 2 : n < 65536 ? 3 : 4); - for (e = new r.Buf8(u), o = 0, a = 0; o < u; a++) - 55296 == (64512 & (n = t.charCodeAt(a))) && - a + 1 < s && - 56320 == (64512 & (i = t.charCodeAt(a + 1))) && - ((n = 65536 + ((n - 55296) << 10) + (i - 56320)), a++), - n < 128 - ? (e[o++] = n) - : n < 2048 - ? ((e[o++] = 192 | (n >>> 6)), (e[o++] = 128 | (63 & n))) - : n < 65536 - ? ((e[o++] = 224 | (n >>> 12)), - (e[o++] = 128 | ((n >>> 6) & 63)), - (e[o++] = 128 | (63 & n))) - : ((e[o++] = 240 | (n >>> 18)), - (e[o++] = 128 | ((n >>> 12) & 63)), - (e[o++] = 128 | ((n >>> 6) & 63)), - (e[o++] = 128 | (63 & n))); - return e; - }), - (n.buf2binstring = function (t) { - return i(t, t.length); - }), - (n.binstring2buf = function (t) { - for (var e = new r.Buf8(t.length), n = 0, i = e.length; n < i; n++) - e[n] = t.charCodeAt(n); - return e; - }), - (n.buf2string = function (t, e) { - var n, - r, - a, - o, - u = e || t.length, - c = new Array(2 * u); - for (r = 0, n = 0; n < u; ) - if ((a = t[n++]) < 128) c[r++] = a; - else if ((o = s[a]) > 4) (c[r++] = 65533), (n += o - 1); - else { - for (a &= 2 === o ? 31 : 3 === o ? 15 : 7; o > 1 && n < u; ) - (a = (a << 6) | (63 & t[n++])), o--; - o > 1 - ? (c[r++] = 65533) - : a < 65536 - ? (c[r++] = a) - : ((a -= 65536), - (c[r++] = 55296 | ((a >> 10) & 1023)), - (c[r++] = 56320 | (1023 & a))); - } - return i(c, r); - }), - (n.utf8border = function (t, e) { - var n; - for ( - (e = e || t.length) > t.length && (e = t.length), n = e - 1; - n >= 0 && 128 == (192 & t[n]); - - ) - n--; - return n < 0 ? e : 0 === n ? e : n + s[t[n]] > e ? n : e; - }); - }, - { './common': 1 }, - ], - 3: [ - function (t, e, n) { - 'use strict'; - e.exports = function (t, e, n, i) { - for (var r = (65535 & t) | 0, a = ((t >>> 16) & 65535) | 0, o = 0; 0 !== n; ) { - n -= o = n > 2e3 ? 2e3 : n; - do { - a = (a + (r = (r + e[i++]) | 0)) | 0; - } while (--o); - (r %= 65521), (a %= 65521); - } - return r | (a << 16) | 0; - }; - }, - {}, - ], - 4: [ - function (t, e, n) { - 'use strict'; - var i = (function () { - for (var t, e = [], n = 0; n < 256; n++) { - t = n; - for (var i = 0; i < 8; i++) t = 1 & t ? 3988292384 ^ (t >>> 1) : t >>> 1; - e[n] = t; - } - return e; - })(); - e.exports = function (t, e, n, r) { - var a = i, - o = r + n; - t ^= -1; - for (var s = r; s < o; s++) t = (t >>> 8) ^ a[255 & (t ^ e[s])]; - return -1 ^ t; - }; - }, - {}, - ], - 5: [ - function (t, e, n) { - 'use strict'; - function i(t, e) { - return (t.msg = T[e]), e; - } - function r(t) { - return (t << 1) - (t > 4 ? 9 : 0); - } - function a(t) { - for (var e = t.length; --e >= 0; ) t[e] = 0; - } - function o(t) { - var e = t.state, - n = e.pending; - n > t.avail_out && (n = t.avail_out), - 0 !== n && - (S.arraySet(t.output, e.pending_buf, e.pending_out, n, t.next_out), - (t.next_out += n), - (e.pending_out += n), - (t.total_out += n), - (t.avail_out -= n), - (e.pending -= n), - 0 === e.pending && (e.pending_out = 0)); - } - function s(t, e) { - A._tr_flush_block( - t, - t.block_start >= 0 ? t.block_start : -1, - t.strstart - t.block_start, - e, - ), - (t.block_start = t.strstart), - o(t.strm); - } - function u(t, e) { - t.pending_buf[t.pending++] = e; - } - function c(t, e) { - (t.pending_buf[t.pending++] = (e >>> 8) & 255), - (t.pending_buf[t.pending++] = 255 & e); - } - function l(t, e, n, i) { - var r = t.avail_in; - return ( - r > i && (r = i), - 0 === r - ? 0 - : ((t.avail_in -= r), - S.arraySet(e, t.input, t.next_in, r, n), - 1 === t.state.wrap - ? (t.adler = O(t.adler, e, r, n)) - : 2 === t.state.wrap && (t.adler = P(t.adler, e, r, n)), - (t.next_in += r), - (t.total_in += r), - r) - ); - } - function d(t, e) { - var n, - i, - r = t.max_chain_length, - a = t.strstart, - o = t.prev_length, - s = t.nice_match, - u = t.strstart > t.w_size - K ? t.strstart - (t.w_size - K) : 0, - c = t.window, - l = t.w_mask, - d = t.prev, - h = t.strstart + z, - f = c[a + o - 1], - g = c[a + o]; - t.prev_length >= t.good_match && (r >>= 2), s > t.lookahead && (s = t.lookahead); - do { - if ( - c[(n = e) + o] === g && - c[n + o - 1] === f && - c[n] === c[a] && - c[++n] === c[a + 1] - ) { - (a += 2), n++; - do {} while ( - c[++a] === c[++n] && - c[++a] === c[++n] && - c[++a] === c[++n] && - c[++a] === c[++n] && - c[++a] === c[++n] && - c[++a] === c[++n] && - c[++a] === c[++n] && - c[++a] === c[++n] && - a < h - ); - if (((i = z - (h - a)), (a = h - z), i > o)) { - if (((t.match_start = e), (o = i), i >= s)) break; - (f = c[a + o - 1]), (g = c[a + o]); - } - } - } while ((e = d[e & l]) > u && 0 != --r); - return o <= t.lookahead ? o : t.lookahead; - } - function h(t) { - var e, - n, - i, - r, - a, - o = t.w_size; - do { - if (((r = t.window_size - t.lookahead - t.strstart), t.strstart >= o + (o - K))) { - S.arraySet(t.window, t.window, o, o, 0), - (t.match_start -= o), - (t.strstart -= o), - (t.block_start -= o), - (e = n = t.hash_size); - do { - (i = t.head[--e]), (t.head[e] = i >= o ? i - o : 0); - } while (--n); - e = n = o; - do { - (i = t.prev[--e]), (t.prev[e] = i >= o ? i - o : 0); - } while (--n); - r += o; - } - if (0 === t.strm.avail_in) break; - if ( - ((n = l(t.strm, t.window, t.strstart + t.lookahead, r)), - (t.lookahead += n), - t.lookahead + t.insert >= V) - ) - for ( - a = t.strstart - t.insert, - t.ins_h = t.window[a], - t.ins_h = ((t.ins_h << t.hash_shift) ^ t.window[a + 1]) & t.hash_mask; - t.insert && - ((t.ins_h = ((t.ins_h << t.hash_shift) ^ t.window[a + V - 1]) & t.hash_mask), - (t.prev[a & t.w_mask] = t.head[t.ins_h]), - (t.head[t.ins_h] = a), - a++, - t.insert--, - !(t.lookahead + t.insert < V)); - - ); - } while (t.lookahead < K && 0 !== t.strm.avail_in); - } - function f(t, e) { - for (var n, i; ; ) { - if (t.lookahead < K) { - if ((h(t), t.lookahead < K && e === I)) return q; - if (0 === t.lookahead) break; - } - if ( - ((n = 0), - t.lookahead >= V && - ((t.ins_h = - ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + V - 1]) & t.hash_mask), - (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]), - (t.head[t.ins_h] = t.strstart)), - 0 !== n && t.strstart - n <= t.w_size - K && (t.match_length = d(t, n)), - t.match_length >= V) - ) - if ( - ((i = A._tr_tally(t, t.strstart - t.match_start, t.match_length - V)), - (t.lookahead -= t.match_length), - t.match_length <= t.max_lazy_match && t.lookahead >= V) - ) { - t.match_length--; - do { - t.strstart++, - (t.ins_h = - ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + V - 1]) & t.hash_mask), - (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]), - (t.head[t.ins_h] = t.strstart); - } while (0 != --t.match_length); - t.strstart++; - } else - (t.strstart += t.match_length), - (t.match_length = 0), - (t.ins_h = t.window[t.strstart]), - (t.ins_h = - ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + 1]) & t.hash_mask); - else (i = A._tr_tally(t, 0, t.window[t.strstart])), t.lookahead--, t.strstart++; - if (i && (s(t, !1), 0 === t.strm.avail_out)) return q; - } - return ( - (t.insert = t.strstart < V - 1 ? t.strstart : V - 1), - e === D - ? (s(t, !0), 0 === t.strm.avail_out ? J : Z) - : t.last_lit && (s(t, !1), 0 === t.strm.avail_out) - ? q - : X - ); - } - function g(t, e) { - for (var n, i, r; ; ) { - if (t.lookahead < K) { - if ((h(t), t.lookahead < K && e === I)) return q; - if (0 === t.lookahead) break; - } - if ( - ((n = 0), - t.lookahead >= V && - ((t.ins_h = - ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + V - 1]) & t.hash_mask), - (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]), - (t.head[t.ins_h] = t.strstart)), - (t.prev_length = t.match_length), - (t.prev_match = t.match_start), - (t.match_length = V - 1), - 0 !== n && - t.prev_length < t.max_lazy_match && - t.strstart - n <= t.w_size - K && - ((t.match_length = d(t, n)), - t.match_length <= 5 && - (t.strategy === U || - (t.match_length === V && t.strstart - t.match_start > 4096)) && - (t.match_length = V - 1)), - t.prev_length >= V && t.match_length <= t.prev_length) - ) { - (r = t.strstart + t.lookahead - V), - (i = A._tr_tally(t, t.strstart - 1 - t.prev_match, t.prev_length - V)), - (t.lookahead -= t.prev_length - 1), - (t.prev_length -= 2); - do { - ++t.strstart <= r && - ((t.ins_h = - ((t.ins_h << t.hash_shift) ^ t.window[t.strstart + V - 1]) & t.hash_mask), - (n = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h]), - (t.head[t.ins_h] = t.strstart)); - } while (0 != --t.prev_length); - if ( - ((t.match_available = 0), - (t.match_length = V - 1), - t.strstart++, - i && (s(t, !1), 0 === t.strm.avail_out)) - ) - return q; - } else if (t.match_available) { - if ( - ((i = A._tr_tally(t, 0, t.window[t.strstart - 1])) && s(t, !1), - t.strstart++, - t.lookahead--, - 0 === t.strm.avail_out) - ) - return q; - } else (t.match_available = 1), t.strstart++, t.lookahead--; - } - return ( - t.match_available && - ((i = A._tr_tally(t, 0, t.window[t.strstart - 1])), (t.match_available = 0)), - (t.insert = t.strstart < V - 1 ? t.strstart : V - 1), - e === D - ? (s(t, !0), 0 === t.strm.avail_out ? J : Z) - : t.last_lit && (s(t, !1), 0 === t.strm.avail_out) - ? q - : X - ); - } - function p(t, e) { - for (var n, i, r, a, o = t.window; ; ) { - if (t.lookahead <= z) { - if ((h(t), t.lookahead <= z && e === I)) return q; - if (0 === t.lookahead) break; - } - if ( - ((t.match_length = 0), - t.lookahead >= V && - t.strstart > 0 && - ((r = t.strstart - 1), (i = o[r]) === o[++r] && i === o[++r] && i === o[++r])) - ) { - a = t.strstart + z; - do {} while ( - i === o[++r] && - i === o[++r] && - i === o[++r] && - i === o[++r] && - i === o[++r] && - i === o[++r] && - i === o[++r] && - i === o[++r] && - r < a - ); - (t.match_length = z - (a - r)), - t.match_length > t.lookahead && (t.match_length = t.lookahead); - } - if ( - (t.match_length >= V - ? ((n = A._tr_tally(t, 1, t.match_length - V)), - (t.lookahead -= t.match_length), - (t.strstart += t.match_length), - (t.match_length = 0)) - : ((n = A._tr_tally(t, 0, t.window[t.strstart])), t.lookahead--, t.strstart++), - n && (s(t, !1), 0 === t.strm.avail_out)) - ) - return q; - } - return ( - (t.insert = 0), - e === D - ? (s(t, !0), 0 === t.strm.avail_out ? J : Z) - : t.last_lit && (s(t, !1), 0 === t.strm.avail_out) - ? q - : X - ); - } - function v(t, e) { - for (var n; ; ) { - if (0 === t.lookahead && (h(t), 0 === t.lookahead)) { - if (e === I) return q; - break; - } - if ( - ((t.match_length = 0), - (n = A._tr_tally(t, 0, t.window[t.strstart])), - t.lookahead--, - t.strstart++, - n && (s(t, !1), 0 === t.strm.avail_out)) - ) - return q; - } - return ( - (t.insert = 0), - e === D - ? (s(t, !0), 0 === t.strm.avail_out ? J : Z) - : t.last_lit && (s(t, !1), 0 === t.strm.avail_out) - ? q - : X - ); - } - function _(t, e, n, i, r) { - (this.good_length = t), - (this.max_lazy = e), - (this.nice_length = n), - (this.max_chain = i), - (this.func = r); - } - function m() { - (this.strm = null), - (this.status = 0), - (this.pending_buf = null), - (this.pending_buf_size = 0), - (this.pending_out = 0), - (this.pending = 0), - (this.wrap = 0), - (this.gzhead = null), - (this.gzindex = 0), - (this.method = R), - (this.last_flush = -1), - (this.w_size = 0), - (this.w_bits = 0), - (this.w_mask = 0), - (this.window = null), - (this.window_size = 0), - (this.prev = null), - (this.head = null), - (this.ins_h = 0), - (this.hash_size = 0), - (this.hash_bits = 0), - (this.hash_mask = 0), - (this.hash_shift = 0), - (this.block_start = 0), - (this.match_length = 0), - (this.prev_match = 0), - (this.match_available = 0), - (this.strstart = 0), - (this.match_start = 0), - (this.lookahead = 0), - (this.prev_length = 0), - (this.max_chain_length = 0), - (this.max_lazy_match = 0), - (this.level = 0), - (this.strategy = 0), - (this.good_match = 0), - (this.nice_match = 0), - (this.dyn_ltree = new S.Buf16(2 * j)), - (this.dyn_dtree = new S.Buf16(2 * (2 * H + 1))), - (this.bl_tree = new S.Buf16(2 * (2 * F + 1))), - a(this.dyn_ltree), - a(this.dyn_dtree), - a(this.bl_tree), - (this.l_desc = null), - (this.d_desc = null), - (this.bl_desc = null), - (this.bl_count = new S.Buf16(G + 1)), - (this.heap = new S.Buf16(2 * B + 1)), - a(this.heap), - (this.heap_len = 0), - (this.heap_max = 0), - (this.depth = new S.Buf16(2 * B + 1)), - a(this.depth), - (this.l_buf = 0), - (this.lit_bufsize = 0), - (this.last_lit = 0), - (this.d_buf = 0), - (this.opt_len = 0), - (this.static_len = 0), - (this.matches = 0), - (this.insert = 0), - (this.bi_buf = 0), - (this.bi_valid = 0); - } - function y(t) { - var e; - return t && t.state - ? ((t.total_in = t.total_out = 0), - (t.data_type = x), - ((e = t.state).pending = 0), - (e.pending_out = 0), - e.wrap < 0 && (e.wrap = -e.wrap), - (e.status = e.wrap ? Y : W), - (t.adler = 2 === e.wrap ? 0 : 1), - (e.last_flush = I), - A._tr_init(e), - C) - : i(t, M); - } - function b(t) { - var e = y(t); - return ( - e === C && - (function (t) { - (t.window_size = 2 * t.w_size), - a(t.head), - (t.max_lazy_match = w[t.level].max_lazy), - (t.good_match = w[t.level].good_length), - (t.nice_match = w[t.level].nice_length), - (t.max_chain_length = w[t.level].max_chain), - (t.strstart = 0), - (t.block_start = 0), - (t.lookahead = 0), - (t.insert = 0), - (t.match_length = t.prev_length = V - 1), - (t.match_available = 0), - (t.ins_h = 0); - })(t.state), - e - ); - } - function E(t, e, n, r, a, o) { - if (!t) return M; - var s = 1; - if ( - (e === L && (e = 6), - r < 0 ? ((s = 0), (r = -r)) : r > 15 && ((s = 2), (r -= 16)), - a < 1 || a > N || n !== R || r < 8 || r > 15 || e < 0 || e > 9 || o < 0 || o > k) - ) - return i(t, M); - 8 === r && (r = 9); - var u = new m(); - return ( - (t.state = u), - (u.strm = t), - (u.wrap = s), - (u.gzhead = null), - (u.w_bits = r), - (u.w_size = 1 << u.w_bits), - (u.w_mask = u.w_size - 1), - (u.hash_bits = a + 7), - (u.hash_size = 1 << u.hash_bits), - (u.hash_mask = u.hash_size - 1), - (u.hash_shift = ~~((u.hash_bits + V - 1) / V)), - (u.window = new S.Buf8(2 * u.w_size)), - (u.head = new S.Buf16(u.hash_size)), - (u.prev = new S.Buf16(u.w_size)), - (u.lit_bufsize = 1 << (a + 6)), - (u.pending_buf_size = 4 * u.lit_bufsize), - (u.pending_buf = new S.Buf8(u.pending_buf_size)), - (u.d_buf = 1 * u.lit_bufsize), - (u.l_buf = 3 * u.lit_bufsize), - (u.level = e), - (u.strategy = o), - (u.method = n), - b(t) - ); - } - var w, - S = t('../utils/common'), - A = t('./trees'), - O = t('./adler32'), - P = t('./crc32'), - T = t('./messages'), - I = 0, - D = 4, - C = 0, - M = -2, - L = -1, - U = 1, - k = 4, - x = 2, - R = 8, - N = 9, - B = 286, - H = 30, - F = 19, - j = 2 * B + 1, - G = 15, - V = 3, - z = 258, - K = z + V + 1, - Y = 42, - W = 113, - q = 1, - X = 2, - J = 3, - Z = 4; - (w = [ - new _(0, 0, 0, 0, function (t, e) { - var n = 65535; - for (n > t.pending_buf_size - 5 && (n = t.pending_buf_size - 5); ; ) { - if (t.lookahead <= 1) { - if ((h(t), 0 === t.lookahead && e === I)) return q; - if (0 === t.lookahead) break; - } - (t.strstart += t.lookahead), (t.lookahead = 0); - var i = t.block_start + n; - if ( - (0 === t.strstart || t.strstart >= i) && - ((t.lookahead = t.strstart - i), - (t.strstart = i), - s(t, !1), - 0 === t.strm.avail_out) - ) - return q; - if ( - t.strstart - t.block_start >= t.w_size - K && - (s(t, !1), 0 === t.strm.avail_out) - ) - return q; - } - return ( - (t.insert = 0), - e === D - ? (s(t, !0), 0 === t.strm.avail_out ? J : Z) - : (t.strstart > t.block_start && (s(t, !1), t.strm.avail_out), q) - ); - }), - new _(4, 4, 8, 4, f), - new _(4, 5, 16, 8, f), - new _(4, 6, 32, 32, f), - new _(4, 4, 16, 16, g), - new _(8, 16, 32, 32, g), - new _(8, 16, 128, 128, g), - new _(8, 32, 128, 256, g), - new _(32, 128, 258, 1024, g), - new _(32, 258, 258, 4096, g), - ]), - (n.deflateInit = function (t, e) { - return E(t, e, R, 15, 8, 0); - }), - (n.deflateInit2 = E), - (n.deflateReset = b), - (n.deflateResetKeep = y), - (n.deflateSetHeader = function (t, e) { - return t && t.state ? (2 !== t.state.wrap ? M : ((t.state.gzhead = e), C)) : M; - }), - (n.deflate = function (t, e) { - var n, s, l, d; - if (!t || !t.state || e > 5 || e < 0) return t ? i(t, M) : M; - if ( - ((s = t.state), - !t.output || (!t.input && 0 !== t.avail_in) || (666 === s.status && e !== D)) - ) - return i(t, 0 === t.avail_out ? -5 : M); - if (((s.strm = t), (n = s.last_flush), (s.last_flush = e), s.status === Y)) - if (2 === s.wrap) - (t.adler = 0), - u(s, 31), - u(s, 139), - u(s, 8), - s.gzhead - ? (u( - s, - (s.gzhead.text ? 1 : 0) + - (s.gzhead.hcrc ? 2 : 0) + - (s.gzhead.extra ? 4 : 0) + - (s.gzhead.name ? 8 : 0) + - (s.gzhead.comment ? 16 : 0), - ), - u(s, 255 & s.gzhead.time), - u(s, (s.gzhead.time >> 8) & 255), - u(s, (s.gzhead.time >> 16) & 255), - u(s, (s.gzhead.time >> 24) & 255), - u(s, 9 === s.level ? 2 : s.strategy >= 2 || s.level < 2 ? 4 : 0), - u(s, 255 & s.gzhead.os), - s.gzhead.extra && - s.gzhead.extra.length && - (u(s, 255 & s.gzhead.extra.length), - u(s, (s.gzhead.extra.length >> 8) & 255)), - s.gzhead.hcrc && (t.adler = P(t.adler, s.pending_buf, s.pending, 0)), - (s.gzindex = 0), - (s.status = 69)) - : (u(s, 0), - u(s, 0), - u(s, 0), - u(s, 0), - u(s, 0), - u(s, 9 === s.level ? 2 : s.strategy >= 2 || s.level < 2 ? 4 : 0), - u(s, 3), - (s.status = W)); - else { - var h = (R + ((s.w_bits - 8) << 4)) << 8; - (h |= - (s.strategy >= 2 || s.level < 2 - ? 0 - : s.level < 6 - ? 1 - : 6 === s.level - ? 2 - : 3) << 6), - 0 !== s.strstart && (h |= 32), - (h += 31 - (h % 31)), - (s.status = W), - c(s, h), - 0 !== s.strstart && (c(s, t.adler >>> 16), c(s, 65535 & t.adler)), - (t.adler = 1); - } - if (69 === s.status) - if (s.gzhead.extra) { - for ( - l = s.pending; - s.gzindex < (65535 & s.gzhead.extra.length) && - (s.pending !== s.pending_buf_size || - (s.gzhead.hcrc && - s.pending > l && - (t.adler = P(t.adler, s.pending_buf, s.pending - l, l)), - o(t), - (l = s.pending), - s.pending !== s.pending_buf_size)); - - ) - u(s, 255 & s.gzhead.extra[s.gzindex]), s.gzindex++; - s.gzhead.hcrc && - s.pending > l && - (t.adler = P(t.adler, s.pending_buf, s.pending - l, l)), - s.gzindex === s.gzhead.extra.length && ((s.gzindex = 0), (s.status = 73)); - } else s.status = 73; - if (73 === s.status) - if (s.gzhead.name) { - l = s.pending; - do { - if ( - s.pending === s.pending_buf_size && - (s.gzhead.hcrc && - s.pending > l && - (t.adler = P(t.adler, s.pending_buf, s.pending - l, l)), - o(t), - (l = s.pending), - s.pending === s.pending_buf_size) - ) { - d = 1; - break; - } - (d = - s.gzindex < s.gzhead.name.length - ? 255 & s.gzhead.name.charCodeAt(s.gzindex++) - : 0), - u(s, d); - } while (0 !== d); - s.gzhead.hcrc && - s.pending > l && - (t.adler = P(t.adler, s.pending_buf, s.pending - l, l)), - 0 === d && ((s.gzindex = 0), (s.status = 91)); - } else s.status = 91; - if (91 === s.status) - if (s.gzhead.comment) { - l = s.pending; - do { - if ( - s.pending === s.pending_buf_size && - (s.gzhead.hcrc && - s.pending > l && - (t.adler = P(t.adler, s.pending_buf, s.pending - l, l)), - o(t), - (l = s.pending), - s.pending === s.pending_buf_size) - ) { - d = 1; - break; - } - (d = - s.gzindex < s.gzhead.comment.length - ? 255 & s.gzhead.comment.charCodeAt(s.gzindex++) - : 0), - u(s, d); - } while (0 !== d); - s.gzhead.hcrc && - s.pending > l && - (t.adler = P(t.adler, s.pending_buf, s.pending - l, l)), - 0 === d && (s.status = 103); - } else s.status = 103; - if ( - (103 === s.status && - (s.gzhead.hcrc - ? (s.pending + 2 > s.pending_buf_size && o(t), - s.pending + 2 <= s.pending_buf_size && - (u(s, 255 & t.adler), - u(s, (t.adler >> 8) & 255), - (t.adler = 0), - (s.status = W))) - : (s.status = W)), - 0 !== s.pending) - ) { - if ((o(t), 0 === t.avail_out)) return (s.last_flush = -1), C; - } else if (0 === t.avail_in && r(e) <= r(n) && e !== D) return i(t, -5); - if (666 === s.status && 0 !== t.avail_in) return i(t, -5); - if (0 !== t.avail_in || 0 !== s.lookahead || (e !== I && 666 !== s.status)) { - var f = - 2 === s.strategy ? v(s, e) : 3 === s.strategy ? p(s, e) : w[s.level].func(s, e); - if (((f !== J && f !== Z) || (s.status = 666), f === q || f === J)) - return 0 === t.avail_out && (s.last_flush = -1), C; - if ( - f === X && - (1 === e - ? A._tr_align(s) - : 5 !== e && - (A._tr_stored_block(s, 0, 0, !1), - 3 === e && - (a(s.head), - 0 === s.lookahead && - ((s.strstart = 0), (s.block_start = 0), (s.insert = 0)))), - o(t), - 0 === t.avail_out) - ) - return (s.last_flush = -1), C; - } - return e !== D - ? C - : s.wrap <= 0 - ? 1 - : (2 === s.wrap - ? (u(s, 255 & t.adler), - u(s, (t.adler >> 8) & 255), - u(s, (t.adler >> 16) & 255), - u(s, (t.adler >> 24) & 255), - u(s, 255 & t.total_in), - u(s, (t.total_in >> 8) & 255), - u(s, (t.total_in >> 16) & 255), - u(s, (t.total_in >> 24) & 255)) - : (c(s, t.adler >>> 16), c(s, 65535 & t.adler)), - o(t), - s.wrap > 0 && (s.wrap = -s.wrap), - 0 !== s.pending ? C : 1); - }), - (n.deflateEnd = function (t) { - var e; - return t && t.state - ? (e = t.state.status) !== Y && - 69 !== e && - 73 !== e && - 91 !== e && - 103 !== e && - e !== W && - 666 !== e - ? i(t, M) - : ((t.state = null), e === W ? i(t, -3) : C) - : M; - }), - (n.deflateSetDictionary = function (t, e) { - var n, - i, - r, - o, - s, - u, - c, - l, - d = e.length; - if (!t || !t.state) return M; - if ( - ((n = t.state), 2 === (o = n.wrap) || (1 === o && n.status !== Y) || n.lookahead) - ) - return M; - for ( - 1 === o && (t.adler = O(t.adler, e, d, 0)), - n.wrap = 0, - d >= n.w_size && - (0 === o && - (a(n.head), (n.strstart = 0), (n.block_start = 0), (n.insert = 0)), - (l = new S.Buf8(n.w_size)), - S.arraySet(l, e, d - n.w_size, n.w_size, 0), - (e = l), - (d = n.w_size)), - s = t.avail_in, - u = t.next_in, - c = t.input, - t.avail_in = d, - t.next_in = 0, - t.input = e, - h(n); - n.lookahead >= V; - - ) { - (i = n.strstart), (r = n.lookahead - (V - 1)); - do { - (n.ins_h = ((n.ins_h << n.hash_shift) ^ n.window[i + V - 1]) & n.hash_mask), - (n.prev[i & n.w_mask] = n.head[n.ins_h]), - (n.head[n.ins_h] = i), - i++; - } while (--r); - (n.strstart = i), (n.lookahead = V - 1), h(n); - } - return ( - (n.strstart += n.lookahead), - (n.block_start = n.strstart), - (n.insert = n.lookahead), - (n.lookahead = 0), - (n.match_length = n.prev_length = V - 1), - (n.match_available = 0), - (t.next_in = u), - (t.input = c), - (t.avail_in = s), - (n.wrap = o), - C - ); - }), - (n.deflateInfo = 'pako deflate (from Nodeca project)'); - }, - { '../utils/common': 1, './adler32': 3, './crc32': 4, './messages': 6, './trees': 7 }, - ], - 6: [ - function (t, e, n) { - 'use strict'; - e.exports = { - 2: 'need dictionary', - 1: 'stream end', - 0: '', - '-1': 'file error', - '-2': 'stream error', - '-3': 'data error', - '-4': 'insufficient memory', - '-5': 'buffer error', - '-6': 'incompatible version', - }; - }, - {}, - ], - 7: [ - function (t, e, n) { - 'use strict'; - function i(t) { - for (var e = t.length; --e >= 0; ) t[e] = 0; - } - function r(t, e, n, i, r) { - (this.static_tree = t), - (this.extra_bits = e), - (this.extra_base = n), - (this.elems = i), - (this.max_length = r), - (this.has_stree = t && t.length); - } - function a(t, e) { - (this.dyn_tree = t), (this.max_code = 0), (this.stat_desc = e); - } - function o(t) { - return t < 256 ? z[t] : z[256 + (t >>> 7)]; - } - function s(t, e) { - (t.pending_buf[t.pending++] = 255 & e), - (t.pending_buf[t.pending++] = (e >>> 8) & 255); - } - function u(t, e, n) { - t.bi_valid > L - n - ? ((t.bi_buf |= (e << t.bi_valid) & 65535), - s(t, t.bi_buf), - (t.bi_buf = e >> (L - t.bi_valid)), - (t.bi_valid += n - L)) - : ((t.bi_buf |= (e << t.bi_valid) & 65535), (t.bi_valid += n)); - } - function c(t, e, n) { - u(t, n[2 * e], n[2 * e + 1]); - } - function l(t, e) { - var n = 0; - do { - (n |= 1 & t), (t >>>= 1), (n <<= 1); - } while (--e > 0); - return n >>> 1; - } - function d(t, e, n) { - var i, - r, - a = new Array(M + 1), - o = 0; - for (i = 1; i <= M; i++) a[i] = o = (o + n[i - 1]) << 1; - for (r = 0; r <= e; r++) { - var s = t[2 * r + 1]; - 0 !== s && (t[2 * r] = l(a[s]++, s)); - } - } - function h(t) { - var e; - for (e = 0; e < T; e++) t.dyn_ltree[2 * e] = 0; - for (e = 0; e < I; e++) t.dyn_dtree[2 * e] = 0; - for (e = 0; e < D; e++) t.bl_tree[2 * e] = 0; - (t.dyn_ltree[2 * k] = 1), - (t.opt_len = t.static_len = 0), - (t.last_lit = t.matches = 0); - } - function f(t) { - t.bi_valid > 8 - ? s(t, t.bi_buf) - : t.bi_valid > 0 && (t.pending_buf[t.pending++] = t.bi_buf), - (t.bi_buf = 0), - (t.bi_valid = 0); - } - function g(t, e, n, i) { - var r = 2 * e, - a = 2 * n; - return t[r] < t[a] || (t[r] === t[a] && i[e] <= i[n]); - } - function p(t, e, n) { - for ( - var i = t.heap[n], r = n << 1; - r <= t.heap_len && - (r < t.heap_len && g(e, t.heap[r + 1], t.heap[r], t.depth) && r++, - !g(e, i, t.heap[r], t.depth)); - - ) - (t.heap[n] = t.heap[r]), (n = r), (r <<= 1); - t.heap[n] = i; - } - function v(t, e, n) { - var i, - r, - a, - s, - l = 0; - if (0 !== t.last_lit) - do { - (i = (t.pending_buf[t.d_buf + 2 * l] << 8) | t.pending_buf[t.d_buf + 2 * l + 1]), - (r = t.pending_buf[t.l_buf + l]), - l++, - 0 === i - ? c(t, r, e) - : (c(t, (a = K[r]) + P + 1, e), - 0 !== (s = B[a]) && u(t, (r -= Y[a]), s), - c(t, (a = o(--i)), n), - 0 !== (s = H[a]) && u(t, (i -= W[a]), s)); - } while (l < t.last_lit); - c(t, k, e); - } - function _(t, e) { - var n, - i, - r, - a = e.dyn_tree, - o = e.stat_desc.static_tree, - s = e.stat_desc.has_stree, - u = e.stat_desc.elems, - c = -1; - for (t.heap_len = 0, t.heap_max = C, n = 0; n < u; n++) - 0 !== a[2 * n] - ? ((t.heap[++t.heap_len] = c = n), (t.depth[n] = 0)) - : (a[2 * n + 1] = 0); - for (; t.heap_len < 2; ) - (a[2 * (r = t.heap[++t.heap_len] = c < 2 ? ++c : 0)] = 1), - (t.depth[r] = 0), - t.opt_len--, - s && (t.static_len -= o[2 * r + 1]); - for (e.max_code = c, n = t.heap_len >> 1; n >= 1; n--) p(t, a, n); - r = u; - do { - (n = t.heap[1]), - (t.heap[1] = t.heap[t.heap_len--]), - p(t, a, 1), - (i = t.heap[1]), - (t.heap[--t.heap_max] = n), - (t.heap[--t.heap_max] = i), - (a[2 * r] = a[2 * n] + a[2 * i]), - (t.depth[r] = (t.depth[n] >= t.depth[i] ? t.depth[n] : t.depth[i]) + 1), - (a[2 * n + 1] = a[2 * i + 1] = r), - (t.heap[1] = r++), - p(t, a, 1); - } while (t.heap_len >= 2); - (t.heap[--t.heap_max] = t.heap[1]), - (function (t, e) { - var n, - i, - r, - a, - o, - s, - u = e.dyn_tree, - c = e.max_code, - l = e.stat_desc.static_tree, - d = e.stat_desc.has_stree, - h = e.stat_desc.extra_bits, - f = e.stat_desc.extra_base, - g = e.stat_desc.max_length, - p = 0; - for (a = 0; a <= M; a++) t.bl_count[a] = 0; - for (u[2 * t.heap[t.heap_max] + 1] = 0, n = t.heap_max + 1; n < C; n++) - (a = u[2 * u[2 * (i = t.heap[n]) + 1] + 1] + 1) > g && ((a = g), p++), - (u[2 * i + 1] = a), - i > c || - (t.bl_count[a]++, - (o = 0), - i >= f && (o = h[i - f]), - (s = u[2 * i]), - (t.opt_len += s * (a + o)), - d && (t.static_len += s * (l[2 * i + 1] + o))); - if (0 !== p) { - do { - for (a = g - 1; 0 === t.bl_count[a]; ) a--; - t.bl_count[a]--, (t.bl_count[a + 1] += 2), t.bl_count[g]--, (p -= 2); - } while (p > 0); - for (a = g; 0 !== a; a--) - for (i = t.bl_count[a]; 0 !== i; ) - (r = t.heap[--n]) > c || - (u[2 * r + 1] !== a && - ((t.opt_len += (a - u[2 * r + 1]) * u[2 * r]), (u[2 * r + 1] = a)), - i--); - } - })(t, e), - d(a, c, t.bl_count); - } - function m(t, e, n) { - var i, - r, - a = -1, - o = e[1], - s = 0, - u = 7, - c = 4; - for (0 === o && ((u = 138), (c = 3)), e[2 * (n + 1) + 1] = 65535, i = 0; i <= n; i++) - (r = o), - (o = e[2 * (i + 1) + 1]), - (++s < u && r === o) || - (s < c - ? (t.bl_tree[2 * r] += s) - : 0 !== r - ? (r !== a && t.bl_tree[2 * r]++, t.bl_tree[2 * x]++) - : s <= 10 - ? t.bl_tree[2 * R]++ - : t.bl_tree[2 * N]++, - (s = 0), - (a = r), - 0 === o - ? ((u = 138), (c = 3)) - : r === o - ? ((u = 6), (c = 3)) - : ((u = 7), (c = 4))); - } - function y(t, e, n) { - var i, - r, - a = -1, - o = e[1], - s = 0, - l = 7, - d = 4; - for (0 === o && ((l = 138), (d = 3)), i = 0; i <= n; i++) - if (((r = o), (o = e[2 * (i + 1) + 1]), !(++s < l && r === o))) { - if (s < d) - do { - c(t, r, t.bl_tree); - } while (0 != --s); - else - 0 !== r - ? (r !== a && (c(t, r, t.bl_tree), s--), c(t, x, t.bl_tree), u(t, s - 3, 2)) - : s <= 10 - ? (c(t, R, t.bl_tree), u(t, s - 3, 3)) - : (c(t, N, t.bl_tree), u(t, s - 11, 7)); - (s = 0), - (a = r), - 0 === o - ? ((l = 138), (d = 3)) - : r === o - ? ((l = 6), (d = 3)) - : ((l = 7), (d = 4)); - } - } - function b(t, e, n, i) { - u(t, (A << 1) + (i ? 1 : 0), 3), - (function (t, e, n, i) { - f(t), - i && (s(t, n), s(t, ~n)), - E.arraySet(t.pending_buf, t.window, e, n, t.pending), - (t.pending += n); - })(t, e, n, !0); - } - var E = t('../utils/common'), - w = 0, - S = 1, - A = 0, - O = 29, - P = 256, - T = P + 1 + O, - I = 30, - D = 19, - C = 2 * T + 1, - M = 15, - L = 16, - U = 7, - k = 256, - x = 16, - R = 17, - N = 18, - B = [ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, - 0, - ], - H = [ - 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, - 12, 12, 13, 13, - ], - F = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7], - j = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], - G = new Array(2 * (T + 2)); - i(G); - var V = new Array(2 * I); - i(V); - var z = new Array(512); - i(z); - var K = new Array(256); - i(K); - var Y = new Array(O); - i(Y); - var W = new Array(I); - i(W); - var q, - X, - J, - Z = !1; - (n._tr_init = function (t) { - Z || - ((function () { - var t, - e, - n, - i, - a, - o = new Array(M + 1); - for (n = 0, i = 0; i < O - 1; i++) - for (Y[i] = n, t = 0; t < 1 << B[i]; t++) K[n++] = i; - for (K[n - 1] = i, a = 0, i = 0; i < 16; i++) - for (W[i] = a, t = 0; t < 1 << H[i]; t++) z[a++] = i; - for (a >>= 7; i < I; i++) - for (W[i] = a << 7, t = 0; t < 1 << (H[i] - 7); t++) z[256 + a++] = i; - for (e = 0; e <= M; e++) o[e] = 0; - for (t = 0; t <= 143; ) (G[2 * t + 1] = 8), t++, o[8]++; - for (; t <= 255; ) (G[2 * t + 1] = 9), t++, o[9]++; - for (; t <= 279; ) (G[2 * t + 1] = 7), t++, o[7]++; - for (; t <= 287; ) (G[2 * t + 1] = 8), t++, o[8]++; - for (d(G, T + 1, o), t = 0; t < I; t++) (V[2 * t + 1] = 5), (V[2 * t] = l(t, 5)); - (q = new r(G, B, P + 1, T, M)), - (X = new r(V, H, 0, I, M)), - (J = new r(new Array(0), F, 0, D, U)); - })(), - (Z = !0)), - (t.l_desc = new a(t.dyn_ltree, q)), - (t.d_desc = new a(t.dyn_dtree, X)), - (t.bl_desc = new a(t.bl_tree, J)), - (t.bi_buf = 0), - (t.bi_valid = 0), - h(t); - }), - (n._tr_stored_block = b), - (n._tr_flush_block = function (t, e, n, i) { - var r, - a, - o = 0; - t.level > 0 - ? (2 === t.strm.data_type && - (t.strm.data_type = (function (t) { - var e, - n = 4093624447; - for (e = 0; e <= 31; e++, n >>>= 1) - if (1 & n && 0 !== t.dyn_ltree[2 * e]) return w; - if (0 !== t.dyn_ltree[18] || 0 !== t.dyn_ltree[20] || 0 !== t.dyn_ltree[26]) - return S; - for (e = 32; e < P; e++) if (0 !== t.dyn_ltree[2 * e]) return S; - return w; - })(t)), - _(t, t.l_desc), - _(t, t.d_desc), - (o = (function (t) { - var e; - for ( - m(t, t.dyn_ltree, t.l_desc.max_code), - m(t, t.dyn_dtree, t.d_desc.max_code), - _(t, t.bl_desc), - e = D - 1; - e >= 3 && 0 === t.bl_tree[2 * j[e] + 1]; - e-- - ); - return (t.opt_len += 3 * (e + 1) + 5 + 5 + 4), e; - })(t)), - (r = (t.opt_len + 3 + 7) >>> 3), - (a = (t.static_len + 3 + 7) >>> 3) <= r && (r = a)) - : (r = a = n + 5), - n + 4 <= r && -1 !== e - ? b(t, e, n, i) - : 4 === t.strategy || a === r - ? (u(t, 2 + (i ? 1 : 0), 3), v(t, G, V)) - : (u(t, 4 + (i ? 1 : 0), 3), - (function (t, e, n, i) { - var r; - for (u(t, e - 257, 5), u(t, n - 1, 5), u(t, i - 4, 4), r = 0; r < i; r++) - u(t, t.bl_tree[2 * j[r] + 1], 3); - y(t, t.dyn_ltree, e - 1), y(t, t.dyn_dtree, n - 1); - })(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, o + 1), - v(t, t.dyn_ltree, t.dyn_dtree)), - h(t), - i && f(t); - }), - (n._tr_tally = function (t, e, n) { - return ( - (t.pending_buf[t.d_buf + 2 * t.last_lit] = (e >>> 8) & 255), - (t.pending_buf[t.d_buf + 2 * t.last_lit + 1] = 255 & e), - (t.pending_buf[t.l_buf + t.last_lit] = 255 & n), - t.last_lit++, - 0 === e - ? t.dyn_ltree[2 * n]++ - : (t.matches++, - e--, - t.dyn_ltree[2 * (K[n] + P + 1)]++, - t.dyn_dtree[2 * o(e)]++), - t.last_lit === t.lit_bufsize - 1 - ); - }), - (n._tr_align = function (t) { - u(t, 2, 3), - c(t, k, G), - (function (t) { - 16 === t.bi_valid - ? (s(t, t.bi_buf), (t.bi_buf = 0), (t.bi_valid = 0)) - : t.bi_valid >= 8 && - ((t.pending_buf[t.pending++] = 255 & t.bi_buf), - (t.bi_buf >>= 8), - (t.bi_valid -= 8)); - })(t); - }); - }, - { '../utils/common': 1 }, - ], - 8: [ - function (t, e, n) { - 'use strict'; - e.exports = function () { - (this.input = null), - (this.next_in = 0), - (this.avail_in = 0), - (this.total_in = 0), - (this.output = null), - (this.next_out = 0), - (this.avail_out = 0), - (this.total_out = 0), - (this.msg = ''), - (this.state = null), - (this.data_type = 2), - (this.adler = 0); - }; - }, - {}, - ], - '/lib/deflate.js': [ - function (t, e, n) { - 'use strict'; - function i(t) { - if (!(this instanceof i)) return new i(t); - this.options = o.assign( - { - level: h, - method: g, - chunkSize: 16384, - windowBits: 15, - memLevel: 8, - strategy: f, - to: '', - }, - t || {}, - ); - var e = this.options; - e.raw && e.windowBits > 0 - ? (e.windowBits = -e.windowBits) - : e.gzip && e.windowBits > 0 && e.windowBits < 16 && (e.windowBits += 16), - (this.err = 0), - (this.msg = ''), - (this.ended = !1), - (this.chunks = []), - (this.strm = new c()), - (this.strm.avail_out = 0); - var n = a.deflateInit2( - this.strm, - e.level, - e.method, - e.windowBits, - e.memLevel, - e.strategy, - ); - if (n !== d) throw new Error(u[n]); - if ((e.header && a.deflateSetHeader(this.strm, e.header), e.dictionary)) { - var r; - if ( - ((r = - 'string' == typeof e.dictionary - ? s.string2buf(e.dictionary) - : '[object ArrayBuffer]' === l.call(e.dictionary) - ? new Uint8Array(e.dictionary) - : e.dictionary), - (n = a.deflateSetDictionary(this.strm, r)) !== d) - ) - throw new Error(u[n]); - this._dict_set = !0; - } - } - function r(t, e) { - var n = new i(e); - if ((n.push(t, !0), n.err)) throw n.msg || u[n.err]; - return n.result; - } - var a = t('./zlib/deflate'), - o = t('./utils/common'), - s = t('./utils/strings'), - u = t('./zlib/messages'), - c = t('./zlib/zstream'), - l = Object.prototype.toString, - d = 0, - h = -1, - f = 0, - g = 8; - (i.prototype.push = function (t, e) { - var n, - i, - r = this.strm, - u = this.options.chunkSize; - if (this.ended) return !1; - (i = e === ~~e ? e : !0 === e ? 4 : 0), - 'string' == typeof t - ? (r.input = s.string2buf(t)) - : '[object ArrayBuffer]' === l.call(t) - ? (r.input = new Uint8Array(t)) - : (r.input = t), - (r.next_in = 0), - (r.avail_in = r.input.length); - do { - if ( - (0 === r.avail_out && - ((r.output = new o.Buf8(u)), (r.next_out = 0), (r.avail_out = u)), - 1 !== (n = a.deflate(r, i)) && n !== d) - ) - return this.onEnd(n), (this.ended = !0), !1; - (0 !== r.avail_out && (0 !== r.avail_in || (4 !== i && 2 !== i))) || - ('string' === this.options.to - ? this.onData(s.buf2binstring(o.shrinkBuf(r.output, r.next_out))) - : this.onData(o.shrinkBuf(r.output, r.next_out))); - } while ((r.avail_in > 0 || 0 === r.avail_out) && 1 !== n); - return 4 === i - ? ((n = a.deflateEnd(this.strm)), this.onEnd(n), (this.ended = !0), n === d) - : 2 !== i || (this.onEnd(d), (r.avail_out = 0), !0); - }), - (i.prototype.onData = function (t) { - this.chunks.push(t); - }), - (i.prototype.onEnd = function (t) { - t === d && - ('string' === this.options.to - ? (this.result = this.chunks.join('')) - : (this.result = o.flattenChunks(this.chunks))), - (this.chunks = []), - (this.err = t), - (this.msg = this.strm.msg); - }), - (n.Deflate = i), - (n.deflate = r), - (n.deflateRaw = function (t, e) { - return ((e = e || {}).raw = !0), r(t, e); - }), - (n.gzip = function (t, e) { - return ((e = e || {}).gzip = !0), r(t, e); - }); - }, - { - './utils/common': 1, - './utils/strings': 2, - './zlib/deflate': 5, - './zlib/messages': 6, - './zlib/zstream': 8, - }, - ], - }, - {}, - [], - )('/lib/deflate.js')), - ((_POSignalsEntities || (_POSignalsEntities = {})).evaluateModernizr = function () { - !(function (t, e, n, i) { - function r(t, e) { - return typeof t === e; - } - function a() { - return 'function' != typeof n.createElement - ? n.createElement(arguments[0]) - : E - ? n.createElementNS.call(n, 'http://www.w3.org/2000/svg', arguments[0]) - : n.createElement.apply(n, arguments); - } - function o(t, e) { - return !!~('' + t).indexOf(e); - } - function s(t, e, i, r) { - var o, - s, - u, - c, - l = 'modernizr', - d = a('div'), - h = (function () { - var t = n.body; - return t || ((t = a(E ? 'svg' : 'body')).fake = !0), t; - })(); - if (parseInt(i, 10)) - for (; i--; ) ((u = a('div')).id = r ? r[i] : l + (i + 1)), d.appendChild(u); - return ( - ((o = a('style')).type = 'text/css'), - (o.id = 's' + l), - (h.fake ? h : d).appendChild(o), - h.appendChild(d), - o.styleSheet ? (o.styleSheet.cssText = t) : o.appendChild(n.createTextNode(t)), - (d.id = l), - h.fake && - ((h.style.background = ''), - (h.style.overflow = 'hidden'), - (c = b.style.overflow), - (b.style.overflow = 'hidden'), - b.appendChild(h)), - (s = e(d, t)), - h.fake - ? (h.parentNode.removeChild(h), (b.style.overflow = c), b.offsetHeight) - : d.parentNode.removeChild(d), - !!s - ); - } - function u(t) { - return t - .replace(/([A-Z])/g, function (t, e) { - return '-' + e.toLowerCase(); - }) - .replace(/^ms-/, '-ms-'); - } - function c(t, n, i) { - var r; - if ('getComputedStyle' in e) { - r = getComputedStyle.call(e, t, n); - var a = e.console; - if (null !== r) i && (r = r.getPropertyValue(i)); - else if (a) { - a[a.error ? 'error' : 'log'].call( - a, - 'getComputedStyle returning null, its possible modernizr test results are inaccurate', - ); - } - } else r = !n && t.currentStyle && t.currentStyle[i]; - return r; - } - function l(t, n) { - var r = t.length; - if ('CSS' in e && 'supports' in e.CSS) { - for (; r--; ) if (e.CSS.supports(u(t[r]), n)) return !0; - return !1; - } - if ('CSSSupportsRule' in e) { - for (var a = []; r--; ) a.push('(' + u(t[r]) + ':' + n + ')'); - return s( - '@supports (' + (a = a.join(' or ')) + ') { #modernizr { position: absolute; } }', - function (t) { - return 'absolute' === c(t, null, 'position'); - }, - ); - } - return i; - } - function d(t) { - return t - .replace(/([a-z])-([a-z])/g, function (t, e, n) { - return e + n.toUpperCase(); - }) - .replace(/^-/, ''); - } - function h(t, e, n, s) { - function u() { - h && (delete P.style, delete P.modElem); - } - if (((s = !r(s, 'undefined') && s), !r(n, 'undefined'))) { - var c = l(t, n); - if (!r(c, 'undefined')) return c; - } - for (var h, f, g, p, v, _ = ['modernizr', 'tspan', 'samp']; !P.style && _.length; ) - (h = !0), (P.modElem = a(_.shift())), (P.style = P.modElem.style); - for (g = t.length, f = 0; f < g; f++) - if (((p = t[f]), (v = P.style[p]), o(p, '-') && (p = d(p)), P.style[p] !== i)) { - if (s || r(n, 'undefined')) return u(), 'pfx' !== e || p; - try { - P.style[p] = n; - } catch (t) {} - if (P.style[p] !== v) return u(), 'pfx' !== e || p; - } - return u(), !1; - } - function f(t, e) { - return function () { - return t.apply(e, arguments); - }; - } - function g(t, e, n, i, a) { - var o = t.charAt(0).toUpperCase() + t.slice(1), - s = (t + ' ' + A.join(o + ' ') + o).split(' '); - return r(e, 'string') || r(e, 'undefined') - ? h(s, e, i, a) - : (function (t, e, n) { - var i; - for (var a in t) - if (t[a] in e) - return !1 === n ? t[a] : r((i = e[t[a]]), 'function') ? f(i, n || e) : i; - return !1; - })((s = (t + ' ' + T.join(o + ' ') + o).split(' ')), e, n); - } - function p(t, e, n) { - return g(t, i, i, e, n); - } - var v = [], - _ = { - _version: '3.11.1', - _config: { classPrefix: '', enableClasses: !0, enableJSClass: !0, usePrefixes: !0 }, - _q: [], - on: function (t, e) { - var n = this; - setTimeout(function () { - e(n[t]); - }, 0); - }, - addTest: function (t, e, n) { - v.push({ name: t, fn: e, options: n }); - }, - addAsyncTest: function (t) { - v.push({ name: null, fn: t }); - }, - }, - m = function () {}; - (m.prototype = _), (m = new m()); - var y = [], - b = n.documentElement, - E = 'svg' === b.nodeName.toLowerCase(), - w = (function () { - var t = !('onblur' in b); - return function (e, n) { - var r; - return ( - !!e && - ((n && 'string' != typeof n) || (n = a(n || 'div')), - !(r = (e = 'on' + e) in n) && - t && - (n.setAttribute || (n = a('div')), - n.setAttribute(e, ''), - (r = 'function' == typeof n[e]), - n[e] !== i && (n[e] = i), - n.removeAttribute(e)), - r) - ); - }; - })(); - (_.hasEvent = w), - m.addTest('ambientlight', w('devicelight', e)), - m.addTest('applicationcache', 'applicationCache' in e), - (function () { - var t = a('audio'); - m.addTest('audio', function () { - var e = !1; - try { - (e = !!t.canPlayType) && (e = new Boolean(e)); - } catch (t) {} - return e; - }); - try { - t.canPlayType && - (m.addTest( - 'audio.ogg', - t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ''), - ), - m.addTest( - 'audio.mp3', - t.canPlayType('audio/mpeg; codecs="mp3"').replace(/^no$/, ''), - ), - m.addTest( - 'audio.opus', - t.canPlayType('audio/ogg; codecs="opus"') || - t.canPlayType('audio/webm; codecs="opus"').replace(/^no$/, ''), - ), - m.addTest('audio.wav', t.canPlayType('audio/wav; codecs="1"').replace(/^no$/, '')), - m.addTest( - 'audio.m4a', - (t.canPlayType('audio/x-m4a;') || t.canPlayType('audio/aac;')).replace( - /^no$/, - '', - ), - )); - } catch (t) {} - })(); - var S = 'Moz O ms Webkit', - A = _._config.usePrefixes ? S.split(' ') : []; - _._cssomPrefixes = A; - var O = { elem: a('modernizr') }; - m._q.push(function () { - delete O.elem; - }); - var P = { style: O.elem.style }; - m._q.unshift(function () { - delete P.style; - }); - var T = _._config.usePrefixes ? S.toLowerCase().split(' ') : []; - (_._domPrefixes = T), (_.testAllProps = g); - var I = function (t) { - var n, - r = L.length, - a = e.CSSRule; - if (void 0 === a) return i; - if (!t) return !1; - if ((n = (t = t.replace(/^@/, '')).replace(/-/g, '_').toUpperCase() + '_RULE') in a) - return '@' + t; - for (var o = 0; o < r; o++) { - var s = L[o]; - if (s.toUpperCase() + '_' + n in a) return '@-' + s.toLowerCase() + '-' + t; - } - return !1; - }; - _.atRule = I; - var D = (_.prefixed = function (t, e, n) { - return 0 === t.indexOf('@') - ? I(t) - : (-1 !== t.indexOf('-') && (t = d(t)), e ? g(t, e, n) : g(t, 'pfx')); - }); - m.addTest('batteryapi', !!D('battery', navigator) || !!D('getBattery', navigator), { - aliases: ['battery-api'], - }), - m.addTest( - 'blobconstructor', - function () { - try { - return !!new Blob(); - } catch (t) { - return !1; - } - }, - { aliases: ['blob-constructor'] }, - ), - m.addTest('contextmenu', 'contextMenu' in b && 'HTMLMenuItemElement' in e), - m.addTest('cors', 'XMLHttpRequest' in e && 'withCredentials' in new XMLHttpRequest()); - var C = D('crypto', e); - m.addTest('crypto', !!D('subtle', C)), - m.addTest('customelements', 'customElements' in e), - m.addTest('customprotocolhandler', function () { - if (!navigator.registerProtocolHandler) return !1; - try { - navigator.registerProtocolHandler('thisShouldFail'); - } catch (t) { - return t instanceof TypeError; - } - return !1; - }), - m.addTest('customevent', 'CustomEvent' in e && 'function' == typeof e.CustomEvent), - m.addTest('dart', !!D('startDart', navigator)), - m.addTest( - 'dataview', - 'undefined' != typeof DataView && 'getFloat64' in DataView.prototype, - ), - m.addTest('eventlistener', 'addEventListener' in e), - m.addTest('forcetouch', function () { - return ( - !!w(D('mouseforcewillbegin', e, !1), e) && - MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN && - MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN - ); - }), - m.addTest('fullscreen', !(!D('exitFullscreen', n, !1) && !D('cancelFullScreen', n, !1))), - m.addTest('gamepads', !!D('getGamepads', navigator)), - m.addTest('geolocation', 'geolocation' in navigator), - m.addTest('ie8compat', !e.addEventListener && !!n.documentMode && 7 === n.documentMode), - m.addTest('intl', !!D('Intl', e)), - m.addTest('json', 'JSON' in e && 'parse' in JSON && 'stringify' in JSON), - (_.testAllProps = p), - m.addTest('ligatures', p('fontFeatureSettings', '"liga" 1')), - m.addTest('messagechannel', 'MessageChannel' in e), - m.addTest('notification', function () { - if (!e.Notification || !e.Notification.requestPermission) return !1; - if ('granted' === e.Notification.permission) return !0; - try { - new e.Notification(''); - } catch (t) { - if ('TypeError' === t.name) return !1; - } - return !0; - }), - m.addTest('pagevisibility', !!D('hidden', n, !1)), - m.addTest('performance', !!D('performance', e)); - var M = [''].concat(T); - (_._domPrefixesAll = M), - m.addTest('pointerevents', function () { - for (var t = 0, e = M.length; t < e; t++) if (w(M[t] + 'pointerdown')) return !0; - return !1; - }), - m.addTest('pointerlock', !!D('exitPointerLock', n)), - m.addTest('queryselector', 'querySelector' in n && 'querySelectorAll' in n), - m.addTest('quotamanagement', function () { - var t = D('temporaryStorage', navigator), - e = D('persistentStorage', navigator); - return !(!t || !e); - }), - m.addTest('requestanimationframe', !!D('requestAnimationFrame', e), { aliases: ['raf'] }), - m.addTest('serviceworker', 'serviceWorker' in navigator); - var L = _._config.usePrefixes ? ' -webkit- -moz- -o- -ms- '.split(' ') : ['', '']; - _._prefixes = L; - var U = (function () { - var t = e.matchMedia || e.msMatchMedia; - return t - ? function (e) { - var n = t(e); - return (n && n.matches) || !1; - } - : function (t) { - var e = !1; - return ( - s('@media ' + t + ' { #modernizr { position: absolute; } }', function (t) { - e = 'absolute' === c(t, null, 'position'); - }), - e - ); - }; - })(); - (_.mq = U), - m.addTest('touchevents', function () { - if ( - 'ontouchstart' in e || - e.TouchEvent || - (e.DocumentTouch && n instanceof DocumentTouch) - ) - return !0; - var t = ['(', L.join('touch-enabled),('), 'heartz', ')'].join(''); - return U(t); - }), - m.addTest('typedarrays', 'ArrayBuffer' in e), - m.addTest('vibrate', !!D('vibrate', navigator)), - (function () { - var t = a('video'); - m.addTest('video', function () { - var e = !1; - try { - (e = !!t.canPlayType) && (e = new Boolean(e)); - } catch (t) {} - return e; - }); - try { - t.canPlayType && - (m.addTest( - 'video.ogg', - t.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ''), - ), - m.addTest( - 'video.h264', - t.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ''), - ), - m.addTest( - 'video.h265', - t.canPlayType('video/mp4; codecs="hev1"').replace(/^no$/, ''), - ), - m.addTest( - 'video.webm', - t.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, ''), - ), - m.addTest( - 'video.vp9', - t.canPlayType('video/webm; codecs="vp9"').replace(/^no$/, ''), - ), - m.addTest( - 'video.hls', - t.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(/^no$/, ''), - ), - m.addTest( - 'video.av1', - t.canPlayType('video/mp4; codecs="av01"').replace(/^no$/, ''), - )); - } catch (t) {} - })(), - m.addTest('webgl', function () { - return 'WebGLRenderingContext' in e; - }); - var k = !1; - try { - k = 'WebSocket' in e && 2 === e.WebSocket.CLOSING; - } catch (t) {} - m.addTest('websockets', k), - m.addTest('xdomainrequest', 'XDomainRequest' in e), - m.addTest('matchmedia', !!D('matchMedia', e)), - (function () { - var t, e, n, i, a, o; - for (var s in v) - if (v.hasOwnProperty(s)) { - if ( - ((t = []), - (e = v[s]).name && - (t.push(e.name.toLowerCase()), - e.options && e.options.aliases && e.options.aliases.length)) - ) - for (n = 0; n < e.options.aliases.length; n++) - t.push(e.options.aliases[n].toLowerCase()); - for (i = r(e.fn, 'function') ? e.fn() : e.fn, a = 0; a < t.length; a++) - 1 === (o = t[a].split('.')).length - ? (m[o[0]] = i) - : ((m[o[0]] && (!m[o[0]] || m[o[0]] instanceof Boolean)) || - (m[o[0]] = new Boolean(m[o[0]])), - (m[o[0]][o[1]] = i)), - y.push((i ? '' : 'no-') + o.join('-')); - } - })(), - delete _.addTest, - delete _.addAsyncTest; - for (var x = 0; x < m._q.length; x++) m._q[x](); - t.Modernizr = m; - })(_POSignalsEntities || (_POSignalsEntities = {}), window, document); - }); - var __awaiter = - (this && this.__awaiter) || - function (t, e, n, i) { - return new (n || (n = Promise))(function (r, a) { - function o(t) { - try { - u(i.next(t)); - } catch (t) { - a(t); - } - } - function s(t) { - try { - u(i.throw(t)); - } catch (t) { - a(t); - } - } - function u(t) { - var e; - t.done - ? r(t.value) - : ((e = t.value), - e instanceof n - ? e - : new n(function (t) { - t(e); - })).then(o, s); - } - u((i = i.apply(t, e || [])).next()); - }); - }, - __generator = - (this && this.__generator) || - function (t, e) { - var n, - i, - r, - a, - o = { - label: 0, - sent: function () { - if (1 & r[0]) throw r[1]; - return r[1]; - }, - trys: [], - ops: [], - }; - return ( - (a = { next: s(0), throw: s(1), return: s(2) }), - 'function' == typeof Symbol && - (a[Symbol.iterator] = function () { - return this; - }), - a - ); - function s(a) { - return function (s) { - return (function (a) { - if (n) throw new TypeError('Generator is already executing.'); - for (; o; ) - try { - if ( - ((n = 1), - i && - (r = - 2 & a[0] - ? i.return - : a[0] - ? i.throw || ((r = i.return) && r.call(i), 0) - : i.next) && - !(r = r.call(i, a[1])).done) - ) - return r; - switch (((i = 0), r && (a = [2 & a[0], r.value]), a[0])) { - case 0: - case 1: - r = a; - break; - case 4: - return o.label++, { value: a[1], done: !1 }; - case 5: - o.label++, (i = a[1]), (a = [0]); - continue; - case 7: - (a = o.ops.pop()), o.trys.pop(); - continue; - default: - if ( - !(r = (r = o.trys).length > 0 && r[r.length - 1]) && - (6 === a[0] || 2 === a[0]) - ) { - o = 0; - continue; - } - if (3 === a[0] && (!r || (a[1] > r[0] && a[1] < r[3]))) { - o.label = a[1]; - break; - } - if (6 === a[0] && o.label < r[1]) { - (o.label = r[1]), (r = a); - break; - } - if (r && o.label < r[2]) { - (o.label = r[2]), o.ops.push(a); - break; - } - r[2] && o.ops.pop(), o.trys.pop(); - continue; - } - a = e.call(t, o); - } catch (t) { - (a = [6, t]), (i = 0); - } finally { - n = r = 0; - } - if (5 & a[0]) throw a[1]; - return { value: a[0] ? a[1] : void 0, done: !0 }; - })([a, s]); - }; - } - }, - __assign = - (this && this.__assign) || - function () { - return (__assign = - Object.assign || - function (t) { - for (var e, n = 1, i = arguments.length; n < i; n++) - for (var r in (e = arguments[n])) - Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); - return t; - }).apply(this, arguments); - }; - !(function (t) { - !(function (e) { - var n = (function () { - function n() { - (this._isIphoneOrIPad = !1), - (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i)) && - (this._isIphoneOrIPad = !0), - this.initUAParser(); - } - return ( - Object.defineProperty(n.prototype, 'userAgentData', { - get: function () { - return this._userAgentData; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'deviceType', { - get: function () { - return ( - this._deviceType || - (e.Util.isMobile - ? (this._deviceType = - this.mobileType || this.desktopType || n.UNKNOWN_DEVICE_TYPE) - : (this._deviceType = - this.desktopType || this.mobileType || n.UNKNOWN_DEVICE_TYPE)), - this._deviceType - ); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'isIphoneOrIPad', { - get: function () { - return this._isIphoneOrIPad; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'browserName', { - get: function () { - return this._userAgentData && - this._userAgentData.browser && - this._userAgentData.browser.name - ? this._userAgentData.browser.name.trim() - : ''; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'browserVersion', { - get: function () { - return this._userAgentData && - this._userAgentData.browser && - this._userAgentData.browser.version - ? this._userAgentData.browser.version.trim() - : ''; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'osName', { - get: function () { - return this._userAgentData && this._userAgentData.os && this._userAgentData.os.name - ? this._userAgentData.os.name.trim() - : ''; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'osVersion', { - get: function () { - return this._userAgentData && this._userAgentData.os && this._userAgentData.os.version - ? this._userAgentData.os.version.trim() - : ''; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'deviceCategory', { - get: function () { - return this._userAgentData && this._userAgentData.device - ? this._userAgentData.device.type - : ''; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'engineName', { - get: function () { - return this._userAgentData && - this._userAgentData.engine && - this._userAgentData.engine.name - ? this._userAgentData.engine.name.trim() - : ''; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'engineVersion', { - get: function () { - return this._userAgentData && - this._userAgentData.engine && - this._userAgentData.engine.version - ? this._userAgentData.engine.version.trim() - : ''; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'cpuArchitecture', { - get: function () { - return this._userAgentData && - this._userAgentData.cpu && - this._userAgentData.cpu.architecture - ? this._userAgentData.cpu.architecture.trim() - : ''; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'deviceModel', { - get: function () { - return this._userAgentData && - this._userAgentData.device && - this._userAgentData.device.model - ? this._userAgentData.device.model.trim() - : ''; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'deviceVendor', { - get: function () { - return this._userAgentData && - this._userAgentData.device && - this._userAgentData.device.vendor - ? this._userAgentData.device.vendor.trim() - : ''; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'desktopType', { - get: function () { - var t = this.browserName; - this.browserVersion && (t = t + '(' + this.browserVersion + ')'); - var e = this.osName; - this.osVersion && (e = e + '(' + this.osVersion + ')'); - var n = t && e ? t + '-' + e : t || e; - return n ? n.trim() : ''; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'mobileType', { - get: function () { - var t = this.deviceModel, - e = this.deviceVendor, - n = t && e ? t + ' ' + e : t || e; - return n ? n.trim() : ''; - }, - enumerable: !1, - configurable: !0, - }), - (n.prototype.initUAParser = function () { - try { - var n = new t.UAParser(); - n.setUA(navigator.userAgent), (this._userAgentData = n.getResult()); - } catch (t) { - e.Logger.warn('UAParser failure', t); - } - }), - (n.UNKNOWN_DEVICE_TYPE = 'unknown'), - n - ); - })(); - e.BrowserInfo = n; - })(t._POSignalsUtils || (t._POSignalsUtils = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (t) { - var e = (function () { - function t() {} - return ( - Object.defineProperty(t, 'CLIENT_VERSION', { - get: function () { - return '5.3.5w'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'SALT', { - get: function () { - return 'ST8irbd3bB'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'TAB_UUID_KEY', { - get: function () { - return 'pos_tid'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'OPS_KEY', { - get: function () { - return 'pos_ops'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'DEVICE_ID_KEY', { - get: function () { - return 'SecuredTouchDeviceId'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'LAST_DEVICE_KEY_RESYNC', { - get: function () { - return 'DeviceRefreshDate'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'CAPTURED_KEYBOARD_INTERACTIONS', { - get: function () { - return 'pos_cki'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'CAPTURED_MOUSE_INTERACTIONS', { - get: function () { - return 'pos_cmi'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'CAPTURED_GESTURES', { - get: function () { - return 'pos_cg'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'CAPTURED_INDIRECT', { - get: function () { - return 'pos_cie'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'CAPTURED_TAGS', { - get: function () { - return 'pos_ct'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'KEYBOARD_INTERACTIONS_COUNT', { - get: function () { - return 'pos_kic'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'MOUSE_INTERACTIONS_COUNT', { - get: function () { - return 'pos_mic'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'GESTURES_COUNT', { - get: function () { - return 'pos_gc'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'EVENT_COUNTERS', { - get: function () { - return 'pos_ec'; - }, - enumerable: !1, - configurable: !0, - }), - t - ); - })(); - t.Constants = e; - })(t._POSignalsUtils || (t._POSignalsUtils = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (t) { - var e = (function () { - function e(t, e, n) { - if ( - (void 0 === t && (t = 'RSA-PSS'), - void 0 === e && (e = ['sign', 'verify']), - void 0 === n && (n = 'SHA-256'), - (this.signingKeyType = t), - (this.keyUsage = e), - (this.algorithm = n), - (this._crypto = window.crypto || window.msCrypto), - !this._crypto || !this._crypto.subtle) - ) - throw new Error('Cryptography API not supported in this browser'); - } - return ( - (e.prototype.generateKeys = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (t) { - return [ - 2, - this._crypto.subtle.generateKey( - { - name: this.signingKeyType, - modulusLength: 2048, - publicExponent: new Uint8Array([1, 0, 1]), - hash: { name: this.algorithm }, - }, - !1, - this.keyUsage, - ), - ]; - }); - }); - }), - (e.prototype.exportPublicKey = function (e) { - return __awaiter(this, void 0, void 0, function () { - var n, i, r; - return __generator(this, function (a) { - switch (a.label) { - case 0: - return [4, this._crypto.subtle.exportKey('spki', e.publicKey)]; - case 1: - return ( - (n = a.sent()), - (i = t.Util.ab2str(n)), - (r = btoa(i)), - t.Logger.debug('Exported base64 pub key: ', r), - [2, r] - ); - } - }); - }); - }), - (e.prototype.exportPrivateKey = function (e) { - return __awaiter(this, void 0, void 0, function () { - var n, i, r, a; - return __generator(this, function (o) { - switch (o.label) { - case 0: - return [4, this._crypto.subtle.exportKey('pkcs8', e.privateKey)]; - case 1: - return ( - (n = o.sent()), - (i = t.Util.ab2str(n)), - (r = btoa(i)), - (a = '-----BEGIN PRIVATE KEY-----\n' + r + '\n-----END PRIVATE KEY-----'), - t.Logger.debug('Exported base64 pem:', a), - [2, a] - ); - } - }); - }); - }), - (e.prototype.signChallenge = function (e, n, i) { - return ( - void 0 === i && (i = 0), - __awaiter(this, void 0, void 0, function () { - var r, a, o; - return __generator(this, function (s) { - switch (s.label) { - case 0: - return ( - (r = t.Util.string2buf(e)), - [ - 4, - this._crypto.subtle.sign( - { name: this.signingKeyType, saltLength: i, hash: this.algorithm }, - n, - r, - ), - ] - ); - case 1: - return ( - (a = s.sent()), - (o = btoa(String.fromCharCode.apply(null, new Uint8Array(a)))), - t.Logger.debug('Signed challenge: ', o), - [2, o] - ); - } - }); - }) - ); - }), - e - ); - })(); - t.CryptoOperator = e; - })(t._POSignalsUtils || (t._POSignalsUtils = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (t) { - var e = (function () { - function t() {} - return ( - Object.defineProperty(t, 'isLogEnabled', { - get: function () { - return this._isLogEnabled || window['enable-logs-pingOneSignals']; - }, - set: function (t) { - this._isLogEnabled = t; - }, - enumerable: !1, - configurable: !0, - }), - (t.debug = function (e) { - for (var n = [], i = 1; i < arguments.length; i++) n[i - 1] = arguments[i]; - (e = t.TAG + ' ' + e), - t.isLogEnabled && - (n && n.length > 0 - ? console.debug - ? console.debug(e, n) - : console.log(e, n) - : console.debug - ? console.debug(e) - : console.log(e)); - }), - (t.error = function (e) { - for (var n = [], i = 1; i < arguments.length; i++) n[i - 1] = arguments[i]; - (e = t.TAG + ' ' + e), - t.isLogEnabled && (n && n.length > 0 ? console.error(e, n) : console.error(e)); - }), - (t.warn = function (e) { - for (var n = [], i = 1; i < arguments.length; i++) n[i - 1] = arguments[i]; - (e = t.TAG + ' ' + e), - t.isLogEnabled && (n && n.length > 0 ? console.warn(e, n) : console.warn(e)); - }), - (t.info = function (e) { - for (var n = [], i = 1; i < arguments.length; i++) n[i - 1] = arguments[i]; - (e = t.TAG + ' ' + e), - t.isLogEnabled && (n && n.length > 0 ? console.info(e, n) : console.info(e)); - }), - (t.TAG = '[SignalsSDK]'), - t - ); - })(); - t.Logger = e; - })(t._POSignalsUtils || (t._POSignalsUtils = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (t) { - var e = (function () { - function t() {} - return ( - Object.defineProperty(t, 'INITIALIZATION_ERROR', { - get: function () { - return 'INITIALIZATION_ERROR'; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(t, 'UNEXPECTED_ERROR', { - get: function () { - return 'UNEXPECTED_ERROR'; - }, - enumerable: !1, - configurable: !0, - }), - t - ); - })(); - t.POErrorCodes = e; - })(t._POSignalsUtils || (t._POSignalsUtils = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (e) { - var n = (function () { - function n() {} - return ( - Object.defineProperty(n, 'isMobile', { - get: function () { - var t, - e = !1; - return ( - (t = navigator.userAgent || navigator.vendor || window.opera), - (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test( - t, - ) || - /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test( - t.substr(0, 4), - )) && - (e = !0), - e - ); - }, - enumerable: !1, - configurable: !0, - }), - (n.newGuid = function () { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (t) { - var e = (16 * Math.random()) | 0; - return ('x' === t ? e : (3 & e) | 8).toString(16); - }); - }), - (n.ieFix = function () { - (-1 != navigator.userAgent.indexOf('MSIE') - ? /MSIE (\d+\.\d+);/ - : /Trident.*rv[ :]*(\d+\.\d+)/ - ).test(navigator.userAgent) && - (document.body.setAttribute('style', '-ms-touch-action:none;'), - (document.body.style.touchAction = 'none'), - (document.body.style.msTouchAction = 'none')); - }), - (n.now = function () { - var t = window.performance || {}; - return ( - (t.now = - t.now || - t.webkitNow || - t.msNow || - t.oNow || - t.mozNow || - function () { - return new Date().getTime(); - }), - t.now() - ); - }), - (n.base64Uint8Array = function (t) { - var e, - n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', - i = t.length, - r = ''; - for (e = 0; e < i; e += 3) - (r += n[t[e] >> 2]), - (r += n[((3 & t[e]) << 4) | (t[e + 1] >> 4)]), - (r += n[((15 & t[e + 1]) << 2) | (t[e + 2] >> 6)]), - (r += n[63 & t[e + 2]]); - return ( - i % 3 == 2 - ? (r = r.substring(0, r.length - 1) + '=') - : i % 3 == 1 && (r = r.substring(0, r.length - 2) + '=='), - r - ); - }), - (n.string2buf = function (t) { - if ('function' == typeof TextEncoder && TextEncoder.prototype.encode) - return new TextEncoder().encode(t); - var e, - n, - i, - r, - a, - o = t.length, - s = 0; - for (r = 0; r < o; r++) - 55296 == (64512 & (n = t.charCodeAt(r))) && - r + 1 < o && - 56320 == (64512 & (i = t.charCodeAt(r + 1))) && - ((n = 65536 + ((n - 55296) << 10) + (i - 56320)), r++), - (s += n < 128 ? 1 : n < 2048 ? 2 : n < 65536 ? 3 : 4); - for (e = new Uint8Array(s), a = 0, r = 0; a < s; r++) - 55296 == (64512 & (n = t.charCodeAt(r))) && - r + 1 < o && - 56320 == (64512 & (i = t.charCodeAt(r + 1))) && - ((n = 65536 + ((n - 55296) << 10) + (i - 56320)), r++), - n < 128 - ? (e[a++] = n) - : n < 2048 - ? ((e[a++] = 192 | (n >>> 6)), (e[a++] = 128 | (63 & n))) - : n < 65536 - ? ((e[a++] = 224 | (n >>> 12)), - (e[a++] = 128 | ((n >>> 6) & 63)), - (e[a++] = 128 | (63 & n))) - : ((e[a++] = 240 | (n >>> 18)), - (e[a++] = 128 | ((n >>> 12) & 63)), - (e[a++] = 128 | ((n >>> 6) & 63)), - (e[a++] = 128 | (63 & n))); - return e; - }), - (n.utf8Encode = function (t) { - t = t.replace(/\r\n/g, '\n'); - for (var e = '', n = 0; n < t.length; n++) { - var i = t.charCodeAt(n); - i < 128 - ? (e += String.fromCharCode(i)) - : i > 127 && i < 2048 - ? ((e += String.fromCharCode((i >> 6) | 192)), - (e += String.fromCharCode((63 & i) | 128))) - : ((e += String.fromCharCode((i >> 12) | 224)), - (e += String.fromCharCode(((i >> 6) & 63) | 128)), - (e += String.fromCharCode((63 & i) | 128))); - } - return e; - }), - (n.hash = function (i) { - var r = n.hashCache.get(i); - return r || ((r = t.sha256(i + e.Constants.SALT)), n.hashCache.set(i, r)), r; - }), - (n.hashMini = function (t) { - var e, - n, - i = '' + JSON.stringify(t), - r = 2166136261; - for (e = 0, n = i.length; e < n; e++) r = (Math.imul(31, r) + i.charCodeAt(e)) | 0; - return ('0000000' + (r >>> 0).toString(16)).substr(-8); - }), - (n.hashCode = function (t) { - var e = 0, - n = t ? t.length : 0, - i = 0; - if (n > 0) for (; i < n; ) e = ((e << 5) - e + t.charCodeAt(i++)) | 0; - return e; - }), - (n.mod = function (t, e) { - return ((n.hashCode(t) % e) + e) % e; - }), - (n.isEmail = function (t) { - try { - return ( - t && - /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test( - t.toLowerCase(), - ) - ); - } catch (t) { - return e.Logger.warn('isEmail function failed to parse string', t), !1; - } - }), - (n.getEmailDomain = function (t) { - return n.isEmail(t) ? t.substring(t.lastIndexOf('@') + 1) : ''; - }), - (n.extendPrimitiveValues = function (t, e, i) { - for (var r = n.allKeys(e), a = 0; a < r.length; ) - n.isObject(e[r[a]]) || (i && (!i || void 0 !== t[r[a]])) || (t[r[a]] = e[r[a]]), - a++; - return t; - }), - (n.flatten = function (t) { - var e = {}; - return n.dive('', t, e), e; - }), - (n.isFunction = function (t) { - return t && 'function' == typeof t; - }), - (n.isPassiveSupported = function () { - var t = !1, - e = function () {}; - try { - var n = { - get passive() { - return (t = !0), !0; - }, - }; - window.addEventListener('test', e, n), window.removeEventListener('test', e, !1); - } catch (e) { - t = !1; - } - return t; - }), - (n.getAttribute = function (t, e) { - try { - if (t && 'function' == typeof t.getAttribute) return t.getAttribute(e) || ''; - } catch (t) {} - return ''; - }), - (n.createInvisibleElement = function (t) { - try { - var n = document.createElement(t); - return ( - (n.style.display = 'none'), - (n.style.border = 'none'), - (n.style.position = 'absolute'), - (n.style.top = '-999px'), - (n.style.left = '-999px'), - (n.style.width = '0'), - (n.style.height = '0'), - (n.style.visibility = 'hidden'), - n - ); - } catch (t) { - return e.Logger.warn('Failed to create element', t), null; - } - }), - (n.values = function (t) { - for (var e = n.allKeys(t), i = e.length, r = Array(i), a = 0; a < i; a++) - r[a] = t[e[a]]; - return r; - }), - (n.getValuesOfMap = function (t) { - if (this.isFunction(t.values)) return Array.from(t.values()); - var e = []; - return ( - t.forEach(function (t) { - return e.push(t); - }), - e - ); - }), - (n.typesCounter = function (t) { - for (var e = {}, n = 0, i = t; n < i.length; n++) { - var r = i[n]; - e[r.type] = (e[r.type] || 0) + 1; - } - return e; - }), - (n.modifiersKeys = function (t) { - var e = []; - return ( - t.getModifierState && - [ - 'Alt', - 'AltGraph', - 'CapsLock', - 'Control', - 'Fn', - 'FnLock', - 'Hyper', - 'Meta', - 'NumLock', - 'OS', - 'ScrollLock', - 'Shift', - 'Super', - 'Symbol', - 'SymbolLock', - ].forEach(function (n) { - t.getModifierState(n.toString()) && e.push(n); - }), - e - ); - }), - (n.getElementText = function (t) { - var e, n; - return t instanceof HTMLInputElement - ? ['checkbox', 'radio'].indexOf(t.type) >= 0 - ? '' + t.checked - : t.value - : t instanceof HTMLSelectElement - ? null === - (n = null === (e = t.selectedOptions) || void 0 === e ? void 0 : e[0]) || - void 0 === n - ? void 0 - : n.innerText - : t.innerText; - }), - (n.getSrcElement = function (t) { - return t.srcElement || t.target; - }), - (n.getObjectType = function (t) { - try { - var e = /function (.{1,})\(/.exec(t.constructor.toString()); - return e && e.length > 1 ? e[1] : ''; - } catch (t) { - return ''; - } - }), - (n.isSelectorMatches = function (t, e, n) { - try { - var i = Element.prototype, - r = - i.matches || - i.webkitMatchesSelector || - i.mozMatchesSelector || - i.msMatchesSelector, - a = 0; - do { - if (r.call(t, e)) return t; - t = t.parentElement || t.parentNode; - } while (null !== t && 1 === t.nodeType && a++ < n); - return null; - } catch (t) { - return null; - } - }), - (n.anySelectorMatches = function (t, n, i) { - try { - for (var r = 0, a = n; r < a.length; r++) { - var o = a[r]; - if (this.isSelectorMatches(t, o, i)) return !0; - } - } catch (t) { - e.Logger.warn(t); - } - return !1; - }), - (n.isArray = function (t) { - return Array.isArray - ? Array.isArray(t) - : '[object Array]' === Object.prototype.toString.call(t); - }), - (n.safeJsonParse = function (t) { - var n = null; - try { - t && (n = JSON.parse(t)); - } catch (t) { - e.Logger.warn('Failed to parse object ' + t), (n = null); - } - return n; - }), - (n.getElementSelectionStart = function (t) { - var e; - try { - e = t.selectionStart; - } catch (t) { - e = ''; - } - return e; - }), - (n.getElementSelectionEnd = function (t) { - var e; - try { - e = t.selectionEnd; - } catch (t) { - e = ''; - } - return e; - }), - (n.isClickableInput = function (t) { - return ( - t && - [ - 'button', - 'checkbox', - 'color', - 'radio', - 'range', - 'image', - 'submit', - 'file', - 'reset', - ].indexOf(t.type) >= 0 - ); - }), - (n.isTextInput = function (t) { - return ( - t && - [ - 'date', - 'datetime-local', - 'email', - 'month', - 'number', - 'password', - 'search', - 'tel', - 'text', - 'time', - 'url', - 'week', - 'datetime', - ].indexOf(t.type) >= 0 - ); - }), - (n.getDeviceOrientation = function () { - var t = screen.orientation || screen.mozOrientation || {}, - e = screen.msOrientation || t.type, - n = t.angle; - return { - orientation: null === e || void 0 === e ? void 0 : e.toString(), - angle: null === n || void 0 === n ? void 0 : n.toString(), - }; - }), - (n.getDevToolsState = function () { - var t, - e, - n = window.outerWidth - window.innerWidth > 160, - i = window.outerHeight - window.innerHeight > 160, - r = n ? 'vertical' : 'horizontal'; - return (i && n) || - !( - (null === - (e = null === (t = window.Firebug) || void 0 === t ? void 0 : t.chrome) || - void 0 === e - ? void 0 - : e.isInitialized) || - n || - i - ) - ? { open: !1, orientation: void 0 } - : { open: !0, orientation: r }; - }), - (n.getCookie = function (t) { - var e = document.cookie.match('(^|;) ?' + t + '=([^;]*)(;|$)'); - return e ? e[2] : null; - }), - (n.setCookie = function (t, e, n) { - var i = new Date(); - i.setTime(i.getTime() + 1e3 * n), - (document.cookie = - t + '=' + e + ';path=/;secure;SameSite=None;expires=' + i.toUTCString()); - }), - (n.deleteCookie = function (t) { - n.setCookie(t, '', -1); - }), - (n.delay = function (t) { - return new Promise(function (e) { - return setTimeout(e, t); - }); - }), - (n.getHostnameFromRegex = function (t) { - if (t) { - var e = t.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i); - return e && e[1]; - } - return null; - }), - (n.inIframe = function () { - try { - return window.self !== window.top; - } catch (t) { - return !0; - } - }), - (n.promiseTimeout = function (t, e) { - var n = new Promise(function (e, n) { - var i = setTimeout(function () { - clearTimeout(i), n(new Error('Timed out in ' + t + 'ms.')); - }, t); - }); - return Promise.race([e, n]); - }), - (n.getProperty = function (t, e) { - return e.split('.').reduce(function (t, e) { - return t ? t[e] : null; - }, t); - }), - (n.filterReduce = function (t, e) { - return Object.keys(t) - .filter(function (n) { - return e(t[n]); - }) - .reduce(function (e, n) { - var i; - return __assign(__assign({}, e), (((i = {})[n] = t[n]), i)); - }, {}); - }), - (n.dive = function (t, e, i) { - for (var r in e) - if (e.hasOwnProperty(r)) { - var a = r, - o = e[r]; - t.length > 0 && (a = t + '.' + r), n.isObject(o) ? n.dive(a, o, i) : (i[a] = o); - } - }), - (n.isObject = function (t) { - var e = typeof t; - return 'function' === e || ('object' === e && !!t); - }), - (n.allKeys = function (t) { - if (!n.isObject(t)) return []; - var e = []; - for (var i in t) e.push(i); - return e; - }), - (n.encryptionString = function (t, e) { - for (var n = [], i = 0; i < t.length; i++) { - var r = t.charCodeAt(i) ^ e.charCodeAt(i % e.length); - n.push(String.fromCharCode(r)); - } - return n.join(''); - }), - (n.encryptionBytes = function (t, e) { - for (var n = new Uint8Array(t.length), i = 0; i < t.length; i++) - n[i] = t[i] ^ e.charCodeAt(i % e.length); - return n; - }), - (n.parseJwt = function (t) { - var e = t.split('.')[1].replace(/-/g, '+').replace(/_/g, '/'), - n = decodeURIComponent( - window - .atob(e) - .split('') - .map(function (t) { - return '%' + ('00' + t.charCodeAt(0).toString(16)).slice(-2); - }) - .join(''), - ); - return JSON.parse(n); - }), - (n.calculateMeanTimeDeltasBetweenEvents = function (t) { - var e = 0; - if ((null === t || void 0 === t ? void 0 : t.length) > 1) { - for (var n = t[0].epochTs, i = 1; i < t.length; i++) - (e += t[i].epochTs - n), (n = t[i].epochTs); - e /= t.length - 1; - } - return e; - }), - (n.sortEventsByTimestamp = function (t) { - return t.sort(function (t, e) { - return t.eventTs > e.eventTs - ? 1 - : t.eventTs < e.eventTs - ? -1 - : t.epochTs > e.epochTs - ? 1 - : t.epochTs < e.epochTs - ? -1 - : 'click' === t.type - ? 1 - : -1; - }); - }), - (n.distanceBetweenPoints = function (t, e) { - return Math.sqrt(Math.pow(t.getX() - e.getX(), 2) + Math.pow(t.getY() - e.getY(), 2)); - }), - (n.calculateMeanDistanceBetweenPoints = function (t) { - var e = 0; - if ((null === t || void 0 === t ? void 0 : t.length) > 1) { - for (var i = 1; i < t.length; i++) e += n.distanceBetweenPoints(t[i - 1], t[i]); - e /= t.length - 1; - } - return e; - }), - (n.filterArrayByLength = function (t, e) { - return t.length <= e ? t : t.slice(0, e).concat(t[t.length - 1]); - }), - (n.keepFirstEventsWithDistance = function (t) { - var e = t.events, - n = t.threshold, - i = t.min, - r = t.max; - if (e.length <= i) return e; - var a, - o = e[0]; - for (a = 1; a < e.length && a < r; a++) { - if ( - Math.max(Math.abs(e[a].getX() - o.getX()), Math.abs(e[a].getY() - o.getY())) >= n - ) - break; - } - return e.slice(0, Math.max(a + 1, i)); - }), - (n.ab2str = function (t) { - return String.fromCharCode.apply(null, new Uint8Array(t)); - }), - (n.str2ab = function (t) { - for ( - var e = new ArrayBuffer(t.length), n = new Uint8Array(e), i = 0, r = t.length; - i < r; - i++ - ) - n[i] = t.charCodeAt(i); - return e; - }), - (n.hashCache = new Map()), - (n.keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='), - n - ); - })(); - e.Util = n; - })(t._POSignalsUtils || (t._POSignalsUtils = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})); - (__awaiter = - (this && this.__awaiter) || - function (t, e, n, i) { - return new (n || (n = Promise))(function (r, a) { - function o(t) { - try { - u(i.next(t)); - } catch (t) { - a(t); - } - } - function s(t) { - try { - u(i.throw(t)); - } catch (t) { - a(t); - } - } - function u(t) { - var e; - t.done - ? r(t.value) - : ((e = t.value), - e instanceof n - ? e - : new n(function (t) { - t(e); - })).then(o, s); - } - u((i = i.apply(t, e || [])).next()); - }); - }), - (__generator = - (this && this.__generator) || - function (t, e) { - var n, - i, - r, - a, - o = { - label: 0, - sent: function () { - if (1 & r[0]) throw r[1]; - return r[1]; - }, - trys: [], - ops: [], - }; - return ( - (a = { next: s(0), throw: s(1), return: s(2) }), - 'function' == typeof Symbol && - (a[Symbol.iterator] = function () { - return this; - }), - a - ); - function s(a) { - return function (s) { - return (function (a) { - if (n) throw new TypeError('Generator is already executing.'); - for (; o; ) - try { - if ( - ((n = 1), - i && - (r = - 2 & a[0] - ? i.return - : a[0] - ? i.throw || ((r = i.return) && r.call(i), 0) - : i.next) && - !(r = r.call(i, a[1])).done) - ) - return r; - switch (((i = 0), r && (a = [2 & a[0], r.value]), a[0])) { - case 0: - case 1: - r = a; - break; - case 4: - return o.label++, { value: a[1], done: !1 }; - case 5: - o.label++, (i = a[1]), (a = [0]); - continue; - case 7: - (a = o.ops.pop()), o.trys.pop(); - continue; - default: - if ( - !(r = (r = o.trys).length > 0 && r[r.length - 1]) && - (6 === a[0] || 2 === a[0]) - ) { - o = 0; - continue; - } - if (3 === a[0] && (!r || (a[1] > r[0] && a[1] < r[3]))) { - o.label = a[1]; - break; - } - if (6 === a[0] && o.label < r[1]) { - (o.label = r[1]), (r = a); - break; - } - if (r && o.label < r[2]) { - (o.label = r[2]), o.ops.push(a); - break; - } - r[2] && o.ops.pop(), o.trys.pop(); - continue; - } - a = e.call(t, o); - } catch (t) { - (a = [6, t]), (i = 0); - } finally { - n = r = 0; - } - if (5 & a[0]) throw a[1]; - return { value: a[0] ? a[1] : void 0, done: !0 }; - })([a, s]); - }; - } - }); - !(function (t) { - var e = t.openDB; - !(function (t) { - var n = (function () { - function t() {} - return ( - (t.initDB = function () { - return __awaiter(this, void 0, void 0, function () { - var n, - i = this; - return __generator(this, function (r) { - if ( - !( - window.indexedDB || - window.mozIndexedDB || - window.webkitIndexedDB || - window.msIndexedDB - ) - ) - throw new Error('IndexedDB is not supported'); - return ( - (n = new t()), - [ - 2, - new Promise(function (r) { - return __awaiter(i, void 0, void 0, function () { - var i; - return __generator(this, function (a) { - switch (a.label) { - case 0: - return ( - (i = n), - [ - 4, - e(this._PingDBName, t._version, { - upgrade: function (e, n, i, r, a) { - e.createObjectStore(t._storeDefaultName); - }, - }), - ] - ); - case 1: - return (i.indexedDatabase = a.sent()), r(n), [2]; - } - }); - }); - }), - ] - ); - }); - }); - }), - (t.prototype.close = function () { - this.indexedDatabase.close(); - }), - (t.prototype.getValue = function (e) { - return this.indexedDatabase.get(t._storeDefaultName, e); - }), - (t.prototype.setValue = function (e, n) { - return this.indexedDatabase.put(t._storeDefaultName, n, e); - }), - (t._PingDBName = 'Ping'), - (t._version = 1), - (t._storeDefaultName = 'PING_ONE'), - t - ); - })(); - t.IndexedDBStorage = n; - })(t._POSignalsStorage || (t._POSignalsStorage = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (e) { - var n = (function () { - function e(e, n) { - this.crossStorageClient = new t.CrossStorageClient(e, n); - } - return ( - (e.prototype.get = function (e) { - var n = t._POSignalsUtils.Util.hash(e); - return this.crossStorageClient.get(n); - }), - (e.prototype.del = function (e) { - return this.crossStorageClient.del(t._POSignalsUtils.Util.hash(e)); - }), - (e.prototype.set = function (e, n, i) { - return this.crossStorageClient.set(t._POSignalsUtils.Util.hash(e), n, i); - }), - (e.prototype.onConnect = function () { - return this.crossStorageClient.onConnect(); - }), - (e.prototype.close = function (t) { - return this.crossStorageClient.close(t); - }), - (e.prototype.getSignedPayload = function (t, e) { - return this.crossStorageClient.getSignedPayload(t, e); - }), - (e.prototype.getDeviceDetails = function (e) { - var n = t._POSignalsUtils.Util.hash(e); - return this.crossStorageClient.getDeviceDetails(n); - }), - (e.prototype.setDeviceDetails = function (e, n) { - var i = t._POSignalsUtils.Util.hash(e); - return this.crossStorageClient.setDeviceDetails(i, n); - }), - e - ); - })(); - e.CrossStorage = n; - var i = (function () { - function t(t) { - this.storage = t; - } - return ( - (t.prototype.get = function (t) { - return Promise.resolve(this.storage.getItem(t)); - }), - (t.prototype.del = function (t) { - return this.storage.removeItem(t), Promise.resolve(); - }), - (t.prototype.set = function (t, e) { - return this.storage.setItem(t, e), Promise.resolve(); - }), - (t.prototype.onConnect = function () { - return Promise.resolve(); - }), - (t.prototype.close = function (t) { - return Promise.resolve(); - }), - (t.prototype.getSignedPayload = function (t, e) { - return Promise.resolve([]); - }), - (t.prototype.getDeviceDetails = function (t) { - return Promise.resolve([]); - }), - (t.prototype.setDeviceDetails = function (t, e) { - return Promise.resolve([]); - }), - t - ); - })(); - e.CrossStorageFallback = i; - })(t._POSignalsStorage || (t._POSignalsStorage = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(t, e, n) { - (this.deviceId = t), (this.dbStorage = e), (this.cryptoHandler = n); - } - return ( - (e.prototype.getExportedPublicKey = function () { - return __awaiter(this, void 0, void 0, function () { - var t; - return __generator(this, function (e) { - switch (e.label) { - case 0: - return [4, this.getDeviceKeys()]; - case 1: - return (t = e.sent()) ? [2, this.cryptoHandler.exportPublicKey(t)] : [2]; - } - }); - }); - }), - (e.prototype.setDeviceKeys = function (t) { - return __awaiter(this, void 0, void 0, function () { - var e; - return __generator(this, function (n) { - switch (n.label) { - case 0: - return [4, this.dbStorage.setValue(this.deviceId, t)]; - case 1: - return (e = n.sent()), (this.cachedDeviceKey = t), [2, e]; - } - }); - }); - }), - (e.prototype.associateDeviceKeys = function () { - return __awaiter(this, void 0, void 0, function () { - var e; - return __generator(this, function (n) { - switch (n.label) { - case 0: - return [4, this.cryptoHandler.generateKeys()]; - case 1: - return ( - (e = n.sent()), - t._POSignalsUtils.Logger.info('Associating new device domain keys'), - [4, this.setDeviceKeys(e)] - ); - case 2: - return n.sent(), [2, e]; - } - }); - }); - }), - (e.prototype.signDeviceWithKeys = function (t) { - return __awaiter(this, void 0, void 0, function () { - var n, i, r; - return __generator(this, function (a) { - switch (a.label) { - case 0: - return ( - (i = (n = this.cryptoHandler).signChallenge), - (r = [t]), - [4, this.getDeviceKeys()] - ); - case 1: - return [2, i.apply(n, r.concat([a.sent().privateKey, e._default_salt]))]; - } - }); - }); - }), - (e.prototype.getDeviceKeys = function () { - return __awaiter(this, void 0, void 0, function () { - var t; - return __generator(this, function (e) { - switch (e.label) { - case 0: - return this.cachedDeviceKey - ? [3, 2] - : ((t = this), [4, this.dbStorage.getValue(this.deviceId)]); - case 1: - (t.cachedDeviceKey = e.sent()), (e.label = 2); - case 2: - return [2, this.cachedDeviceKey]; - } - }); - }); - }), - (e._default_salt = 32), - e - ); - })(); - t.DeviceKeys = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (e) { - var n = (function () { - function n() { - (this._disabledStorage = []), - (this.assertionValues = [ - 'BROWSER_ENGINE_VERSION', - 'NAVIGATOR_LANGUAGE', - 'OS_NAME', - 'OS_VERSION', - 'NAVIGATOR_USER_AGENT', - 'FINGER_PRINT', - 'RESOLUTION', - 'PUSH_NOTIFICATIONS_SUPPORTED', - 'COOKIES_ENABLED', - 'IS_INCOGNITO', - 'IS_PRIVATE_MODE', - ]); - try { - window.sessionStorage.setItem('_st_storage_enabled_check', 'test'), - window.sessionStorage.removeItem('_st_storage_enabled_check'), - (this.signalsSessionStorage = window.sessionStorage); - } catch (n) { - t._POSignalsUtils.Logger.warn('session storage disabled'), - this._disabledStorage.push('sessionStorage'), - (this.signalsSessionStorage = new e.StorageFallback()); - } - try { - window.localStorage.setItem('_st_storage_enabled_check', 'test'), - window.localStorage.removeItem('_st_storage_enabled_check'), - (this.signalsLocalStorage = new e.StorageWrapper(window.localStorage)); - } catch (n) { - t._POSignalsUtils.Logger.warn('local storage disabled'), - this._disabledStorage.push('localStorage'), - (this.signalsLocalStorage = new e.StorageWrapper(new e.StorageFallback())), - (this.crossStorage = new e.CrossStorageFallback(this.signalsLocalStorage)); - } - } - return ( - (n.prototype.setStorageConfig = function (t) { - (this.disableHub = t.disableHub), - (this.hubUrl = t.hubUrl), - (this.universalTrustEnabled = this.isUniversalTrustEnabled( - t.universalDeviceIdentification, - )), - (this.devEnv = t.devEnv); - }), - Object.defineProperty(n, 'instance', { - get: function () { - return n._instance || (n._instance = new n()), n._instance; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'tabUUID', { - get: function () { - var e = this.signalsSessionStorage.getItem( - t._POSignalsUtils.Constants.TAB_UUID_KEY, - ); - return ( - e || - ((e = t._POSignalsUtils.Util.newGuid()), - this.signalsSessionStorage.setItem( - t._POSignalsUtils.Constants.TAB_UUID_KEY, - e, - )), - e - ); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'ops', { - get: function () { - var e = Number( - this.signalsSessionStorage.getItem(t._POSignalsUtils.Constants.OPS_KEY), - ); - return isNaN(e) ? null : e; - }, - set: function (e) { - e - ? this.signalsSessionStorage.setItem( - t._POSignalsUtils.Constants.OPS_KEY, - e.toString(), - ) - : this.signalsSessionStorage.removeItem(t._POSignalsUtils.Constants.OPS_KEY); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'disabledStorage', { - get: function () { - return this._disabledStorage; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'sessionStorage', { - get: function () { - return this.signalsSessionStorage; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'localStorage', { - get: function () { - return this.signalsLocalStorage; - }, - enumerable: !1, - configurable: !0, - }), - (n.prototype.initDeviceIdentity = function () { - return __awaiter(this, void 0, void 0, function () { - var n, i, r; - return __generator(this, function (a) { - switch (a.label) { - case 0: - return ( - (i = this.signalsLocalStorage.getItem( - t._POSignalsUtils.Constants.DEVICE_ID_KEY, - )) && (this.cachedDeviceId = i), - this.universalTrustEnabled - ? ((this.deviceTrust = { attestation: {}, dtts: new Date().getTime() }), - this.disableHub && (this.deviceTrust.hubDisabled = !0), - (r = this), - [4, e.IndexedDBStorage.initDB()]) - : [3, 3] - ); - case 1: - return (r.indexedDBStorage = a.sent()), [4, this.loadLocalDeviceTrust()]; - case 2: - (n = a.sent()), (a.label = 3); - case 3: - return this.disableHub || (i && !this.shouldFallbackToP1Key(n)) - ? [3, 5] - : [4, this.fallbackToCrossStorage(this.hubUrl)]; - case 4: - return a.sent(), [3, 6]; - case 5: - (this.crossStorage = new e.CrossStorageFallback(this.signalsLocalStorage)), - (a.label = 6); - case 6: - return this.getDeviceId() - ? [3, 8] - : [4, this.associateDeviceDetails(this.disableHub)]; - case 7: - a.sent(), (a.label = 8); - case 8: - return !this.universalTrustEnabled || (this.getDeviceId() && n) - ? [3, 10] - : [4, this.createDomainKeys(this.disableHub)]; - case 9: - a.sent(), (a.label = 10); - case 10: - return [2, this.getDeviceId()]; - } - }); - }); - }), - (n.prototype.shouldFallbackToP1Key = function (t) { - return ( - this.universalTrustEnabled && - !this.disableHub && - (!t || this.isRefreshRequired(this.deviceKeyRsyncIntervals)) - ); - }), - (n.prototype.isRefreshRequired = function (e) { - if ((void 0 === e && (e = 3), !this.deviceTrust.dtts)) return !0; - var n = this.signalsLocalStorage.getItem( - t._POSignalsUtils.Constants.LAST_DEVICE_KEY_RESYNC, - ); - if (!n || isNaN(parseInt(n))) return !0; - var i = this.deviceTrust.dtts - n > 864e5 * e; - return i && t._POSignalsUtils.Logger.debug('Refresh required'), i; - }), - (n.prototype.loadLocalDeviceTrust = function () { - return __awaiter(this, void 0, void 0, function () { - var n, i; - return __generator(this, function (r) { - switch (r.label) { - case 0: - return ( - r.trys.push([0, 4, , 5]), - void 0, - this.cachedDeviceId - ? this.cachedDeviceId - ? ((this.domainDeviceKeys = new t.DeviceKeys( - this.getDeviceId(), - this.indexedDBStorage, - new t._POSignalsUtils.CryptoOperator(), - )), - [4, this.domainDeviceKeys.getDeviceKeys()]) - : [3, 3] - : (t._POSignalsUtils.Logger.debug( - 'No device id found on customer domain', - ), - [2, !1]) - ); - case 1: - return r.sent() - ? ((n = this.deviceTrust.attestation), - [4, this.domainDeviceKeys.getExportedPublicKey()]) - : (t._POSignalsUtils.Logger.debug( - 'No device keys found on customer domain', - ), - [2, !1]); - case 2: - return ( - (n.deviceKey = r.sent()), - (this.crossStorage = new e.CrossStorageFallback(this.signalsLocalStorage)), - [2, !0] - ); - case 3: - return [3, 5]; - case 4: - return ( - (i = r.sent()), - t._POSignalsUtils.Logger.error('Domain PKI initialization failed', i), - [2, !1] - ); - case 5: - return [2]; - } - }); - }); - }), - (n.prototype.createDomainKeys = function (e) { - return __awaiter(this, void 0, void 0, function () { - var n, i; - return __generator(this, function (r) { - switch (r.label) { - case 0: - return ( - r.trys.push([0, 3, , 4]), - !e && this._disabledStorage.lastIndexOf('hub') > -1 - ? (t._POSignalsUtils.Logger.debug( - 'Hub unavailable - skipping domain trust creation', - ), - [2]) - : ((this.domainDeviceKeys = new t.DeviceKeys( - this.getDeviceId(), - this.indexedDBStorage, - new t._POSignalsUtils.CryptoOperator(), - )), - [4, this.domainDeviceKeys.associateDeviceKeys()]) - ); - case 1: - return ( - r.sent(), - (n = this.deviceTrust.attestation), - [4, this.domainDeviceKeys.getExportedPublicKey()] - ); - case 2: - return (n.deviceKey = r.sent()), [3, 4]; - case 3: - return ( - (i = r.sent()), - t._POSignalsUtils.Logger.error('Domain PKI initialization failed', i), - [3, 4] - ); - case 4: - return [2]; - } - }); - }); - }), - (n.prototype.getDeviceId = function () { - return this.cachedDeviceId; - }), - (n.prototype.associateDeviceDetails = function (e) { - var n, i; - return __awaiter(this, void 0, void 0, function () { - var r; - return __generator(this, function (a) { - switch (a.label) { - case 0: - return ( - t._POSignalsUtils.Logger.debug('Associating fresh device details'), - (this.cachedDeviceId = 'Id-' + t._POSignalsUtils.Util.newGuid()), - this.signalsLocalStorage.setItem( - t._POSignalsUtils.Constants.DEVICE_ID_KEY, - this.cachedDeviceId, - ), - e - ? [3, 4] - : this.universalTrustEnabled - ? ((r = this.deviceTrust.attestation), - [ - 4, - this.crossStorage.setDeviceDetails( - t._POSignalsUtils.Constants.DEVICE_ID_KEY, - this.cachedDeviceId, - ), - ]) - : [3, 2] - ); - case 1: - return (r.fallbackDeviceKey = a.sent()[0]), [3, 4]; - case 2: - return [ - 4, - this.crossStorage.set( - t._POSignalsUtils.Constants.DEVICE_ID_KEY, - this.cachedDeviceId, - ), - ]; - case 3: - a.sent(), (a.label = 4); - case 4: - return ( - t._POSignalsUtils.Logger.debug( - 'PingOne Signals deviceId: ' + this.cachedDeviceId, - ), - [ - 2, - [ - this.cachedDeviceId, - null === - (i = - null === (n = this.deviceTrust) || void 0 === n - ? void 0 - : n.attestation) || void 0 === i - ? void 0 - : i.fallbackDeviceKey, - ], - ] - ); - } - }); - }); - }), - (n.prototype.addAssertion = function (e) { - return __awaiter(this, void 0, void 0, function () { - var n, i, r, a, o, s, u; - return __generator(this, function (c) { - switch (c.label) { - case 0: - if ( - (c.trys.push([0, 5, 6, 7]), - !this.universalTrustEnabled || - (!this.deviceTrust.attestation.deviceKey && - !this.deviceTrust.attestation.fallbackDeviceKey)) - ) - return [2]; - for ( - n = (n = e.deviceId).concat('-' + e.deviceType), - i = 0, - r = this.assertionValues; - i < r.length; - i++ - ) - (a = r[i]), void 0 != e[a] && null != e[a] && (n = n.concat('-' + e[a])); - return ( - (n = n.concat('-' + this.deviceTrust.dtts)), - t._POSignalsUtils.Logger.debug('Device identityContract ' + n), - this.deviceTrust.attestation.fallbackDeviceKey && this.crossStorage - ? ((o = this.deviceTrust.attestation), - [4, this.crossStorage.getSignedPayload(n, this.getDeviceId())]) - : [3, 2] - ); - case 1: - return ( - (o.deviceToken = c.sent()[1]), - this.signalsLocalStorage.setItem( - t._POSignalsUtils.Constants.LAST_DEVICE_KEY_RESYNC, - new Date().getTime(), - ), - [3, 4] - ); - case 2: - return ( - (s = this.deviceTrust.attestation), - [4, this.domainDeviceKeys.signDeviceWithKeys(n)] - ); - case 3: - (s.deviceToken = c.sent()), (c.label = 4); - case 4: - return [3, 7]; - case 5: - return ( - (u = c.sent()), - t._POSignalsUtils.Logger.warn('Device attestation failed:', u), - [3, 7] - ); - case 6: - return ( - this.universalTrustEnabled && - t._POSignalsUtils.Logger.info( - 'Device attestation ' + JSON.stringify(this.deviceTrust, null, 2), - ), - [7] - ); - case 7: - return [2]; - } - }); - }); - }), - (n.prototype.closeTrustStore = function () { - try { - this.crossStorage.close(this.devEnv), - this.indexedDBStorage && this.indexedDBStorage.close(); - } catch (e) { - t._POSignalsUtils.Logger.info('Unable to close trust store:', e); - } - }), - (n.prototype.fallbackToCrossStorage = function (n) { - return __awaiter(this, void 0, void 0, function () { - var i; - return __generator(this, function (r) { - switch (r.label) { - case 0: - t._POSignalsUtils.Logger.debug( - 'PingOne Signals cross storage is required, initializing', - ), - (r.label = 1); - case 1: - return r.trys.push([1, 3, , 4]), [4, this.initCrossStorage(n)]; - case 2: - return ( - r.sent(), - t._POSignalsUtils.Logger.info('PingOne Signals cross storage initiated'), - [3, 4] - ); - case 3: - return ( - (i = r.sent()), - t._POSignalsUtils.Logger.warn( - 'PingOne Signals Session crossStorage failed to connect ' + i, - ), - this._disabledStorage.push('hub'), - (this.crossStorage = new e.CrossStorageFallback(this.signalsLocalStorage)), - [3, 4] - ); - case 4: - return [2]; - } - }); - }); - }), - (n.prototype.initCrossStorage = function (n) { - return __awaiter(this, void 0, void 0, function () { - var i, r, a, o, s; - return __generator(this, function (u) { - switch (u.label) { - case 0: - return ( - (i = this.universalTrustEnabled ? '1.0.7' : '1.0.1'), - (r = 'https://apps.pingone.com/signals/web-sdk/hub-' + i + '/hub.html'), - (a = ((null === n || void 0 === n ? void 0 : n.trim()) || r).replace( - /\/$/, - '', - )).endsWith('html') || (a += '/hub.html'), - (this.crossStorage = new e.CrossStorage(a, { timeout: 2e3 })), - [4, this.crossStorage.onConnect()] - ); - case 1: - return ( - u.sent(), - this.universalTrustEnabled - ? [ - 4, - this.crossStorage.getDeviceDetails( - t._POSignalsUtils.Constants.DEVICE_ID_KEY, - ), - ] - : [3, 3] - ); - case 2: - return (o = u.sent()), (this.cachedDeviceId = o[0]), [3, 5]; - case 3: - return ( - (s = this), - [4, this.crossStorage.get(t._POSignalsUtils.Constants.DEVICE_ID_KEY)] - ); - case 4: - (s.cachedDeviceId = u.sent()), (u.label = 5); - case 5: - return ( - this.cachedDeviceId - ? this.signalsLocalStorage.setItem( - t._POSignalsUtils.Constants.DEVICE_ID_KEY, - this.cachedDeviceId, - ) - : t._POSignalsUtils.Logger.info('no device id from hub'), - this.universalTrustEnabled && - (o && o[1] - ? ((this.deviceTrust.attestation.fallbackDeviceKey = o[1]), - t._POSignalsUtils.Logger.info( - 'Using fallback device keys from hub ' + - this.deviceTrust.attestation.fallbackDeviceKey, - )) - : t._POSignalsUtils.Logger.info('failed to use any device keys')), - [2] - ); - } - }); - }); - }), - (n.prototype.isUniversalTrustEnabled = function (t) { - return ( - void 0 !== t && - null !== t && - ('boolean' == typeof t ? t : 'string' == typeof t && 'true' === t.toLowerCase()) - ); - }), - n - ); - })(); - e.SessionStorage = n; - })(t._POSignalsStorage || (t._POSignalsStorage = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (e) { - var n = (function () { - function e(t) { - this.storage = t; - } - return ( - (e.prototype.getItem = function (e) { - var n = t._POSignalsUtils.Util.hash(e), - i = this.storage.getItem(n); - return ( - i || - ((i = this.storage.getItem(e)) && - (this.storage.setItem(n, i), this.storage.removeItem(e))), - i - ); - }), - (e.prototype.removeItem = function (e) { - return this.storage.removeItem(t._POSignalsUtils.Util.hash(e)); - }), - (e.prototype.setItem = function (e, n) { - return this.storage.setItem(t._POSignalsUtils.Util.hash(e), n); - }), - e - ); - })(); - e.StorageWrapper = n; - var i = (function () { - function t() { - this.internalStorageMap = new Map(); - } - return ( - (t.prototype.getItem = function (t) { - return this.internalStorageMap.get(t); - }), - (t.prototype.removeItem = function (t) { - this.internalStorageMap.delete(t); - }), - (t.prototype.setItem = function (t, e) { - this.internalStorageMap.set(t, e); - }), - t - ); - })(); - e.StorageFallback = i; - })(t._POSignalsStorage || (t._POSignalsStorage = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})); - (__assign = - (this && this.__assign) || - function () { - return (__assign = - Object.assign || - function (t) { - for (var e, n = 1, i = arguments.length; n < i; n++) - for (var r in (e = arguments[n])) - Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); - return t; - }).apply(this, arguments); - }), - (__awaiter = - (this && this.__awaiter) || - function (t, e, n, i) { - return new (n || (n = Promise))(function (r, a) { - function o(t) { - try { - u(i.next(t)); - } catch (t) { - a(t); - } - } - function s(t) { - try { - u(i.throw(t)); - } catch (t) { - a(t); - } - } - function u(t) { - var e; - t.done - ? r(t.value) - : ((e = t.value), - e instanceof n - ? e - : new n(function (t) { - t(e); - })).then(o, s); - } - u((i = i.apply(t, e || [])).next()); - }); - }), - (__generator = - (this && this.__generator) || - function (t, e) { - var n, - i, - r, - a, - o = { - label: 0, - sent: function () { - if (1 & r[0]) throw r[1]; - return r[1]; - }, - trys: [], - ops: [], - }; - return ( - (a = { next: s(0), throw: s(1), return: s(2) }), - 'function' == typeof Symbol && - (a[Symbol.iterator] = function () { - return this; - }), - a - ); - function s(a) { - return function (s) { - return (function (a) { - if (n) throw new TypeError('Generator is already executing.'); - for (; o; ) - try { - if ( - ((n = 1), - i && - (r = - 2 & a[0] - ? i.return - : a[0] - ? i.throw || ((r = i.return) && r.call(i), 0) - : i.next) && - !(r = r.call(i, a[1])).done) - ) - return r; - switch (((i = 0), r && (a = [2 & a[0], r.value]), a[0])) { - case 0: - case 1: - r = a; - break; - case 4: - return o.label++, { value: a[1], done: !1 }; - case 5: - o.label++, (i = a[1]), (a = [0]); - continue; - case 7: - (a = o.ops.pop()), o.trys.pop(); - continue; - default: - if ( - !(r = (r = o.trys).length > 0 && r[r.length - 1]) && - (6 === a[0] || 2 === a[0]) - ) { - o = 0; - continue; - } - if (3 === a[0] && (!r || (a[1] > r[0] && a[1] < r[3]))) { - o.label = a[1]; - break; - } - if (6 === a[0] && o.label < r[1]) { - (o.label = r[1]), (r = a); - break; - } - if (r && o.label < r[2]) { - (o.label = r[2]), o.ops.push(a); - break; - } - r[2] && o.ops.pop(), o.trys.pop(); - continue; - } - a = e.call(t, o); - } catch (t) { - (a = [6, t]), (i = 0); - } finally { - n = r = 0; - } - if (5 & a[0]) throw a[1]; - return { value: a[0] ? a[1] : void 0, done: !0 }; - })([a, s]); - }; - } - }); - !(function (t) { - !(function (t) { - var e = (function () { - function t() {} - return ( - (t.prototype.isCanvasSupported = function () { - var t = document.createElement('canvas'); - return !(!t.getContext || !t.getContext('2d')); - }), - (t.prototype.getWebglCanvas = function (t) { - var e = document.createElement('canvas'), - n = null; - try { - n = - 'webgl' === t - ? e.getContext('webgl') || e.getContext('experimental-webgl') - : e.getContext('webgl2'); - } catch (t) {} - return n || (n = null), n; - }), - (t.prototype.isWebGlSupported = function (t) { - if (!this.isCanvasSupported()) return !1; - var e = this.getWebglCanvas(t); - return ( - ('webgl' === t ? !!window.WebGLRenderingContext : !!window.WebGL2RenderingContext) && - !!e - ); - }), - (t.prototype.isWebGl = function (t) { - return !!this.isWebGlSupported(t) && !!this.getWebglCanvas(t); - }), - (t.prototype.getWebglVendorAndRenderer = function (t) { - try { - if (this.isWebGlSupported(t)) { - var e = this.getWebglCanvas(t), - n = e.getExtension('WEBGL_debug_renderer_info'); - return ( - e.getParameter(n.UNMASKED_VENDOR_WEBGL) + - '~' + - e.getParameter(n.UNMASKED_RENDERER_WEBGL) - ); - } - } catch (t) {} - return null; - }), - (t.prototype.getHasLiedLanguages = function () { - if (void 0 !== navigator.languages) - try { - if (navigator.languages[0].substr(0, 2) !== navigator.language.substr(0, 2)) - return !0; - } catch (t) { - return !0; - } - return !1; - }), - (t.prototype.getHasLiedResolution = function () { - return ( - window.screen.width < window.screen.availWidth || - window.screen.height < window.screen.availHeight - ); - }), - (t.prototype.getHasLiedOs = function () { - var t, - e = navigator.userAgent.toLowerCase(), - n = navigator.oscpu, - i = navigator.platform.toLowerCase(); - if ( - ((t = - e.indexOf('windows phone') >= 0 - ? 'Windows Phone' - : e.indexOf('win') >= 0 - ? 'Windows' - : e.indexOf('android') >= 0 - ? 'Android' - : e.indexOf('linux') >= 0 || e.indexOf('cros') >= 0 - ? 'Linux' - : e.indexOf('iphone') >= 0 || e.indexOf('ipad') >= 0 - ? 'iOS' - : e.indexOf('mac') >= 0 - ? 'Mac' - : 'Other'), - ('ontouchstart' in window || - navigator.maxTouchPoints > 0 || - navigator.msMaxTouchPoints > 0) && - 'Windows Phone' !== t && - 'Android' !== t && - 'iOS' !== t && - 'Other' !== t) - ) - return !0; - if (void 0 !== n) { - if ( - (n = n.toLowerCase()).indexOf('win') >= 0 && - 'Windows' !== t && - 'Windows Phone' !== t - ) - return !0; - if (n.indexOf('linux') >= 0 && 'Linux' !== t && 'Android' !== t) return !0; - if (n.indexOf('mac') >= 0 && 'Mac' !== t && 'iOS' !== t) return !0; - if ( - (-1 === n.indexOf('win') && -1 === n.indexOf('linux') && -1 === n.indexOf('mac')) != - ('Other' === t) - ) - return !0; - } - return ( - (i.indexOf('win') >= 0 && 'Windows' !== t && 'Windows Phone' !== t) || - ((i.indexOf('linux') >= 0 || i.indexOf('android') >= 0 || i.indexOf('pike') >= 0) && - 'Linux' !== t && - 'Android' !== t) || - ((i.indexOf('mac') >= 0 || - i.indexOf('ipad') >= 0 || - i.indexOf('ipod') >= 0 || - i.indexOf('iphone') >= 0) && - 'Mac' !== t && - 'iOS' !== t) || - (i.indexOf('win') < 0 && - i.indexOf('linux') < 0 && - i.indexOf('mac') < 0 && - i.indexOf('iphone') < 0 && - i.indexOf('ipad') < 0) !== - ('Other' === t) || - (void 0 === navigator.plugins && 'Windows' !== t && 'Windows Phone' !== t) - ); - }), - (t.prototype.getHasLiedBrowser = function () { - var t, - e = navigator.userAgent.toLowerCase(), - n = navigator.productSub; - if ( - ('Chrome' === - (t = - e.indexOf('firefox') >= 0 - ? 'Firefox' - : e.indexOf('opera') >= 0 || e.indexOf('opr') >= 0 - ? 'Opera' - : e.indexOf('chrome') >= 0 - ? 'Chrome' - : e.indexOf('safari') >= 0 - ? 'Safari' - : e.indexOf('trident') >= 0 - ? 'Internet Explorer' - : 'Other') || - 'Safari' === t || - 'Opera' === t) && - '20030107' !== n - ) - return !0; - var i, - r = eval.toString().length; - if (37 === r && 'Safari' !== t && 'Firefox' !== t && 'Other' !== t) return !0; - if (39 === r && 'Internet Explorer' !== t && 'Other' !== t) return !0; - if (33 === r && 'Chrome' !== t && 'Opera' !== t && 'Other' !== t) return !0; - try { - throw 'a'; - } catch (t) { - try { - t.toSource(), (i = !0); - } catch (t) { - i = !1; - } - } - return i && 'Firefox' !== t && 'Other' !== t; - }), - t - ); - })(); - t.FingerprintLegacyMetadata = e; - })(t._POSignalsMetadata || (t._POSignalsMetadata = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (e) { - var n = (function () { - function n(e, n) { - (this.sessionData = e), - (this.metadataParams = n), - (this.deviceId = null), - (this.hasMicrophone = null), - (this.hasSpeakers = null), - (this.hasWebcam = null), - (this.isBatterySupported = null), - (this.batteryLevel = null), - (this.batteryCharging = null), - (this.batteryChargingTime = null), - (this.batteryDischargingTime = null), - (this.headlessTests = new Map()), - (this.lieTests = {}), - (this.gpsSupported = null), - (this.fingerPrintComponentKeys = new Set([ - 'navigatorPlatform', - 'colorDepth', - 'deviceMemory', - 'pixelRatio', - 'hardwareConcurrency', - 'screenResolution', - 'availableScreenResolution', - 'timezoneOffset', - 'timezone', - 'sessionStorage', - 'localStorage', - 'indexedDB', - 'addBehavior', - 'openDatabase', - 'cpuClass', - 'platform', - 'canvas', - 'adBlock', - 'touchSupport', - 'fonts', - 'audio', - 'osCpu', - 'productSub', - 'emptyEvalLength', - 'errorFF', - 'chrome', - 'cookiesEnabled', - ])), - (this.webGlStatus = -1), - (this.numberOfVideoDevices = 0), - (this.numberOfAudioDevices = 0), - (this.videoInputDevices = []), - (this.audioInputDevices = []), - (this.audioOutputDevices = []), - (this.webRtcIps = new Map()), - (this.lastCalculatedMetadata = null), - (this.metadataQueue = new t.PromiseQueue(1)); - } - return ( - Object.defineProperty(n.prototype, 'OPS', { - get: function () { - if (!this.metadataParams.browserInfo.isIphoneOrIPad) return 0; - var t = this.sessionData.ops; - return t || ((t = this.getOps()), (this.sessionData.ops = t)), t; - }, - enumerable: !1, - configurable: !0, - }), - (n.prototype.getDeviceAttributes = function () { - return __awaiter(this, void 0, void 0, function () { - var e = this; - return __generator(this, function (n) { - return [ - 2, - this.metadataQueue.add(function () { - return __awaiter(e, void 0, void 0, function () { - var e; - return __generator(this, function (n) { - switch (n.label) { - case 0: - return this.lastCalculatedMetadata - ? [3, 3] - : ((e = this), [4, this.calculateDeviceMetadata()]); - case 1: - return ( - (e.lastCalculatedMetadata = n.sent()), - t._POSignalsUtils.Logger.info('calculated device attributes.'), - t._POSignalsUtils.Logger.info( - 'PingOne Signals deviceId: ' + this.deviceId, - ), - [4, this.sessionData.addAssertion(this.lastCalculatedMetadata)] - ); - case 2: - n.sent(), this.sessionData.closeTrustStore(), (n.label = 3); - case 3: - return [2, this.lastCalculatedMetadata]; - } - }); - }); - }), - ]; - }); - }); - }), - (n.prototype.getObfsInfo = function () { - return { identifier: 'x1', key: 'Xq7tSbjB517mhZwt' }; - }), - (n.prototype.calculateDeviceMetadata = function () { - return __awaiter(this, void 0, void 0, function () { - var n, i, r, a, o; - return __generator(this, function (s) { - switch (s.label) { - case 0: - return ( - (this.gpsSupported = null != navigator.geolocation), - (n = this.metadataParams.metadataBlackList), - (i = [ - this.sessionData.initDeviceIdentity().catch(function (e) { - t._POSignalsUtils.Logger.warn('failed to get deviceId info', e); - }), - this.getFingerPrint(n).catch(function (e) { - t._POSignalsUtils.Logger.warn( - 'failed to get fingerprint info', - e.message, - ); - }), - this.getPrivateMode().catch(function (e) { - return t._POSignalsUtils.Logger.warn('failed to get incognito info', e); - }), - e.Incognito.isPrivateMode().catch(function (e) { - return t._POSignalsUtils.Logger.warn( - 'failed to get private mode info', - e, - ); - }), - this.getPermissionsMetadata().catch(function (e) { - return t._POSignalsUtils.Logger.warn( - 'failed to get permissions info', - e, - ); - }), - new e.DetectHeadless(n).getHeadlessResults().catch(function (e) { - return t._POSignalsUtils.Logger.warn( - 'failed to get headless results', - e, - ); - }), - new e.DetectLies(n).getAllLies().catch(function (e) { - return t._POSignalsUtils.Logger.warn('failed to get lies results', e); - }), - this.audioIntVideoInit().catch(function (e) { - return t._POSignalsUtils.Logger.warn( - 'failed to get audio-video info', - e, - ); - }), - this.batteryInit().catch(function (e) { - return t._POSignalsUtils.Logger.warn('failed to get battery info', e); - }), - ]), - [4, Promise.all(i)] - ); - case 1: - return ( - (o = s.sent()), - (this.deviceId = o[0]), - (this.fingerPrint = o[1]), - (this.isPrivateMode = o[2]), - (this.isPrivateModeV2 = o[3]), - (this.permissions = o[4]), - (this.headlessTests = o[5]), - (this.lieTests = o[6]), - (r = { - ops: this.OPS, - devicePixelRatio: window.devicePixelRatio, - screenWidth: window.screen.width, - screenHeight: window.screen.height, - }), - t._POSignalsUtils.Util.extendPrimitiveValues(r, screen, !1), - (a = [ - { - deviceId: this.deviceId, - deviceType: this.metadataParams.browserInfo.deviceType, - osVersion: - ( - this.metadataParams.browserInfo.osName + - ' ' + - this.metadataParams.browserInfo.osVersion - ).trim() || '', - }, - ]), - [4, this.getIdentificationMetadata(n)] - ); - case 2: - return [ - 2, - __assign.apply(void 0, [ - __assign.apply(void 0, [ - __assign.apply(void 0, [ - __assign.apply(void 0, a.concat([s.sent()])), - this.getIoMetadata(), - ]), - this.getSensorsMetadata(), - ]), - r, - ]), - ]; - } - }); - }); - }), - (n.prototype.batteryInit = function () { - return __awaiter(this, void 0, void 0, function () { - var e, - n = this; - return __generator(this, function (i) { - switch (i.label) { - case 0: - return ( - (e = this), - [ - 4, - t._POSignalsUtils.Util.promiseTimeout( - 50, - new Promise(function (i, r) { - navigator.getBattery - ? ((n.isBatterySupported = !0), - navigator - .getBattery() - .then(function (t) { - t && - ((e.batteryLevel = t.level), - (e.batteryCharging = t.charging), - (e.batteryChargingTime = t.chargingTime), - (e.batteryDischargingTime = t.dischargingTime)), - i(); - }) - .catch(function (e) { - t._POSignalsUtils.Logger.warn('Battery ' + e), i(); - })) - : (t._POSignalsUtils.Logger.debug('Battery not supported!'), i()); - }), - ), - ] - ); - case 1: - return i.sent(), [2]; - } - }); - }); - }), - (n.prototype.enumerateDevicesEnabled = function () { - var e = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); - return !t._POSignalsUtils.Util.inIframe() || !e; - }), - (n.prototype.getRTCPeerConnection = function () { - var t = - window.RTCPeerConnection || - window.mozRTCPeerConnection || - window.webkitRTCPeerConnection; - if (!t) { - var e = window['iframe.contentWindow']; - e && - (t = e.RTCPeerConnection || e.mozRTCPeerConnection || e.webkitRTCPeerConnection); - } - return t; - }), - (n.prototype.collectWebRtc = function () { - var t = this; - try { - var e = {}, - n = this.getRTCPeerConnection(), - i = new n( - { iceServers: [{ urls: this.metadataParams.webRtcUrl.trim() }] }, - { optional: [{ RtpDataChannels: !0 }] }, - ); - (i.onicecandidate = function (n) { - if (n.candidate) { - var i = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/.exec( - n.candidate.candidate, - )[1]; - void 0 === e[i] && - (n.candidate.candidate.indexOf('host') > 0 - ? t.webRtcIps.set('WEB_RTC_HOST_IP', i) - : n.candidate.candidate.indexOf('srflx') > 0 && - t.webRtcIps.set('WEB_RTC_SRFLX_IP', i)), - (e[i] = !0); - } - }), - i.createDataChannel(''), - i.createOffer( - function (t) { - i.setLocalDescription( - t, - function () {}, - function () {}, - ); - }, - function () {}, - ); - } catch (t) {} - }), - (n.prototype.audioIntVideoInit = function () { - return __awaiter(this, void 0, void 0, function () { - var e, - n = this; - return __generator(this, function (i) { - switch (i.label) { - case 0: - return ( - (e = this), - [ - 4, - t._POSignalsUtils.Util.promiseTimeout( - 50, - new Promise(function (i, r) { - return n.enumerateDevicesEnabled() - ? navigator.mediaDevices && navigator.mediaDevices.enumerateDevices - ? void navigator.mediaDevices - .enumerateDevices() - .then(function (t) { - t.forEach(function (t) { - t.kind && - ('audioinput' == t.kind.toLowerCase() - ? ((e.hasMicrophone = !0), - e.numberOfAudioDevices++, - t.label && e.audioInputDevices.push(t.label)) - : 'videoinput' == t.kind.toLowerCase() - ? ((e.hasWebcam = !0), - e.numberOfVideoDevices++, - t.label && e.videoInputDevices.push(t.label)) - : 'audiooutput' == t.kind.toLowerCase() && - ((e.hasSpeakers = !0), - e.numberOfAudioDevices++, - t.label && e.audioOutputDevices.push(t.label))); - }), - i(); - }) - .catch(function (e) { - t._POSignalsUtils.Logger.warn('enumerateDevices failed', e), - i(); - }) - : (t._POSignalsUtils.Logger.debug( - 'enumerateDevices() not supported.', - ), - void i()) - : (t._POSignalsUtils.Logger.debug( - 'enumerateDevices() cannot run within safari iframe', - ), - void i()); - }), - ), - ] - ); - case 1: - return i.sent(), [2]; - } - }); - }); - }), - (n.prototype.getFingerPrint = function (e) { - return __awaiter(this, void 0, void 0, function () { - var n, - i, - r = this; - return __generator(this, function (a) { - switch (a.label) { - case 0: - return e.has('fingerprint') - ? [2, Promise.resolve('')] - : ((n = new Promise(function (e, n) { - return __awaiter(r, void 0, void 0, function () { - var i, r; - return __generator(this, function (a) { - switch (a.label) { - case 0: - return a.trys.push([0, 3, , 4]), [4, t.FingerprintJS.load()]; - case 1: - return [4, a.sent().get()]; - case 2: - return ( - (i = a.sent()), - (this.fingerPrint = i.visitorId), - (this.fingerPrintComponents = i.components), - e(i.visitorId), - [3, 4] - ); - case 3: - return ( - (r = a.sent()), - t._POSignalsUtils.Logger.warn( - 'Failed to get FingerPrint ' + r, - ), - n({ err: r, message: 'FingerPrint failed' }), - [3, 4] - ); - case 4: - return [2]; - } - }); - }); - })), - (i = new Promise(function (e, n) { - return __awaiter(r, void 0, void 0, function () { - return __generator(this, function (e) { - switch (e.label) { - case 0: - return [ - 4, - t._POSignalsUtils.Util.delay( - this.metadataParams.fingerprintTimeoutMillis, - ), - ]; - case 1: - return e.sent(), n({ message: 'Fingerprint timeout' }), [2]; - } - }); - }); - })), - [4, Promise.race([n, i])]); - case 1: - return [2, a.sent()]; - } - }); - }); - }), - (n.prototype.getSensorsMetadata = function () { - var t = {}; - return ( - this.flatAndAddMetadata(t, 'DEDVCE_LIGHT_SUPPORTED', function () { - return 'ondevicelight' in window; - }), - this.flatAndAddMetadata(t, 'IS_TOUCH_DEVICE', function () { - return 'ontouchstart' in window; - }), - window.DeviceMotionEvent || - this.flatAndAddMetadata(t, 'ACCELEROMETER_SUPPORTED', function () { - return !1; - }), - window.DeviceOrientationEvent || - this.flatAndAddMetadata(t, 'GYROSCOPE_SUPPORTED', function () { - return !1; - }), - this.flatAndAddMetadata(t, 'PROXIMITY_SUPPORTED', function () { - return 'ondeviceproximity' in window; - }), - t - ); - }), - (n.prototype.getIdentificationMetadata = function (i) { - return __awaiter(this, void 0, void 0, function () { - var r, - a, - o, - s, - u, - c, - l, - d, - h, - f, - g, - p, - v, - _, - m, - y, - b, - E, - w, - S, - A, - O = this; - return __generator(this, function (P) { - switch (P.label) { - case 0: - return ( - (r = this), - (a = {}), - this.flatAndAddMetadata(a, 'FINGER_PRINT', function () { - return O.fingerPrint; - }), - this.metadataParams.browserInfo.userAgentData && - (this.flatAndAddMetadata(a, 'OS_NAME', function () { - return O.metadataParams.browserInfo.osName; - }), - this.flatAndAddMetadata(a, 'OS_VERSION', function () { - return O.metadataParams.browserInfo.osVersion; - })), - this.metadataParams.browserInfo.userAgentData && - (this.flatAndAddMetadata(a, 'DEVICE_MODEL', function () { - return O.metadataParams.browserInfo.deviceModel; - }), - this.flatAndAddMetadata(a, 'DEVICE_VENDOR', function () { - return O.metadataParams.browserInfo.deviceVendor; - })), - this.metadataParams.browserInfo.userAgentData && - (this.flatAndAddMetadata(a, 'BROWSER_ENGINE_NAME', function () { - return O.metadataParams.browserInfo.engineName; - }), - this.flatAndAddMetadata(a, 'BROWSER_ENGINE_VERSION', function () { - return O.metadataParams.browserInfo.engineVersion; - })), - this.metadataParams.browserInfo.userAgentData && - this.flatAndAddMetadata(a, 'CPU_ARCHITECTURE', function () { - return O.metadataParams.browserInfo.cpuArchitecture; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_VENDOR', function () { - return navigator.vendor; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_PLUGINS_LENGTH', function () { - return navigator.plugins ? navigator.plugins.length : null; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_MIME_TYPES_LENGTH', function () { - return navigator.mimeTypes ? navigator.mimeTypes.length : null; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_LANGUAGE', function () { - return ( - navigator.language || - navigator.userLanguage || - navigator.browserLanguage || - navigator.systemLanguage - ); - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_LANGUAGES', function () { - return navigator.languages; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_MAX_TOUCH_POINTS', function () { - return navigator.maxTouchPoints || navigator.msMaxTouchPoints; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_POINTER_ENABLED', function () { - return navigator.pointerEnabled || navigator.msPointerEnabled; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_WEB_DRIVER', function () { - return navigator.webdriver; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_HARDWARE_CONCURRENCY', function () { - return navigator.hardwareConcurrency; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_VIBRATE', function () { - return null != navigator.vibrate; - }), - this.flatAndAddMetadata(a, 'PUSH_NOTIFICATIONS_SUPPORTED', function () { - return 'Notification' in window; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_APP_CODE_NAME', function () { - return navigator.appCodeName; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_APP_NAME', function () { - return navigator.appName; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_APP_VERSION', function () { - return navigator.appVersion; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_ON_LINE', function () { - return navigator.onLine; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_PLATFORM', function () { - return navigator.platform; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_PRODUCT', function () { - return navigator.product; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_USER_AGENT', function () { - return navigator.userAgent; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_PDF_VIEWER_ENABLED', function () { - return navigator.pdfViewerEnabled; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_DEVICE_MEMORY', function () { - return navigator.deviceMemory; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_CONNECTION_RTT', function () { - return navigator.connection ? navigator.connection.rtt : null; - }), - i.has('modernizr') ? [3, 2] : [4, this.safeAddModernizrFeatures(a)] - ); - case 1: - P.sent(), (P.label = 2); - case 2: - if ( - ((o = window._pingOneSignalsPingResult || window._ST_PING) - ? this.flatAndAddMetadata(a, 'JS_CHALLENGE', function () { - return o; - }) - : this.flatAndAddMetadata(a, 'JS_CHALLENGE', function () { - return 'unknown'; - }), - (s = new e.FingerprintLegacyMetadata()), - this.flatAndAddMetadata(a, 'IS_WEBGL', function () { - return s.isWebGl('webgl'); - }), - this.flatAndAddMetadata(a, 'WEBGLVENDORANDRENDERER', function () { - return s.getWebglVendorAndRenderer('webgl'); - }), - this.flatAndAddMetadata(a, 'IS_WEBGL2', function () { - return s.isWebGl('webgl2'); - }), - this.flatAndAddMetadata(a, 'WEBGL2VENDORANDRENDERER', function () { - return s.getWebglVendorAndRenderer('webgl2'); - }), - this.flatAndAddMetadata(a, 'HASLIEDLANGUAGES', function () { - return s.getHasLiedLanguages(); - }), - this.flatAndAddMetadata(a, 'HASLIEDRESOLUTION', function () { - return s.getHasLiedResolution(); - }), - this.flatAndAddMetadata(a, 'HASLIEDOS', function () { - return s.getHasLiedOs(); - }), - this.flatAndAddMetadata(a, 'HASLIEDBROWSER', function () { - return s.getHasLiedBrowser(); - }), - this.fingerPrintComponents) - ) - for (l in ((u = function (t) { - if (!c.fingerPrintComponents.hasOwnProperty(t)) return 'continue'; - var e = c.fingerPrintComponents[t]; - 'fonts' == t - ? c.flatAndAddMetadata(a, 'JS_FONTS', function () { - return e.value.length; - }) - : 'canvas' == t - ? c.flatAndAddMetadata(a, 'IS_CANVAS', function () { - return null != e.value; - }) - : 'screenResolution' == t && e.value && e.value.length - ? c.flatAndAddMetadata(a, 'RESOLUTION', function () { - return e.value.join(','); - }) - : 'availableScreenResolution' == t && e.value && e.value.length - ? c.flatAndAddMetadata(a, 'AVAILABLE_RESOLUTION', function () { - return e.value.join(','); - }) - : 'touchSupport' == t && e.value - ? c.flatAndAddMetadata(a, 'TOUCH_SUPPORT', function () { - return e.value; - }) - : 'audio' == t && e.value - ? c.flatAndAddMetadata(a, 'AUDIO_FINGERPRINT', function () { - return e.value; - }) - : 'osCpu' == t && e.value - ? c.flatAndAddMetadata(a, 'OS_CPU', function () { - return e.value; - }) - : 'productSub' == t && e.value - ? c.flatAndAddMetadata(a, 'PRODUCT_SUB', function () { - return e.value; - }) - : 'emptyEvalLength' == t && e.value - ? c.flatAndAddMetadata( - a, - 'EMPTY_EVAL_LENGTH', - function () { - return e.value; - }, - ) - : 'errorFF' == t && e.value - ? c.flatAndAddMetadata(a, 'ERROR_FF', function () { - return e.value; - }) - : 'chrome' == t && e.value - ? c.flatAndAddMetadata(a, 'CHROME', function () { - return e.value; - }) - : 'cookiesEnabled' == t && e.value - ? c.flatAndAddMetadata( - a, - 'COOKIES_ENABLED', - function () { - return e.value; - }, - ) - : r.fingerPrintComponentKeys.has(t) && - null != t && - c.flatAndAddMetadata( - a, - t.toUpperCase(), - function () { - return e.value; - }, - ); - }), - (c = this), - this.fingerPrintComponents)) - u(l); - for (p in (this.flatAndAddMetadata(a, 'IS_INCOGNITO', function () { - return O.isPrivateMode; - }), - this.flatAndAddMetadata(a, 'IS_PRIVATE_MODE', function () { - return O.isPrivateModeV2; - }), - this.flatAndAddMetadata(a, 'IS_WEB_GLSTATUS', function () { - return O.webGlStatus; - }), - (d = { - selenium: - navigator.webdriver || - t._POSignalsUtils.Util.getAttribute( - window.document.documentElement, - 'webdriver', - ) || - '', - phantomjs: { - _phantom: window._phantom || '', - __phantomas: window.__phantomas || '', - callPhantom: window.callPhantom || '', - }, - nodejs: { Buffer: window.Buffer || '' }, - couchjs: { emit: window.emit || '' }, - rhino: { spawn: window.spawn || '' }, - chromium: { - domAutomationController: window.domAutomationController || '', - domAutomation: window.domAutomation || '', - }, - outerWidth: window.outerWidth, - outerHeight: window.outerHeight, - }), - this.flatAndAddMetadata(a, 'HEADLESS', function () { - return d; - }), - this.flatAndAddMetadata(a, 'HEADLESS', function () { - return O.headlessTests; - }), - this.flatAndAddMetadata(a, 'LIES', function () { - var t = {}; - for (var e in O.lieTests) t[e] = JSON.stringify(O.lieTests[e]); - return Object.keys(t).length > 0 ? t : null; - }), - this.flatAndAddMetadata(a, 'STEALTH', function () { - return new e.DetectStealth(i).getStealthResult(); - }), - this.flatAndAddMetadata(a, 'REF_LINK', function () { - return document.referrer; - }), - this.flatAndAddMetadata(a, 'PLUGINS', function () { - for ( - var t = { length: navigator.plugins.length, details: [] }, e = 0; - e < t.length; - e++ - ) - t.details.push({ - length: navigator.plugins[e].length, - name: navigator.plugins[e].name, - version: navigator.plugins[e].version, - filename: navigator.plugins[e].filename, - }); - return t; - }), - this.flatAndAddMetadata(a, 'AUDIO', function () { - return O.numberOfAudioDevices; - }), - this.flatAndAddMetadata(a, 'VIDEO', function () { - return O.numberOfVideoDevices; - }), - this.flatAndAddMetadata(a, 'VIDEO_INPUT_DEVICES', function () { - return O.videoInputDevices.toString(); - }), - this.flatAndAddMetadata(a, 'AUDIO_INPUT_DEVICES', function () { - return O.audioInputDevices.toString(); - }), - this.flatAndAddMetadata(a, 'AUDIO_OUTPUT_DEVICES', function () { - return O.audioOutputDevices.toString(); - }), - this.flatAndAddMetadata(a, 'MEDIA_CODEC_MP4_AVC1', function () { - return O.getMediaCodec('video/mp4;; codecs = "avc1.42E01E"'); - }), - this.flatAndAddMetadata(a, 'MEDIA_CODEC_X_M4A', function () { - return O.getMediaCodec('audio/x-m4a'); - }), - this.flatAndAddMetadata(a, 'MEDIA_CODEC_AAC', function () { - return O.getMediaCodec('audio/aac'); - }), - (h = this.metadataParams.additionalMediaCodecs), - (f = function (t) { - if (!h.hasOwnProperty(t)) return 'continue'; - g.flatAndAddMetadata(a, 'MEDIA_CODEC_' + t, function () { - return O.getMediaCodec(h[t]); - }); - }), - (g = this), - h)) - f(p); - window.performance && - window.performance.memory && - (this.flatAndAddMetadata(a, 'MEMORY_HEAP_SIZE_LIMIT', function () { - return window.performance.memory.jsHeapSizeLimit; - }), - this.flatAndAddMetadata(a, 'MEMORY_TOTAL_HEAP_SIZE', function () { - return window.performance.memory.totalJSHeapSize; - }), - this.flatAndAddMetadata(a, 'MEMORY_USED_HEAP_SIZE', function () { - return window.performance.memory.usedJSHeapSize; - })), - this.flatAndAddMetadata(a, 'IS_ACCEPT_COOKIES', function () { - return navigator.cookieEnabled; - }), - this.flatAndAddMetadata(a, 'selenium_in_document', function () { - return e.SeleniumProperties.seleniumInDocument(); - }), - this.flatAndAddMetadata(a, 'selenium_in_window', function () { - return e.SeleniumProperties.seleniumInWindow(); - }), - this.flatAndAddMetadata(a, 'selenium_in_navigator', function () { - return e.SeleniumProperties.seleniumInNavigator(); - }), - this.flatAndAddMetadata(a, 'selenium_sequentum', function () { - return e.SeleniumProperties.seleniumSequentum(); - }), - this.flatAndAddMetadata(a, 'DOCUMENT_ELEMENT_SELENIUM', function () { - return t._POSignalsUtils.Util.getAttribute( - window.document.documentElement, - 'selenium', - ); - }), - this.flatAndAddMetadata(a, 'DOCUMENT_ELEMENT_WEBDRIVER', function () { - return t._POSignalsUtils.Util.getAttribute( - window.document.documentElement, - 'webdriver', - ); - }), - this.flatAndAddMetadata(a, 'DOCUMENT_ELEMENT_DRIVER', function () { - return t._POSignalsUtils.Util.getAttribute( - window.document.documentElement, - 'driver', - ); - }), - this.flatAndAddMetadata(a, 'window_html_webdriver', function () { - return !!t._POSignalsUtils.Util.getAttribute( - document.getElementsByTagName('html')[0], - 'webdriver', - ); - }), - this.flatAndAddMetadata(a, 'window_geb', function () { - return !!window.geb; - }), - this.flatAndAddMetadata(a, 'window_awesomium', function () { - return !!window.awesomium; - }), - this.flatAndAddMetadata(a, 'window_RunPerfTest', function () { - return !!window.RunPerfTest; - }), - this.flatAndAddMetadata(a, 'window_fmget_targets', function () { - return !!window.fmget_targets; - }), - this.flatAndAddMetadata(a, 'hasTrustToken', function () { - return 'hasTrustToken' in document; - }), - this.flatAndAddMetadata(a, 'trustTokenOperationError', function () { - return 'trustTokenOperationError' in XMLHttpRequest.prototype; - }), - this.flatAndAddMetadata(a, 'setTrustToken', function () { - return 'setTrustToken' in XMLHttpRequest.prototype; - }), - this.flatAndAddMetadata(a, 'trustToken', function () { - return 'trustToken' in HTMLIFrameElement.prototype; - }), - this.flatAndAddMetadata(a, 'localStorage.length', function () { - return localStorage.length; - }), - this.flatAndAddMetadata(a, 'sessionStorage.length', function () { - return sessionStorage.length; - }), - this.sessionData.disabledStorage.forEach(function (t) { - O.flatAndAddMetadata(a, t.toUpperCase() + '_FAILED', function () { - return !0; - }); - }), - this.flatAndAddMetadata(a, 'WEB_RTC_ENABLED', function () { - return !!O.getRTCPeerConnection(); - }), - this.metadataParams.webRtcUrl && - this.metadataParams.webRtcUrl.length > 0 && - (this.collectWebRtc(), - this.webRtcIps.forEach(function (t, e) { - null != e && - null != t && - O.flatAndAddMetadata(a, e, function () { - return t; - }); - }), - this.webRtcIps.clear()), - window.matchMedia && - this.flatAndAddMetadata(a, 'MQ_SCREEN', function () { - var t = window.matchMedia( - '(min-width: ' + (window.innerWidth - 1) + 'px)', - ); - return { matches: t.matches, media: t.media }; - }), - this.addIframeData(a, i), - window.Notification && - this.flatAndAddMetadata(a, 'NOTIFICATION_PERMISSION', function () { - return window.Notification.permission; - }), - this.flatAndAddMetadata(a, 'HAS_CHROME_APP', function () { - return window.chrome && 'app' in window.chrome; - }), - this.flatAndAddMetadata(a, 'HAS_CHROME_CSI', function () { - return window.chrome && 'csi' in window.chrome; - }), - this.flatAndAddMetadata(a, 'HAS_CHROME_LOADTIMES', function () { - return window.chrome && 'loadTimes' in window.chrome; - }), - this.flatAndAddMetadata(a, 'HAS_CHROME_RUNTIME', function () { - return window.chrome && 'runtime' in window.chrome; - }), - this.flatAndAddMetadata(a, 'CHROMIUM_MATH', n.detectChromium), - this.addClientHints(a), - this.flatAndAddMetadata(a, 'NAVIGATOR_KEYBOARD_SUPPORTED', function () { - return !!navigator.keyboard; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_HID_SUPPORTED', function () { - return !!navigator.hid; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_SERIAL_SUPPORTED', function () { - return !!navigator.serial; - }), - this.flatAndAddMetadata(a, 'NAVIGATOR_PRESENTATION_SUPPORTED', function () { - return !!navigator.presentation; - }), - (P.label = 3); - case 3: - return ( - P.trys.push([3, 6, , 7]), - i.has('floc') || !t.Util.isFunction(document.interestCohort) - ? [3, 5] - : [4, t.Util.promiseTimeout(100, document.interestCohort())] - ); - case 4: - (v = P.sent()), - (_ = v.id), - (m = v.version), - this.flatAndAddMetadata(a, 'floc_id', function () { - return _; - }), - this.flatAndAddMetadata(a, 'floc_version', function () { - return m; - }), - (P.label = 5); - case 5: - return [3, 7]; - case 6: - return P.sent(), [3, 7]; - case 7: - for (E in ((y = function (e) { - b.flatAndAddMetadata(a, e, function () { - return t._POSignalsUtils.Util.getProperty( - window, - O.metadataParams.dataPoints[e], - ); - }); - }), - (b = this), - this.metadataParams.dataPoints)) - y(E); - for (S in (w = this.metadataParams.propertyDescriptors)) - w.hasOwnProperty(S) && - (A = 'window' === S ? window : window[S]) && - this.addPropertyDescriptorInfo( - A, - S.toUpperCase() + '_PROPERTY_DESCRIPTOR', - w[S], - a, - ); - return [2, a]; - } - }); - }); - }), - (n.prototype.addClientHints = function (e) { - try { - var n = navigator.userAgentData; - if (!n) return; - this.flatAndAddMetadata(e, 'NAVIGATOR_CLIENT_HINTS_PLATFORM', function () { - return n.platform; - }), - this.flatAndAddMetadata(e, 'NAVIGATOR_CLIENT_HINTS_MOBILE', function () { - return n.mobile; - }); - var i = n.brands; - if (!i) return; - for ( - var r = function (t) { - if (i[t].hasOwnProperty('brand') && i[t].hasOwnProperty('version')) { - var n = i[t].brand + ':' + i[t].version; - a.flatAndAddMetadata(e, 'NAVIGATOR_CLIENT_HINTS_BRAND_' + t, function () { - return n; - }); - } - }, - a = this, - o = 0; - o < i.length; - o++ - ) - r(o); - } catch (e) { - t._POSignalsUtils.Logger.warn('failed to add client hints', e); - } - }), - (n.prototype.addPropertyDescriptorInfo = function (e, n, i, r) { - try { - for ( - var a = function (t) { - o.flatAndAddMetadata(r, n + '_' + t.toUpperCase(), function () { - var n = e.prototype ? e.prototype : e, - i = Object.getOwnPropertyDescriptor(n, t); - if (i) { - var r = i.get ? i.get.toString() : void 0; - return JSON.stringify({ - configurable: i.configurable, - enumerable: i.enumerable, - value: i.value, - writable: i.writable, - getter: null != r && r.length < 100 ? r : void 0, - }); - } - return 'undefined'; - }); - }, - o = this, - s = 0, - u = i; - s < u.length; - s++ - ) { - a(u[s]); - } - } catch (e) { - t._POSignalsUtils.Logger.warn('failed to add properties descriptor', e); - } - }), - (n.prototype.addIframeData = function (e, n) { - if (!n.has('IFRAME_DATA')) - try { - var i = t._POSignalsUtils.Util.createInvisibleElement('iframe'); - if (!i) return; - (i.srcdoc = 'blank page'), - document.body.appendChild(i), - this.flatAndAddMetadata(e, 'IFRAME_CHROME', function () { - return typeof i.contentWindow.chrome; - }), - this.flatAndAddMetadata(e, 'IFRAME_WIDTH', function () { - return i.contentWindow.screen.width; - }), - this.flatAndAddMetadata(e, 'IFRAME_HEIGHT', function () { - return i.contentWindow.screen.height; - }), - i.remove(); - } catch (e) { - t._POSignalsUtils.Logger.warn('failed to add iframe data', e); - } - }), - (n.prototype.getPermissionsMetadata = function () { - return __awaiter(this, void 0, void 0, function () { - var e, n, i, r, a, o; - return __generator(this, function (s) { - switch (s.label) { - case 0: - if ( - ((e = {}), - (n = [ - 'accelerometer', - 'accessibility-events', - 'ambient-light-sensor', - 'background-sync', - 'camera', - 'clipboard-read', - 'clipboard-write', - 'geolocation', - 'gyroscope', - 'magnetometer', - 'microphone', - 'midi', - 'notifications', - 'payment-handler', - 'persistent-storage', - 'push', - ]), - (i = []), - navigator.permissions) - ) - for (a in ((r = function (t) { - var r = n[t]; - i.push( - navigator.permissions - .query({ name: r }) - .then(function (t) { - e[r] = t.state; - }) - .catch(function (t) {}), - ); - }), - n)) - r(a); - s.label = 1; - case 1: - return s.trys.push([1, 3, , 4]), [4, Promise.all(i)]; - case 2: - return s.sent(), [3, 4]; - case 3: - return (o = s.sent()), t._POSignalsUtils.Logger.warn(o), [3, 4]; - case 4: - return [2, e]; - } - }); - }); - }), - (n.prototype.getMediaCodec = function (t) { - var e = document.createElement('video'); - if (e && e.canPlayType) return e.canPlayType(t); - }), - (n.prototype.safeAddModernizrFeatures = function (e) { - return __awaiter(this, void 0, void 0, function () { - var n, i, r, a, o, s; - return __generator(this, function (u) { - switch (u.label) { - case 0: - return ( - t.evaluateModernizr(), - (n = this), - (i = t.Modernizr), - (r = i.prefixed), - (a = i.hasEvent), - this.flatAndAddMetadata(e, 'ambient_light', function () { - return i.ambientlight; - }), - this.flatAndAddMetadata(e, 'application_cache', function () { - return i.applicationcache; - }), - this.flatAndAddMetadata(e, 'audio', function () { - return !!i.audio; - }), - i.audio && - this.flatAndAddMetadata(e, 'audio', function () { - return i.audio; - }), - this.flatAndAddMetadata(e, 'battery_api', function () { - return !!r('battery', navigator) || !!r('getBattery', navigator); - }), - this.flatAndAddMetadata(e, 'blob_constructor', function () { - return i.blobconstructor; - }), - this.flatAndAddMetadata(e, 'context_menu', function () { - return i.contextmenu; - }), - this.flatAndAddMetadata(e, 'cors', function () { - return i.cors; - }), - this.flatAndAddMetadata(e, 'cryptography', function () { - return i.cryptography; - }), - this.flatAndAddMetadata(e, 'custom_elements', function () { - return i.customelements; - }), - this.flatAndAddMetadata(e, 'custom_protocol_handler', function () { - return i.customprotocolhandler; - }), - this.flatAndAddMetadata(e, 'custom_event', function () { - return i.customevent; - }), - this.flatAndAddMetadata(e, 'dart', function () { - return i.dart; - }), - this.flatAndAddMetadata(e, 'data_view', function () { - return i.dataview; - }), - this.flatAndAddMetadata(e, 'event_listener', function () { - return i.eventlistener; - }), - [4, this.safeModernizrOn('exiforientation')] - ); - case 1: - return ( - (o = u.sent()), - n.flatAndAddMetadata(e, 'exif_orientation', function () { - return o; - }), - this.flatAndAddMetadata(e, 'force_touch', function () { - return i.forcetouch; - }), - i.forcetouch && - (this.flatAndAddMetadata( - e, - 'force_touch.mouse_force_will_begin', - function () { - return a(r('mouseforcewillbegin', window, !1), window); - }, - ), - this.flatAndAddMetadata( - e, - 'force_touch.webkit_force_at_mouse_down', - function () { - return MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN; - }, - ), - this.flatAndAddMetadata( - e, - 'force_touch.webkit_force_at_force_mouse_down', - function () { - return MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN; - }, - )), - this.flatAndAddMetadata(e, 'full_screen', function () { - return i.fullscreen; - }), - this.flatAndAddMetadata(e, 'game_pads', function () { - return i.gamepads; - }), - this.flatAndAddMetadata(e, 'geo_location', function () { - return i.geolocation; - }), - this.flatAndAddMetadata(e, 'ie8compat', function () { - return i.ie8compat; - }), - [4, this.safeModernizrOn('indexeddb')] - ); - case 2: - return ( - (s = u.sent()), - n.flatAndAddMetadata(e, 'indexed_db', function () { - return s; - }), - this.flatAndAddMetadata(e, 'indexed_db_blob', function () { - return i.indexeddbblob; - }), - this.flatAndAddMetadata(e, 'internationalization', function () { - return i.intl; - }), - this.flatAndAddMetadata(e, 'json', function () { - return i.json; - }), - this.flatAndAddMetadata(e, 'ligatures', function () { - return i.ligatures; - }), - this.flatAndAddMetadata(e, 'media_source', function () { - return 'MediaSource' in window; - }), - this.flatAndAddMetadata(e, 'message_channel', function () { - return i.messagechannel; - }), - this.flatAndAddMetadata(e, 'notification', function () { - return i.notification; - }), - this.flatAndAddMetadata(e, 'page_visibility', function () { - return i.pagevisibility; - }), - this.flatAndAddMetadata(e, 'performance', function () { - return i.performance; - }), - this.flatAndAddMetadata(e, 'pointer_events', function () { - return i.pointerevents; - }), - this.flatAndAddMetadata(e, 'pointer_lock', function () { - return i.pointerlock; - }), - this.flatAndAddMetadata(e, 'proximity', function () { - return i.proximity; - }), - this.flatAndAddMetadata(e, 'query_selector', function () { - return i.queryselector; - }), - this.flatAndAddMetadata(e, 'quota_management', function () { - return i.quotamanagement; - }), - this.flatAndAddMetadata(e, 'request_animation_frame', function () { - return i.requestanimationframe; - }), - this.flatAndAddMetadata(e, 'service_worker', function () { - return i.serviceworker; - }), - this.flatAndAddMetadata(e, 'touch_events', function () { - return i.touchevents; - }), - this.flatAndAddMetadata(e, 'typed_arrays', function () { - return i.typedarrays; - }), - this.flatAndAddMetadata(e, 'vibrate', function () { - return i.vibrate; - }), - this.flatAndAddMetadata(e, 'video', function () { - return !!i.video; - }), - i.video && - this.flatAndAddMetadata(e, 'video', function () { - return i.video; - }), - this.flatAndAddMetadata(e, 'web_gl', function () { - return i.webgl; - }), - this.flatAndAddMetadata(e, 'web_sockets', function () { - return i.websockets; - }), - this.flatAndAddMetadata(e, 'x_domain_request', function () { - return i.xdomainrequest; - }), - this.flatAndAddMetadata(e, 'matchmedia', function () { - return i.matchmedia; - }), - [2] - ); - } - }); - }); - }), - (n.prototype.getIoMetadata = function () { - var e = this, - n = {}, - i = navigator.connection || navigator.mozConnection || navigator.webkitConnection; - return ( - this.flatAndAddMetadata(n, 'NETWORK_TYPE', function () { - return i ? i.type : null; - }), - this.flatAndAddMetadata(n, 'NETWORK_DOWNLOAD_MAX', function () { - return i ? i.downlinkMax : null; - }), - this.flatAndAddMetadata(n, 'BLUTOOTH_SUPPORTED', function () { - return !!navigator.bluetooth; - }), - this.flatAndAddMetadata(n, 'HAS_SPEAKERS', function () { - return e.hasSpeakers; - }), - this.flatAndAddMetadata(n, 'HAS_MICROPHONE', function () { - return e.hasMicrophone; - }), - this.flatAndAddMetadata(n, 'HAS_CAMERA', function () { - return e.hasWebcam; - }), - this.flatAndAddMetadata(n, 'BATTERY_SUPPORTED', function () { - return e.isBatterySupported; - }), - this.flatAndAddMetadata(n, 'BATTERY_LEVEL', function () { - return e.batteryLevel; - }), - this.flatAndAddMetadata(n, 'BATTERY_CHARGING', function () { - return e.batteryCharging; - }), - this.flatAndAddMetadata(n, 'BATTERY_CHARGING_TIME', function () { - return e.batteryChargingTime; - }), - this.flatAndAddMetadata(n, 'BATTERY_DISCHARGING_TIME', function () { - return e.batteryDischargingTime; - }), - this.flatAndAddMetadata(n, 'GPS_SUPPORTED', function () { - return e.gpsSupported; - }), - this.flatAndAddMetadata(n, 'IS_MOBILE', function () { - return t._POSignalsUtils.Util.isMobile; - }), - this.flatAndAddMetadata(n, 'HAS_TOUCH', function () { - return 'ontouchstart' in document.documentElement; - }), - this.flatAndAddMetadata(n, 'PERMISSIONS', function () { - return e.permissions; - }), - this.flatAndAddMetadata(n, 'PREFERS_COLOR_SCHEME', function () { - return window.matchMedia('(prefers-color-scheme: light)').matches - ? 'light' - : window.matchMedia('(prefers-color-scheme: dark)').matches - ? 'dark' - : void 0; - }), - n - ); - }), - (n.prototype.safeAddMetadata = function (e, n, i) { - try { - var r = new Set(this.metadataParams.metadataBlackList || []); - null == n || null == i || r.has(n) || (e[n] = i); - } catch (e) { - t._POSignalsUtils.Logger.warn('Failed to add ' + n + ' -> ' + i + ', ' + e); - } - }), - (n.prototype.safeModernizrOn = function (e) { - return __awaiter(this, void 0, void 0, function () { - var n, i; - return __generator(this, function (r) { - switch (r.label) { - case 0: - return ( - (n = new Promise(function (n) { - try { - t.Modernizr.on(e, function (t) { - n(t); - }); - } catch (i) { - n(null), - t._POSignalsUtils.Logger.warn( - 'Modernizr.on Failed with feature ' + e, - i, - ); - } - })), - (i = t._POSignalsUtils.Util.delay(250).then(function () { - return null; - })), - [4, Promise.race([n, i])] - ); - case 1: - return [2, r.sent()]; - } - }); - }); - }), - (n.prototype.flatAndAddMetadata = function (e, n, i) { - try { - var r = new Set(this.metadataParams.metadataBlackList || []); - if (!n || r.has(n)) return; - var a = i(); - if ('object' == typeof a && null !== a) { - var o = t._POSignalsUtils.Util.flatten(a); - for (var s in o) this.safeAddMetadata(e, n + '.' + s, o[s]); - } else this.safeAddMetadata(e, n, a); - } catch (e) { - t._POSignalsUtils.Logger.warn('Failed to add ' + n, e); - } - }), - (n.prototype.getOps = function () { - var e, - n = new Date(), - i = 0; - do { - i++, (e = new Date().getTime() - n.getTime()), Math.sqrt(i * Math.random()); - } while (e < 500); - var r = i / e; - return t._POSignalsUtils.Logger.debug('Ops : ' + r), r; - }), - (n.prototype.getPrivateMode = function () { - return __awaiter(this, void 0, void 0, function () { - var t; - return __generator(this, function (e) { - return ( - (t = this), - [ - 2, - new Promise(function (e, n) { - t.detectPrivateMode(function (t) { - e(t); - }); - }), - ] - ); - }); - }); - }), - (n.prototype.detectPrivateMode = function (t) { - var e, - n = t.bind(null, !0), - i = t.bind(null, !1); - window.webkitRequestFileSystem - ? window.webkitRequestFileSystem(0, 0, i, n) - : 'MozAppearance' in document.documentElement.style - ? (((e = indexedDB.open('test')).onerror = n), (e.onsuccess = i)) - : /constructor/i.test(window.HTMLElement) || window.safari - ? (function () { - try { - localStorage.length - ? i() - : ((localStorage.x = 1), localStorage.removeItem('x'), i()); - } catch (t) { - navigator.cookieEnabled ? n() : i(); - } - })() - : window.indexedDB || (!window.PointerEvent && !window.MSPointerEvent) - ? i() - : n(); - }), - (n.detectChromium = function () { - return ( - 1.4474840516030247 == Math.acos(0.123) && - 0.881373587019543 == Math.acosh(Math.SQRT2) && - 1.1071487177940904 == Math.atan(2) && - 0.5493061443340548 == Math.atanh(0.5) && - 1.4645918875615231 == Math.cbrt(Math.PI) && - -0.4067775970251724 == Math.cos(21 * Math.LN2) && - 9.199870313877772e307 == Math.cosh(492 * Math.LOG2E) && - 1.718281828459045 == Math.expm1(1) && - 101.76102278593319 == Math.hypot(6 * Math.PI, -100) && - 0.4971498726941338 == Math.log10(Math.PI) && - 1.2246467991473532e-16 == Math.sin(Math.PI) && - 11.548739357257748 == Math.sinh(Math.PI) && - -3.3537128705376014 == Math.tan(10 * Math.LOG2E) && - 0.12238344189440875 == Math.tanh(0.123) && - 1.9275814160560204e-50 == Math.pow(Math.PI, -100) - ); - }), - n - ); - })(); - e.Metadata = n; - })(t._POSignalsMetadata || (t._POSignalsMetadata = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (t) { - var e = (function () { - function t() {} - return ( - (t.seleniumInDocument = function () { - for ( - var t = 0, - e = [ - '__webdriver_evaluate', - '__selenium_evaluate', - '__webdriver_script_function', - '__webdriver_script_func', - '__webdriver_script_fn', - '__fxdriver_evaluate', - '__driver_unwrapped', - '__webdriver_unwrapped', - '__driver_evaluate', - '__selenium_unwrapped', - '__fxdriver_unwrapped', - ]; - t < e.length; - t++ - ) { - if (document[e[t]]) return !0; - } - return !1; - }), - (t.seleniumInWindow = function () { - for ( - var t = 0, - e = [ - '_phantom', - '__nightmare', - '_selenium', - 'callPhantom', - 'calledSelenium', - 'callSelenium', - '_Selenium_IDE_Recorder', - ]; - t < e.length; - t++ - ) { - if (window[e[t]]) return !0; - } - return !1; - }), - (t.seleniumInNavigator = function () { - for ( - var t = 0, - e = [ - 'webdriver', - '__driver_evaluate', - '__webdriver_evaluate', - '__selenium_evaluate', - '__fxdriver_evaluate', - '__driver_unwrapped', - '__webdriver_unwrapped', - '__selenium_unwrapped', - '__fxdriver_unwrapped', - '_Selenium_IDE_Recorder', - '_selenium', - 'calledSelenium', - '_WEBDRIVER_ELEM_CACHE', - 'ChromeDriverw', - 'driver-evaluate', - 'webdriver-evaluate', - 'selenium-evaluate', - 'webdriverCommand', - 'webdriver-evaluate-response', - '__webdriverFunc', - '__webdriver_script_fn', - '__$webdriverAsyncExecutor', - '__lastWatirAlert', - '__lastWatirConfirm', - '__lastWatirPrompt', - '$chrome_asyncScriptInfo', - '$cdc_asdjflasutopfhvcZLmcfl_', - ]; - t < e.length; - t++ - ) { - if (navigator[e[t]]) return !0; - } - return !1; - }), - (t.seleniumSequentum = function () { - return ( - window.external && - window.external.toString() && - -1 != window.external.toString().indexOf('Sequentum') - ); - }), - t - ); - })(); - t.SeleniumProperties = e; - })(t._POSignalsMetadata || (t._POSignalsMetadata = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (e) { - var n = (function () { - function e(t) { - this.propertyBlackList = t; - } - return ( - (e.prototype.getHeadlessResults = function () { - return __awaiter(this, void 0, void 0, function () { - var e, - n = this; - return __generator(this, function (i) { - switch (i.label) { - case 0: - return [4, this.headlessResults(window)]; - case 1: - return ( - (e = i.sent()), - [ - 4, - this.test(e, 'iframe_window', function () { - return __awaiter(n, void 0, void 0, function () { - var e, n; - return __generator(this, function (i) { - switch (i.label) { - case 0: - return Object.getOwnPropertyDescriptors && - (e = t._POSignalsUtils.Util.createInvisibleElement('iframe')) - ? ((e.srcdoc = 'page intentionally left blank'), - document.body.appendChild(e), - 'function get contentWindow() { [native code] }' !== - Object.getOwnPropertyDescriptors( - HTMLIFrameElement.prototype, - ).contentWindow.get.toString() - ? [2, !0] - : e.contentWindow === window - ? [2, !0] - : [4, this.headlessResults(e.contentWindow)]) - : [2]; - case 1: - return (n = i.sent()), e.remove(), [2, n]; - } - }); - }); - }), - ] - ); - case 2: - return i.sent(), [2, e]; - } - }); - }); - }), - (e.prototype.headlessResults = function (t) { - return __awaiter(this, void 0, void 0, function () { - var e, - n, - i = this; - return __generator(this, function (r) { - switch (r.label) { - case 0: - return ( - (e = new Map()), - (n = []).push( - this.test(e, 'headless_chrome', function () { - return __awaiter(i, void 0, void 0, function () { - return __generator(this, function (e) { - return [2, /HeadlessChrome/.test(t.navigator.userAgent)]; - }); - }); - }), - ), - n.push( - this.test(e, 'navigator.webdriver_present', function () { - return __awaiter(i, void 0, void 0, function () { - return __generator(this, function (e) { - return [2, 'webdriver' in t.navigator]; - }); - }); - }), - ), - n.push( - this.test(e, 'window.chrome_missing', function () { - return __awaiter(i, void 0, void 0, function () { - return __generator(this, function (e) { - return [2, /Chrome/.test(t.navigator.userAgent) && !t.chrome]; - }); - }); - }), - ), - n.push( - this.test(e, 'permissions_api', function () { - return __awaiter(i, void 0, void 0, function () { - var e; - return __generator(this, function (n) { - switch (n.label) { - case 0: - return t.navigator.permissions && t.Notification - ? [ - 4, - t.navigator.permissions.query({ name: 'notifications' }), - ] - : [3, 2]; - case 1: - return ( - (e = n.sent()), - [ - 2, - 'denied' === t.Notification.permission && - 'prompt' === e.state, - ] - ); - case 2: - return [2]; - } - }); - }); - }), - ), - n.push( - this.test(e, 'permissions_api_overriden', function () { - return __awaiter(i, void 0, void 0, function () { - var e; - return __generator(this, function (n) { - return (e = t.navigator.permissions) - ? 'function query() { [native code] }' !== e.query.toString() - ? [2, !0] - : 'function toString() { [native code] }' !== - e.query.toString.toString() - ? [2, !0] - : e.query.toString.hasOwnProperty('[[Handler]]') && - e.query.toString.hasOwnProperty('[[Target]]') && - e.query.toString.hasOwnProperty('[[IsRevoked]]') - ? [2, !0] - : [2, e.hasOwnProperty('query')] - : [2]; - }); - }); - }), - ), - n.push( - this.test(e, 'navigator.plugins_empty', function () { - return __awaiter(i, void 0, void 0, function () { - return __generator(this, function (t) { - return [2, 0 === navigator.plugins.length]; - }); - }); - }), - ), - n.push( - this.test(e, 'navigator.languages_blank', function () { - return __awaiter(i, void 0, void 0, function () { - return __generator(this, function (t) { - return [2, '' === navigator.languages]; - }); - }); - }), - ), - n.push( - this.test(e, 'consistent_plugins_prototype', function () { - return __awaiter(i, void 0, void 0, function () { - var t; - return __generator(this, function (e) { - return ( - (t = PluginArray.prototype === navigator.plugins.__proto__), - navigator.plugins.length > 0 && - (t = t && Plugin.prototype === navigator.plugins[0].__proto__), - [2, t] - ); - }); - }); - }), - ), - n.push( - this.test(e, 'consistent_mimetypes_prototype', function () { - return __awaiter(i, void 0, void 0, function () { - var t; - return __generator(this, function (e) { - return ( - (t = MimeTypeArray.prototype === navigator.mimeTypes.__proto__), - navigator.mimeTypes.length > 0 && - (t = - t && MimeType.prototype === navigator.mimeTypes[0].__proto__), - [2, t] - ); - }); - }); - }), - ), - [4, Promise.all(n)] - ); - case 1: - return r.sent(), [2, e]; - } - }); - }); - }), - (e.prototype.test = function (e, n, i) { - return __awaiter(this, void 0, void 0, function () { - var r, a; - return __generator(this, function (o) { - switch (o.label) { - case 0: - return ( - o.trys.push([0, 3, , 4]), - this.propertyBlackList.has(n) - ? [3, 2] - : [4, t._POSignalsUtils.Util.promiseTimeout(100, i())] - ); - case 1: - null != (r = o.sent()) && (e[n] = r), (o.label = 2); - case 2: - return [3, 4]; - case 3: - return ( - (a = o.sent()), - t._POSignalsUtils.Logger.warn(n + ' headless test was failed', a), - [3, 4] - ); - case 4: - return [2]; - } - }); - }); - }), - e - ); - })(); - e.DetectHeadless = n; - })(t._POSignalsMetadata || (t._POSignalsMetadata = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (e) { - var n = (function () { - function n(t) { - (this.propertyBlackList = t), (this.result = {}); - } - return ( - (n.prototype.documentLie = function (t, e) { - if (e.lied) - for (var n = 0, i = e.lieTypes; n < i.length; n++) { - var r = i[n]; - this.result[r] || (this.result[r] = []), this.result[r].push(t); - } - }), - (n.prototype.getLies = function (t, e, i) { - var r = this; - if ((void 0 === i && (i = null), 'function' != typeof t)) - return { lied: !1, lieTypes: [] }; - var a = t.name.replace(/get\s/, ''), - o = { - undefined_properties: function () { - return !!i && n.getUndefinedValueLie(i, a); - }, - to_string: function () { - return n.getToStringLie(t, a, r.iframeWindow); - }, - prototype_in_function: function () { - return n.getPrototypeInFunctionLie(t); - }, - own_property: function () { - return n.getOwnPropertyLie(t); - }, - object_to_string_error: function () { - return n.getNewObjectToStringTypeErrorLie(t); - }, - }, - s = Object.keys(o).filter(function (t) { - return !r.propertyBlackList.has('LIES.' + t) && !!o[t](); - }); - return { lied: s.length > 0, lieTypes: s }; - }), - (n.prototype.getAllLies = function () { - return __awaiter(this, void 0, void 0, function () { - var e; - return __generator(this, function (n) { - switch (n.label) { - case 0: - return this.propertyBlackList.has('LIES') - ? [2, this.result] - : (this.propertyBlackList.has('LIES_IFRAME') || - ((e = t._POSignalsUtils.Util.createInvisibleElement('iframe')) && - (document.body.appendChild(e), (this.iframeWindow = e))), - [ - 4, - Promise.all([ - this.searchLies( - function () { - return AnalyserNode; - }, - { target: ['minDecibels'] }, - ), - this.searchLies( - function () { - return AudioBuffer; - }, - { target: ['copyFromChannel'] }, - ), - this.searchLies( - function () { - return BiquadFilterNode; - }, - { target: ['getFrequencyResponse'] }, - ), - this.searchLies( - function () { - return CanvasRenderingContext2D; - }, - { target: ['getLineDash'] }, - ), - this.searchLies( - function () { - return DOMRect; - }, - { target: ['height'] }, - ), - this.searchLies( - function () { - return DOMRectReadOnly; - }, - { target: ['left'] }, - ), - this.searchLies( - function () { - return Element; - }, - { target: ['getClientRects'] }, - ), - this.searchLies( - function () { - return HTMLCanvasElement; - }, - { target: ['height'] }, - ), - this.searchLies( - function () { - return Math; - }, - { target: ['sinh'] }, - ), - this.searchLies( - function () { - return MediaDevices; - }, - { target: ['enumerateDevices'] }, - ), - this.searchLies( - function () { - return Navigator; - }, - { target: ['plugins'] }, - ), - this.searchLies( - function () { - return OffscreenCanvasRenderingContext2D; - }, - { target: ['getLineDash'] }, - ), - this.searchLies( - function () { - return SVGRect; - }, - { target: ['x'] }, - ), - ]), - ]); - case 1: - return n.sent(), this.iframeWindow.remove(), [2, this.result]; - } - }); - }); - }), - (n.prototype.searchLies = function (e, n) { - var i = void 0 === n ? {} : n, - r = i.target, - a = void 0 === r ? [] : r, - o = i.ignore, - s = void 0 === o ? [] : o; - return __awaiter(this, void 0, void 0, function () { - var n, - i, - r = this; - return __generator(this, function (o) { - try { - if (((n = e()), void 0 === (u = n) || !u)) return [2]; - } catch (t) { - return [2]; - } - var u; - return ( - (i = n.prototype ? n.prototype : n), - Object.getOwnPropertyNames(i).forEach(function (e) { - if ( - !( - 'constructor' == e || - (a.length && !new Set(a).has(e)) || - (s.length && new Set(s).has(e)) - ) - ) { - var i = /\s(.+)\]/, - o = (n.name ? n.name : i.test(n) ? i.exec(n)[1] : void 0) + '.' + e; - try { - var u = n.prototype ? n.prototype : n; - try { - if ('function' == typeof u[e]) { - var c = r.getLies(u[e], u); - return void r.documentLie(o, c); - } - } catch (t) {} - var l = Object.getOwnPropertyDescriptor(u, e).get, - d = r.getLies(l, u, n); - r.documentLie(o, d); - } catch (n) { - t._POSignalsUtils.Logger.warn('failed ' + e + ' test execution', n); - } - } - }), - [2] - ); - }); - }); - }), - (n.getUndefinedValueLie = function (t, e) { - var n = t.name, - i = window[n.charAt(0).toLowerCase() + n.slice(1)]; - return ( - !!i && - (void 0 !== Object.getOwnPropertyDescriptor(i, e) || - void 0 !== Reflect.getOwnPropertyDescriptor(i, e)) - ); - }), - (n.getToStringLie = function (t, e, n) { - var i, r; - try { - i = n.Function.prototype.toString.call(t); - } catch (t) {} - try { - r = n.Function.prototype.toString.call(t.toString); - } catch (t) {} - var a = i || t.toString(), - o = r || t.toString.toString(), - s = function (t) { - var e; - return ( - ((e = {})['function ' + t + '() { [native code] }'] = !0), - (e['function get ' + t + '() { [native code] }'] = !0), - (e['function () { [native code] }'] = !0), - (e['function ' + t + '() {\n [native code]\n}'] = !0), - (e['function get ' + t + '() {\n [native code]\n}'] = !0), - (e['function () {\n [native code]\n}'] = !0), - e - ); - }; - return !s(e)[a] || !s('toString')[o]; - }), - (n.getPrototypeInFunctionLie = function (t) { - return 'prototype' in t; - }), - (n.getOwnPropertyLie = function (t) { - return ( - t.hasOwnProperty('arguments') || - t.hasOwnProperty('caller') || - t.hasOwnProperty('prototype') || - t.hasOwnProperty('toString') - ); - }), - (n.getNewObjectToStringTypeErrorLie = function (t) { - try { - return Object.create(t).toString(), !0; - } catch (t) { - var n = t.stack.split('\n'), - i = /at Object\.apply/, - r = !n.slice(1).find(function (t) { - return i.test(t); - }), - a = 'TypeError' == t.constructor.name && n.length > 1, - o = 'chrome' in window || e.Metadata.detectChromium(); - return !(!a || !o || (/at Function\.toString/.test(n[1]) && r)) || !a; - } - }), - n - ); - })(); - e.DetectLies = n; - })(t._POSignalsMetadata || (t._POSignalsMetadata = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (e) { - var n = (function () { - function n(t) { - (this.propertyBlackList = t), (this.result = new Map()); - } - return ( - (n.prototype.getStealthResult = function () { - return ( - this.addStealthTest('srcdoc_throws_error', function () { - try { - return !!document.createElement('iframe').srcdoc; - } catch (t) { - return !0; - } - }), - this.addStealthTest('srcdoc_triggers_window_proxy', function () { - var e = document.createElement('iframe'); - return ( - (e.srcdoc = - '' + - t._POSignalsUtils.Util.hashMini(crypto.getRandomValues(new Uint32Array(10)))), - !!e.contentWindow - ); - }), - this.addStealthTest('index_chrome_too_high', function () { - var t = - 'cookieStore' in window - ? 'cookieStore' - : 'ondevicemotion' in window - ? 'ondevicemotion' - : 'speechSynthesis', - e = []; - for (var n in window) e.push(n); - return e.indexOf('chrome') > e.indexOf(t); - }), - this.addStealthTest('chrome_runtime_functions_invalid', function () { - if (!('chrome' in window && 'runtime' in window.chrome)) return !1; - try { - return ( - 'prototype' in window.chrome.runtime.sendMessage || - 'prototype' in window.chrome.runtime.connect || - (new window.chrome.runtime.sendMessage(), - new window.chrome.runtime.connect(), - !0) - ); - } catch (t) { - return 'TypeError' != t.constructor.name; - } - }), - this.addStealthTest('Function_prototype_toString_invalid_typeError', function () { - var t = new n.StackTraceTester(); - return ( - t.isInvalidStackTraceSize(Function.prototype.toString) || - t.isInvalidStackTraceSize(function () {}) - ); - }), - this.result - ); - }), - (n.prototype.addStealthTest = function (e, n) { - if (!this.propertyBlackList.has(e)) - try { - this.result[e] = n(); - } catch (n) { - t._POSignalsUtils.Logger.warn('stealth test ' + e + ' failed', n); - } - }), - (n.StackTraceTester = (function () { - function t() {} - return ( - (t.prototype.isInvalidStackTraceSize = function (t) { - var n = this; - try { - return ( - (this.you = function () { - return Object.create(t).toString(); - }), - (this.cant = function () { - return n.you(); - }), - (this.hide = function () { - return n.cant(); - }), - this.hide(), - !0 - ); - } catch (t) { - var i = t.stack.split('\n'), - r = !/at Object\.apply/.test(i[1]), - a = 'TypeError' == t.constructor.name && i.length >= 5, - o = 'chrome' in window || e.Metadata.detectChromium(); - return ( - !( - !a || - !o || - (r && - /at Function\.toString/.test(i[1]) && - /\.you/.test(i[2]) && - /\.cant/.test(i[3]) && - /\.hide/.test(i[4])) - ) || !a - ); - } - }), - t - ); - })()), - n - ); - })(); - e.DetectStealth = n; - })(t._POSignalsMetadata || (t._POSignalsMetadata = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - !(function (t) { - var e = (function () { - function t() {} - return ( - (t.isPrivateMode = function () { - return new Promise(function (t) { - var e, - n, - i = function () { - return t(!0); - }, - r = function () { - return t(!1); - }; - try { - if ( - ((n = - navigator && - /(?=.*(opera|chrome)).*/i.test(navigator.userAgent) && - navigator.storage && - navigator.storage.estimate) && - navigator.storage - .estimate() - .then(function (t) { - t.quota < 12e7 ? i() : r(); - }) - .catch(function (t) { - r(); - }), - n) - ) - return; - if ( - (function () { - var t = 'MozAppearance' in document.documentElement.style; - if (t) - if (null == indexedDB) i(); - else { - var e = indexedDB.open('inPrivate'); - (e.onsuccess = r), (e.onerror = i); - } - return t; - })() - ) - return; - if ( - (function () { - var t = - navigator && - navigator.userAgent && - navigator.userAgent.match(/Version\/([0-9\._]+).*Safari/); - if (t) { - if (parseInt(t[1], 10) < 11) - return (function () { - try { - localStorage.length - ? r() - : (localStorage.setItem('inPrivate', '0'), - localStorage.removeItem('inPrivate'), - r()); - } catch (t) { - navigator.cookieEnabled ? i() : r(); - } - return !0; - })(); - try { - window.openDatabase(null, null, null, null), r(); - } catch (t) { - i(); - } - } - return !!t; - })() - ) - return; - if ( - ((e = !window.indexedDB && (window.PointerEvent || window.MSPointerEvent)) && - i(), - e) - ) - return; - } catch (t) {} - return r(); - }); - }), - t - ); - })(); - t.Incognito = e; - })(t._POSignalsMetadata || (t._POSignalsMetadata = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})); - var __extends = - (this && this.__extends) || - (function () { - var t = function (e, n) { - return (t = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (t, e) { - t.__proto__ = e; - }) || - function (t, e) { - for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]); - })(e, n); - }; - return function (e, n) { - function i() { - this.constructor = e; - } - t(e, n), - (e.prototype = null === n ? Object.create(n) : ((i.prototype = n.prototype), new i())); - }; - })(); - (__awaiter = - (this && this.__awaiter) || - function (t, e, n, i) { - return new (n || (n = Promise))(function (r, a) { - function o(t) { - try { - u(i.next(t)); - } catch (t) { - a(t); - } - } - function s(t) { - try { - u(i.throw(t)); - } catch (t) { - a(t); - } - } - function u(t) { - var e; - t.done - ? r(t.value) - : ((e = t.value), - e instanceof n - ? e - : new n(function (t) { - t(e); - })).then(o, s); - } - u((i = i.apply(t, e || [])).next()); - }); - }), - (__generator = - (this && this.__generator) || - function (t, e) { - var n, - i, - r, - a, - o = { - label: 0, - sent: function () { - if (1 & r[0]) throw r[1]; - return r[1]; - }, - trys: [], - ops: [], - }; - return ( - (a = { next: s(0), throw: s(1), return: s(2) }), - 'function' == typeof Symbol && - (a[Symbol.iterator] = function () { - return this; - }), - a - ); - function s(a) { - return function (s) { - return (function (a) { - if (n) throw new TypeError('Generator is already executing.'); - for (; o; ) - try { - if ( - ((n = 1), - i && - (r = - 2 & a[0] - ? i.return - : a[0] - ? i.throw || ((r = i.return) && r.call(i), 0) - : i.next) && - !(r = r.call(i, a[1])).done) - ) - return r; - switch (((i = 0), r && (a = [2 & a[0], r.value]), a[0])) { - case 0: - case 1: - r = a; - break; - case 4: - return o.label++, { value: a[1], done: !1 }; - case 5: - o.label++, (i = a[1]), (a = [0]); - continue; - case 7: - (a = o.ops.pop()), o.trys.pop(); - continue; - default: - if ( - !(r = (r = o.trys).length > 0 && r[r.length - 1]) && - (6 === a[0] || 2 === a[0]) - ) { - o = 0; - continue; - } - if (3 === a[0] && (!r || (a[1] > r[0] && a[1] < r[3]))) { - o.label = a[1]; - break; - } - if (6 === a[0] && o.label < r[1]) { - (o.label = r[1]), (r = a); - break; - } - if (r && o.label < r[2]) { - (o.label = r[2]), o.ops.push(a); - break; - } - r[2] && o.ops.pop(), o.trys.pop(); - continue; - } - a = e.call(t, o); - } catch (t) { - (a = [6, t]), (i = 0); - } finally { - n = r = 0; - } - if (5 & a[0]) throw a[1]; - return { value: a[0] ? a[1] : void 0, done: !0 }; - })([a, s]); - }; - } - }), - (__assign = - (this && this.__assign) || - function () { - return (__assign = - Object.assign || - function (t) { - for (var e, n = 1, i = arguments.length; n < i; n++) - for (var r in (e = arguments[n])) - Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); - return t; - }).apply(this, arguments); - }); - !(function (t) { - !(function (t) { - (t[(t.Unknown = 0)] = 'Unknown'), - (t[(t.FlingRight = 1)] = 'FlingRight'), - (t[(t.FlingLeft = 2)] = 'FlingLeft'), - (t[(t.FlingUp = 3)] = 'FlingUp'), - (t[(t.FlingDown = 4)] = 'FlingDown'), - (t[(t.Diagonal = 5)] = 'Diagonal'), - (t[(t.ScrollRight = 6)] = 'ScrollRight'), - (t[(t.ScrollLeft = 7)] = 'ScrollLeft'), - (t[(t.ScrollUp = 8)] = 'ScrollUp'), - (t[(t.ScrollDown = 9)] = 'ScrollDown'), - (t[(t.Tap = 10)] = 'Tap'), - (t[(t.DoubleTap = 11)] = 'DoubleTap'); - })(t.GestureType || (t.GestureType = {})); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - 'use strict'; - var e = (function () { - function t(t, e) { - (this.handler = t), (this.isOnce = e), (this.isExecuted = !1); - } - return ( - (t.prototype.execute = function (t, e, n) { - if (!this.isOnce || !this.isExecuted) { - this.isExecuted = !0; - var i = this.handler; - t - ? setTimeout(function () { - i.apply(e, n); - }, 1) - : i.apply(e, n); - } - }), - t - ); - })(), - n = (function () { - function t() { - (this._wrap = new o(this)), (this._subscriptions = new Array()); - } - return ( - (t.prototype.subscribe = function (t) { - t && this._subscriptions.push(new e(t, !1)); - }), - (t.prototype.sub = function (t) { - this.subscribe(t); - }), - (t.prototype.one = function (t) { - t && this._subscriptions.push(new e(t, !0)); - }), - (t.prototype.has = function (t) { - if (t) - for (var e = 0, n = this._subscriptions; e < n.length; e++) { - if (n[e].handler == t) return !0; - } - return !1; - }), - (t.prototype.unsubscribe = function (t) { - if (t) - for (var e = 0; e < this._subscriptions.length; e++) { - if (this._subscriptions[e].handler == t) { - this._subscriptions.splice(e, 1); - break; - } - } - }), - (t.prototype.unsub = function (t) { - this.unsubscribe(t); - }), - (t.prototype._dispatch = function (t, e, n) { - for (var i = 0; i < this._subscriptions.length; i++) { - var r = this._subscriptions[i]; - if (r.isOnce) { - if (!0 === r.isExecuted) continue; - this._subscriptions.splice(i, 1), i--; - } - r.execute(t, e, n); - } - }), - (t.prototype.asEvent = function () { - return this._wrap; - }), - t - ); - })(); - t.DispatcherBase = n; - var i = (function (t) { - function e() { - return (null !== t && t.apply(this, arguments)) || this; - } - return ( - __extends(e, t), - (e.prototype.dispatch = function (t, e) { - this._dispatch(!1, this, arguments); - }), - (e.prototype.dispatchAsync = function (t, e) { - this._dispatch(!0, this, arguments); - }), - e - ); - })(n); - t.EventDispatcher = i; - var r = (function (t) { - function e() { - return (null !== t && t.apply(this, arguments)) || this; - } - return ( - __extends(e, t), - (e.prototype.dispatch = function (t) { - this._dispatch(!1, this, arguments); - }), - (e.prototype.dispatchAsync = function (t) { - this._dispatch(!0, this, arguments); - }), - e - ); - })(n), - a = (function (t) { - function e() { - return (null !== t && t.apply(this, arguments)) || this; - } - return ( - __extends(e, t), - (e.prototype.dispatch = function () { - this._dispatch(!1, this, arguments); - }), - (e.prototype.dispatchAsync = function () { - this._dispatch(!0, this, arguments); - }), - e - ); - })(n), - o = (function () { - function t(t) { - (this._subscribe = function (e) { - return t.subscribe(e); - }), - (this._unsubscribe = function (e) { - return t.unsubscribe(e); - }), - (this._one = function (e) { - return t.one(e); - }), - (this._has = function (e) { - return t.has(e); - }); - } - return ( - (t.prototype.subscribe = function (t) { - this._subscribe(t); - }), - (t.prototype.sub = function (t) { - this.subscribe(t); - }), - (t.prototype.unsubscribe = function (t) { - this._unsubscribe(t); - }), - (t.prototype.unsub = function (t) { - this.unsubscribe(t); - }), - (t.prototype.one = function (t) { - this._one(t); - }), - (t.prototype.has = function (t) { - return this._has(t); - }), - t - ); - })(), - s = (function () { - function t() { - this._events = {}; - } - return ( - (t.prototype.get = function (t) { - var e = this._events[t]; - return e || ((e = this.createDispatcher()), (this._events[t] = e), e); - }), - (t.prototype.remove = function (t) { - this._events[t] = null; - }), - t - ); - })(), - u = (function (t) { - function e() { - return (null !== t && t.apply(this, arguments)) || this; - } - return ( - __extends(e, t), - (e.prototype.createDispatcher = function () { - return new i(); - }), - e - ); - })(s), - c = (function (t) { - function e() { - return (null !== t && t.apply(this, arguments)) || this; - } - return ( - __extends(e, t), - (e.prototype.createDispatcher = function () { - return new r(); - }), - e - ); - })(s), - l = (function (t) { - function e() { - return (null !== t && t.apply(this, arguments)) || this; - } - return ( - __extends(e, t), - (e.prototype.createDispatcher = function () { - return new a(); - }), - e - ); - })(s); - (function () { - function t() { - this._events = new u(); - } - Object.defineProperty(t.prototype, 'events', { - get: function () { - return this._events; - }, - enumerable: !1, - configurable: !0, - }), - (t.prototype.subscribe = function (t, e) { - this._events.get(t).subscribe(e); - }), - (t.prototype.sub = function (t, e) { - this.subscribe(t, e); - }), - (t.prototype.unsubscribe = function (t, e) { - this._events.get(t).unsubscribe(e); - }), - (t.prototype.unsub = function (t, e) { - this.unsubscribe(t, e); - }), - (t.prototype.one = function (t, e) { - this._events.get(t).one(e); - }), - (t.prototype.has = function (t, e) { - return this._events.get(t).has(e); - }); - })(), - (function () { - function t() { - this._events = new c(); - } - Object.defineProperty(t.prototype, 'events', { - get: function () { - return this._events; - }, - enumerable: !1, - configurable: !0, - }), - (t.prototype.subscribe = function (t, e) { - this._events.get(t).subscribe(e); - }), - (t.prototype.sub = function (t, e) { - this.subscribe(t, e); - }), - (t.prototype.one = function (t, e) { - this._events.get(t).one(e); - }), - (t.prototype.has = function (t, e) { - return this._events.get(t).has(e); - }), - (t.prototype.unsubscribe = function (t, e) { - this._events.get(t).unsubscribe(e); - }), - (t.prototype.unsub = function (t, e) { - this.unsubscribe(t, e); - }); - })(), - (function () { - function t() { - this._events = new l(); - } - Object.defineProperty(t.prototype, 'events', { - get: function () { - return this._events; - }, - enumerable: !1, - configurable: !0, - }), - (t.prototype.one = function (t, e) { - this._events.get(t).one(e); - }), - (t.prototype.has = function (t, e) { - return this._events.get(t).has(e); - }), - (t.prototype.subscribe = function (t, e) { - this._events.get(t).subscribe(e); - }), - (t.prototype.sub = function (t, e) { - this.subscribe(t, e); - }), - (t.prototype.unsubscribe = function (t, e) { - this._events.get(t).unsubscribe(e); - }), - (t.prototype.unsub = function (t, e) { - this.unsubscribe(t, e); - }); - })(); - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(t) { - (this._isStarted = !1), - (this._isEventsStarted = !1), - (this._gestureTimestamps = []), - (this._maxSensorSamples = 0), - (this._sensorsTimestampDeltaInMillis = 0), - (this._accelerometerList = []), - (this._gyroscopeList = []), - (this._linearAccelerometerList = []), - (this._rotationList = []), - (this.orientationImplementationFix = 1), - (this.delegate = t), - window.navigator.userAgent.match( - /^.*(iPhone|iPad).*(OS\s[0-9]).*(CriOS|Version)\/[.0-9]*\sMobile.*$/i, - ) && (this.orientationImplementationFix = -1), - (this.accelerometerUpdateHandle = this.accelerometerUpdate.bind(this)), - (this.orientationUpdateHandle = this.orientationUpdate.bind(this)); - } - return ( - Object.defineProperty(e.prototype, 'LAST_GESTURE_SENSOR_TIMEOUT_MILI_SECONDS', { - get: function () { - return 3e3; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'accX', { - get: function () { - return this._accX; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'accY', { - get: function () { - return this._accY; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'accZ', { - get: function () { - return this._accZ; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'lienarAccX', { - get: function () { - return this._lienarAccX; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'lienarAccY', { - get: function () { - return this._lienarAccY; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'lienarAccZ', { - get: function () { - return this._lienarAccZ; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'isStarted', { - get: function () { - return this._isStarted; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'rotX', { - get: function () { - return this._rotX; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'rotY', { - get: function () { - return this._rotY; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'rotZ', { - get: function () { - return this._rotZ; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'maxSensorSamples', { - get: function () { - return this._maxSensorSamples; - }, - set: function (t) { - this._maxSensorSamples = t; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'sensorsTimestampDeltaInMillis', { - get: function () { - return this._sensorsTimestampDeltaInMillis; - }, - set: function (t) { - this._sensorsTimestampDeltaInMillis = t; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'accelerometerList', { - get: function () { - return this.getRelevantSensorSamples(this._accelerometerList); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'gyroscopeList', { - get: function () { - return this.getRelevantSensorSamples(this._gyroscopeList); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'linearAccelerometerList', { - get: function () { - return this.getRelevantSensorSamples(this._linearAccelerometerList); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'rotationList', { - get: function () { - return this._rotationList; - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.start = function () { - this._isStarted || - ((this._isStarted = !0), t._POSignalsUtils.Logger.debug('Sensor events started...')); - }), - (e.prototype.getRotationListCopy = function () { - return this._rotationList ? Array.from(this._rotationList) : []; - }), - (e.prototype.stop = function () { - this._isStarted && - (void 0 != window.DeviceMotionEvent && - window.removeEventListener('devicemotion', this.accelerometerUpdateHandle, !0), - window.DeviceOrientationEvent && - window.removeEventListener('deviceorientation', this.orientationUpdateHandle, !0), - (this._isStarted = !1), - t._POSignalsUtils.Logger.debug('Sensor events stopped')); - }), - (e.prototype.getRelevantSensorSamples = function (e) { - if ( - 0 == e.length || - this._sensorsTimestampDeltaInMillis < 1 || - 0 == this._gestureTimestamps.length - ) - return e; - for (var n = new Map(), i = null, r = 0, a = 0; a < e.length; a++) - for (var o = 0; o < this._gestureTimestamps.length; o++) - (r = e[a].timestamp) >= - (i = this._gestureTimestamps[o]).start - this._sensorsTimestampDeltaInMillis && - r <= i.end + this._sensorsTimestampDeltaInMillis && - n.set(e[a].timestamp, e[a]); - return t._POSignalsUtils.Util.getValuesOfMap(n); - }), - (e.prototype.stopEvents = function () { - this._isEventsStarted && - (void 0 != window.DeviceMotionEvent && - window.removeEventListener('devicemotion', this.accelerometerUpdateHandle, !0), - window.DeviceOrientationEvent && - window.removeEventListener('deviceorientation', this.orientationUpdateHandle, !0), - (this._isEventsStarted = !1), - t._POSignalsUtils.Logger.debug('Sensor events stopped listening')); - }), - (e.prototype.startEvents = function () { - this._isEventsStarted || - (void 0 != window.DeviceMotionEvent - ? this.delegate.addEventListener( - window, - 'devicemotion', - this.accelerometerUpdateHandle, - !0, - ) - : t._POSignalsUtils.Logger.warn('DeviceMotion not supported!'), - window.DeviceOrientationEvent - ? this.delegate.addEventListener( - window, - 'deviceorientation', - this.orientationUpdateHandle, - !0, - ) - : t._POSignalsUtils.Logger.warn('DeviceOrientation not supported!'), - t._POSignalsUtils.Logger.debug('Sensor events start listening...'), - (this._isEventsStarted = !0)); - }), - (e.prototype.reset = function () { - (this._accelerometerList = []), - (this._gyroscopeList = []), - (this._linearAccelerometerList = []), - (this._rotationList = []), - this._gestureTimestamps.length > 0 - ? (this._gestureTimestamps = [ - this._gestureTimestamps[this._gestureTimestamps.length - 1], - ]) - : (this._gestureTimestamps = []), - (this._accX = 0), - (this._accY = 0), - (this._accZ = 0), - (this._rotX = 0), - (this._rotY = 0), - (this._rotZ = 0); - }), - (e.prototype.onGesture = function (t) { - this._isEventsStarted || this.startEvents(), - t.events.length > 1 && - this._gestureTimestamps.push({ - start: t.events[0].eventTs, - end: t.events[t.events.length - 1].eventTs, - }); - }), - (e.prototype.puaseSensorsCollectionIfNoActivity = function (t) { - return (this._gestureTimestamps.length > 0 - ? this._gestureTimestamps[this._gestureTimestamps.length - 1].end - : 0) > 0 - ? Math.abs(t - this._gestureTimestamps[this._gestureTimestamps.length - 1].end) > - this.LAST_GESTURE_SENSOR_TIMEOUT_MILI_SECONDS && (this.stopEvents(), !0) - : (this.stopEvents(), !0); - }), - (e.prototype.getDeviceAcceleration = function (t) { - return t && null != t.x && null != t.y && null != t.z ? t : null; - }), - (e.prototype.accelerometerUpdate = function (e) { - try { - if ( - !this.delegate.collectBehavioralData() || - this.puaseSensorsCollectionIfNoActivity(t._POSignalsUtils.Util.now()) - ) - return; - var n = this.getDeviceAcceleration(e.accelerationIncludingGravity); - n && - ((this._accX = n.x * this.orientationImplementationFix), - (this._accY = n.y * this.orientationImplementationFix), - (this._accZ = n.z), - this.safeAddSensorSample( - { - x: this._accX, - y: this._accY, - z: this._accX, - timestamp: t._POSignalsUtils.Util.now(), - }, - this._accelerometerList, - )); - var i = this.getDeviceAcceleration(e.acceleration); - i && - ((this._lienarAccX = i.x * this.orientationImplementationFix), - (this._lienarAccY = i.y * this.orientationImplementationFix), - (this._lienarAccZ = i.z), - this.safeAddSensorSample( - { - x: this._lienarAccX, - y: this._lienarAccY, - z: this._lienarAccZ, - timestamp: t._POSignalsUtils.Util.now(), - }, - this._linearAccelerometerList, - )), - e.rotationRate && - null != e.rotationRate.alpha && - null != e.rotationRate.beta && - null != e.rotationRate.gamma && - ((this._rotX = e.rotationRate.alpha), - (this._rotY = e.rotationRate.beta), - (this._rotZ = e.rotationRate.gamma), - this.safeAddSensorSample( - { - x: this._rotX, - y: this._rotY, - z: this._rotZ, - timestamp: t._POSignalsUtils.Util.now(), - }, - this._gyroscopeList, - )); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in accelerometer handler', e); - } - }), - (e.prototype.orientationUpdate = function (e) { - try { - if ( - !this.delegate.collectBehavioralData() || - this.puaseSensorsCollectionIfNoActivity(t._POSignalsUtils.Util.now()) - ) - return; - null != e.alpha && - null != e.beta && - null != e.gamma && - this.safeAddSensorSample( - { x: e.alpha, y: e.beta, z: e.gamma, timestamp: t._POSignalsUtils.Util.now() }, - this._rotationList, - ); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in orientation handler', e); - } - }), - (e.prototype.safeAddSensorSample = function (t, e) { - this.maxSensorSamples > e.length && e.push(t); - }), - e - ); - })(); - t.Sensors = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e() { - this._pointerParams = new t.PointerParams(); - } - return ( - Object.defineProperty(e, 'instance', { - get: function () { - return e._instance || (e._instance = new e()), e._instance; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'pointerParams', { - get: function () { - return this._pointerParams; - }, - enumerable: !1, - configurable: !0, - }), - e - ); - })(); - t.PointerConfig = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e; - !(function (t) { - (t[(t.Up = 1)] = 'Up'), - (t[(t.Down = 2)] = 'Down'), - (t[(t.Left = 3)] = 'Left'), - (t[(t.Right = 4)] = 'Right'); - })(e || (e = {})); - var n = (function () { - function n(e, n) { - (this.BEHAVIORAL_TYPE = 'gestures'), - (this._isStarted = !1), - (this._onGesture = new t.EventDispatcher()), - (this.touchSnapshotsMap = new Map()), - (this.snapshotStartTime = new Map()), - (this.delegate = e), - (this.sensors = n), - (this.touchStartHandler = this.touchStart.bind(this)), - (this.touchMoveHandler = this.touchMove.bind(this)), - (this.touchEndHandler = this.touchEnd.bind(this)), - (this.touchCancelHandler = this.touchCancel.bind(this)); - } - return ( - Object.defineProperty(n.prototype, 'onGesture', { - get: function () { - return this._onGesture.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'isStarted', { - get: function () { - return this._isStarted; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'SCROLL_MIN_DURATION', { - get: function () { - return 500; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'SWIPE_MAX_ANGLE', { - get: function () { - return 45; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'TAP_MOVEMENT_TRESHOLD', { - get: function () { - return 10; - }, - enumerable: !1, - configurable: !0, - }), - (n.prototype.countEvents = function (t) { - for (var e = {}, n = 0, i = t; n < i.length; n++) { - var r = i[n]; - e[r.type] = (e[r.type] || 0) + 1; - } - return e; - }), - (n.prototype.clearTouchSnapshots = function (t) { - this.touchSnapshotsMap.delete(t), this.snapshotStartTime.delete(t); - }), - (n.prototype.getTouchSnapshots = function (t) { - var e; - return ( - this.touchSnapshotsMap.has(t) - ? (e = this.touchSnapshotsMap.get(t)) - : ((e = []), this.touchSnapshotsMap.set(t, e)), - e - ); - }), - (n.prototype.isEmpty = function () { - return 0 === this.touchSnapshotsMap.size; - }), - (n.prototype.start = function () { - this._isStarted || - (this.delegate.addEventListener(document, 'touchstart', this.touchStartHandler), - this.delegate.addEventListener(document, 'touchmove', this.touchMoveHandler), - this.delegate.addEventListener(document, 'touchend', this.touchEndHandler), - this.delegate.addEventListener(document, 'touchcancel', this.touchCancelHandler), - (this._isStarted = !0)); - }), - (n.prototype.stop = function () { - this._isStarted && - (document.removeEventListener('touchstart', this.touchStartHandler), - document.removeEventListener('touchmove', this.touchMoveHandler), - document.removeEventListener('touchend', this.touchEndHandler), - document.removeEventListener('touchcancel', this.touchCancelHandler), - (this._isStarted = !1)); - }), - (n.prototype.touchStart = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) return; - if (t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) return; - t._POSignalsUtils.Logger.debug('touchstart(' + e.changedTouches.length + ')', e), - e.changedTouches.length > 0 && this.pushSnapshot(e); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in touchStart handler', e); - } - }), - (n.prototype.touchMove = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) return; - if (t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) return; - t._POSignalsUtils.Logger.debug('touchmove(' + e.changedTouches.length + ')', e), - e.changedTouches.length > 0 && this.pushSnapshot(e); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in touchMove handler', e); - } - }), - (n.prototype.touchEnd = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) - return void this._onGesture.dispatch(this, null); - if (t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) return; - t._POSignalsUtils.Logger.debug('touchend(' + e.changedTouches.length + ')', e), - this.gestureEnd(e); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in touchEnd handler', e); - } - }), - (n.prototype.touchCancel = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) - return void this._onGesture.dispatch(this, null); - if (t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) return; - t._POSignalsUtils.Logger.debug('touchcancel(' + e.changedTouches.length + ')', e), - this.gestureEnd(e); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in touchCancel handler', e); - } - }), - (n.prototype.gestureEnd = function (e) { - e.changedTouches.length > 0 && this.pushSnapshot(e); - for (var n = 0; n < e.changedTouches.length; n++) { - var i = e.changedTouches.item(n), - r = this.getTouchSnapshots(i.identifier); - r.length > 0 && - (this.isTap(r) - ? this.dispatchGesture(t.GestureType.Tap, i.identifier) - : this.dispatchGesture(this.calcGestureType(r), i.identifier)); - } - }), - (n.prototype.calcGestureType = function (n) { - var i, - r = this.getDirection(n); - if (this.isFling(n)) - switch (r) { - case e.Up: - i = t.GestureType.FlingUp; - break; - case e.Right: - i = t.GestureType.FlingRight; - break; - case e.Down: - i = t.GestureType.FlingDown; - break; - case e.Left: - i = t.GestureType.FlingLeft; - } - else if (this.isScroll(n)) - switch (r) { - case e.Up: - i = t.GestureType.ScrollUp; - break; - case e.Right: - i = t.GestureType.ScrollRight; - break; - case e.Down: - i = t.GestureType.ScrollDown; - break; - case e.Left: - i = t.GestureType.ScrollLeft; - } - return i; - }), - (n.prototype.pushSnapshot = function (e) { - if (e.changedTouches && e.changedTouches.length > 0) - for ( - var n, - i = function () { - var i = e.changedTouches.item(a); - (n = i.radiusX && i.radiusY ? (i.radiusX + i.radiusY) / 2 : null), - r.snapshotStartTime.has(i.identifier) || - r.snapshotStartTime.set(i.identifier, new Date().getTime()); - var o = r.getTouchSnapshots(i.identifier); - o.length < t.PointerConfig.instance.pointerParams.maxSnapshotsCount && - o.push({ - type: e.type, - eventTs: e.timeStamp, - epochTs: new Date().getTime(), - relativeX: i.screenX, - relativeY: i.screenY, - x: i.clientX, - y: i.clientY, - pressure: i.force, - size: n, - xaccelerometer: r.sensors.accX, - yaccelerometer: r.sensors.accY, - zaccelerometer: r.sensors.accZ, - xlinearaccelerometer: r.sensors.lienarAccX, - ylinearaccelerometer: r.sensors.lienarAccY, - zlinearaccelerometer: r.sensors.lienarAccZ, - xrotation: r.sensors.rotX, - yrotation: r.sensors.rotY, - zrotation: r.sensors.rotZ, - radiusX: i.radiusX, - radiusY: i.radiusY, - rotationAngle: i.rotationAngle, - pageX: i.pageX, - pageY: i.pageY, - getX: function () { - return i.screenX; - }, - getY: function () { - return i.screenY; - }, - }); - }, - r = this, - a = 0; - a < e.changedTouches.length; - a++ - ) - i(); - }), - (n.prototype.dispatchGesture = function (e, n) { - var i = this.touchSnapshotsMap.get(n) || [], - r = i.filter(function (t) { - return 'touchmove' === t.type; - }); - this._onGesture.dispatch(this, { - epochTs: this.snapshotStartTime.get(n) || 0, - counter: this.delegate.gesturesCounter, - type: e, - events: i, - eventCounters: this.countEvents(i), - duration: this.delegate.getInteractionDuration(i), - additionalData: this.delegate.additionalData, - uiControl: void 0, - timeProximity: t._POSignalsUtils.Util.calculateMeanTimeDeltasBetweenEvents(r), - meanEuclidean: t._POSignalsUtils.Util.calculateMeanDistanceBetweenPoints(r), - reduction: {}, - }), - this.clearTouchSnapshots(n); - }), - (n.prototype.isTap = function (t) { - var e = Math.abs(t[0].x - t[1].x), - n = Math.abs(t[0].y - t[1].y); - return ( - 2 == t.length && e < this.TAP_MOVEMENT_TRESHOLD && n < this.TAP_MOVEMENT_TRESHOLD - ); - }), - (n.prototype.isFling = function (t) { - return ( - t.length > 1 && t[t.length - 1].eventTs - t[0].eventTs < this.SCROLL_MIN_DURATION - ); - }), - (n.prototype.isScroll = function (t) { - return ( - t.length > 1 && t[t.length - 1].eventTs - t[0].eventTs > this.SCROLL_MIN_DURATION - ); - }), - (n.prototype.getDirection = function (t) { - var n = this.calcAngle(t[0], t[t.length - 1]); - return n > 90 - this.SWIPE_MAX_ANGLE && n <= 90 + this.SWIPE_MAX_ANGLE - ? e.Up - : n > 180 - this.SWIPE_MAX_ANGLE && n <= 180 + this.SWIPE_MAX_ANGLE - ? e.Right - : n > 270 - this.SWIPE_MAX_ANGLE && n <= 270 + this.SWIPE_MAX_ANGLE - ? e.Down - : e.Left; - }), - (n.prototype.calcAngle = function (t, e) { - return (180 * Math.atan2(e.y - t.y, e.x - t.x)) / Math.PI + 180; - }), - n - ); - })(); - t.GestureEvents = n; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(t) { - (this.key = t), (this.cache = this.loadFromStorage()); - } - return ( - (e.prototype.loadFromStorage = function () { - var t = e.sessionStorage.getItem(this.key); - return t || (t = JSON.stringify([])), JSON.parse(t); - }), - (e.prototype.get = function () { - return this.cache; - }), - Object.defineProperty(e.prototype, 'length', { - get: function () { - return this.cache.length; - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.push = function (t) { - var n = this.cache.push(t); - return e.sessionStorage.setItem(this.key, JSON.stringify(this.cache)), n; - }), - (e.prototype.set = function (t) { - (this.cache = t), e.sessionStorage.setItem(this.key, JSON.stringify(this.cache)); - }), - (e.prototype.remove = function (t) { - this.cache.splice(t, 1), e.sessionStorage.setItem(this.key, JSON.stringify(this.cache)); - }), - (e.prototype.concat = function (t) { - return this.cache.concat(t); - }), - (e.prototype.clear = function () { - (this.cache = []), e.sessionStorage.removeItem(this.key); - }), - (e.sessionStorage = t._POSignalsStorage.SessionStorage.instance.sessionStorage), - e - ); - })(); - t.StorageArray = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e() { - (this.MAX_TAGS = 10), - (this._tags = new t.StorageArray(t._POSignalsUtils.Constants.CAPTURED_TAGS)); - } - return ( - Object.defineProperty(e, 'instance', { - get: function () { - return e._instance || (e._instance = new e()), e._instance; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'tags', { - get: function () { - return this._tags.get(); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'disableTags', { - set: function (t) { - this._disableTags = t; - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.setTag = function (e, n) { - var i; - if (!this._disableTags) - if (t.PointerConfig.instance.pointerParams.enabled) - if (e) { - var r = t.PointerConfig.instance.pointerParams.tagsBlacklistRegex; - if (r && (e.match(r) || (null === n || void 0 === n ? void 0 : n.match(r)))) - t._POSignalsUtils.Logger.info('Tag name or value is blacklisted'); - else if (!(this._tags.length >= this.MAX_TAGS)) { - this._tags.push({ - name: e.trim(), - value: - (null === (i = null === n || void 0 === n ? void 0 : n.trim) || void 0 === i - ? void 0 - : i.call(n)) || void 0, - epochTs: Date.now(), - timestamp: Date.now(), - }); - var a = n ? e + ':' + n : e; - t._POSignalsUtils.Logger.info('Add tag: ' + a); - } - } else t._POSignalsUtils.Logger.info("Can't add tag, missing name"); - else t._POSignalsUtils.Logger.info("Can't add tag, PingOneSignals SDK is disabled"); - }), - (e.prototype.reset = function () { - this._tags.clear(); - }), - e - ); - })(); - t.Tags = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(t) { - this.client = t; - } - return ( - (e.prototype.calculateStrategyResult = function (e, n) { - return { - shouldCollect: - this.client.getBufferSize() < t.PointerConfig.instance.pointerParams.bufferSize, - }; - }), - e - ); - })(); - t.FirstInteractionsStrategy = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e; - !(function (t) { - (t[(t.RICH = 3)] = 'RICH'), - (t[(t.CLICK = 2)] = 'CLICK'), - (t[(t.MOVE = 1)] = 'MOVE'), - (t[(t.POOR = 0)] = 'POOR'); - })(e || (e = {})); - var n = (function () { - function n(t) { - (this.client = t), - (this.MAX_INTERACTIONS_PER_TYPE = 5), - (this.MAX_MOUSE_AND_GESTURE = this.MAX_INTERACTIONS_PER_TYPE + 1), - (this.RICH_MOUSE_MOVES_AMOUNT = 8), - (this.MIN_KEYBOARD_EVENTS = 4); - } - return ( - (n.prototype.isRichMouseInteraction = function (t) { - return t.mousemove >= this.RICH_MOUSE_MOVES_AMOUNT && this.isClickInteraction(t); - }), - (n.prototype.isClickInteraction = function (t) { - return t.mousedown > 0 && t.mouseup > 0; - }), - (n.prototype.isMoveInteraction = function (t) { - return t.mousemove >= this.RICH_MOUSE_MOVES_AMOUNT; - }), - (n.prototype.classifyMouseInteraction = function (n) { - var i = t._POSignalsUtils.Util.typesCounter(n.events); - return this.isRichMouseInteraction(i) - ? e.RICH - : this.isClickInteraction(i) - ? e.CLICK - : this.isMoveInteraction(i) - ? e.MOVE - : e.POOR; - }), - (n.prototype.findMinPriorityGestureIndex = function (t, e) { - if (0 === e.length) return -1; - for ( - var n = t ? -1 : 0, i = t ? t.events.length : e[0].events.length, r = 0; - r < e.length; - r++ - ) - e[r].events.length < i && ((n = r), (i = e[r].events.length)); - return n; - }), - (n.prototype.calculateStrategyResult = function (t, n) { - var i = this.client.getBehavioralData(); - switch (n) { - case 'mouse': - if (i.mouse.interactions.length < this.MAX_INTERACTIONS_PER_TYPE) { - if ( - i.touch.interactions.length + i.mouse.interactions.length >= - this.MAX_MOUSE_AND_GESTURE - ) { - var r = this.findMinPriorityGestureIndex(null, i.touch.interactions); - if (-1 !== r) return { shouldCollect: !0, remove: { type: 'touch', index: r } }; - } - return { shouldCollect: !0 }; - } - var a = this.classifyMouseInteraction(t); - if (a === e.POOR) return { shouldCollect: !1 }; - for (var o = -1, s = a, u = 0; u < i.mouse.interactions.length; u++) { - var c = this.classifyMouseInteraction(i.mouse.interactions[u]); - c < s && ((o = u), (s = c)); - } - return -1 === o - ? { shouldCollect: !1 } - : { shouldCollect: !0, remove: { type: 'mouse', index: o } }; - case 'keyboard': - if (i.keyboard.interactions.length < this.MAX_INTERACTIONS_PER_TYPE) - return { shouldCollect: !0 }; - if (t.events.length < this.MIN_KEYBOARD_EVENTS) return { shouldCollect: !1 }; - for (u = 0; u < i.keyboard.interactions.length; u++) - if (i.keyboard.interactions[u].events.length < this.MIN_KEYBOARD_EVENTS) - return { shouldCollect: !0, remove: { type: 'keyboard', index: u } }; - return { shouldCollect: !1 }; - case 'touch': - if ( - i.touch.interactions.length < this.MAX_INTERACTIONS_PER_TYPE && - i.touch.interactions.length + i.mouse.interactions.length < - this.MAX_MOUSE_AND_GESTURE - ) - return { shouldCollect: !0 }; - var l = t, - d = this.findMinPriorityGestureIndex(l, i.touch.interactions); - return -1 === d - ? { shouldCollect: !1 } - : { shouldCollect: !0, remove: { type: 'touch', index: d } }; - } - }), - n - ); - })(); - t.PriorityStrategy = n; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e; - !(function (t) { - (t[(t.FIRST_INTERACTIONS = 0)] = 'FIRST_INTERACTIONS'), - (t[(t.PRIORITY_INTERACTIONS = 1)] = 'PRIORITY_INTERACTIONS'); - })((e = t.BufferingStrategyType || (t.BufferingStrategyType = {}))); - var n = (function () { - function n() {} - return ( - (n.createBufferingStrategy = function (n, i) { - switch (n) { - case e.FIRST_INTERACTIONS: - return new t.FirstInteractionsStrategy(i); - case e.PRIORITY_INTERACTIONS: - return new t.PriorityStrategy(i); - } - }), - n - ); - })(); - t.StrategyFactory = n; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(e) { - (this.sessionData = e), - (this.instanceUUID = t._POSignalsUtils.Util.newGuid()), - (this._isBehavioralDataPaused = !1), - (this.started = !1), - (this.initQueue = new t.PromiseQueue(1)); - } - return ( - (e.instance = function () { - if (!this._instance) { - var e = t._POSignalsStorage.SessionStorage.instance; - if (!document.body) - throw ( - (t._POSignalsUtils.Logger.error( - 'PingOne Signals can be started only after DOM Ready!', - ), - new Error('PingOne Signals can be started only after DOM Ready!')) - ); - this._instance = new t.Client(e, t.BufferingStrategyType.PRIORITY_INTERACTIONS); - } - return this._instance; - }), - (e.prototype.getData = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (t) { - switch (t.label) { - case 0: - if (!this.startedPromise) throw new Error('SDK not initialized'); - return [4, this.startedPromise]; - case 1: - return t.sent(), [4, this.dataHandler.getData(Date.now())]; - case 2: - return [2, t.sent()]; - } - }); - }); - }), - (e.prototype.addTag = function (e, n) { - t.Tags.instance.setTag(e, n); - }), - (e.prototype.start = function (e) { - var n, i; - return ( - void 0 === e && (e = {}), - __awaiter(this, void 0, void 0, function () { - var r, a; - return __generator(this, function (o) { - switch (o.label) { - case 0: - return null === (n = e.waitForWindowLoad) || void 0 === n || n - ? [4, this.loadEventPromise()] - : [3, 2]; - case 1: - o.sent(), (o.label = 2); - case 2: - if ( - ((this.initParams = e), - this.validateStartParams(e), - (this.clientVersion = t._POSignalsUtils.Constants.CLIENT_VERSION), - this.started) - ) - return t._POSignalsUtils.Logger.warn('SDK already initialized'), [2]; - (this.browserInfo = new t._POSignalsUtils.BrowserInfo()), - (t._POSignalsUtils.Logger.isLogEnabled = - !!e.consoleLogEnabled || !!e.devEnv), - t._POSignalsUtils.Logger.info('Starting Signals SDK...'), - (t.Tags.instance.disableTags = !!this.initParams.disableTags), - this.sessionData.setStorageConfig(e), - (r = t.PointerConfig.instance.pointerParams), - (a = { - additionalMediaCodecs: r.additionalMediaCodecs, - browserInfo: this.browserInfo, - fingerprintTimeoutMillis: r.fingerprintTimeoutMillis, - metadataBlackList: new Set( - r.metadataBlackList.concat(e.deviceAttributesToIgnore), - ), - propertyDescriptors: r.propertyDescriptors, - webRtcUrl: r.webRtcUrl, - dataPoints: r.metadataDataPoints, - }), - (this.metadata = new t._POSignalsMetadata.Metadata(this.sessionData, a)), - (this.dataHandler = new t.DataHandler( - this.clientVersion, - this.instanceUUID, - this.initParams, - this.metadata, - this, - e.externalIdentifiers, - this.sessionData, - )), - (null === (i = this.initParams.behavioralDataCollection) || - void 0 === i || - i) && - this.refreshListening(), - e.lazyMetadata || this.metadata.getDeviceAttributes(), - (this.started = !0); - try { - this.logInit(), this.addStartupTags(); - } catch (e) { - t._POSignalsUtils.Logger.warn('SDK post init failed', e); - } - return [2]; - } - }); - }) - ); - }), - (e.prototype.logInit = function () { - var e, n; - t._POSignalsUtils.Logger.info( - 'PingOne Signals initialized. ' + - JSON.stringify( - { - timestamp: new Date().getTime(), - sdkVersion: this.clientVersion, - instanceUUID: this.instanceUUID, - tabUUID: this.sessionData.tabUUID, - }, - null, - 2, - ), - ); - var i = function () { - return t._POSignalsUtils.Logger.info('Token Ready: ' + window._pingOneSignalsToken); - }, - r = function () { - t._POSignalsUtils.Logger.info('Signals token fetch is disabled'), - (window._pingOneSignalsToken = void 0); - }; - 'skipped' === - (null === (e = window._pingOneSignalsToken) || void 0 === e - ? void 0 - : e.substring(0, 'skipped'.length)) - ? r() - : 'uninitialized' !== - (null === (n = window._pingOneSignalsToken) || void 0 === n - ? void 0 - : n.substring(0, 'uninitialized'.length)) && i(), - document.addEventListener('PingOneSignalsTokenReadyEvent', i), - document.addEventListener('PingOneSignalsTokenSkippedEvent', r); - }), - Object.defineProperty(e.prototype, 'isBehavioralDataPaused', { - get: function () { - return this._isBehavioralDataPaused; - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.getSignalsToken = function () { - var t = ''; - if ( - 'string' == typeof window._pingOneSignalsToken && - 0 <= window._pingOneSignalsToken.indexOf(':') - ) { - var e = window._pingOneSignalsToken.match(/t:(.*?)(&|$)/g); - e && 0 < e.length && (t = e[0].replace(/&s*$/, '').replace(/t:/, '')); - } else - 'string' == typeof window._pingOneSignalsToken && (t = window._pingOneSignalsToken); - return t; - }), - (e.prototype.pauseBehavioralData = function () { - this._isBehavioralDataPaused || - ((this._isBehavioralDataPaused = !0), this.addTag('SDK paused behaviorally')); - }), - (e.prototype.resumeBehavioralData = function () { - this._isBehavioralDataPaused && - ((this._isBehavioralDataPaused = !1), this.addTag('SDK resumed behaviorally')); - }), - (e.prototype.startSignals = function (e) { - return __awaiter(this, void 0, void 0, function () { - var n, - i, - r = this; - return __generator(this, function (a) { - switch (a.label) { - case 0: - return ( - a.trys.push([0, 2, , 3]), - (this.startedPromise = this.initQueue.add(function () { - return r.start(e); - })), - [4, this.startedPromise] - ); - case 1: - return [2, a.sent()]; - case 2: - throw ( - ((n = a.sent()), - (i = { - id: t._POSignalsUtils.POErrorCodes.INITIALIZATION_ERROR, - message: n.message, - code: 'SDK initialization failed.', - }), - new Error(JSON.stringify(i))) - ); - case 3: - return [2]; - } - }); - }); - }), - (e.prototype.validateStartParams = function (e) { - if (!document.body) - throw ( - (t._POSignalsUtils.Logger.error( - 'PingOne Signals can be started only after DOM Ready!', - ), - new Error('PingOne Signals can be started only after DOM Ready!')) - ); - e.externalIdentifiers = e.externalIdentifiers || {}; - }), - (e.prototype.loadEventPromise = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (t) { - return [ - 2, - new Promise(function (t) { - 'complete' === document.readyState - ? t() - : window.addEventListener('load', function (e) { - t(); - }); - }), - ]; - }); - }); - }), - (e.prototype.addStartupTags = function () { - this.addTag('SDK started'), - document.referrer && this.addTag('referrer', document.referrer), - this.addTag('location', window.location.href); - }), - e - ); - })(); - t.ClientBase = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(e) { - (this.BEHAVIORAL_TYPE = 'indirect'), - (this._isStarted = !1), - (this._onClipboardEvent = new t.EventDispatcher()), - (this.delegate = e), - (this.onClipboardEventHandler = this.onEvent.bind(this)); - } - return ( - Object.defineProperty(e.prototype, 'isStarted', { - get: function () { - return this._isStarted; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'onClipboardEvent', { - get: function () { - return this._onClipboardEvent.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.onEvent = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) return; - this._onClipboardEvent.dispatch(this, this.createClipboardEvent(e)); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in clipboard handler', e); - } - }), - (e.prototype.createClipboardEvent = function (e) { - var n = t._POSignalsUtils.Util.getSrcElement(e); - return { - category: 'ClipboardEvent', - type: e.type, - eventTs: e.timeStamp, - epochTs: new Date().getTime(), - additionalData: { - locationHref: location.href, - stId: this.delegate.getElementsStID(n), - elementId: null === n || void 0 === n ? void 0 : n.id, - }, - }; - }), - (e.prototype.start = function () { - this._isStarted || - ((this._isStarted = !0), - this.delegate.addEventListener(document, 'cut', this.onClipboardEventHandler), - this.delegate.addEventListener(document, 'copy', this.onClipboardEventHandler), - this.delegate.addEventListener(document, 'paste', this.onClipboardEventHandler)); - }), - (e.prototype.stop = function () { - this._isStarted && - ((this._isStarted = !1), - document.removeEventListener('cut', this.onClipboardEventHandler), - document.removeEventListener('copy', this.onClipboardEventHandler), - document.removeEventListener('paste', this.onClipboardEventHandler)); - }), - e - ); - })(); - t.ClipboardEvents = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(e) { - (this.BEHAVIORAL_TYPE = 'indirect'), - (this._isStarted = !1), - (this._onDragEvent = new t.EventDispatcher()), - (this.delegate = e), - (this.onDragEventHandler = this.onEvent.bind(this)); - } - return ( - Object.defineProperty(e.prototype, 'isStarted', { - get: function () { - return this._isStarted; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'onDragEvent', { - get: function () { - return this._onDragEvent.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.createDragEvent = function (t) { - return { - category: 'DragEvent', - type: t.type, - eventTs: t.timeStamp, - epochTs: new Date().getTime(), - additionalData: { locationHref: location.href }, - }; - }), - (e.prototype.onEvent = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) return; - this._onDragEvent.dispatch(this, this.createDragEvent(e)); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in drag handler', e); - } - }), - (e.prototype.start = function () { - this._isStarted || - ((this._isStarted = !0), - this.delegate.addEventListener(document, 'dragstart', this.onDragEventHandler), - this.delegate.addEventListener(document, 'dragexit', this.onDragEventHandler), - this.delegate.addEventListener(document, 'drop', this.onDragEventHandler), - this.delegate.addEventListener(document, 'dragend', this.onDragEventHandler)); - }), - (e.prototype.stop = function () { - this._isStarted && - ((this._isStarted = !1), - document.removeEventListener('dragstart', this.onDragEventHandler), - document.removeEventListener('dragexit', this.onDragEventHandler), - document.removeEventListener('drop', this.onDragEventHandler), - document.removeEventListener('dragend', this.onDragEventHandler)); - }), - e - ); - })(); - t.DragEvents = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(e) { - (this.BEHAVIORAL_TYPE = 'indirect'), - (this._isStarted = !1), - (this._onFocusEvent = new t.EventDispatcher()), - (this.delegate = e), - (this.onFocusEventHandler = this.onEvent.bind(this)); - } - return ( - Object.defineProperty(e.prototype, 'isStarted', { - get: function () { - return this._isStarted; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'onFocusEvent', { - get: function () { - return this._onFocusEvent.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.getRelatedTarget = function (e) { - if (!e.relatedTarget) return { type: '', stId: '', elementId: '' }; - var n = { - type: t._POSignalsUtils.Util.getObjectType(e.relatedTarget), - stId: '', - elementId: '', - }; - e.relatedTarget.id && (n.elementId = e.relatedTarget.id); - try { - var i = e.relatedTarget; - n.stId = this.delegate.getElementsStID(i); - } catch (t) {} - return n; - }), - (e.prototype.createFocusEvent = function (e) { - var n = t._POSignalsUtils.Util.getSrcElement(e), - i = this.getRelatedTarget(e); - return { - category: 'FocusEvent', - type: e.type, - eventTs: e.timeStamp, - epochTs: new Date().getTime(), - additionalData: { - locationHref: location.href, - stId: this.delegate.getElementsStID(n), - elementId: n ? n.id : '', - relatedTarget: i, - }, - }; - }), - (e.prototype.onEvent = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) return; - this._onFocusEvent.dispatch(this, this.createFocusEvent(e)); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in focus handler', e); - } - }), - (e.prototype.start = function () { - this._isStarted || - ((this._isStarted = !0), - this.delegate.addEventListener(document, 'DOMFocusIn', this.onFocusEventHandler), - this.delegate.addEventListener(document, 'DOMFocusOut', this.onFocusEventHandler), - this.delegate.addEventListener(document, 'focus', this.onFocusEventHandler), - this.delegate.addEventListener(document, 'focusin', this.onFocusEventHandler), - this.delegate.addEventListener(document, 'focusout', this.onFocusEventHandler)); - }), - (e.prototype.stop = function () { - this._isStarted && - ((this._isStarted = !1), - document.removeEventListener('DOMFocusIn', this.onFocusEventHandler), - document.removeEventListener('DOMFocusOut', this.onFocusEventHandler), - document.removeEventListener('focus', this.onFocusEventHandler), - document.removeEventListener('focusin', this.onFocusEventHandler), - document.removeEventListener('focusout', this.onFocusEventHandler)); - }), - e - ); - })(); - t.FocusEvents = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(e) { - (this.BEHAVIORAL_TYPE = 'indirect'), - (this._isStarted = !1), - (this._onUIEvent = new t.EventDispatcher()), - (this.delegate = e), - (this.onUIEventHandler = this.onEvent.bind(this)); - } - return ( - Object.defineProperty(e.prototype, 'isStarted', { - get: function () { - return this._isStarted; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'onUIEvent', { - get: function () { - return this._onUIEvent.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.createUIEvent = function (t) { - return { - category: 'UIEvent', - type: t.type, - eventTs: t.timeStamp, - epochTs: new Date().getTime(), - additionalData: { locationHref: location.href }, - }; - }), - (e.prototype.onEvent = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) return; - this._onUIEvent.dispatch(this, this.createUIEvent(e)); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in UIEvent handler', e); - } - }), - (e.prototype.start = function () { - this._isStarted || - ((this._isStarted = !0), - this.delegate.addEventListener(document, 'resize', this.onUIEventHandler), - this.delegate.addEventListener(document, 'scroll', this.onUIEventHandler), - this.delegate.addEventListener(document, 'select', this.onUIEventHandler)); - }), - (e.prototype.stop = function () { - this._isStarted && - ((this._isStarted = !1), - document.removeEventListener('resize', this.onUIEventHandler), - document.removeEventListener('scroll', this.onUIEventHandler), - document.removeEventListener('select', this.onUIEventHandler)); - }), - e - ); - })(); - t.UIEvents = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(e) { - (this.BEHAVIORAL_TYPE = 'indirect'), - (this.visibilityChangeEventName = 'visibilitychange'), - (this.hiddenProperty = 'hidden'), - (this._isStarted = !1), - (this._onGeneralEvent = new t.EventDispatcher()), - (this.delegate = e), - (this.onGeneralEventHandler = this.onEvent.bind(this)), - (this.onLangChangeHandler = this.onLangChangeEvent.bind(this)), - (this.onOrientationChangeHandler = this.onOrientationChangeEvent.bind(this)), - (this.onVisibilityChangeHandler = this.onVisibilityChangeEvent.bind(this)), - void 0 !== document.msHidden - ? ((this.hiddenProperty = 'msHidden'), - (this.visibilityChangeEventName = 'msvisibilitychange')) - : void 0 !== document.webkitHidden && - ((this.hiddenProperty = 'webkitHidden'), - (this.visibilityChangeEventName = 'webkitvisibilitychange')); - } - return ( - Object.defineProperty(e.prototype, 'isStarted', { - get: function () { - return this._isStarted; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'onGeneralEvent', { - get: function () { - return this._onGeneralEvent.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.onEvent = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) return; - this._onGeneralEvent.dispatch(this, this.createGeneralEvent(e)); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in general event handler', e); - } - }), - (e.prototype.onLangChangeEvent = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) return; - var n = this.createGeneralEvent(e); - this._onGeneralEvent.dispatch(this, n); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in LangChange event handler', e); - } - }), - (e.prototype.onOrientationChangeEvent = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) return; - var n = this.createGeneralEvent(e), - i = t._POSignalsUtils.Util.getDeviceOrientation(); - (n.additionalData.deviceOrientation = i.orientation), - (n.additionalData.deviceAngle = i.angle), - this._onGeneralEvent.dispatch(this, n); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in OrientationChange event handler', e); - } - }), - (e.prototype.onVisibilityChangeEvent = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) return; - var n = this.createGeneralEvent(e); - (n.additionalData.hidden = !!document[this.hiddenProperty]), - document.visibilityState && - (n.additionalData.visibilityState = document.visibilityState.toString()), - this._onGeneralEvent.dispatch(this, n); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in VisibilityChange event handler', e); - } - }), - (e.prototype.createGeneralEvent = function (t) { - return { - category: 'Event', - type: t.type, - eventTs: t.timeStamp, - epochTs: new Date().getTime(), - additionalData: { locationHref: location.href }, - }; - }), - (e.prototype.start = function () { - this._isStarted || - ((this._isStarted = !0), - this.delegate.addEventListener( - document, - this.visibilityChangeEventName, - this.onVisibilityChangeHandler, - ), - this.delegate.addEventListener(document, 'change', this.onGeneralEventHandler), - this.delegate.addEventListener( - document, - 'fullscreenchange', - this.onGeneralEventHandler, - ), - this.delegate.addEventListener(document, 'invalid', this.onGeneralEventHandler), - this.delegate.addEventListener(window, 'languagechange', this.onLangChangeHandler), - this.delegate.addEventListener( - window, - 'orientationchange', - this.onOrientationChangeHandler, - ), - this.delegate.addEventListener(document, 'seeked', this.onGeneralEventHandler), - this.delegate.addEventListener(document, 'seeking', this.onGeneralEventHandler), - this.delegate.addEventListener(document, 'selectstart', this.onGeneralEventHandler), - this.delegate.addEventListener( - document, - 'selectionchange', - this.onGeneralEventHandler, - ), - this.delegate.addEventListener(document, 'submit', this.onGeneralEventHandler), - this.delegate.addEventListener(document, 'volumechange', this.onGeneralEventHandler), - this.delegate.addEventListener(document, 'reset', this.onGeneralEventHandler), - this.delegate.addEventListener(document, 'textInput', this.onGeneralEventHandler)); - }), - (e.prototype.stop = function () { - this._isStarted && - ((this._isStarted = !1), - document.removeEventListener( - this.visibilityChangeEventName, - this.onVisibilityChangeHandler, - ), - document.removeEventListener('change', this.onGeneralEventHandler), - document.removeEventListener('fullscreenchange', this.onGeneralEventHandler), - document.removeEventListener('invalid', this.onGeneralEventHandler), - window.removeEventListener('languagechange', this.onLangChangeHandler), - window.removeEventListener('orientationchange', this.onOrientationChangeHandler), - document.removeEventListener('seeked', this.onGeneralEventHandler), - document.removeEventListener('seeking', this.onGeneralEventHandler), - document.removeEventListener('selectstart', this.onGeneralEventHandler), - document.removeEventListener('selectionchange', this.onGeneralEventHandler), - document.removeEventListener('submit', this.onGeneralEventHandler), - document.removeEventListener('volumechange', this.onGeneralEventHandler), - document.removeEventListener('reset', this.onGeneralEventHandler), - document.removeEventListener('textInput', this.onGeneralEventHandler)); - }), - e - ); - })(); - t.GeneralEvents = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(e) { - (this.DEFAULT_INDIRECT_IDLE_INTERVAL = 1e3), - (this.MAX_INDIRECT_EVENTS = 25), - (this._onIndirect = new t.EventDispatcher()), - (this.indirectEvents = []), - (this.idleTimeInMillis = this.DEFAULT_INDIRECT_IDLE_INTERVAL), - (this.lastIndirectEventTimestamp = 0), - (this._isStarted = !1), - (this.clipboardEvents = new t.ClipboardEvents(e)), - this.clipboardEvents.onClipboardEvent.subscribe(this.handleEvent.bind(this)), - (this.dragEvents = new t.DragEvents(e)), - this.dragEvents.onDragEvent.subscribe(this.handleEvent.bind(this)), - (this.focusEvents = new t.FocusEvents(e)), - this.focusEvents.onFocusEvent.subscribe(this.handleEvent.bind(this)), - (this.uiEvents = new t.UIEvents(e)), - this.uiEvents.onUIEvent.subscribe(this.handleEvent.bind(this)), - (this.generalEvents = new t.GeneralEvents(e)), - this.generalEvents.onGeneralEvent.subscribe(this.handleEvent.bind(this)), - (this.onTimeElapsedHandler = this.onTimeElapsed.bind(this)); - } - return ( - Object.defineProperty(e.prototype, 'onIndirect', { - get: function () { - return this._onIndirect.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.onTimeElapsed = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (t) { - return ( - this.indirectEvents.length > 0 && - new Date().getTime() - this.lastIndirectEventTimestamp >= - this.idleTimeInMillis && - this.dispatch(), - [2] - ); - }); - }); - }), - (e.prototype.handleEvent = function (t, e) { - (this.lastIndirectEventTimestamp = new Date().getTime()), this.pushEvent(e); - }), - (e.prototype.pushEvent = function (t) { - this.indirectEvents.push(t), - this.indirectEvents.length >= this.MAX_INDIRECT_EVENTS && this.dispatch(); - }), - (e.prototype.clearBuffer = function () { - var t = { events: this.indirectEvents }; - return (this.indirectEvents = []), t; - }), - (e.prototype.dispatch = function () { - try { - clearInterval(this.updateIntervalHandle), - this._onIndirect.dispatch(this, this.clearBuffer()), - (this.updateIntervalHandle = setInterval( - this.onTimeElapsedHandler, - t.PointerConfig.instance.pointerParams.indirectIntervalMillis, - )); - } catch (e) { - t._POSignalsUtils.Logger.warn('Failed to dispatch indirect events', e); - } - }), - Object.defineProperty(e.prototype, 'isStarted', { - get: function () { - return this._isStarted; - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.start = function () { - this._isStarted || - ((this.updateIntervalHandle = setInterval( - this.onTimeElapsedHandler, - t.PointerConfig.instance.pointerParams.indirectIntervalMillis, - )), - this.clipboardEvents.start(), - this.dragEvents.start(), - this.focusEvents.start(), - this.uiEvents.start(), - this.generalEvents.start(), - (this._isStarted = !0)); - }), - (e.prototype.stop = function () { - this._isStarted && - (this.clipboardEvents.stop(), - this.dragEvents.stop(), - this.focusEvents.stop(), - this.uiEvents.stop(), - this.generalEvents.stop(), - clearInterval(this.updateIntervalHandle), - (this.updateIntervalHandle = null), - (this._isStarted = !1)); - }), - (e.prototype.unsubscribe = function () { - this.clipboardEvents.onClipboardEvent.unsubscribe(this.handleEvent.bind(this)), - this.dragEvents.onDragEvent.unsubscribe(this.handleEvent.bind(this)), - this.focusEvents.onFocusEvent.unsubscribe(this.handleEvent.bind(this)), - this.uiEvents.onUIEvent.unsubscribe(this.handleEvent.bind(this)), - this.generalEvents.onGeneralEvent.unsubscribe(this.handleEvent.bind(this)); - }), - e - ); - })(); - t.IndirectClient = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e() { - (this.config = {}), (this._cacheHash = 0), (this.cache = new Map()); - } - return ( - (e.prototype.refreshCssSelectors = function (e) { - try { - if (!e) return; - var n = t._POSignalsUtils.Util.hashCode(JSON.stringify(e)); - if (this._cacheHash === n) return; - (this.config = e), (this._cacheHash = n), (this.cache = new Map()); - } catch (e) { - t._POSignalsUtils.Logger.warn('Failed to set css selectors', e); - } - }), - (e.prototype.getIdentification = function (e, n) { - if (null === this.cache.get(e)) return null; - if (void 0 !== this.cache.get(e)) return this.cache.get(e); - for (var i in this.config) - try { - if (!this.config.hasOwnProperty(i)) continue; - var r = this.config[i] || []; - t._POSignalsUtils.Util.isArray(r) || (r = [].concat(r)); - for (var a = 0, o = r; a < o.length; a++) { - var s = o[a]; - if (t._POSignalsUtils.Util.isSelectorMatches(e, s, n)) - return this.cache.set(e, i), i; - } - } catch (e) { - t._POSignalsUtils.Logger.warn('Failed to find selector for ' + i, e); - } - return this.cache.set(e, null), null; - }), - Object.defineProperty(e.prototype, 'cacheHash', { - get: function () { - return this._cacheHash; - }, - enumerable: !1, - configurable: !0, - }), - e - ); - })(); - t.ElementsIdentifications = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(e, n) { - (this.BEHAVIORAL_TYPE = 'eventKeyboard'), - (this._isStarted = !1), - (this._onInteraction = new t.EventDispatcher()), - (this._onEnterPress = new t.EventDispatcher()), - (this._onObfuscatedValue = new t.EventDispatcher()), - (this.interactionsMap = new Map()), - (this._fieldsIdentifications = new t.ElementsIdentifications()), - (this.keyStrokeMap = new Map()), - (this.delegate = e), - (this.uiControlManager = n), - (this.onKeyDownHandle = this.onKeyDown.bind(this)), - (this.onKeyUpHandle = this.onKeyUp.bind(this)), - (this.onFocusHandle = this.onFocus.bind(this)), - (this.onBlurHandle = this.onBlur.bind(this)); - } - return ( - Object.defineProperty(e.prototype, 'isStarted', { - get: function () { - return this._isStarted; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'onInteraction', { - get: function () { - return this._onInteraction.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'onEnterPress', { - get: function () { - return this._onEnterPress.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'onObfuscatedValue', { - get: function () { - return this._onObfuscatedValue.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.refreshKeyboardCssSelectors = function (t) { - this._fieldsIdentifications.refreshCssSelectors(t); - }), - Object.defineProperty(e.prototype, 'modifiersKeys', { - get: function () { - return [ - 'Alt', - 'AltGraph', - 'CapsLock', - 'Control', - 'Fn', - 'FnLock', - 'Hyper', - 'Meta', - 'NumLock', - 'OS', - 'ScrollLock', - 'Shift', - 'Super', - 'Symbol', - 'SymbolLock', - ]; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'specialKeys', { - get: function () { - return [ - 'Tab', - 'Shift', - 'Backspace', - 'Enter', - 'CapsLock', - 'Meta', - 'Delete', - 'Alt', - 'ArrowDown', - 'ArrowUp', - 'Control', - 'ArrowLeft', - 'End', - 'Unidentified', - 'Home', - 'ArrowRight', - 'Insert', - 'Pause', - 'PageDown', - 'PageUp', - 'F1', - 'F2', - 'F3', - 'F4', - 'F5', - 'F6', - 'F7', - 'F8', - 'F9', - 'F10', - 'F11', - 'F12', - 'AltGraph', - 'Escape', - ]; - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.countEvent = function (t, e) { - e && (e.eventCounters[t] = (e.eventCounters[t] || 0) + 1); - }), - (e.prototype.clearBuffer = function () { - var e = t._POSignalsUtils.Util.getValuesOfMap(this.interactionsMap); - return this.interactionsMap.clear(), e; - }), - (e.prototype.start = function () { - this._isStarted - ? t._POSignalsUtils.Logger.debug('Desktop Keyboard events already listening') - : (this.delegate.addEventListener(document, 'keydown', this.onKeyDownHandle), - this.delegate.addEventListener(document, 'keyup', this.onKeyUpHandle), - this.delegate.addEventListener(document, 'focus', this.onFocusHandle, !0), - this.delegate.addEventListener(document, 'blur', this.onBlurHandle, !0), - (this._isStarted = !0), - t._POSignalsUtils.Logger.debug('Desktop Keyboard events start listening...')); - }), - (e.prototype.stop = function () { - this._isStarted - ? (document.removeEventListener('keydown', this.onKeyDownHandle), - document.removeEventListener('keyup', this.onKeyUpHandle), - document.removeEventListener('focus', this.onFocusHandle, !0), - document.removeEventListener('blur', this.onBlurHandle, !0), - (this._isStarted = !1), - t._POSignalsUtils.Logger.debug('Desktop Keyboard events stop listening...')) - : t._POSignalsUtils.Logger.debug('Desktop Keyboard events already stopped'); - }), - (e.prototype.getInteractionFromElement = function (e) { - var n, - i = null, - r = null, - a = t._POSignalsUtils.Util.getSrcElement(e); - if ( - a && - a instanceof HTMLInputElement && - !t._POSignalsUtils.Util.isClickableInput(a) && - t._POSignalsUtils.Util.isFunction(a.getAttribute) && - !(null === (n = a.hasAttribute) || void 0 === n - ? void 0 - : n.call(a, 'data-st-ignore')) && - !t._POSignalsUtils.Util.anySelectorMatches( - a, - t.PointerConfig.instance.pointerParams.keyboardCssSelectorsBlacklist, - 0, - ) - ) { - r = this.delegate.getElementsStID(a); - for ( - var o = t.PointerConfig.instance.pointerParams.keyboardIdentifierAttributes, s = 0; - s < o.length && !r; - s++ - ) - r = a.getAttribute(o[s]); - r && - !t.PointerConfig.instance.pointerParams.keyboardFieldBlackList.has(r) && - ((i = this.interactionsMap.get(a)) || - ((i = { - epochTs: new Date().getTime(), - stId: r, - elementId: t._POSignalsUtils.Util.getAttribute(a, 'id'), - name: t._POSignalsUtils.Util.getAttribute(a, 'name'), - type: t._POSignalsUtils.Util.getAttribute(a, 'type'), - events: [], - counter: this.delegate.keyboardCounter, - eventCounters: {}, - duration: 0, - numOfDeletions: 0, - additionalData: this.delegate.additionalData, - }), - this.interactionsMap.set(a, i))); - } - return i; - }), - (e.prototype.getKeyCode = function (e) { - return e.keyCode - ? e.keyCode - : e.which - ? e.which - : e.code - ? t._POSignalsUtils.Util.hashCode(e.code) - : t._POSignalsUtils.Util.hashCode(e.key) + (e.location || 0); - }), - (e.prototype.getKeyboardEvent = function (t) { - return t || window.event; - }), - (e.prototype.getKeystrokeId = function (e, n) { - var i, - r = this.getKeyCode(e); - return ( - 'keyup' === n && - (this.keyStrokeMap.has(r) - ? ((i = this.keyStrokeMap.get(r)), this.keyStrokeMap.delete(r)) - : (i = t._POSignalsUtils.Util.newGuid())), - 'keydown' === n && - (this.keyStrokeMap.has(r) && e.repeat - ? (i = this.keyStrokeMap.get(r)) - : ((i = t._POSignalsUtils.Util.newGuid()), this.keyStrokeMap.set(r, i))), - i - ); - }), - (e.prototype.createKeyboardInteractionEvent = function (e, n) { - var i = t._POSignalsUtils.Util.getSrcElement(n), - r = i.value ? i.value.toString().length : 0; - return { - type: e, - eventTs: n.timeStamp, - epochTs: new Date().getTime(), - selectionStart: t._POSignalsUtils.Util.getElementSelectionStart(i), - selectionEnd: t._POSignalsUtils.Util.getElementSelectionEnd(i), - key: null, - keystrokeId: null, - currentLength: r, - }; - }), - (e.prototype.enrichKeyboardEvent = function (e, n) { - (this.modifiersKeys.indexOf(e.key) >= 0 || this.specialKeys.indexOf(e.key) >= 0) && - (n.key = e.key), - (n.keystrokeId = this.getKeystrokeId(e, n.type)); - var i = t._POSignalsUtils.Util.getSrcElement(e); - n.currentLength = String(i.value).length; - }), - (e.prototype.onFocus = function (e) { - var n, i; - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) - return void this._onInteraction.dispatch(this, null); - e = this.getKeyboardEvent(e); - var r = this.getInteractionFromElement(e); - if ( - (this.countEvent(e.type, r), - t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) - ) - return; - if (r) { - var a = this.createKeyboardInteractionEvent('focus', e); - r.events.push(a); - var o = this.uiControlManager.createUIControlData(e); - o && - ((r.uiControl = { uiElement: o.uiElement, enrichedData: o.enrichedData }), - (null === (i = null === (n = o.uiElement) || void 0 === n ? void 0 : n.id) || - void 0 === i - ? void 0 - : i.length) > 0 && - t._POSignalsUtils.Logger.info( - "Typing in element with id '" + o.uiElement.id + "'", - )); - } - } catch (e) { - t._POSignalsUtils.Logger.warn('error in keyboard focus handler', e); - } - }), - (e.prototype.onKeyUp = function (e) { - try { - if ( - ((13 !== (e = this.getKeyboardEvent(e)).keyCode && 13 !== e.which) || - this._onEnterPress.dispatch(this, t._POSignalsUtils.Util.getSrcElement(e)), - !this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) - ) - return void this._onInteraction.dispatch(this, null); - var n = this.getInteractionFromElement(e); - if ( - (this.countEvent(e.type, n), - t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) - ) - return; - if (n) { - var i = this.createKeyboardInteractionEvent('keyup', e); - this.enrichKeyboardEvent(e, i), n.events.push(i); - } else this.keyStrokeMap.delete(this.getKeyCode(e)); - } catch (e) { - t._POSignalsUtils.Logger.warn('error in keyUp handler', e); - } - }), - (e.prototype.isEmpty = function () { - return 0 === this.interactionsMap.size; - }), - (e.prototype.onKeyDown = function (e) { - try { - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) - return void this._onInteraction.dispatch(this, null); - e = this.getKeyboardEvent(e); - var n = this.getInteractionFromElement(e); - if ( - (this.countEvent(e.type, n), - t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) - ) - return; - if (n) { - var i = this.createKeyboardInteractionEvent('keydown', e); - this.enrichKeyboardEvent(e, i), n.events.push(i); - } - } catch (e) { - t._POSignalsUtils.Logger.warn('error in keyDown handler', e); - } - }), - (e.prototype.onBlur = function (e) { - try { - e = this.getKeyboardEvent(e); - var n = this.getInteractionFromElement(e); - if (!this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) - return void this._onInteraction.dispatch(this, null); - if ( - (this.countEvent(e.type, n), - t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) - ) - return; - if (n) { - var i = this.createKeyboardInteractionEvent('blur', e); - n.events.push(i), - (n.duration = this.delegate.getInteractionDuration(n.events)), - (n.numOfDeletions = this.calculateNumOfDeletions(n.events)); - var r = t._POSignalsUtils.Util.getSrcElement(e); - this.interactionsMap.delete(r), this._onInteraction.dispatch(this, n); - } - } catch (e) { - t._POSignalsUtils.Logger.warn('error in blur handler', e); - } - }), - (e.prototype.calculateNumOfDeletions = function (t) { - if (!(null === t || void 0 === t ? void 0 : t[0])) return 0; - for (var e = 0, n = t[0].currentLength, i = 1; i < t.length; i++) - t[i].currentLength < n && e++, (n = t[i].currentLength); - return e; - }), - Object.defineProperty(e.prototype, 'fieldsIdentifications', { - get: function () { - return this._fieldsIdentifications; - }, - enumerable: !1, - configurable: !0, - }), - e - ); - })(); - t.Keyboard = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(e, n) { - var i, - r = this, - a = t.PointerConfig.instance.pointerParams.uiModelingElementFilters, - o = t._POSignalsUtils.Util.getAttribute, - s = null === (i = e.getBoundingClientRect) || void 0 === i ? void 0 : i.call(e); - (this._htmlElement = e), - (this._data = { - location: this.getUIElementAttribute(a.location, function () { - return window.location.href; - }), - id: this.getUIElementAttribute(a.id, function () { - return o(e, 'id'); - }), - aria_label: this.getUIElementAttribute(a.aria_label, function () { - return o(e, 'aria-label'); - }), - data_st_field: this.getUIElementAttribute(a.data_st_field, function () { - return n.getElementsStID(e); - }), - data_st_tag: this.getUIElementAttribute(a.data_st_tag, function () { - return o(e, 'data-st-tag'); - }), - data_selenium: this.getUIElementAttribute(a.data_selenium, function () { - return o(e, 'data-selenium'); - }), - data_selenium_id: this.getUIElementAttribute(a.data_selenium_id, function () { - return o(e, 'data-selenium-id'); - }), - data_testid: this.getUIElementAttribute(a.data_testid, function () { - return o(e, 'data-testid'); - }), - data_test_id: this.getUIElementAttribute(a.data_test_id, function () { - return o(e, 'data-test-id'); - }), - data_qa_id: this.getUIElementAttribute(a.data_qa_id, function () { - return o(e, 'data-qa-id'); - }), - data_id: this.getUIElementAttribute(a.data_id, function () { - return o(e, 'data-id'); - }), - name: this.getUIElementAttribute(a.name, function () { - return o(e, 'name'); - }), - placeholder: this.getUIElementAttribute(a.placeholder, function () { - return o(e, 'placeholder'); - }), - role: this.getUIElementAttribute(a.role, function () { - return o(e, 'role'); - }), - type: this.getUIElementAttribute(a.type, function () { - return o(e, 'type'); - }), - nodeTypeInt: this.getUIElementAttribute(a.nodeTypeInt, function () { - return e.nodeType; - }), - nodeName: this.getUIElementAttribute(a.nodeName, function () { - return e.nodeName; - }), - cursorType: this.getUIElementAttribute(a.cursorType, function () { - return window.getComputedStyle(e).cursor; - }), - text: this.getUIElementAttribute(a.text, function () { - return r.getElementText(e); - }), - textLength: this.getUIElementAttribute(a.textLength, function () { - var t; - return ( - (null === (t = r.getElementText(e)) || void 0 === t ? void 0 : t.length) || null - ); - }), - bottom: this.getUIElementAttribute(a.bottom, function () { - return null === s || void 0 === s ? void 0 : s.bottom; - }), - height: this.getUIElementAttribute(a.height, function () { - return null === s || void 0 === s ? void 0 : s.height; - }), - left: this.getUIElementAttribute(a.left, function () { - return null === s || void 0 === s ? void 0 : s.left; - }), - right: this.getUIElementAttribute(a.right, function () { - return null === s || void 0 === s ? void 0 : s.right; - }), - top: this.getUIElementAttribute(a.top, function () { - return null === s || void 0 === s ? void 0 : s.top; - }), - width: this.getUIElementAttribute(a.width, function () { - return null === s || void 0 === s ? void 0 : s.width; - }), - x: this.getUIElementAttribute(a.x, function () { - return null === s || void 0 === s ? void 0 : s.x; - }), - y: this.getUIElementAttribute(a.y, function () { - return null === s || void 0 === s ? void 0 : s.y; - }), - }), - (this._data.elementId = this.getStrongestElementID()); - } - return ( - Object.defineProperty(e.prototype, 'data', { - get: function () { - return t._POSignalsUtils.Util.filterReduce(this._data, function (t) { - return null != t && '' !== t; - }); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'htmlElement', { - get: function () { - return this._htmlElement; - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.getUIElementAttribute = function (e, n) { - var i; - try { - if ( - null === (i = null === e || void 0 === e ? void 0 : e.enabled) || - void 0 === i || - i - ) { - var r = n(); - return ( - 'string' == typeof r && - ('number' == typeof (null === e || void 0 === e ? void 0 : e.maxLength) && - r.length > e.maxLength && - (r = r.substring(0, e.maxLength)), - (null === e || void 0 === e ? void 0 : e.filterRegex) && - (r = r.replace(new RegExp(e.filterRegex, 'g'), '*'))), - r - ); - } - } catch (e) { - t._POSignalsUtils.Logger.warn('Failed to add ui element attribute', e); - } - return null; - }), - (e.prototype.getStrongestElementID = function () { - return ( - this._data.data_st_field || - this._data.data_selenium_id || - this._data.data_selenium || - this._data.data_testid || - this._data.data_test_id || - this._data.data_qa_id || - this._data.data_id || - this._data.id || - '' - ); - }), - (e.prototype.getElementText = function (e) { - return e instanceof HTMLInputElement && !t._POSignalsUtils.Util.isClickableInput(e) - ? null - : t._POSignalsUtils.Util.getElementText(e); - }), - (e.prototype.equals = function (t) { - return ( - !!t && - !(t.location && location.href.indexOf(t.location) < 0) && - (!t.elementId || t.elementId === this._data.elementId) && - (!t.id || t.id === this._data.id) && - (!t.aria_label || t.aria_label === this._data.aria_label) && - (!t.data_st_field || t.data_st_field === this._data.data_st_field) && - (!t.data_st_tag || t.data_st_tag === this._data.data_st_tag) && - (!t.data_selenium || t.data_selenium === this._data.data_selenium) && - (!t.data_selenium_id || t.data_selenium_id === this._data.data_selenium_id) && - (!t.data_testid || t.data_testid === this._data.data_testid) && - (!t.data_test_id || t.data_test_id === this._data.data_test_id) && - (!t.data_qa_id || t.data_qa_id === this._data.data_qa_id) && - (!t.data_id || t.data_id === this._data.data_id) && - (!t.name || t.name === this._data.name) && - (!t.placeholder || t.placeholder === this._data.placeholder) && - (!t.role || t.role === this._data.role) && - (!t.type || t.type === this._data.type) && - (!t.nodeTypeInt || t.nodeTypeInt === this._data.nodeTypeInt) && - (!t.nodeName || t.nodeName === this._data.nodeName) && - (!t.cursorType || t.cursorType === this._data.cursorType) && - (!t.text || t.text === this._data.text) && - (!t.textLength || t.textLength === this._data.textLength) && - (!t.bottom || t.bottom === this._data.bottom) && - (!t.height || t.height === this._data.height) && - (!t.left || t.left === this._data.left) && - (!t.right || t.right === this._data.right) && - (!t.top || t.top === this._data.top) && - (!t.width || t.width === this._data.width) && - (!t.x || t.x === this._data.x) && - (!t.y || t.y === this._data.y) - ); - }), - (e.createCssSelector = function (t) { - var e = ''; - return ( - (null === t || void 0 === t ? void 0 : t.nodeName) && (e += t.nodeName.toLowerCase()), - (null === t || void 0 === t ? void 0 : t.id) && (e += '[id="' + t.id + '"]'), - (null === t || void 0 === t ? void 0 : t.aria_label) && - (e += '[aria-label="' + t.aria_label + '"]'), - (null === t || void 0 === t ? void 0 : t.data_st_field) && - (e += '[data-st-field="' + t.data_st_field + '"]'), - (null === t || void 0 === t ? void 0 : t.data_st_tag) && - (e += '[data-st-tag="' + t.data_st_tag + '"]'), - (null === t || void 0 === t ? void 0 : t.data_selenium) && - (e += '[data-selenium="' + t.data_selenium + '"]'), - (null === t || void 0 === t ? void 0 : t.data_selenium_id) && - (e += '[data-selenium-id="' + t.data_selenium_id + '"]'), - (null === t || void 0 === t ? void 0 : t.data_testid) && - (e += '[data-testid="' + t.data_testid + '"]'), - (null === t || void 0 === t ? void 0 : t.data_test_id) && - (e += '[data-test-id="' + t.data_test_id + '"]'), - (null === t || void 0 === t ? void 0 : t.data_qa_id) && - (e += '[data-qa-id="' + t.data_qa_id + '"]'), - (null === t || void 0 === t ? void 0 : t.data_id) && - (e += '[data-id="' + t.data_id + '"]'), - (null === t || void 0 === t ? void 0 : t.name) && (e += '[name="' + t.name + '"]'), - (null === t || void 0 === t ? void 0 : t.placeholder) && - (e += '[placeholder="' + t.placeholder + '"]'), - (null === t || void 0 === t ? void 0 : t.role) && (e += '[role="' + t.role + '"]'), - (null === t || void 0 === t ? void 0 : t.type) && (e += '[type="' + t.type + '"]'), - e - ); - }), - e - ); - })(); - t.UiElement = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(t) { - this._clientDelegate = t; - } - return ( - (e.prototype.createUIControlData = function (e) { - var n = t._POSignalsUtils.Util.getSrcElement(e); - if (!n) return null; - var i = t.PointerConfig.instance.pointerParams.uiModelingBlacklistRegex; - if (i && window.location.href.match(i)) - return ( - t._POSignalsUtils.Logger.debug('ui control data is disabled for this url'), null - ); - var r = new t.UiElement(n, this._clientDelegate); - return this.findMatchingUiControl(r) || { uiElement: r.data }; - }), - (e.prototype.findMatchingUiControl = function (e, n) { - void 0 === n && (n = 0); - try { - var i = t.PointerConfig.instance.pointerParams.uiControlsConfig; - if (0 === i.length) return null; - if (n > t.PointerConfig.instance.pointerParams.uiModelingMaxMatchingParents) - return null; - for (var r = !1, a = 0, o = i; a < o.length; a++) { - var s = o[a]; - if ((s.tagConfig || s.enrichedData) && ((r = !0), e.equals(s.uiElement))) - return { - uiElement: e.data, - enrichedData: s.enrichedData, - tagConfig: s.tagConfig, - }; - } - if (!r) return null; - var u = e.htmlElement.parentElement; - if ((null === u || void 0 === u ? void 0 : u.nodeType) === Node.ELEMENT_NODE) { - var c = new t.UiElement(u, this._clientDelegate); - return this.findMatchingUiControl(c, n + 1); - } - } catch (e) { - t._POSignalsUtils.Logger.warn('failed to find matching ui control', e); - } - return null; - }), - (e.prototype.convertToTagValueConfig = function (e) { - var n; - return { - context: - null === (n = null === e || void 0 === e ? void 0 : e.uiElement) || void 0 === n - ? void 0 - : n.location, - valueSelector: t.UiElement.createCssSelector( - null === e || void 0 === e ? void 0 : e.uiElement, - ), - operation: null === e || void 0 === e ? void 0 : e.operation, - valueMandatory: null === e || void 0 === e ? void 0 : e.valueMandatory, - }; - }), - e - ); - })(); - t.UIControlManager = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(e, n) { - (this.BEHAVIORAL_TYPE = 'mouse'), - (this._isStarted = !1), - (this._onInteraction = new t.EventDispatcher()), - (this._onClickEvent = new t.EventDispatcher()), - (this.lastMouseInteractionTimestamp = null), - (this.mouseEventsCounter = 0), - (this.eventCounters = {}), - (this.delegate = e), - (this.uiControlManager = n), - (this.wheelOptions = !!t._POSignalsUtils.Util.isPassiveSupported() && { passive: !0 }), - (this.onPointerHandle = this.onPointerEvent.bind(this)), - (this.onClickHandle = this.onClick.bind(this)), - (this.onDblclickHandle = this.onMouseClickEvent.bind(this)), - (this.onMousedownHandle = this.onMouseClickEvent.bind(this)), - (this.onMousemoveHandle = this.onMouseEvent.bind(this)), - (this.onMouseoutHandle = this.onMouseout.bind(this)), - (this.onMouseoverHandle = this.onMouseEvent.bind(this)), - (this.onMouseupHandle = this.onMouseClickEvent.bind(this)), - (this.onWheelHandle = this.onMouseEvent.bind(this)), - (this.interactionUpdateHandle = this.interactionUpdate.bind(this)); - } - return ( - Object.defineProperty(e.prototype, 'isStarted', { - get: function () { - return this._isStarted; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'onInteraction', { - get: function () { - return this._onInteraction.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'onClickEvent', { - get: function () { - return this._onClickEvent.asEvent(); - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.countEvent = function (t) { - this.eventCounters[t] = (this.eventCounters[t] || 0) + 1; - }), - (e.prototype.interactionUpdate = function () { - this.lastMouseInteraction - ? new Date().getTime() - this.lastMouseInteractionTimestamp >= - t.PointerConfig.instance.pointerParams.mouseIdleTimeoutMillis && this.dispatch() - : !this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE) && - new Date().getTime() - this.lastMouseInteractionTimestamp <= - t.PointerConfig.instance.pointerParams.mouseIntervalMillis && - this.dispatch(); - }), - (e.prototype.enrichLastInteraction = function () { - var e; - if (this.lastMouseInteraction) { - (this.lastMouseInteraction.eventCounters = this.eventCounters), - (this.lastMouseInteraction.duration = this.delegate.getInteractionDuration( - this.lastMouseInteraction.events, - )); - var n = - null === (e = this.lastMouseInteraction.events) || void 0 === e - ? void 0 - : e.filter(function (t) { - return 'mousemove' === t.type; - }); - (this.lastMouseInteraction.timeProximity = - t._POSignalsUtils.Util.calculateMeanTimeDeltasBetweenEvents(n)), - (this.lastMouseInteraction.meanEuclidean = - t._POSignalsUtils.Util.calculateMeanDistanceBetweenPoints(n)); - } - }), - (e.prototype.dispatch = function () { - try { - this.enrichLastInteraction(), - this._onInteraction.dispatch(this, this.lastMouseInteraction), - (this.eventCounters = {}), - (this.lastMouseInteraction = null), - (this.mouseEventsCounter = 0); - } catch (e) { - t._POSignalsUtils.Logger.warn('Failed to dispatch mouse events', e); - } - }), - (e.prototype.updateInteraction = function (e, n) { - this.lastMouseInteraction || - (this.lastMouseInteraction = { - epochTs: new Date().getTime(), - events: [], - counter: this.delegate.mouseCounter, - additionalData: this.delegate.additionalData, - eventCounters: {}, - duration: 0, - timeProximity: 0, - uiControl: void 0, - meanEuclidean: 0, - reduction: {}, - }), - this.lastMouseInteraction.events.push(e), - this.mouseEventsCounter++, - n && - ((this.lastMouseInteraction.uiControl = { - uiElement: n.uiElement, - enrichedData: n.enrichedData, - }), - this.delegate.addUiControlTags(n.tagConfig)), - this.mouseEventsCounter >= t.PointerConfig.instance.pointerParams.maxMouseEvents && - this.dispatch(); - }), - (e.prototype.start = function () { - this._isStarted - ? t._POSignalsUtils.Logger.debug('Desktop Mouse events already listening') - : (this.delegate.addEventListener(document, 'click', this.onClickHandle, !0), - this.delegate.addEventListener(document, 'dblclick', this.onDblclickHandle), - this.delegate.addEventListener(document, 'mousedown', this.onMousedownHandle), - this.delegate.addEventListener(document, 'mousemove', this.onMousemoveHandle), - this.delegate.addEventListener(document, 'mouseout', this.onMouseoutHandle), - this.delegate.addEventListener(document, 'mouseover', this.onMouseoverHandle), - this.delegate.addEventListener(document, 'mouseup', this.onMouseupHandle), - this.delegate.addEventListener( - document, - 'wheel', - this.onWheelHandle, - this.wheelOptions, - ), - this.delegate.addEventListener(document, 'pointerover', this.onPointerHandle), - this.delegate.addEventListener(document, 'pointerenter', this.onPointerHandle), - this.delegate.addEventListener(document, 'pointerdown', this.onPointerHandle), - this.delegate.addEventListener(document, 'pointermove', this.onPointerHandle), - this.delegate.addEventListener(document, 'pointerup', this.onPointerHandle), - this.delegate.addEventListener(document, 'pointercancel', this.onPointerHandle), - this.delegate.addEventListener(document, 'pointerout', this.onPointerHandle), - this.delegate.addEventListener(document, 'pointerleave', this.onPointerHandle), - (this.updateIntervalHandle = setInterval( - this.interactionUpdateHandle, - t.PointerConfig.instance.pointerParams.mouseIntervalMillis, - )), - (this._isStarted = !0), - t._POSignalsUtils.Logger.debug('Desktop Mouse events start listening...')); - }), - (e.prototype.stop = function () { - this._isStarted - ? (document.removeEventListener('click', this.onClickHandle, !0), - document.removeEventListener('dblclick', this.onDblclickHandle), - document.removeEventListener('mousedown', this.onMousedownHandle), - document.removeEventListener('mousemove', this.onMousemoveHandle), - document.removeEventListener('mouseout', this.onMouseoutHandle), - document.removeEventListener('mouseover', this.onMouseoverHandle), - document.removeEventListener('mouseup', this.onMouseupHandle), - document.removeEventListener('wheel', this.onWheelHandle, this.wheelOptions), - document.removeEventListener('pointerover', this.onPointerHandle), - document.removeEventListener('pointerenter', this.onPointerHandle), - document.removeEventListener('pointerdown', this.onPointerHandle), - document.removeEventListener('pointermove', this.onPointerHandle), - document.removeEventListener('pointerup', this.onPointerHandle), - document.removeEventListener('pointercancel', this.onPointerHandle), - document.removeEventListener('pointerout', this.onPointerHandle), - document.removeEventListener('pointerleave', this.onPointerHandle), - clearInterval(this.updateIntervalHandle), - (this.updateIntervalHandle = null), - (this._isStarted = !1), - t._POSignalsUtils.Logger.debug('Desktop Mouse events stop listening...')) - : t._POSignalsUtils.Logger.debug('Desktop Mouse events already stopped'); - }), - (e.prototype.onClick = function (e) { - var n, i; - try { - this.lastMouseInteractionTimestamp = new Date().getTime(); - var r = t._POSignalsUtils.Util.getSrcElement(e); - if ( - (this._onClickEvent.dispatch(this, r), - !this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) - ) - return; - if ( - (this.countEvent(e.type), - t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) - ) - return; - var a = this.uiControlManager.createUIControlData(e); - this.updateInteraction(this.createMouseClickEvent(e.type, e), a), - this.dispatch(), - (null === - (i = - null === (n = null === a || void 0 === a ? void 0 : a.uiElement) || void 0 === n - ? void 0 - : n.id) || void 0 === i - ? void 0 - : i.length) > 0 && - t._POSignalsUtils.Logger.info( - "Tapped on element with id '" + a.uiElement.id + "'", - ); - } catch (n) { - t._POSignalsUtils.Logger.warn('error in ' + e.type + ' handler', n); - } - }), - (e.prototype.onMouseout = function (e) { - try { - this.onMouseEvent(e); - var n = e.relatedTarget || e.toElement; - (n && 'HTML' !== n.nodeName) || this.dispatch(); - } catch (n) { - t._POSignalsUtils.Logger.warn('error in ' + e.type + ' handler', n); - } - }), - (e.prototype.onMouseEvent = function (e) { - try { - if ( - ('wheel' !== e.type && (this.lastMouseInteractionTimestamp = new Date().getTime()), - !this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) - ) - return; - if ( - (this.countEvent(e.type), - t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) - ) - return; - this.updateInteraction(this.createMouseEvent(e.type, e)); - } catch (n) { - t._POSignalsUtils.Logger.warn('error in ' + e.type + ' handler', n); - } - }), - (e.prototype.onMouseClickEvent = function (e) { - try { - if ( - ((this.lastMouseInteractionTimestamp = new Date().getTime()), - !this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) - ) - return; - if ( - (this.countEvent(e.type), - t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) - ) - return; - this.updateInteraction(this.createMouseClickEvent(e.type, e)); - } catch (n) { - t._POSignalsUtils.Logger.warn('error in ' + e.type + ' handler', n); - } - }), - (e.prototype.onPointerEvent = function (e) { - try { - if ( - ((this.lastMouseInteractionTimestamp = new Date().getTime()), - !this.delegate.collectBehavioralData(this.BEHAVIORAL_TYPE)) - ) - return; - if ( - (this.countEvent(e.type), - t.PointerConfig.instance.pointerParams.eventsToIgnore.has(e.type)) - ) - return; - this.updateInteraction(this.createPointerEvent(e.type, e)); - } catch (n) { - t._POSignalsUtils.Logger.warn('error in ' + e.type + ' handler', n); - } - }), - (e.prototype.clearBuffer = function () { - var t = null; - return ( - this.lastMouseInteraction && (t = this.lastMouseInteraction), - (this.lastMouseInteraction = null), - t - ); - }), - (e.prototype.isEmpty = function () { - return !this.lastMouseInteraction; - }), - (e.prototype.createMouseEvent = function (t, e) { - return { - type: t, - eventTs: e.timeStamp, - epochTs: new Date().getTime(), - button: e.button, - offsetX: e.offsetX, - offsetY: e.offsetY, - pageX: e.pageX, - pageY: e.pageY, - screenX: e.screenX, - screenY: e.screenY, - getX: function () { - return e.screenX; - }, - getY: function () { - return e.screenY; - }, - }; - }), - (e.prototype.createPointerEvent = function (t, e) { - var n = this.createMouseEvent(t, e); - return __assign(__assign({}, n), { - pointerId: e.pointerId, - width: e.width, - height: e.height, - pressure: e.pressure, - tangentialPressure: e.tangentialPressure, - tiltX: e.tiltX, - tiltY: e.tiltY, - twist: e.twist, - pointerType: e.pointerType, - isPrimary: e.isPrimary, - }); - }), - (e.prototype.createMouseClickEvent = function (e, n) { - var i = this.createMouseEvent(e, n); - if (n.target && t._POSignalsUtils.Util.isFunction(n.target.getBoundingClientRect)) { - var r = n.target.getBoundingClientRect(); - (i.targetBottom = r.bottom), - (i.targetHeight = r.height), - (i.targetLeft = r.left), - (i.targetRight = r.right), - (i.targetTop = r.top), - (i.targetWidth = r.width), - (i.targetX = r.x), - (i.targetY = r.y); - } - return i; - }), - e - ); - })(); - t.Mouse = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(t) { - (this.counter = 0), (this.key = t), (this.counter = this.loadFromStorage()); - } - return ( - (e.prototype.loadFromStorage = function () { - var t = e.sessionStorage.getItem(this.key); - return Number(t) || 0; - }), - (e.prototype.get = function () { - return this.counter; - }), - (e.prototype.increment = function (t) { - void 0 === t && (t = 1), - (this.counter += t), - e.sessionStorage.setItem(this.key, this.counter); - }), - (e.prototype.decrement = function (t) { - void 0 === t && (t = 1), this.increment(-1 * t); - }), - (e.prototype.reset = function () { - (this.counter = 0), e.sessionStorage.removeItem(this.key); - }), - (e.sessionStorage = t._POSignalsStorage.SessionStorage.instance.sessionStorage), - e - ); - })(); - t.StorageCounter = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(t) { - (this.mapKey = t), (this.cache = this.loadFromStorage()); - } - return ( - (e.prototype.loadFromStorage = function () { - var t = e.sessionStorage.getItem(this.mapKey); - return t || (t = JSON.stringify({})), JSON.parse(t); - }), - (e.prototype.asMap = function () { - return this.cache; - }), - (e.prototype.set = function (t, n, i) { - void 0 === i && (i = !0), - (this.cache[t] = n), - i && e.sessionStorage.setItem(this.mapKey, JSON.stringify(this.cache)); - }), - (e.prototype.sync = function () { - e.sessionStorage.setItem(this.mapKey, JSON.stringify(this.cache)); - }), - (e.prototype.get = function (t) { - return this.cache[t]; - }), - (e.prototype.delete = function (t) { - delete this.cache[t], e.sessionStorage.setItem(this.mapKey, JSON.stringify(this.cache)); - }), - (e.prototype.values = function () { - return t._POSignalsUtils.Util.values(this.cache); - }), - (e.prototype.clear = function () { - (this.cache = {}), e.sessionStorage.removeItem(this.mapKey); - }), - (e.sessionStorage = t._POSignalsStorage.SessionStorage.instance.sessionStorage), - e - ); - })(); - t.StorageMap = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e() { - (this.config = {}), (this._cacheHash = 0), (this.cache = new Map()); - } - return ( - (e.prototype.refreshConfig = function (e) { - try { - if (!e) return; - var n = t._POSignalsUtils.Util.hashCode(JSON.stringify(e)); - if (this._cacheHash === n) return; - (this.config = e), (this._cacheHash = n), (this.cache = new Map()); - } catch (e) { - t._POSignalsUtils.Logger.warn('Failed to set css selectors', e); - } - }), - (e.prototype.getMatchingTags = function (e, n) { - var i = this.cache.get(e); - if (i) return i; - var r = {}; - for (var a in this.config) - try { - if (!this.config.hasOwnProperty(a)) continue; - var o = this.config[a].selector || []; - t._POSignalsUtils.Util.isArray(o) || (o = [].concat(o)); - for (var s = 0, u = o; s < u.length; s++) { - var c = u[s]; - t._POSignalsUtils.Util.isSelectorMatches(e, c, n) && (r[a] = this.config[a]); - } - } catch (e) { - t._POSignalsUtils.Logger.warn('Failed to get the config for ' + a + ' tag', e); - } - return this.cache.set(e, r), r; - }), - (e.prototype.getValue = function (e, n) { - if (n && e) - switch (((n = n.trim()), e)) { - case 'email_domain': - return t._POSignalsUtils.Util.getEmailDomain(n); - case 'obfuscate': - return '' + t._POSignalsUtils.Util.mod(n, 1e3); - case 'plain': - return n; - case 'zip': - return n.substr(0, 3); - case 'length': - return '' + n.length; - } - return ''; - }), - Object.defineProperty(e.prototype, 'cacheHash', { - get: function () { - return this._cacheHash; - }, - enumerable: !1, - configurable: !0, - }), - e - ); - })(); - t.TagsIdentifications = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e() { - this._reduceFactorMap = null; - } - return ( - Object.defineProperty(e.prototype, 'reduceFactorMap', { - get: function () { - return this._reduceFactorMap; - }, - set: function (t) { - this._reduceFactorMap = t; - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.reduceEventsByFactor = function (e) { - var n = this; - try { - if (!e || 0 === e.length || !this.reduceFactorMap) return e; - for (var i = new Map(), r = [], a = 0; a < e.length; a++) - i.get(e[a].type) ? i.get(e[a].type).push(a) : i.set(e[a].type, [a]); - i.forEach(function (t, e) { - var i = n.reduceFactorMap[e] ? Number(n.reduceFactorMap[e]) : 0; - n.reduceByFactor(i, t, function (e) { - r[t[e]] = !0; - }); - }); - var o = []; - for (a = 0; a < e.length; a++) r[a] && o.push(e[a]); - return ( - e.length !== o.length && - t._POSignalsUtils.Logger.debug( - e.length - o.length + ' events reduced out of ' + e.length, - ), - o - ); - } catch (n) { - return t._POSignalsUtils.Logger.warn('Failed to reduce events', n), e; - } - }), - (e.prototype.reduceByFactor = function (t, e, n) { - t = Math.min(t, 1); - for ( - var i = Math.round(Math.max(e.length * (1 - t), 2)), - r = (e.length - 1) / (i - 1), - a = Math.min(e.length, i), - o = 0; - o < a; - o++ - ) { - n(Math.round(o * r)); - } - }), - e - ); - })(); - t.ReduceFactor = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(t) { - this.algorithm = t; - } - return ( - (e.prototype.reduce = function (n, i) { - if (-1 === e.TYPES_TO_REDUCE.indexOf(i)) return { keptEvents: n, epsilon: 0 }; - if (n.length <= e.MIN_EVENTS_TO_REDUCE) return { keptEvents: n, epsilon: 0 }; - var r = n.length < 50 ? 0.55 : n.length < 100 ? 0.35 : 0.2, - a = n.length < 50 ? 1 : n.length < 100 ? 3 : 7, - o = this.algorithm.reduceEvents(n, a), - s = o.length / n.length; - if (o.length >= 10 && s >= r) return { keptEvents: o, epsilon: a }; - var u = n.length < 50 ? 0.1 : n.length < 100 ? 0.3 : 0.7, - c = this.algorithm.reduceEvents(n, u), - l = c.length / n.length; - if (c.length <= e.MIN_EVENTS_TO_REDUCE || l <= r) return { keptEvents: c, epsilon: u }; - var d = - (Math.min(a, Math.pow(a, s / r)) * Math.abs(l - r) + u * Math.abs(s - r)) / - Math.abs(s - l); - return ( - (d < u || d > a) && - t._POSignalsUtils.Logger.warn( - 'linear weighted average - calculated epsilon is out of range, lowEpsilon: ' + - u + - ', highEpsilon: ' + - a + - ', epsilon: ' + - d, - ), - { keptEvents: this.algorithm.reduceEvents(n, d), epsilon: d } - ); - }), - (e.MIN_EVENTS_TO_REDUCE = 18), - (e.TYPES_TO_REDUCE = ['mousemove', 'touchmove']), - e - ); - })(); - t.RDPEpsilonStrategy = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e(t) { - this.rdpStrategy = t; - } - return ( - (e.prototype.reduceWithRPD = function (e) { - var n = this; - if (!e || 0 === e.length) return { events: e, reductionInfo: {} }; - for (var i = new Map(), r = [], a = 0, o = e; a < o.length; a++) { - var s = o[a]; - i.get(s.type) ? i.get(s.type).push(s) : i.set(s.type, [s]); - } - var u = {}; - return ( - i.forEach(function (t, e) { - var i = n.rdpStrategy.reduce(t, e), - a = i.keptEvents, - o = i.epsilon; - o > 0 && (u[e] = { epsilon: o, originalLength: t.length, keptLength: a.length }), - (r = r.concat(a)); - }), - { events: t._POSignalsUtils.Util.sortEventsByTimestamp(r), reductionInfo: u } - ); - }), - e - ); - })(); - t.ReduceRDP = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function t() {} - return ( - (t.prototype.getSqDist = function (t, e) { - var n = t.getX() - e.getX(), - i = t.getY() - e.getY(); - return n * n + i * i; - }), - (t.prototype.getSqSegDist = function (t, e, n) { - var i = e.getX(), - r = e.getY(), - a = n.getX() - i, - o = n.getY() - r; - if (0 !== a || 0 !== o) { - var s = ((t.getX() - i) * a + (t.getY() - r) * o) / (a * a + o * o); - s > 1 ? ((i = n.getX()), (r = n.getY())) : s > 0 && ((i += a * s), (r += o * s)); - } - return (a = t.getX() - i) * a + (o = t.getY() - r) * o; - }), - (t.prototype.simplifyRadialDist = function (t, e) { - for (var n, i = t[0], r = [i], a = 1, o = t.length; a < o; a++) - (n = t[a]), this.getSqDist(n, i) > e && (r.push(n), (i = n)); - return i !== n && r.push(n), r; - }), - (t.prototype.simplifyDPStep = function (t, e, n, i, r) { - for (var a, o = i, s = e + 1; s < n; s++) { - var u = this.getSqSegDist(t[s], t[e], t[n]); - u > o && ((a = s), (o = u)); - } - o > i && - (a - e > 1 && this.simplifyDPStep(t, e, a, i, r), - r.push(t[a]), - n - a > 1 && this.simplifyDPStep(t, a, n, i, r)); - }), - (t.prototype.simplifyDouglasPeucker = function (t, e) { - var n = t.length - 1, - i = [t[0]]; - return this.simplifyDPStep(t, 0, n, e, i), i.push(t[n]), i; - }), - (t.prototype.simplify = function (t, e, n) { - if (t.length <= 2) return t; - var i = void 0 !== e ? e * e : 1; - return ( - (t = n ? t : this.simplifyRadialDist(t, i)), (t = this.simplifyDouglasPeucker(t, i)) - ); - }), - (t.prototype.reduceEvents = function (t, e) { - return this.simplify(t, e); - }), - t - ); - })(); - t.RDPReduction = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e() {} - return ( - (e.prototype.filterMoveEvents = function (e, n) { - if (e.length <= 18) return e; - for ( - var i = e.filter(function (t) { - return t.type === n; - }), - r = t._POSignalsUtils.Util.keepFirstEventsWithDistance({ - events: i, - threshold: 200, - min: 18, - max: 30, - }), - a = -1, - o = {}, - s = 0; - s < e.length; - s++ - ) { - var u = e[s]; - u.type !== n && - ('mousedown' !== u.type ? o[u.type] || (r.push(u), (o[u.type] = !0)) : (a = s)); - } - return a >= 0 && r.push(e[a]), t._POSignalsUtils.Util.sortEventsByTimestamp(r); - }), - e - ); - })(); - t.EventsReduction = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e() { - (this.reduceFactor = new t.ReduceFactor()), - (this.reduceRDP = new t.ReduceRDP(new t.RDPEpsilonStrategy(new t.RDPReduction()))), - (this.eventsReduction = new t.EventsReduction()); - } - return ( - Object.defineProperty(e.prototype, 'reduceFactorMap', { - set: function (t) { - this.reduceFactor.reduceFactorMap = t; - }, - enumerable: !1, - configurable: !0, - }), - (e.prototype.reduceGesture = function (t) { - var e = this.reduceRDP.reduceWithRPD(t.events); - (t.events = this.eventsReduction.filterMoveEvents(e.events, 'touchmove')), - (t.reduction = e.reductionInfo); - }), - (e.prototype.reduceKeyboardInteraction = function (e) { - e.events = t._POSignalsUtils.Util.filterArrayByLength(e.events, 50); - }), - (e.prototype.reduceMouseInteraction = function (t) { - var e = this.reduceRDP.reduceWithRPD(t.events); - (t.events = this.eventsReduction.filterMoveEvents(e.events, 'mousemove')), - (t.reduction = e.reductionInfo); - }), - e - ); - })(); - t.ReductionManager = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function (e) { - function n(n, i) { - var r = e.call(this, n) || this; - return ( - (r.tagsWithValueIdentifications = new t.TagsIdentifications()), - (r.reductionManager = new t.ReductionManager()), - (r.lastGestureTimestamp = 0), - (r.currentBufferSize = 0), - (r.bufferingStrategy = t.StrategyFactory.createBufferingStrategy(i, r)), - (r.capturedKeyboardInteractions = new t.StorageArray( - t._POSignalsUtils.Constants.CAPTURED_KEYBOARD_INTERACTIONS, - )), - (r.keyboardInteractionsCount = new t.StorageCounter( - t._POSignalsUtils.Constants.KEYBOARD_INTERACTIONS_COUNT, - )), - (r.mouseInteractionsCount = new t.StorageCounter( - t._POSignalsUtils.Constants.MOUSE_INTERACTIONS_COUNT, - )), - (r.gesturesCount = new t.StorageCounter(t._POSignalsUtils.Constants.GESTURES_COUNT)), - (r.eventCounters = new t.StorageMap(t._POSignalsUtils.Constants.EVENT_COUNTERS)), - (r.capturedMouseInteractions = new t.StorageArray( - t._POSignalsUtils.Constants.CAPTURED_MOUSE_INTERACTIONS, - )), - (r.capturedGestures = new t.StorageArray( - t._POSignalsUtils.Constants.CAPTURED_GESTURES, - )), - (r.capturedIndirectEvents = new t.StorageArray( - t._POSignalsUtils.Constants.CAPTURED_INDIRECT, - )), - (r.currentBufferSize = - r.capturedGestures.length + - r.capturedMouseInteractions.length + - r.capturedKeyboardInteractions.length), - (r.uiControlManager = new t.UIControlManager(r)), - (r.keyboard = new t.Keyboard(r, r.uiControlManager)), - r.keyboard.onInteraction.subscribe(r.handleKeyboardInteraction.bind(r)), - r.keyboard.onEnterPress.subscribe(r.handleStTagOnEnter.bind(r)), - r.keyboard.onObfuscatedValue.subscribe(r.handleTagValueOnBlur.bind(r)), - (r.mouse = new t.Mouse(r, r.uiControlManager)), - r.mouse.onInteraction.subscribe(r.handleMouseInteraction.bind(r)), - r.mouse.onClickEvent.subscribe(r.handleStTagOnClick.bind(r)), - (r.sensors = new t.Sensors(r)), - (r.gesture = new t.GestureEvents(r, r.sensors)), - r.gesture.onGesture.subscribe(r.handleGesture.bind(r)), - (r.indirect = new t.IndirectClient(r)), - r.indirect.onIndirect.subscribe(r.handleIndirect.bind(r)), - (r.onUrlChangeHandler = r.onUrlChange.bind(r)), - (r.onEventHandler = r.onEvent.bind(r)), - r - ); - } - return ( - __extends(n, e), - Object.defineProperty(n.prototype, 'keyboardCounter', { - get: function () { - return this.keyboardInteractionsCount.get(); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'mouseCounter', { - get: function () { - return this.mouseInteractionsCount.get(); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'gesturesCounter', { - get: function () { - return this.gesturesCount.get(); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(n.prototype, 'additionalData', { - get: function () { - var e = t._POSignalsUtils.Util.getDeviceOrientation(); - return { - locationHref: location.href, - devTools: t._POSignalsUtils.Util.getDevToolsState(), - innerWidth: - window.innerWidth || - document.documentElement.clientWidth || - document.body.clientWidth, - innerHeight: - window.innerHeight || - document.documentElement.clientHeight || - document.body.clientHeight, - outerWidth: window.outerWidth, - outerHeight: window.outerHeight, - width: screen.width, - height: screen.height, - availWidth: screen.availWidth, - availHeight: screen.availHeight, - pixelRatio: window.devicePixelRatio, - deviceOrientation: e.orientation, - deviceAngle: e.angle, - }; - }, - enumerable: !1, - configurable: !0, - }), - (n.prototype.getBehavioralData = function () { - return ( - this.clearIndirectBuffer(), - { - mouse: { - count: this.mouseInteractionsCount.get(), - interactions: this.capturedMouseInteractions.get(), - }, - keyboard: { - count: this.keyboardInteractionsCount.get(), - interactions: this.capturedKeyboardInteractions.get(), - }, - touch: { - count: this.gesturesCount.get(), - interactions: this.capturedGestures.get(), - }, - indirect: { events: this.capturedIndirectEvents.get() }, - eventCounters: this.eventCounters.asMap(), - } - ); - }), - (n.prototype.getBufferSize = function () { - return this.currentBufferSize; - }), - (n.prototype.getInteractionDuration = function (t) { - return (null === t || void 0 === t ? void 0 : t.length) > 0 - ? t[t.length - 1].epochTs - t[0].epochTs - : 0; - }), - (n.prototype.dispose = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (t) { - return ( - this.stopListening(), - this.keyboard.onInteraction.unsubscribe( - this.handleKeyboardInteraction.bind(this), - ), - this.keyboard.onEnterPress.unsubscribe(this.handleStTagOnEnter.bind(this)), - this.keyboard.onObfuscatedValue.unsubscribe(this.handleTagValueOnBlur.bind(this)), - this.mouse.onInteraction.unsubscribe(this.handleMouseInteraction.bind(this)), - this.mouse.onClickEvent.unsubscribe(this.handleStTagOnClick.bind(this)), - this.gesture.onGesture.unsubscribe(this.handleGesture.bind(this)), - this.indirect.unsubscribe(), - this.indirect.onIndirect.unsubscribe(this.handleIndirect.bind(this)), - [2] - ); - }); - }); - }), - (n.prototype.collectBehavioralData = function (e) { - if (this.isBehavioralDataPaused) return !1; - var n = t.PointerConfig.instance.pointerParams.behavioralBlacklist; - return !(e && n && n[e]) || !Boolean(window.location.href.match(n[e])); - }), - (n.prototype.getElementsStID = function (e) { - try { - return ( - t._POSignalsUtils.Util.getAttribute(e, 'data-st-field') || - this.keyboard.fieldsIdentifications.getIdentification(e, 0) || - '' - ); - } catch (e) { - return t._POSignalsUtils.Logger.warn('failed to get element stId', e), ''; - } - }), - (n.prototype.addEventListener = function (e, n, i, r) { - t.PointerConfig.instance.pointerParams.eventsBlackList.has(n) || - (e.addEventListener(n, this.onEventHandler, r), e.addEventListener(n, i, r)); - }), - (n.prototype.addUiControlTags = function (e) { - if ((null === e || void 0 === e ? void 0 : e.length) > 0) - for (var n = !1, i = 0, r = e; i < r.length; i++) { - var a = r[i]; - try { - if (null === a || void 0 === a ? void 0 : a.name) { - var o = this.uiControlManager.convertToTagValueConfig(a.value); - n = this.addSingleTagWithValue(a.name, o) || n; - } - } catch (e) { - t._POSignalsUtils.Logger.warn('failed to add tag config', e); - } - } - }), - (n.prototype.refreshListening = function () { - var e = t.PointerConfig.instance; - this.tagsWithValueIdentifications.refreshConfig(e.pointerParams.remoteTags), - (this.reductionManager.reduceFactorMap = e.pointerParams.eventsReduceFactorMap), - this.keyboard.refreshKeyboardCssSelectors(e.pointerParams.keyboardCssSelectors), - (this.sensors.maxSensorSamples = e.pointerParams.maxSensorSamples), - (this.sensors.sensorsTimestampDeltaInMillis = e.pointerParams.sensorsDeltaInMillis), - this.mouse.start(), - this.keyboard.start(), - this.gesture.start(), - this.indirect.start(), - 0 == e.pointerParams.maxSensorSamples ? this.sensors.stop() : this.sensors.start(), - this.addEventListener(window, '_onlocationchange', this.onUrlChangeHandler), - this.addEventListener(window, 'popstate', this.onUrlChangeHandler); - }), - (n.prototype.addSingleTagWithValue = function (e, n) { - try { - if ( - (null === n || void 0 === n ? void 0 : n.context) && - !Boolean(window.location.href.match(n.context)) - ) - return !1; - var i = ''; - if ( - (null === n || void 0 === n ? void 0 : n.operation) && - (null === n || void 0 === n ? void 0 : n.valueSelector) - ) { - var r = document.querySelector(n.valueSelector); - if (r) { - var a = t._POSignalsUtils.Util.getElementText(r); - i = this.tagsWithValueIdentifications.getValue(n.operation, a); - } - } - if ((null === n || void 0 === n ? void 0 : n.valueMandatory) && !i) - return ( - t._POSignalsUtils.Logger.warn("tag '" + e + "' wasn't added. value is missing"), - !1 - ); - this.addTag(e, i); - } catch (n) { - t._POSignalsUtils.Logger.warn('failed to add ' + e + ' tag', n); - } - return !1; - }), - (n.prototype.addTagsWithValue = function (t) { - var e = !1; - for (var n in t) t.hasOwnProperty(n) && (e = this.addSingleTagWithValue(n, t[n]) || e); - }), - (n.prototype.handleStTagOnEnter = function (e, n) { - n instanceof HTMLInputElement && - t._POSignalsUtils.Util.isTextInput(n) && - this.handleStTagElement(n); - }), - (n.prototype.handleTagValueOnBlur = function (t, e) { - e && this.addTag(e.fieldKey, e.obfuscatedValue); - }), - (n.prototype.handleStTagOnClick = function (e, n) { - (n instanceof HTMLInputElement && !t._POSignalsUtils.Util.isClickableInput(n)) || - this.handleStTagElement(n); - }), - (n.prototype.handleMouseInteraction = function (t, e) { - if (e) { - this.mouseInteractionsCount.increment(), - this.reductionManager.reduceMouseInteraction(e); - var n = this.bufferingStrategy.calculateStrategyResult(e, 'mouse'); - n.shouldCollect && - (n.remove && this.removeInteraction(n.remove), - this.capturedMouseInteractions.push(e), - this.lastGestureTimestamp !== e.events[e.events.length - 1].eventTs && - this.currentBufferSize++, - this.eventCounters.sync()); - } - }), - (n.prototype.handleIndirect = function (t, e) { - this.addIndirectEvents(e), this.eventCounters.sync(); - }), - (n.prototype.handleKeyboardInteraction = function (t, e) { - if (e) { - this.keyboardInteractionsCount.increment(), - this.reductionManager.reduceKeyboardInteraction(e); - var n = this.bufferingStrategy.calculateStrategyResult(e, 'keyboard'); - n.shouldCollect && - (n.remove && this.removeInteraction(n.remove), - this.capturedKeyboardInteractions.push(e), - this.currentBufferSize++, - this.eventCounters.sync()); - } - }), - (n.prototype.handleGesture = function (t, e) { - var n; - if (this.isValidGesture(e)) { - this.gesturesCount.increment(), this.reductionManager.reduceGesture(e); - var i = this.bufferingStrategy.calculateStrategyResult(e, 'touch'); - i.shouldCollect && - (i.remove && this.removeInteraction(i.remove), - this.sensors.onGesture(e), - this.capturedGestures.push(e), - this.currentBufferSize++, - (this.lastGestureTimestamp = - null === (n = e.events[e.events.length - 1]) || void 0 === n - ? void 0 - : n.eventTs), - this.eventCounters.sync()); - } - }), - (n.prototype.clearIndirectBuffer = function () { - var t = this.indirect.clearBuffer(); - this.addIndirectEvents(t); - }), - (n.prototype.removeInteraction = function (t) { - switch (t.type) { - case 'mouse': - this.capturedMouseInteractions.remove(t.index); - break; - case 'keyboard': - this.capturedKeyboardInteractions.remove(t.index); - break; - case 'touch': - this.capturedGestures.remove(t.index); - } - }), - (n.prototype.addIndirectEvents = function (e) { - var n; - if ( - (null === (n = null === e || void 0 === e ? void 0 : e.events) || void 0 === n - ? void 0 - : n.length) > 0 - ) { - for ( - var i = [], - r = t._POSignalsUtils.Util.typesCounter(this.capturedIndirectEvents.get()), - a = 0, - o = e.events; - a < o.length; - a++ - ) { - var s = o[a]; - t.PointerConfig.instance.pointerParams.highPriorityIndirectEvents.has(s.type) && - this.capturedIndirectEvents.length + i.length < - t.PointerConfig.instance.pointerParams.maxIndirectEvents && - i.push(s), - r[s.type] > 0 || (i.push(s), (r[s.type] = 1)); - } - this.capturedIndirectEvents.set(this.capturedIndirectEvents.concat(i)); - } - }), - (n.prototype.onUrlChange = function () { - this.addTag('location', window.location.href); - }), - (n.prototype.onEvent = function (t) { - this.isBehavioralDataPaused || - this.eventCounters.set(t.type, (this.eventCounters.get(t.type) || 0) + 1, !1); - }), - (n.prototype.handleStTagElement = function (e) { - if (e) { - var n = t.PointerConfig.instance.pointerParams.maxSelectorChildren, - i = this.tagsWithValueIdentifications.getMatchingTags(e, n); - this.addTagsWithValue(i); - var r = t._POSignalsUtils.Util.isSelectorMatches(e, '[data-st-tag]', n); - if (r instanceof Element) { - var a = t._POSignalsUtils.Util.getAttribute(r, 'data-st-tag'), - o = t._POSignalsUtils.Util.getAttribute(r, 'data-st-tag-value'); - a && this.addTag(a, o); - } - } - }), - (n.prototype.stopListening = function () { - this.keyboard.stop(), - this.mouse.stop(), - this.gesture.stop(), - this.indirect.stop(), - this.sensors.stop(), - window.removeEventListener('_onlocationchange', this.onUrlChangeHandler), - window.removeEventListener('popstate', this.onUrlChangeHandler); - }), - (n.prototype.clearBehavioralData = function () { - this.capturedKeyboardInteractions.clear(), - this.capturedMouseInteractions.clear(), - this.capturedGestures.clear(), - this.capturedIndirectEvents.clear(), - this.sensors.reset(), - t.Tags.instance.reset(), - (this.currentBufferSize = 0), - this.keyboardInteractionsCount.reset(), - this.mouseInteractionsCount.reset(), - this.gesturesCount.reset(), - this.eventCounters.clear(); - }), - (n.prototype.isValidGesture = function (e) { - var n, i; - return ( - (null === (n = null === e || void 0 === e ? void 0 : e.events) || void 0 === n - ? void 0 - : n.length) > 0 && - (null === (i = null === e || void 0 === e ? void 0 : e.events) || void 0 === i - ? void 0 - : i.length) < t.PointerConfig.instance.pointerParams.maxSnapshotsCount - ); - }), - n - ); - })(t.ClientBase); - t.Client = e; - })(_POSignalsEntities || (_POSignalsEntities = {})); - var _POSignalsEntities, - _pingOneSignals = (function () { - function t() {} - return ( - (t.getData = function () { - return _POSignalsEntities.ClientBase.instance().getData(); - }), - (t.init = function (t) { - return ( - _POSignalsEntities._POSignalsUtils.Util.ieFix(), - _POSignalsEntities.ClientBase.instance().startSignals(t) - ); - }), - (t.initSilent = function (t) { - return this.init(t); - }), - (t.pauseBehavioralData = function () { - _POSignalsEntities.ClientBase.instance().pauseBehavioralData(); - }), - (t.resumeBehavioralData = function () { - _POSignalsEntities.ClientBase.instance().resumeBehavioralData(); - }), - t - ); - })(), - onDomReady = function (t) { - 'loading' !== document.readyState ? t() : document.addEventListener('DOMContentLoaded', t); - }; - onDomReady(function () { - if (!window._pingOneSignalsReady) { - var t = new CustomEvent('PingOneSignalsReadyEvent'); - document.dispatchEvent(t), (window._pingOneSignalsReady = !0); - } - }), - (function (t) { - var e = (function () { - function e(t, e, n, i, r, a, o) { - (this.clientVersion = t), - (this.instanceUUID = e), - (this.initParams = n), - (this.metadata = i), - (this.behavioralDataHandler = r), - (this.externalIdentifiers = a), - (this.sessionStorage = o); - } - return ( - (e.prototype.getData = function (t) { - return __awaiter(this, void 0, void 0, function () { - var e; - return __generator(this, function (n) { - switch (n.label) { - case 0: - return [4, this.getRiskData(t)]; - case 1: - return (e = n.sent()), [2, this.toString(e)]; - } - }); - }); - }), - (e.prototype.getRiskData = function (e) { - return __awaiter(this, void 0, void 0, function () { - var n, i; - return __generator(this, function (r) { - switch (r.label) { - case 0: - return (i = {}), [4, this.metadata.getDeviceAttributes()]; - case 1: - return ( - (i.deviceAttributes = r.sent()), - (i.behavioral = this.behavioralDataHandler.getBehavioralData()), - (i.tags = t.Tags.instance.tags), - (i.sdkConfig = this.initParams), - (i.epochTs = e), - (i.instanceUUID = this.instanceUUID), - (i.tabUUID = t._POSignalsStorage.SessionStorage.instance.tabUUID), - (i.origin = location.origin), - (i.href = location.href), - (i.sdkVersion = this.clientVersion), - (i.platform = 'web'), - (i.clientToken = window._pingOneSignalsToken), - (i.externalIdentifiers = this.externalIdentifiers), - (n = i), - this.sessionStorage.deviceTrust && - (n.deviceTrust = this.sessionStorage.deviceTrust), - [2, n] - ); - } - }); - }); - }), - (e.prototype.toString = function (e) { - var n, - i = this.metadata.getObfsInfo(); - try { - n = t._POSignalsUtils.Util.string2buf(JSON.stringify(e)); - } catch (t) { - throw new Error('Failed to create data, ' + t.message); - } - try { - n = t.pako.gzip(n); - } catch (t) { - throw new Error('Failed to compress data, ' + t.message); - } - try { - n = t._POSignalsUtils.Util.encryptionBytes(n, i.key); - } catch (t) { - throw new Error('failed to obfuscate data, ' + t.message); - } - try { - return t._POSignalsUtils.Util.base64Uint8Array(n) + '.' + btoa(i.identifier); - } catch (t) { - throw new Error('failed to encode data, ' + t.message); - } - }), - e - ); - })(); - t.DataHandler = e; - })(_POSignalsEntities || (_POSignalsEntities = {})), - (function (t) { - var e = (function () { - function e() { - this._configuration = { - enabled: e.ENABLED_DEFAULT, - bufferSize: e.BUFFER_SIZE_DEFAULT, - maxSnapshotsCount: e.MAX_SNAPSHOTS_COUNT_DEFAULT, - sensors: e.SENSORS_DEFAULT, - metadataBlacklist: e.METADATA_BLACK_LIST_DEFAULT, - tagsBlacklistRegex: e.TAGS_BLACK_LIST_REGEX_DEFAULT, - behavioralBlacklist: e.BEHAVIORAL_BLACK_LIST_DEFAULT, - webRtcUrl: e.WEB_RTC_URL_DEFAULT, - eventsBlackList: e.EVENTS_BLACK_LIST_DEFAULT, - eventsToIgnore: e.EVENTS_TO_IGNORE_DEFAULT, - highPriorityIndirectEvents: e.HIGH_PRIORITY_INDIRECT_EVENTS_DEFAULT, - indirectIntervalMillis: e.INDIRECT_INTERVAL_MILLIS_DEFAULT, - mouseIntervalMillis: e.MOUSE_INTERVAL_MILLIS_DEFAULT, - mouseIdleTimeoutMillis: e.MOUSE_IDLE_TIMEOUT_MILLIS_DEFAULT, - maxMouseEvents: e.MAX_MOUSE_EVENTS_DEFAULT, - maxIndirectEvents: e.MAX_INDIRECT_EVENTS_DEFAULT, - keyboardFieldBlackList: e.KEYBOARD_FIELD_BLACK_LIST_DEFAULT, - keyboardCssSelectors: e.KEYBOARD_CSS_SELECTORS_DEFAULT, - keyboardCssSelectorsBlacklist: e.KEYBOARD_CSS_SELECTORS_BLACKLIST_DEFAULT, - keyboardIdentifierAttributes: e.KEYBOARD_IDENTIFIER_ATTRIBUTES_DEFAULT, - remoteTags: e.REMOTE_TAGS_DEFAULT, - maxSelectorChildren: e.MAX_SELECTOR_CHILDREN_DEFAULT, - eventsReduceFactorMap: e.EVENTS_REDUCE_FACTOR_MAP_DEFAULT, - propertyDescriptors: e.PROPERTY_DESCRIPTORS_DEFAULT, - additionalMediaCodecs: e.ADDITIONAL_MEDIA_CODECS_DEFAULT, - fingerprintTimeoutMillis: e.FINGER_PRINT_TIMEOUT_MILLIS_DEFAULT, - metadataDataPoints: e.METADATA_DATA_POINTS_DEFAULT, - uiModeling: e.UI_MODELING_CONFIG_DEFAULT, - uiControl: e.UI_CONTROL_LIST_DEFAULT, - }; - } - return ( - (e.prototype.updateParams = function (t) { - t && (this._configuration = t); - }), - Object.defineProperty(e.prototype, 'enabled', { - get: function () { - return 'boolean' == typeof this._configuration.enabled - ? this._configuration.enabled - : e.ENABLED_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'bufferSize', { - get: function () { - return 'number' == typeof this._configuration.bufferSize && - this._configuration.bufferSize > 0 - ? this._configuration.bufferSize - : e.BUFFER_SIZE_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'maxSnapshotsCount', { - get: function () { - return 'number' == typeof this._configuration.maxSnapshotsCount && - this._configuration.maxSnapshotsCount >= 0 - ? this._configuration.maxSnapshotsCount - : e.MAX_SNAPSHOTS_COUNT_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'maxSensorSamples', { - get: function () { - var t = this._configuration.sensors; - return t && 'number' == typeof t.maxSensorSamples && t.maxSensorSamples >= 0 - ? t.maxSensorSamples - : e.SENSORS_DEFAULT.maxSensorSamples; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'sensorsDeltaInMillis', { - get: function () { - var t = this._configuration.sensors; - return t && 'number' == typeof t.sensorsDeltaInMillis && t.sensorsDeltaInMillis >= 0 - ? t.sensorsDeltaInMillis - : e.SENSORS_DEFAULT.sensorsDeltaInMillis; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'metadataBlackList', { - get: function () { - var n; - return t._POSignalsUtils.Util.isArray(this._configuration.metadataBlacklist) && - (null === (n = this._configuration.metadataBlacklist) || void 0 === n - ? void 0 - : n.length) > 0 - ? this._configuration.metadataBlacklist - : e.METADATA_BLACK_LIST_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'behavioralBlacklist', { - get: function () { - return this._configuration.behavioralBlacklist - ? this._configuration.behavioralBlacklist - : e.BEHAVIORAL_BLACK_LIST_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'tagsBlacklistRegex', { - get: function () { - return 'string' == typeof this._configuration.tagsBlacklistRegex - ? this._configuration.tagsBlacklistRegex - : e.TAGS_BLACK_LIST_REGEX_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'webRtcUrl', { - get: function () { - return 'string' == typeof this._configuration.webRtcUrl - ? this._configuration.webRtcUrl - : e.WEB_RTC_URL_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'eventsBlackList', { - get: function () { - return ( - t._POSignalsUtils.Util.isArray(this._configuration.eventsBlackList) && - (this._configuration.eventsBlackList = new Set( - this._configuration.eventsBlackList, - )), - this._configuration.eventsBlackList instanceof Set - ? this._configuration.eventsBlackList - : e.EVENTS_BLACK_LIST_DEFAULT - ); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'eventsToIgnore', { - get: function () { - return ( - t._POSignalsUtils.Util.isArray(this._configuration.eventsToIgnore) && - (this._configuration.eventsToIgnore = new Set( - this._configuration.eventsToIgnore, - )), - this._configuration.eventsToIgnore instanceof Set - ? this._configuration.eventsToIgnore - : e.EVENTS_TO_IGNORE_DEFAULT - ); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'highPriorityIndirectEvents', { - get: function () { - return ( - t._POSignalsUtils.Util.isArray(this._configuration.highPriorityIndirectEvents) && - (this._configuration.highPriorityIndirectEvents = new Set( - this._configuration.highPriorityIndirectEvents, - )), - this._configuration.highPriorityIndirectEvents instanceof Set - ? this._configuration.highPriorityIndirectEvents - : e.HIGH_PRIORITY_INDIRECT_EVENTS_DEFAULT - ); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'indirectIntervalMillis', { - get: function () { - return 'number' == typeof this._configuration.indirectIntervalMillis && - this._configuration.indirectIntervalMillis > 0 - ? this._configuration.indirectIntervalMillis - : e.INDIRECT_INTERVAL_MILLIS_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'mouseIntervalMillis', { - get: function () { - return 'number' == typeof this._configuration.mouseIntervalMillis && - this._configuration.mouseIntervalMillis > 0 - ? this._configuration.mouseIntervalMillis - : e.MOUSE_INTERVAL_MILLIS_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'mouseIdleTimeoutMillis', { - get: function () { - return 'number' == typeof this._configuration.mouseIdleTimeoutMillis && - this._configuration.mouseIdleTimeoutMillis > 0 - ? this._configuration.mouseIdleTimeoutMillis - : e.MOUSE_IDLE_TIMEOUT_MILLIS_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'maxMouseEvents', { - get: function () { - return 'number' == typeof this._configuration.maxMouseEvents && - this._configuration.maxMouseEvents >= 0 - ? this._configuration.maxMouseEvents - : e.MAX_MOUSE_EVENTS_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'maxIndirectEvents', { - get: function () { - return 'number' == typeof this._configuration.maxIndirectEvents && - this._configuration.maxIndirectEvents >= 0 - ? this._configuration.maxIndirectEvents - : e.MAX_INDIRECT_EVENTS_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'keyboardFieldBlackList', { - get: function () { - return ( - t._POSignalsUtils.Util.isArray(this._configuration.keyboardFieldBlackList) && - (this._configuration.keyboardFieldBlackList = new Set( - this._configuration.keyboardFieldBlackList, - )), - this._configuration.keyboardFieldBlackList instanceof Set - ? this._configuration.keyboardFieldBlackList - : e.KEYBOARD_FIELD_BLACK_LIST_DEFAULT - ); - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'keyboardCssSelectors', { - get: function () { - return this._configuration.keyboardCssSelectors - ? this._configuration.keyboardCssSelectors - : e.KEYBOARD_CSS_SELECTORS_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'keyboardCssSelectorsBlacklist', { - get: function () { - return t._POSignalsUtils.Util.isArray( - this._configuration.keyboardCssSelectorsBlacklist, - ) - ? this._configuration.keyboardCssSelectorsBlacklist - : e.KEYBOARD_CSS_SELECTORS_BLACKLIST_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'keyboardIdentifierAttributes', { - get: function () { - return t._POSignalsUtils.Util.isArray( - this._configuration.keyboardIdentifierAttributes, - ) - ? this._configuration.keyboardIdentifierAttributes - : e.KEYBOARD_IDENTIFIER_ATTRIBUTES_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'remoteTags', { - get: function () { - return this._configuration.remoteTags - ? this._configuration.remoteTags - : e.REMOTE_TAGS_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'maxSelectorChildren', { - get: function () { - return 'number' == typeof this._configuration.maxSelectorChildren && - this._configuration.maxSelectorChildren > 0 - ? this._configuration.maxSelectorChildren - : e.MAX_SELECTOR_CHILDREN_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'eventsReduceFactorMap', { - get: function () { - return this._configuration.eventsReduceFactorMap - ? this._configuration.eventsReduceFactorMap - : e.EVENTS_REDUCE_FACTOR_MAP_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'propertyDescriptors', { - get: function () { - return this._configuration.propertyDescriptors - ? this._configuration.propertyDescriptors - : e.PROPERTY_DESCRIPTORS_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'additionalMediaCodecs', { - get: function () { - return this._configuration.additionalMediaCodecs - ? this._configuration.additionalMediaCodecs - : e.ADDITIONAL_MEDIA_CODECS_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'fingerprintTimeoutMillis', { - get: function () { - return 'number' == typeof this._configuration.fingerprintTimeoutMillis && - this._configuration.fingerprintTimeoutMillis > 0 - ? this._configuration.fingerprintTimeoutMillis - : e.FINGER_PRINT_TIMEOUT_MILLIS_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'metadataDataPoints', { - get: function () { - return this._configuration.metadataDataPoints - ? this._configuration.metadataDataPoints - : e.METADATA_DATA_POINTS_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'uiModelingBlacklistRegex', { - get: function () { - var t; - return 'string' == - typeof (null === (t = this._configuration.uiModeling) || void 0 === t - ? void 0 - : t.blacklistRegex) - ? this._configuration.uiModeling.blacklistRegex - : e.UI_MODELING_CONFIG_DEFAULT.blacklistRegex; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'uiModelingElementFilters', { - get: function () { - var t; - return ( - null === (t = this._configuration.uiModeling) || void 0 === t - ? void 0 - : t.uiElementFilters - ) - ? this._configuration.uiModeling.uiElementFilters - : e.UI_MODELING_CONFIG_DEFAULT.uiElementFilters; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'uiModelingMaxMatchingParents', { - get: function () { - var t; - return 'number' == - typeof (null === (t = this._configuration.uiModeling) || void 0 === t - ? void 0 - : t.maxMatchingParents) - ? this._configuration.uiModeling.maxMatchingParents - : e.UI_MODELING_CONFIG_DEFAULT.maxMatchingParents; - }, - enumerable: !1, - configurable: !0, - }), - Object.defineProperty(e.prototype, 'uiControlsConfig', { - get: function () { - return t._POSignalsUtils.Util.isArray(this._configuration.uiControl) - ? this._configuration.uiControl - : e.UI_CONTROL_LIST_DEFAULT; - }, - enumerable: !1, - configurable: !0, - }), - (e.ENABLED_DEFAULT = !0), - (e.BUFFER_SIZE_DEFAULT = 4), - (e.MAX_SNAPSHOTS_COUNT_DEFAULT = 500), - (e.METADATA_BLACK_LIST_DEFAULT = []), - (e.TAGS_BLACK_LIST_REGEX_DEFAULT = ''), - (e.BEHAVIORAL_BLACK_LIST_DEFAULT = {}), - (e.WEB_RTC_URL_DEFAULT = ''), - (e.EVENTS_BLACK_LIST_DEFAULT = new Set()), - (e.EVENTS_TO_IGNORE_DEFAULT = new Set([ - 'pointerover', - 'pointerenter', - 'pointerdown', - 'pointermove', - 'pointerup', - 'pointercancel', - 'pointerout', - 'pointerleave', - 'dragstart', - 'dragexit', - 'drop', - 'dragend', - ])), - (e.MAX_INDIRECT_EVENTS_DEFAULT = 15), - (e.HIGH_PRIORITY_INDIRECT_EVENTS_DEFAULT = new Set([ - 'copy', - 'cut', - 'paste', - 'resize', - 'orientationchange', - 'languagechange', - 'submit', - 'select', - ])), - (e.INDIRECT_INTERVAL_MILLIS_DEFAULT = 1e3), - (e.MOUSE_INTERVAL_MILLIS_DEFAULT = 1e3), - (e.MOUSE_IDLE_TIMEOUT_MILLIS_DEFAULT = 1e3), - (e.MAX_MOUSE_EVENTS_DEFAULT = 500), - (e.KEYBOARD_FIELD_BLACK_LIST_DEFAULT = new Set()), - (e.KEYBOARD_CSS_SELECTORS_DEFAULT = {}), - (e.KEYBOARD_CSS_SELECTORS_BLACKLIST_DEFAULT = []), - (e.KEYBOARD_IDENTIFIER_ATTRIBUTES_DEFAULT = [ - 'data-selenium', - 'data-selenium-id', - 'data-testid', - 'data-test-id', - 'data-qa-id', - 'data-id', - 'id', - ]), - (e.REMOTE_TAGS_DEFAULT = { - dv_form_submit: { selector: '[data-skbuttontype="form-submit"]' }, - login_attempt_email_domain: { - selector: '[data-st-tag="login.login_attempt"]', - operation: 'email_domain', - valueSelector: '[data-st-field="username"]', - valueMandatory: !0, - }, - login_attempt_hash: { - selector: '[data-st-tag="login.login_attempt"]', - operation: 'obfuscate', - valueSelector: '[data-st-field="username"]', - valueMandatory: !0, - }, - login_attempt_length: { - selector: '[data-st-tag="login.login_attempt"]', - operation: 'length', - valueSelector: '[data-st-field="username"]', - valueMandatory: !0, - }, - registration_attempt_email_domain: { - selector: '[data-st-tag="registration.registration_attempt"]', - operation: 'email_domain', - valueSelector: '[data-st-field="username"]', - valueMandatory: !0, - }, - registration_attempt_hash: { - selector: '[data-st-tag="registration.registration_attempt"]', - operation: 'obfuscate', - valueSelector: '[data-st-field="username"]', - valueMandatory: !0, - }, - registration_attempt_length: { - selector: '[data-st-tag="registration.registration_attempt"]', - operation: 'length', - valueSelector: '[data-st-field="username"]', - valueMandatory: !0, - }, - }), - (e.MAX_SELECTOR_CHILDREN_DEFAULT = 2), - (e.EVENTS_REDUCE_FACTOR_MAP_DEFAULT = {}), - (e.PROPERTY_DESCRIPTORS_DEFAULT = { - chrome: ['app', 'csi', 'loadtimes', 'runtime'], - navigator: ['webdriver'], - Navigator: ['languages', 'hardwareConcurrency'], - window: ['outerWidth', 'outerHeight'], - Screen: ['width', 'height'], - }), - (e.ADDITIONAL_MEDIA_CODECS_DEFAULT = {}), - (e.FINGER_PRINT_TIMEOUT_MILLIS_DEFAULT = 3e3), - (e.METADATA_DATA_POINTS_DEFAULT = {}), - (e.UI_CONTROL_LIST_DEFAULT = []), - (e.UI_MODELING_CONFIG_DEFAULT = { - blacklistRegex: '', - uiElementFilters: { text: { maxLength: 25 }, placeholder: { maxLength: 25 } }, - maxMatchingParents: 2, - }), - (e.SENSORS_DEFAULT = { maxSensorSamples: 1, sensorsDeltaInMillis: 0 }), - e - ); - })(); - t.PointerParams = e; - })(_POSignalsEntities || (_POSignalsEntities = {})); - window._POSignalsEntities = _POSignalsEntities; - window._pingOneSignals = _pingOneSignals; -} -// Ping Identity INC. -// � ALL RIGHTS RESERVED -//Build: 563 Wed May 01 2024 10:49:20 GMT+0000 (Coordinated Universal Time) diff --git a/packages/ping-protect/tsconfig.json b/packages/ping-protect/tsconfig.json deleted file mode 100644 index 999bce7c5..000000000 --- a/packages/ping-protect/tsconfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "module": "ES2020", - "forceConsistentCasingInFileNames": true, - "strict": true, - "noImplicitOverride": false, - "noPropertyAccessFromIndexSignature": false, - "skipLibCheck": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "types": [ - "vitest/globals", - "vitest/importMeta", - "vite/client", - "node", - "vitest" - ] - }, - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.lib.json" - }, - { - "path": "./tsconfig.spec.json" - } - ] -} diff --git a/packages/ping-protect/tsconfig.lib.json b/packages/ping-protect/tsconfig.lib.json deleted file mode 100644 index a64c903c9..000000000 --- a/packages/ping-protect/tsconfig.lib.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/packages/javascript-sdk", - "sourceMap": true, - "noPropertyAccessFromIndexSignature": false, - "lib": ["DOM", "DOM.Iterable", "es2023"], - "module": "ES2020", - "target": "ES2020", - "declaration": true, - "declarationMap": true, - "strict": true, - "esModuleInterop": true, - "skipLibCheck": true, - "moduleResolution": "Bundler" - }, - "include": ["src/**/*.ts", "src/lib/ping-signals-sdk.js"], - "files": [], - "exclude": [ - "vitest.config.ts", - "vitest.setup.ts", - "tsconfig*.json", - "project.json", - ".eslintrc", - "src/**/*.test.ts" - ] -} diff --git a/packages/ping-protect/tsconfig.spec.json b/packages/ping-protect/tsconfig.spec.json deleted file mode 100644 index 6ab1469ef..000000000 --- a/packages/ping-protect/tsconfig.spec.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/packages/ping-protect", - "sourceMap": true, - "noPropertyAccessFromIndexSignature": false, - "lib": ["DOM", "DOM.Iterable", "es2023"], - "module": "Node16", - "target": "ES2020", - "declaration": true, - "declarationMap": true, - "strict": true, - "esModuleInterop": true, - "skipLibCheck": true, - "moduleResolution": "Node16", - "types": ["node", "vitest", "vitest/client"] - }, - "include": [ - "vite.config.ts", - "src/**/*.test.ts", - "src/**/*.spec.ts", - "src/**/*.test.tsx", - "src/**/*.spec.tsx", - "src/**/*.test.js", - "src/**/*.spec.js", - "src/**/*.test.jsx", - "src/**/*.spec.jsx", - "src/**/*.d.ts" - ] -} diff --git a/packages/ping-protect/typedoc.json b/packages/ping-protect/typedoc.json deleted file mode 100644 index b10d8a660..000000000 --- a/packages/ping-protect/typedoc.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "entryPointStrategy": "expand", - "entryPoints": ["./src/index.ts"], - "tsconfig": "tsconfig.lib.json", - "compilerOptions": {}, - "exclude": [ - "**/*.(spec|test|e2e).ts", - "**/*.mock.*", - "**/*.data.*", - "docs/**", - "tests/**", - "specs/**", - "spec/**", - "test/**" - ], - "externalPattern": ["**/node_modules/**"], - "excludeExternals": true, - "excludeInternal": false, - "excludePrivate": false, - "excludeProtected": false, - "excludeNotDocumented": false, - "externalSymbolLinkMappings": {}, - "out": "./docs", - "emit": "docs", - "theme": "typedoc-github-theme", - "name": "ping-protect", - "includeVersion": true, - "readme": "./README.md", - "disableSources": false, - "excludeTags": [], - "cname": "", - "sourceLinkTemplate": "", - "gitRevision": "master", - "gitRemote": "origin", - "lang": "en", - "githubPages": true, - "hideGenerator": true, - "searchInComments": false, - "cleanOutputDir": true, - "titleLink": "", - "navigationLinks": {}, - "sidebarLinks": {}, - "commentStyle": "all", - "categorizeByGroup": true, - "defaultCategory": "Other", - "categoryOrder": [], - "sort": ["visibility", "required-first", "source-order"], - "visibilityFilters": { - "protected": true, - "private": true, - "inherited": true, - "external": true - }, - "searchCategoryBoosts": {}, - "searchGroupBoosts": {}, - "preserveWatchOutput": false, - "skipErrorChecking": false, - "validation": { - "notExported": true, - "invalidLink": true, - "notDocumented": true - }, - "requiredToBeDocumented": [], - "treatWarningsAsErrors": false, - "intentionallyNotExported": [], - "logLevel": "Verbose", - "plugin": ["typedoc-plugin-rename-defaults", "typedoc-github-theme"] -} diff --git a/packages/ping-protect/vite.config.ts b/packages/ping-protect/vite.config.ts deleted file mode 100644 index e013bcdfc..000000000 --- a/packages/ping-protect/vite.config.ts +++ /dev/null @@ -1,52 +0,0 @@ -/// -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/ping-protect', - build: { - lib: { - entry: 'src/index.ts', - name: 'ping-protect', - formats: ['es'], - fileName: (extension, filename) => `${filename}.js`, - }, - rollupOptions: { - external: ['@forgerock/javascript-sdk'], - output: { - dir: './dist', - preserveModules: true, - preserveModulesRoot: 'src', - }, - }, - }, - plugins: [ - dts({ - declarationOnly: false, - rollupTypes: true, - entryRoot: 'src', - tsconfigPath: './tsconfig.lib.json', - }), - ], - test: { - reporters: ['default'], - globals: true, - setupFiles: ['./vitest.setup.ts'], - watch: !process.env['CI'], - coverage: { - reporter: ['text', 'json', 'html'], - enabled: Boolean(process.env['CI']), - reportsDirectory: './coverage', - provider: 'v8', - }, - deps: { - optimizer: { - web: { - include: ['vitest-canvas-mock'], - }, - }, - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, -}); diff --git a/packages/ping-protect/vitest.setup.ts b/packages/ping-protect/vitest.setup.ts deleted file mode 100644 index 644736e02..000000000 --- a/packages/ping-protect/vitest.setup.ts +++ /dev/null @@ -1 +0,0 @@ -import 'vitest-canvas-mock'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2092bad50..7ff2b2271 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -62,33 +62,15 @@ importers: '@nx/devkit': specifier: 20.2.2 version: 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) - '@nx/esbuild': - specifier: 20.2.2 - version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(esbuild@0.19.12)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) '@nx/eslint': specifier: 20.2.2 version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(verdaccio@5.30.3(typanion@3.14.0)) '@nx/eslint-plugin': specifier: 20.2.2 version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.6.3))(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - '@nx/express': - specifier: 20.2.2 - version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(express@4.21.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) '@nx/js': specifier: 20.2.2 version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - '@nx/node': - specifier: 20.2.2 - version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - '@nx/playwright': - specifier: 20.2.2 - version: 20.2.2(@babel/traverse@7.24.1)(@playwright/test@1.47.2)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(esbuild@0.19.12)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0)) - '@nx/vite': - specifier: 20.2.2 - version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0)) - '@nx/web': - specifier: 20.2.2 - version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) '@nx/workspace': specifier: 20.2.2 version: 20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)) @@ -125,9 +107,6 @@ importers: '@typescript-eslint/utils': specifier: ^8.13.0 version: 8.18.0(eslint@8.57.0)(typescript@5.6.3) - '@vitejs/plugin-basic-ssl': - specifier: 1.1.0 - version: 1.1.0(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0)) '@vitest/coverage-v8': specifier: ^1.5.0 version: 1.5.0(vitest@1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0)) @@ -137,12 +116,6 @@ importers: conventional-changelog-conventionalcommits: specifier: ^7.0.2 version: 7.0.2 - cookie-parser: - specifier: ^1.4.6 - version: 1.4.6 - cors: - specifier: ^2.8.5 - version: 2.8.5 cz-conventional-changelog: specifier: ^3.3.0 version: 3.3.0(@types/node@22.10.2)(typescript@5.6.3) @@ -158,9 +131,6 @@ importers: effect-http-node: specifier: ^0.16.1 version: 0.16.1(@effect/platform-node@0.53.26(@effect/platform@0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(effect@3.5.3))(@effect/platform@0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(@effect/schema@0.68.23(effect@3.5.3))(effect-http@0.73.0(@effect/platform@0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(effect@3.5.3) - esbuild: - specifier: ^0.19.2 - version: 0.19.12 eslint: specifier: 8.57.0 version: 8.57.0 @@ -194,9 +164,6 @@ importers: lint-staged: specifier: ^13.2.2 version: 13.3.0(enquirer@2.3.6) - mkcert: - specifier: ^3.2.0 - version: 3.2.0 npm-cli-login: specifier: ^1.0.0 version: 1.0.0 @@ -212,18 +179,12 @@ importers: pretty-quick: specifier: ^4.0.0 version: 4.0.0(prettier@3.2.5) - sass: - specifier: ^1.71.1 - version: 1.75.0 shx: specifier: ^0.3.4 version: 0.3.4 - superagent: - specifier: ^8.1.2 - version: 8.1.2 swc-loader: specifier: 0.1.15 - version: 0.1.15(@swc/core@1.5.7(@swc/helpers@0.5.12))(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) + version: 0.1.15(@swc/core@1.5.7(@swc/helpers@0.5.12))(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))) ts-node: specifier: 10.9.1 version: 10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3) @@ -242,9 +203,6 @@ importers: typescript: specifier: 5.6.3 version: 5.6.3 - uuid: - specifier: ^9.0.1 - version: 9.0.1 verdaccio: specifier: ^5.29.2 version: 5.30.3(typanion@3.14.0) @@ -270,23 +228,6 @@ importers: specifier: ^0.3.3 version: 0.3.3(vitest@1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0)) - e2e/autoscript-apps: - dependencies: - '@forgerock/device-client': - specifier: workspace:* - version: link:../../packages/device-client - '@forgerock/javascript-sdk': - specifier: 4.6.0 - version: 4.6.0 - '@forgerock/ping-protect': - specifier: workspace:* - version: link:../../packages/ping-protect - rxjs: - specifier: ^7.4.0 - version: 7.8.1 - - e2e/autoscript-suites: {} - e2e/davinci-app: dependencies: '@forgerock/davinci-client': @@ -298,8 +239,6 @@ importers: e2e/davinci-suites: {} - e2e/mock-api: {} - e2e/mock-api-v2: dependencies: '@effect/platform': @@ -314,9 +253,6 @@ importers: effect-http-node: specifier: ^0.16.1 version: 0.16.1(@effect/platform-node@0.53.26(@effect/platform@0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(effect@3.5.3))(@effect/platform@0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(@effect/schema@0.68.23(effect@3.5.3))(effect-http@0.73.0(@effect/platform@0.58.27(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(@effect/schema@0.68.23(effect@3.5.3))(effect@3.5.3))(effect@3.5.3) - esbuild: - specifier: ^0.14.10 - version: 0.14.54 packages/davinci-client: dependencies: @@ -353,12 +289,6 @@ importers: specifier: ^1.4.0 version: 1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) - packages/ping-protect: - dependencies: - '@forgerock/javascript-sdk': - specifier: 4.6.0 - version: 4.6.0 - packages: '@aashutoshrathi/word-wrap@1.2.6': resolution: @@ -664,14 +594,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-bigint@7.8.3': - resolution: - { - integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, - } - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-class-properties@7.12.13': resolution: { @@ -1718,15 +1640,6 @@ packages: integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==, } - '@esbuild/aix-ppc64@0.19.12': - resolution: - { - integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==, - } - engines: { node: '>=12' } - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.21.5': resolution: { @@ -1736,15 +1649,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.19.12': - resolution: - { - integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==, - } - engines: { node: '>=12' } - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.21.5': resolution: { @@ -1754,15 +1658,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.19.12': - resolution: - { - integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==, - } - engines: { node: '>=12' } - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.21.5': resolution: { @@ -1772,15 +1667,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.19.12': - resolution: - { - integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.21.5': resolution: { @@ -1790,15 +1676,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.19.12': - resolution: - { - integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==, - } - engines: { node: '>=12' } - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.21.5': resolution: { @@ -1808,15 +1685,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.19.12': - resolution: - { - integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.21.5': resolution: { @@ -1826,15 +1694,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.19.12': - resolution: - { - integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==, - } - engines: { node: '>=12' } - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.21.5': resolution: { @@ -1844,15 +1703,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.12': - resolution: - { - integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': resolution: { @@ -1862,15 +1712,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.19.12': - resolution: - { - integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==, - } - engines: { node: '>=12' } - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.21.5': resolution: { @@ -1880,15 +1721,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.19.12': - resolution: - { - integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==, - } - engines: { node: '>=12' } - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.21.5': resolution: { @@ -1898,15 +1730,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.19.12': - resolution: - { - integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==, - } - engines: { node: '>=12' } - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.21.5': resolution: { @@ -1916,24 +1739,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.14.54': - resolution: - { - integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, - } - engines: { node: '>=12' } - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.19.12': - resolution: - { - integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==, - } - engines: { node: '>=12' } - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.21.5': resolution: { @@ -1943,15 +1748,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.19.12': - resolution: - { - integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==, - } - engines: { node: '>=12' } - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.21.5': resolution: { @@ -1961,15 +1757,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.19.12': - resolution: - { - integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==, - } - engines: { node: '>=12' } - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.21.5': resolution: { @@ -1979,15 +1766,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.19.12': - resolution: - { - integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==, - } - engines: { node: '>=12' } - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.21.5': resolution: { @@ -1997,15 +1775,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.19.12': - resolution: - { - integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==, - } - engines: { node: '>=12' } - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.21.5': resolution: { @@ -2015,15 +1784,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.19.12': - resolution: - { - integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.21.5': resolution: { @@ -2033,15 +1793,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.19.12': - resolution: - { - integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': resolution: { @@ -2051,15 +1802,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.19.12': - resolution: - { - integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': resolution: { @@ -2069,15 +1811,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.19.12': - resolution: - { - integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.21.5': resolution: { @@ -2087,15 +1820,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.19.12': - resolution: - { - integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==, - } - engines: { node: '>=12' } - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.21.5': resolution: { @@ -2105,15 +1829,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.19.12': - resolution: - { - integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==, - } - engines: { node: '>=12' } - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.21.5': resolution: { @@ -2123,15 +1838,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.19.12': - resolution: - { - integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.21.5': resolution: { @@ -2285,13 +1991,6 @@ packages: } engines: { node: '>=12' } - '@istanbuljs/load-nyc-config@1.1.0': - resolution: - { - integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, - } - engines: { node: '>=8' } - '@istanbuljs/schema@0.1.3': resolution: { @@ -2299,216 +1998,94 @@ packages: } engines: { node: '>=8' } - '@jest/console@29.7.0': + '@jest/schemas@29.6.3': resolution: { - integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==, + integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/environment@29.7.0': + '@jridgewell/gen-mapping@0.3.5': resolution: { - integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==, + integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + engines: { node: '>=6.0.0' } - '@jest/expect-utils@29.7.0': + '@jridgewell/resolve-uri@3.1.2': resolution: { - integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==, + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + engines: { node: '>=6.0.0' } - '@jest/expect@29.7.0': + '@jridgewell/set-array@1.2.1': resolution: { - integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==, + integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + engines: { node: '>=6.0.0' } - '@jest/fake-timers@29.7.0': + '@jridgewell/source-map@0.3.6': resolution: { - integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==, + integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/globals@29.7.0': + '@jridgewell/sourcemap-codec@1.5.0': resolution: { - integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==, + integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/reporters@29.7.0': + '@jridgewell/trace-mapping@0.3.25': resolution: { - integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==, + integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - '@jest/schemas@29.6.3': + '@jridgewell/trace-mapping@0.3.9': resolution: { - integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, + integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/source-map@29.6.3': + '@js-sdsl/ordered-map@4.4.2': resolution: { - integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==, + integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/test-result@29.7.0': + '@jsep-plugin/assignment@1.3.0': resolution: { - integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==, + integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + engines: { node: '>= 10.16.0' } + peerDependencies: + jsep: ^0.4.0||^1.0.0 - '@jest/test-sequencer@29.7.0': + '@jsep-plugin/regex@1.0.4': resolution: { - integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==, + integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + engines: { node: '>= 10.16.0' } + peerDependencies: + jsep: ^0.4.0||^1.0.0 - '@jest/transform@29.7.0': + '@kubernetes/client-node@1.0.0-rc3': resolution: { - integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==, + integrity: sha512-bTYMBZXVrjfi98N5EZbrmPtcT9NY+TddunSEc25DcsRF1c5c93e5jT+zFwId19hG8e/ue5deKe7YDQiRYFpMlQ==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - '@jest/types@29.6.3': + '@ljharb/through@2.3.13': resolution: { - integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==, + integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - '@jridgewell/gen-mapping@0.3.5': - resolution: - { - integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==, - } - engines: { node: '>=6.0.0' } - - '@jridgewell/resolve-uri@3.1.2': - resolution: - { - integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, - } - engines: { node: '>=6.0.0' } - - '@jridgewell/set-array@1.2.1': - resolution: - { - integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, - } - engines: { node: '>=6.0.0' } - - '@jridgewell/source-map@0.3.6': - resolution: - { - integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==, - } - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: - { - integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, - } - - '@jridgewell/trace-mapping@0.3.25': - resolution: - { - integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, - } - - '@jridgewell/trace-mapping@0.3.9': - resolution: - { - integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, - } - - '@js-sdsl/ordered-map@4.4.2': - resolution: - { - integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==, - } - - '@jsep-plugin/assignment@1.3.0': - resolution: - { - integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==, - } - engines: { node: '>= 10.16.0' } - peerDependencies: - jsep: ^0.4.0||^1.0.0 - - '@jsep-plugin/regex@1.0.4': - resolution: - { - integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==, - } - engines: { node: '>= 10.16.0' } - peerDependencies: - jsep: ^0.4.0||^1.0.0 - - '@jsonjoy.com/base64@1.1.2': - resolution: - { - integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==, - } - engines: { node: '>=10.0' } - peerDependencies: - tslib: '2' - - '@jsonjoy.com/json-pack@1.1.0': - resolution: - { - integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==, - } - engines: { node: '>=10.0' } - peerDependencies: - tslib: '2' - - '@jsonjoy.com/util@1.3.0': - resolution: - { - integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==, - } - engines: { node: '>=10.0' } - peerDependencies: - tslib: '2' - - '@kubernetes/client-node@1.0.0-rc3': - resolution: - { - integrity: sha512-bTYMBZXVrjfi98N5EZbrmPtcT9NY+TddunSEc25DcsRF1c5c93e5jT+zFwId19hG8e/ue5deKe7YDQiRYFpMlQ==, - } - - '@leichtgewicht/ip-codec@2.0.5': - resolution: - { - integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==, - } - - '@ljharb/through@2.3.13': - resolution: - { - integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==, - } - engines: { node: '>= 0.4' } + engines: { node: '>= 0.4' } '@manypkg/find-root@1.1.0': resolution: @@ -2595,17 +2172,6 @@ packages: peerDependencies: nx: '>= 19 <= 21' - '@nx/esbuild@20.2.2': - resolution: - { - integrity: sha512-R6mwMFBboJOUJ+ioRbQ0u4U5eyOZXAkuQcAoN4LlLtwMtWvg8YPtSb24N8SDLO2yXHlEEBNC3NtzzU24a8CR5A==, - } - peerDependencies: - esbuild: ~0.19.2 - peerDependenciesMeta: - esbuild: - optional: true - '@nx/eslint-plugin@20.2.2': resolution: { @@ -2630,23 +2196,6 @@ packages: '@zkochan/js-yaml': optional: true - '@nx/express@20.2.2': - resolution: - { - integrity: sha512-rP9s10yYizeM7bx52NE2czSrRCPwekVoJXtRfDNoI5Mtjt9E/+Fay1PlnkdPWtuiTPf4DJvM/tTxRnXOES4EJw==, - } - peerDependencies: - express: '>=4.20.0' - peerDependenciesMeta: - express: - optional: true - - '@nx/jest@20.2.2': - resolution: - { - integrity: sha512-czZprpiVAZQKixpib1Vphi3Aoh5qBr7KATgP7+P0ogDTrxd7sivCFDM8wZeilhdTfx85wsR0viOtLVm6D3RTLA==, - } - '@nx/js@20.2.2': resolution: { @@ -2658,12 +2207,6 @@ packages: verdaccio: optional: true - '@nx/node@20.2.2': - resolution: - { - integrity: sha512-nZGtozEvKccFAjRPlHOe8LgPeBrGi/gHOqig0B16J91dcgZu/2GWp81BiX1TDEz/f2CL1BwvApXAgkztuXuiBA==, - } - '@nx/nx-darwin-arm64@20.2.2': resolution: { @@ -2754,38 +2297,6 @@ packages: cpu: [x64] os: [win32] - '@nx/playwright@20.2.2': - resolution: - { - integrity: sha512-vCIKU0XVo74C7OqCxZBNlZXshYbyTDxDuOIEbxdO8JMyFnHeyg91Z5ezxwHvIpxzwyFX1pdNz6W++RETTXYUTw==, - } - peerDependencies: - '@playwright/test': ^1.36.0 - peerDependenciesMeta: - '@playwright/test': - optional: true - - '@nx/vite@20.2.2': - resolution: - { - integrity: sha512-PckVgTNPkOr2E752L4EEZv7C/Twtx/vuGBpfVw58f7rVuz6hpVFnMTm4eqatImsBmNoHCpHrJ3rJTT1ov45gUQ==, - } - peerDependencies: - vite: ^5.0.0 - vitest: ^1.3.1 || ^2.0.0 - - '@nx/web@20.2.2': - resolution: - { - integrity: sha512-Z1MEKv3rEvs4W0h1Ltvh66VtJ29YZ+RWuLWzPebf8K1z9818RbXR3FpMiM1edkHyaykeQeJcK6D5aIHPwti/Bg==, - } - - '@nx/webpack@20.2.2': - resolution: - { - integrity: sha512-hlt9L24rvk7xrgD2BnLxMqOWeoV5DsF0ZJc05EbIMuM8yg03agsC79Rq1gaRoM3uIhCb+CxW0mlQpcVKnPXMUw==, - } - '@nx/workspace@20.2.2': resolution: { @@ -2952,14 +2463,6 @@ packages: } engines: { node: '>=14' } - '@phenomnomnominal/tsquery@5.0.1': - resolution: - { - integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==, - } - peerDependencies: - typescript: ^3 || ^4 || ^5 - '@pkgjs/parseargs@0.11.0': resolution: { @@ -3337,18 +2840,6 @@ packages: } engines: { node: '>=14.16' } - '@sinonjs/commons@3.0.1': - resolution: - { - integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==, - } - - '@sinonjs/fake-timers@10.3.0': - resolution: - { - integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==, - } - '@swc-node/core@1.13.3': resolution: { @@ -3521,13 +3012,6 @@ packages: integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==, } - '@trysound/sax@0.2.0': - resolution: - { - integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, - } - engines: { node: '>=10.13.0' } - '@tsconfig/node10@1.0.11': resolution: { @@ -3564,42 +3048,12 @@ packages: integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==, } - '@types/babel__core@7.20.5': - resolution: - { - integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, - } - - '@types/babel__generator@7.6.8': - resolution: - { - integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==, - } - - '@types/babel__template@7.4.4': - resolution: - { - integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, - } - - '@types/babel__traverse@7.20.6': - resolution: - { - integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==, - } - '@types/body-parser@1.19.5': resolution: { integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==, } - '@types/bonjour@3.5.13': - resolution: - { - integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==, - } - '@types/cacheable-request@6.0.3': resolution: { @@ -3612,12 +3066,6 @@ packages: integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==, } - '@types/connect-history-api-fallback@1.5.4': - resolution: - { - integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==, - } - '@types/connect@3.4.38': resolution: { @@ -3666,18 +3114,6 @@ packages: integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==, } - '@types/express@4.17.21': - resolution: - { - integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==, - } - - '@types/graceful-fs@4.1.9': - resolution: - { - integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==, - } - '@types/hast@3.0.4': resolution: { @@ -3696,30 +3132,6 @@ packages: integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==, } - '@types/http-proxy@1.17.15': - resolution: - { - integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==, - } - - '@types/istanbul-lib-coverage@2.0.6': - resolution: - { - integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==, - } - - '@types/istanbul-lib-report@3.0.3': - resolution: - { - integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==, - } - - '@types/istanbul-reports@3.0.4': - resolution: - { - integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==, - } - '@types/js-yaml@4.0.9': resolution: { @@ -3768,12 +3180,6 @@ packages: integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==, } - '@types/node-forge@1.3.11': - resolution: - { - integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==, - } - '@types/node@12.20.55': resolution: { @@ -3822,42 +3228,18 @@ packages: integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, } - '@types/retry@0.12.2': - resolution: - { - integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==, - } - '@types/send@0.17.4': resolution: { integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==, } - '@types/serve-index@1.9.4': - resolution: - { - integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==, - } - '@types/serve-static@1.15.7': resolution: { integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==, } - '@types/sockjs@0.3.36': - resolution: - { - integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==, - } - - '@types/stack-utils@2.0.3': - resolution: - { - integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==, - } - '@types/statuses@2.0.5': resolution: { @@ -3906,18 +3288,6 @@ packages: integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==, } - '@types/yargs-parser@21.0.3': - resolution: - { - integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, - } - - '@types/yargs@17.0.33': - resolution: - { - integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==, - } - '@typescript-eslint/eslint-plugin@7.16.1': resolution: { @@ -3959,10 +3329,10 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - '@typescript-eslint/scope-manager@8.7.0': + '@typescript-eslint/scope-manager@8.18.1': resolution: { - integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==, + integrity: sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -3979,17 +3349,15 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.7.0': + '@typescript-eslint/type-utils@8.18.1': resolution: { - integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==, + integrity: sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/types@5.59.5': resolution: @@ -4012,10 +3380,10 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - '@typescript-eslint/types@8.7.0': + '@typescript-eslint/types@8.18.1': resolution: { - integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==, + integrity: sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -4052,17 +3420,14 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/typescript-estree@8.7.0': + '@typescript-eslint/typescript-estree@8.18.1': resolution: { - integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==, + integrity: sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/utils@7.16.1': resolution: @@ -4083,14 +3448,15 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.7.0': + '@typescript-eslint/utils@8.18.1': resolution: { - integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==, + integrity: sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/visitor-keys@5.59.5': resolution: @@ -4113,10 +3479,10 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - '@typescript-eslint/visitor-keys@8.7.0': + '@typescript-eslint/visitor-keys@8.18.1': resolution: { - integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==, + integrity: sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -4244,16 +3610,7 @@ packages: } engines: { node: '>=12' } - '@vitejs/plugin-basic-ssl@1.1.0': - resolution: - { - integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==, - } - engines: { node: '>=14.6.0' } - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - - '@vitest/coverage-v8@1.5.0': + '@vitest/coverage-v8@1.5.0': resolution: { integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==, @@ -4565,17 +3922,6 @@ packages: ajv: optional: true - ajv-formats@2.1.1: - resolution: - { - integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, - } - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - ajv-formats@3.0.1: resolution: { @@ -4595,14 +3941,6 @@ packages: peerDependencies: ajv: ^6.9.1 - ajv-keywords@5.1.0: - resolution: - { - integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==, - } - peerDependencies: - ajv: ^8.8.2 - ajv@6.12.6: resolution: { @@ -4648,14 +3986,6 @@ packages: } engines: { node: '>=12' } - ansi-html-community@0.0.8: - resolution: - { - integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==, - } - engines: { '0': node >= 0.8.0 } - hasBin: true - ansi-regex@2.1.1: resolution: { @@ -4797,13 +4127,6 @@ packages: } engines: { node: '>=8' } - array-union@3.0.1: - resolution: - { - integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==, - } - engines: { node: '>=12' } - array.prototype.flat@1.3.2: resolution: { @@ -4825,12 +4148,6 @@ packages: } engines: { node: '>= 0.4' } - asap@2.0.6: - resolution: - { - integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, - } - asn1@0.2.6: resolution: { @@ -4864,12 +4181,6 @@ packages: } engines: { node: '>=8' } - async@2.6.4: - resolution: - { - integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==, - } - async@3.2.4: resolution: { @@ -4902,16 +4213,6 @@ packages: } engines: { node: '>=8.0.0' } - autoprefixer@10.4.20: - resolution: - { - integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==, - } - engines: { node: ^10 || ^12 || >=14 } - hasBin: true - peerDependencies: - postcss: ^8.1.0 - available-typed-arrays@1.0.7: resolution: { @@ -4950,25 +4251,6 @@ packages: integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==, } - babel-jest@29.7.0: - resolution: - { - integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - peerDependencies: - '@babel/core': ^7.8.0 - - babel-loader@9.2.1: - resolution: - { - integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==, - } - engines: { node: '>= 14.15.0' } - peerDependencies: - '@babel/core': ^7.12.0 - webpack: '>=5' - babel-plugin-const-enum@1.2.0: resolution: { @@ -4977,20 +4259,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - babel-plugin-istanbul@6.1.1: - resolution: - { - integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, - } - engines: { node: '>=8' } - - babel-plugin-jest-hoist@29.6.3: - resolution: - { - integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - babel-plugin-macros@2.8.0: resolution: { @@ -5033,23 +4301,6 @@ packages: '@babel/traverse': optional: true - babel-preset-current-node-syntax@1.1.0: - resolution: - { - integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==, - } - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@29.6.3: - resolution: - { - integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - peerDependencies: - '@babel/core': ^7.0.0 - balanced-match@1.0.2: resolution: { @@ -5068,13 +4319,6 @@ packages: integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, } - basic-auth@2.0.1: - resolution: - { - integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==, - } - engines: { node: '>= 0.8' } - basic-ftp@5.0.5: resolution: { @@ -5082,12 +4326,6 @@ packages: } engines: { node: '>=10.0.0' } - batch@0.6.1: - resolution: - { - integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==, - } - bcrypt-pbkdf@1.0.2: resolution: { @@ -5145,12 +4383,6 @@ packages: } engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } - bonjour-service@1.2.1: - resolution: - { - integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==, - } - boolbase@1.0.0: resolution: { @@ -5211,12 +4443,6 @@ packages: } hasBin: true - bser@2.1.1: - resolution: - { - integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, - } - buffer-crc32@0.2.13: resolution: { @@ -5265,13 +4491,6 @@ packages: integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==, } - bundle-name@4.1.0: - resolution: - { - integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==, - } - engines: { node: '>=18' } - byline@5.0.0: resolution: { @@ -5349,20 +4568,6 @@ packages: } engines: { node: '>=6' } - camelcase@5.3.1: - resolution: - { - integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, - } - engines: { node: '>=6' } - - camelcase@6.3.0: - resolution: - { - integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, - } - engines: { node: '>=10' } - camelcase@7.0.1: resolution: { @@ -5377,12 +4582,6 @@ packages: } engines: { node: '>=16' } - caniuse-api@3.0.0: - resolution: - { - integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==, - } - caniuse-lite@1.0.30001663: resolution: { @@ -5423,13 +4622,6 @@ packages: } engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } - char-regex@1.0.2: - resolution: - { - integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==, - } - engines: { node: '>=10' } - chardet@0.7.0: resolution: { @@ -5483,12 +4675,6 @@ packages: } engines: { node: '>=8' } - cjs-module-lexer@1.4.1: - resolution: - { - integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==, - } - cli-boxes@3.0.0: resolution: { @@ -5566,13 +4752,6 @@ packages: } engines: { node: '>=0.8' } - co@4.6.0: - resolution: - { - integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==, - } - engines: { iojs: '>= 1.0.0', node: '>= 0.12.0' } - code-point-at@1.1.0: resolution: { @@ -5580,12 +4759,6 @@ packages: } engines: { node: '>=0.10.0' } - collect-v8-coverage@1.0.2: - resolution: - { - integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==, - } - color-convert@1.9.3: resolution: { @@ -5623,12 +4796,6 @@ packages: integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, } - colord@2.9.3: - resolution: - { - integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==, - } - colorette@2.0.20: resolution: { @@ -5668,13 +4835,6 @@ packages: integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, } - commander@7.2.0: - resolution: - { - integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, - } - engines: { node: '>= 10' } - commitizen@4.3.0: resolution: { @@ -5683,12 +4843,6 @@ packages: engines: { node: '>= 12' } hasBin: true - common-path-prefix@3.0.0: - resolution: - { - integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==, - } - compare-func@2.0.0: resolution: { @@ -5701,12 +4855,6 @@ packages: integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==, } - component-emitter@1.3.1: - resolution: - { - integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==, - } - compress-commons@5.0.3: resolution: { @@ -5766,13 +4914,6 @@ packages: integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==, } - connect-history-api-fallback@2.0.0: - resolution: - { - integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==, - } - engines: { node: '>=0.8' } - console-control-strings@1.1.0: resolution: { @@ -5827,26 +4968,12 @@ packages: integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, } - cookie-parser@1.4.6: - resolution: - { - integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==, - } - engines: { node: '>= 0.8.0' } - cookie-signature@1.0.6: resolution: { integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, } - cookie@0.4.1: - resolution: - { - integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==, - } - engines: { node: '>= 0.6' } - cookie@0.5.0: resolution: { @@ -5861,12 +4988,6 @@ packages: } engines: { node: '>= 0.6' } - cookiejar@2.1.4: - resolution: - { - integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==, - } - cookies@0.9.1: resolution: { @@ -5880,15 +5001,6 @@ packages: integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==, } - copy-webpack-plugin@10.2.4: - resolution: - { - integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==, - } - engines: { node: '>= 12.20.0' } - peerDependencies: - webpack: ^5.1.0 - core-js-compat@3.36.1: resolution: { @@ -5920,13 +5032,6 @@ packages: } engines: { node: '>= 0.10' } - corser@2.0.1: - resolution: - { - integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==, - } - engines: { node: '>= 0.4.0' } - cosmiconfig-typescript-loader@5.0.0: resolution: { @@ -5945,13 +5050,6 @@ packages: } engines: { node: '>=8' } - cosmiconfig@7.1.0: - resolution: - { - integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, - } - engines: { node: '>=10' } - cosmiconfig@9.0.0: resolution: { @@ -5999,78 +5097,12 @@ packages: } engines: { node: '>=12' } - css-declaration-sorter@7.2.0: - resolution: - { - integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==, - } - engines: { node: ^14 || ^16 || >=18 } - peerDependencies: - postcss: ^8.0.9 - - css-loader@6.11.0: - resolution: - { - integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==, - } - engines: { node: '>= 12.13.0' } - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - css-minimizer-webpack-plugin@5.0.1: - resolution: - { - integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==, - } - engines: { node: '>= 14.15.0' } - peerDependencies: - '@parcel/css': '*' - '@swc/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' - lightningcss: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - '@parcel/css': - optional: true - '@swc/css': - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - lightningcss: - optional: true - css-select@5.1.0: resolution: { integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, } - css-tree@2.2.1: - resolution: - { - integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==, - } - engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0' } - - css-tree@2.3.1: - resolution: - { - integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==, - } - engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 } - css-what@6.1.0: resolution: { @@ -6078,54 +5110,12 @@ packages: } engines: { node: '>= 6' } - cssesc@3.0.0: - resolution: - { - integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, - } - engines: { node: '>=4' } - hasBin: true - cssfontparser@1.2.1: resolution: { integrity: sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==, } - cssnano-preset-default@6.1.2: - resolution: - { - integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==, - } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - - cssnano-utils@4.0.2: - resolution: - { - integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==, - } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - - cssnano@6.1.2: - resolution: - { - integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==, - } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - - csso@5.0.5: - resolution: - { - integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==, - } - engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0' } - cssstyle@3.0.0: resolution: { @@ -6279,17 +5269,6 @@ packages: integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==, } - dedent@1.5.3: - resolution: - { - integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==, - } - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - deep-eql@4.1.3: resolution: { @@ -6310,31 +5289,10 @@ packages: integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, } - deepmerge@4.3.1: + defaults@1.0.4: resolution: { - integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, - } - engines: { node: '>=0.10.0' } - - default-browser-id@5.0.0: - resolution: - { - integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==, - } - engines: { node: '>=18' } - - default-browser@5.2.1: - resolution: - { - integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==, - } - engines: { node: '>=18' } - - defaults@1.0.4: - resolution: - { - integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, + integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, } defer-to-connect@2.0.1: @@ -6358,13 +5316,6 @@ packages: } engines: { node: '>=8' } - define-lazy-prop@3.0.0: - resolution: - { - integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, - } - engines: { node: '>=12' } - define-properties@1.2.1: resolution: { @@ -6392,13 +5343,6 @@ packages: integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==, } - depd@1.1.2: - resolution: - { - integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==, - } - engines: { node: '>= 0.6' } - depd@2.0.0: resolution: { @@ -6435,13 +5379,6 @@ packages: engines: { node: '>=0.10' } hasBin: true - detect-newline@3.1.0: - resolution: - { - integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, - } - engines: { node: '>=8' } - detect-node@2.1.0: resolution: { @@ -6455,12 +5392,6 @@ packages: } hasBin: true - dezalgo@1.0.4: - resolution: - { - integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==, - } - diff-sequences@29.6.3: resolution: { @@ -6482,13 +5413,6 @@ packages: } engines: { node: '>=8' } - dns-packet@5.6.1: - resolution: - { - integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==, - } - engines: { node: '>=6' } - doctrine@2.1.0: resolution: { @@ -6684,13 +5608,6 @@ packages: } engines: { node: '>=12' } - emittery@0.13.1: - resolution: - { - integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==, - } - engines: { node: '>=12' } - emoji-regex@8.0.0: resolution: { @@ -6845,202 +5762,6 @@ packages: integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==, } - esbuild-android-64@0.14.54: - resolution: - { - integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [android] - - esbuild-android-arm64@0.14.54: - resolution: - { - integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, - } - engines: { node: '>=12' } - cpu: [arm64] - os: [android] - - esbuild-darwin-64@0.14.54: - resolution: - { - integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [darwin] - - esbuild-darwin-arm64@0.14.54: - resolution: - { - integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, - } - engines: { node: '>=12' } - cpu: [arm64] - os: [darwin] - - esbuild-freebsd-64@0.14.54: - resolution: - { - integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [freebsd] - - esbuild-freebsd-arm64@0.14.54: - resolution: - { - integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, - } - engines: { node: '>=12' } - cpu: [arm64] - os: [freebsd] - - esbuild-linux-32@0.14.54: - resolution: - { - integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, - } - engines: { node: '>=12' } - cpu: [ia32] - os: [linux] - - esbuild-linux-64@0.14.54: - resolution: - { - integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [linux] - - esbuild-linux-arm64@0.14.54: - resolution: - { - integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, - } - engines: { node: '>=12' } - cpu: [arm64] - os: [linux] - - esbuild-linux-arm@0.14.54: - resolution: - { - integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, - } - engines: { node: '>=12' } - cpu: [arm] - os: [linux] - - esbuild-linux-mips64le@0.14.54: - resolution: - { - integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, - } - engines: { node: '>=12' } - cpu: [mips64el] - os: [linux] - - esbuild-linux-ppc64le@0.14.54: - resolution: - { - integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, - } - engines: { node: '>=12' } - cpu: [ppc64] - os: [linux] - - esbuild-linux-riscv64@0.14.54: - resolution: - { - integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, - } - engines: { node: '>=12' } - cpu: [riscv64] - os: [linux] - - esbuild-linux-s390x@0.14.54: - resolution: - { - integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, - } - engines: { node: '>=12' } - cpu: [s390x] - os: [linux] - - esbuild-netbsd-64@0.14.54: - resolution: - { - integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [netbsd] - - esbuild-openbsd-64@0.14.54: - resolution: - { - integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [openbsd] - - esbuild-sunos-64@0.14.54: - resolution: - { - integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [sunos] - - esbuild-windows-32@0.14.54: - resolution: - { - integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, - } - engines: { node: '>=12' } - cpu: [ia32] - os: [win32] - - esbuild-windows-64@0.14.54: - resolution: - { - integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, - } - engines: { node: '>=12' } - cpu: [x64] - os: [win32] - - esbuild-windows-arm64@0.14.54: - resolution: - { - integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, - } - engines: { node: '>=12' } - cpu: [arm64] - os: [win32] - - esbuild@0.14.54: - resolution: - { - integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==, - } - engines: { node: '>=12' } - hasBin: true - - esbuild@0.19.12: - resolution: - { - integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==, - } - engines: { node: '>=12' } - hasBin: true - esbuild@0.21.5: resolution: { @@ -7076,13 +5797,6 @@ packages: } engines: { node: '>=0.8.0' } - escape-string-regexp@2.0.0: - resolution: - { - integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, - } - engines: { node: '>=8' } - escape-string-regexp@4.0.0: resolution: { @@ -7299,12 +6013,6 @@ packages: } engines: { node: '>=6' } - eventemitter3@4.0.7: - resolution: - { - integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, - } - eventemitter3@5.0.1: resolution: { @@ -7346,13 +6054,6 @@ packages: } engines: { node: '>=16.17' } - exit@0.1.2: - resolution: - { - integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==, - } - engines: { node: '>= 0.8.0' } - expand-tilde@2.0.2: resolution: { @@ -7360,13 +6061,6 @@ packages: } engines: { node: '>=0.10.0' } - expect@29.7.0: - resolution: - { - integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - express-rate-limit@5.5.1: resolution: { @@ -7437,13 +6131,6 @@ packages: integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==, } - fast-glob@3.2.7: - resolution: - { - integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==, - } - engines: { node: '>=8' } - fast-glob@3.3.2: resolution: { @@ -7488,19 +6175,6 @@ packages: integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, } - faye-websocket@0.11.4: - resolution: - { - integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==, - } - engines: { node: '>=0.8.0' } - - fb-watchman@2.0.2: - resolution: - { - integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, - } - fd-slicer@1.1.0: resolution: { @@ -7564,13 +6238,6 @@ packages: } engines: { node: '>= 0.8' } - find-cache-dir@4.0.0: - resolution: - { - integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==, - } - engines: { node: '>=14.16' } - find-my-way-ts@0.1.4: resolution: { @@ -7603,13 +6270,6 @@ packages: } engines: { node: '>=10' } - find-up@6.3.0: - resolution: - { - integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - find-up@7.0.0: resolution: { @@ -7681,20 +6341,6 @@ packages: integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==, } - fork-ts-checker-webpack-plugin@7.2.13: - resolution: - { - integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==, - } - engines: { node: '>=12.13.0', yarn: '>=1.0.0' } - peerDependencies: - typescript: '>3.6.0' - vue-template-compiler: '*' - webpack: ^5.11.0 - peerDependenciesMeta: - vue-template-compiler: - optional: true - form-data-encoder@2.1.4: resolution: { @@ -7723,12 +6369,6 @@ packages: } engines: { node: '>= 6' } - formidable@2.1.2: - resolution: - { - integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==, - } - forwarded@0.2.0: resolution: { @@ -7736,12 +6376,6 @@ packages: } engines: { node: '>= 0.6' } - fraction.js@4.3.7: - resolution: - { - integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, - } - fresh@0.5.2: resolution: { @@ -7767,13 +6401,6 @@ packages: integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, } - fs-extra@10.1.0: - resolution: - { - integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, - } - engines: { node: '>=12' } - fs-extra@11.2.0: resolution: { @@ -7809,12 +6436,6 @@ packages: } engines: { node: '>= 8' } - fs-monkey@1.0.6: - resolution: - { - integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==, - } - fs.realpath@1.0.0: resolution: { @@ -7904,13 +6525,6 @@ packages: } engines: { node: '>= 0.4' } - get-package-type@0.1.0: - resolution: - { - integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, - } - engines: { node: '>=8.0.0' } - get-stream@5.2.0: resolution: { @@ -8083,10 +6697,10 @@ packages: } engines: { node: '>=8' } - globals@15.9.0: + globals@15.13.0: resolution: { - integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==, + integrity: sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==, } engines: { node: '>=18' } @@ -8104,13 +6718,6 @@ packages: } engines: { node: '>=10' } - globby@12.2.0: - resolution: - { - integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - globrex@0.1.2: resolution: { @@ -8197,12 +6804,6 @@ packages: } engines: { node: '>=14.0.0' } - handle-thing@2.0.1: - resolution: - { - integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==, - } - handlebars@4.7.8: resolution: { @@ -8226,12 +6827,6 @@ packages: engines: { node: '>=6' } deprecated: this library is no longer supported - harmony-reflect@1.6.2: - resolution: - { - integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==, - } - has-bigints@1.0.2: resolution: { @@ -8325,13 +6920,6 @@ packages: integrity: sha512-DAzV5P/pk3wTU/8TLZN+zFTDv4Xa1QDTU8pRvovPetcOMbmqq8CwsAvZBLPZHH6usxyy31zMp7I4aCYb6XIf6w==, } - hexoid@1.0.0: - resolution: - { - integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==, - } - engines: { node: '>=8' } - homedir-polyfill@1.0.3: resolution: { @@ -8352,12 +6940,6 @@ packages: } engines: { node: ^16.14.0 || >=18.0.0 } - hpack.js@2.1.6: - resolution: - { - integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==, - } - html-encoding-sniffer@3.0.0: resolution: { @@ -8365,12 +6947,6 @@ packages: } engines: { node: '>=12' } - html-entities@2.5.2: - resolution: - { - integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==, - } - html-escaper@2.0.2: resolution: { @@ -8389,19 +6965,6 @@ packages: integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==, } - http-deceiver@1.2.7: - resolution: - { - integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==, - } - - http-errors@1.6.3: - resolution: - { - integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==, - } - engines: { node: '>= 0.6' } - http-errors@2.0.0: resolution: { @@ -8409,12 +6972,6 @@ packages: } engines: { node: '>= 0.8' } - http-parser-js@0.5.8: - resolution: - { - integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==, - } - http-proxy-agent@5.0.0: resolution: { @@ -8429,33 +6986,6 @@ packages: } engines: { node: '>= 14' } - http-proxy-middleware@2.0.6: - resolution: - { - integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==, - } - engines: { node: '>=12.0.0' } - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - - http-proxy@1.18.1: - resolution: - { - integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==, - } - engines: { node: '>=8.0.0' } - - http-server@14.1.1: - resolution: - { - integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==, - } - engines: { node: '>=12' } - hasBin: true - http-signature@1.2.0: resolution: { @@ -8545,13 +7075,6 @@ packages: engines: { node: '>=14' } hasBin: true - hyperdyperid@1.2.0: - resolution: - { - integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==, - } - engines: { node: '>=10.18' } - iconv-lite@0.4.24: resolution: { @@ -8566,22 +7089,6 @@ packages: } engines: { node: '>=0.10.0' } - icss-utils@5.1.0: - resolution: - { - integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==, - } - engines: { node: ^10 || ^12 || >= 14 } - peerDependencies: - postcss: ^8.1.0 - - identity-obj-proxy@3.0.0: - resolution: - { - integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==, - } - engines: { node: '>=4' } - ieee754@1.1.13: resolution: { @@ -8655,12 +7162,6 @@ packages: } 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. - inherits@2.0.3: - resolution: - { - integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==, - } - inherits@2.0.4: resolution: { @@ -8736,13 +7237,6 @@ packages: } engines: { node: '>= 0.10' } - ipaddr.js@2.2.0: - resolution: - { - integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==, - } - engines: { node: '>= 10' } - is-arguments@1.1.1: resolution: { @@ -8831,14 +7325,6 @@ packages: engines: { node: '>=8' } hasBin: true - is-docker@3.0.0: - resolution: - { - integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - hasBin: true - is-extglob@2.1.1: resolution: { @@ -8867,13 +7353,6 @@ packages: } engines: { node: '>=12' } - is-generator-fn@2.1.0: - resolution: - { - integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==, - } - engines: { node: '>=6' } - is-generator-function@1.0.10: resolution: { @@ -8888,14 +7367,6 @@ packages: } engines: { node: '>=0.10.0' } - is-inside-container@1.0.0: - resolution: - { - integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, - } - engines: { node: '>=14.16' } - hasBin: true - is-installed-globally@0.4.0: resolution: { @@ -8917,13 +7388,6 @@ packages: } engines: { node: '>= 0.4' } - is-network-error@1.1.0: - resolution: - { - integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==, - } - engines: { node: '>=16' } - is-node-process@1.2.0: resolution: { @@ -8965,13 +7429,6 @@ packages: } engines: { node: '>=8' } - is-plain-obj@3.0.0: - resolution: - { - integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==, - } - engines: { node: '>=10' } - is-potential-custom-element-name@1.0.1: resolution: { @@ -9098,13 +7555,6 @@ packages: } engines: { node: '>=8' } - is-wsl@3.1.0: - resolution: - { - integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==, - } - engines: { node: '>=16' } - is-yarn-global@0.4.1: resolution: { @@ -9151,20 +7601,6 @@ packages: } engines: { node: '>=8' } - istanbul-lib-instrument@5.2.1: - resolution: - { - integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, - } - engines: { node: '>=8' } - - istanbul-lib-instrument@6.0.3: - resolution: - { - integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==, - } - engines: { node: '>=10' } - istanbul-lib-report@3.0.1: resolution: { @@ -9172,13 +7608,6 @@ packages: } engines: { node: '>=10' } - istanbul-lib-source-maps@4.0.1: - resolution: - { - integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==, - } - engines: { node: '>=10' } - istanbul-lib-source-maps@5.0.4: resolution: { @@ -9213,28 +7642,6 @@ packages: integrity: sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==, } - jest-circus@29.7.0: - resolution: - { - integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-config@29.7.0: - resolution: - { - integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - jest-diff@29.7.0: resolution: { @@ -9242,27 +7649,6 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jest-docblock@29.7.0: - resolution: - { - integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-each@29.7.0: - resolution: - { - integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-environment-node@29.7.0: - resolution: - { - integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jest-get-type@29.6.3: resolution: { @@ -9270,109 +7656,6 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jest-haste-map@29.7.0: - resolution: - { - integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-leak-detector@29.7.0: - resolution: - { - integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-matcher-utils@29.7.0: - resolution: - { - integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-message-util@29.7.0: - resolution: - { - integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-mock@29.7.0: - resolution: - { - integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-pnp-resolver@1.2.3: - resolution: - { - integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==, - } - engines: { node: '>=6' } - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@29.6.3: - resolution: - { - integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-resolve@29.7.0: - resolution: - { - integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-runner@29.7.0: - resolution: - { - integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-runtime@29.7.0: - resolution: - { - integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-snapshot@29.7.0: - resolution: - { - integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-util@29.7.0: - resolution: - { - integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-validate@29.7.0: - resolution: - { - integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - jest-watcher@29.7.0: - resolution: - { - integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jest-worker@27.5.1: resolution: { @@ -9387,13 +7670,6 @@ packages: } engines: { node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0 } - jest-worker@29.7.0: - resolution: - { - integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jiti@1.21.0: resolution: { @@ -9674,17 +7950,10 @@ packages: } engines: { node: '>=6' } - klona@2.0.6: + kolorist@1.8.0: resolution: { - integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==, - } - engines: { node: '>= 8' } - - kolorist@1.8.0: - resolution: - { - integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==, + integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==, } kuler@2.0.0: @@ -9700,12 +7969,6 @@ packages: } engines: { node: '>=14.16' } - launch-editor@2.9.1: - resolution: - { - integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==, - } - lazystream@1.0.1: resolution: { @@ -9713,16 +7976,6 @@ packages: } engines: { node: '>= 0.6.3' } - less-loader@11.1.0: - resolution: - { - integrity: sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==, - } - engines: { node: '>= 14.15.0' } - peerDependencies: - less: ^3.5.0 || ^4.0.0 - webpack: ^5.0.0 - less@4.1.3: resolution: { @@ -9731,13 +7984,6 @@ packages: engines: { node: '>=6' } hasBin: true - leven@3.1.0: - resolution: - { - integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, - } - engines: { node: '>=6' } - levn@0.4.1: resolution: { @@ -9745,17 +7991,6 @@ packages: } engines: { node: '>= 0.8.0' } - license-webpack-plugin@4.0.2: - resolution: - { - integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==, - } - peerDependencies: - webpack: '*' - peerDependenciesMeta: - webpack: - optional: true - lilconfig@2.1.0: resolution: { @@ -9763,13 +7998,6 @@ packages: } engines: { node: '>=10' } - lilconfig@3.1.2: - resolution: - { - integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==, - } - engines: { node: '>=14' } - lines-and-columns@1.2.4: resolution: { @@ -9923,12 +8151,6 @@ packages: integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==, } - lodash.memoize@4.1.2: - resolution: - { - integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==, - } - lodash.merge@4.6.2: resolution: { @@ -10115,12 +8337,6 @@ packages: integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, } - makeerror@1.0.12: - resolution: - { - integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, - } - map-stream@0.1.0: resolution: { @@ -10141,18 +8357,6 @@ packages: } engines: { node: '>=10' } - mdn-data@2.0.28: - resolution: - { - integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==, - } - - mdn-data@2.0.30: - resolution: - { - integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, - } - mdurl@2.0.0: resolution: { @@ -10166,20 +8370,6 @@ packages: } engines: { node: '>= 0.6' } - memfs@3.5.3: - resolution: - { - integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==, - } - engines: { node: '>= 4.0.0' } - - memfs@4.12.0: - resolution: - { - integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==, - } - engines: { node: '>= 4.0.0' } - meow@12.1.1: resolution: { @@ -10299,21 +8489,6 @@ packages: } engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - mini-css-extract-plugin@2.4.7: - resolution: - { - integrity: sha512-euWmddf0sk9Nv1O0gfeeUAvAkoSlWncNLF77C0TP2+WoPvy8mAHKOzMajcCz2dzvyt3CNgxb1obIEVFIRxaipg==, - } - engines: { node: '>= 12.13.0' } - peerDependencies: - webpack: ^5.0.0 - - minimalistic-assert@1.0.1: - resolution: - { - integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, - } - minimatch@3.0.8: resolution: { @@ -10401,14 +8576,6 @@ packages: } engines: { node: '>= 8' } - mkcert@3.2.0: - resolution: - { - integrity: sha512-026Eivq9RoOjOuLJGzbhGwXUAjBxRX11Z7Jbm4/7lqT/Av+XNy9SPrJte6+UpEt7i+W3e/HZYxQqlQcqXZWSzg==, - } - engines: { node: '>=16' } - hasBin: true - mkdirp@0.5.6: resolution: { @@ -10493,13 +8660,6 @@ packages: integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==, } - multicast-dns@7.2.5: - resolution: - { - integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==, - } - hasBin: true - multipasta@0.2.2: resolution: { @@ -10588,12 +8748,6 @@ packages: } engines: { node: '>= 0.4.0' } - node-abort-controller@3.1.1: - resolution: - { - integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==, - } - node-addon-api@7.1.1: resolution: { @@ -10624,19 +8778,6 @@ packages: encoding: optional: true - node-forge@1.3.1: - resolution: - { - integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==, - } - engines: { node: '>= 6.13.0' } - - node-int64@0.4.0: - resolution: - { - integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, - } - node-machine-id@1.1.12: resolution: { @@ -10668,13 +8809,6 @@ packages: } engines: { node: '>=0.10.0' } - normalize-range@0.1.2: - resolution: - { - integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, - } - engines: { node: '>=0.10.0' } - normalize-url@6.1.0: resolution: { @@ -10832,12 +8966,6 @@ packages: } engines: { node: '>= 0.4' } - obuf@1.1.2: - resolution: - { - integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==, - } - oidc-token-hash@5.0.3: resolution: { @@ -10891,13 +9019,6 @@ packages: } engines: { node: '>=12' } - open@10.1.0: - resolution: - { - integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==, - } - engines: { node: '>=18' } - open@8.4.2: resolution: { @@ -10905,13 +9026,6 @@ packages: } engines: { node: '>=12' } - opener@1.5.2: - resolution: - { - integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==, - } - hasBin: true - openid-client@5.7.0: resolution: { @@ -11049,13 +9163,6 @@ packages: } engines: { node: '>=6' } - p-retry@6.2.0: - resolution: - { - integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==, - } - engines: { node: '>=16.17' } - p-try@2.2.0: resolution: { @@ -11130,12 +9237,6 @@ packages: integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==, } - parse5@4.0.0: - resolution: - { - integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==, - } - parse5@7.1.2: resolution: { @@ -11287,13 +9388,6 @@ packages: engines: { node: '>=0.10' } hasBin: true - pify@2.3.0: - resolution: - { - integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, - } - engines: { node: '>=0.10.0' } - pify@3.0.0: resolution: { @@ -11340,13 +9434,6 @@ packages: } engines: { node: '>= 6' } - pkg-dir@7.0.0: - resolution: - { - integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==, - } - engines: { node: '>=14.16' } - pkg-types@1.0.3: resolution: { @@ -11376,13 +9463,6 @@ packages: engines: { node: '>=18' } hasBin: true - portfinder@1.0.32: - resolution: - { - integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==, - } - engines: { node: '>= 0.12.0' } - possible-typed-array-names@1.0.0: resolution: { @@ -11390,541 +9470,223 @@ packages: } engines: { node: '>= 0.4' } - postcss-calc@9.0.1: + postcss@8.4.47: resolution: { - integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==, + integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.2.2 + engines: { node: ^10 || ^12 || >=14 } - postcss-colormin@6.1.0: + prelude-ls@1.2.1: resolution: { - integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==, + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>= 0.8.0' } - postcss-convert-values@6.1.0: + prettier-linter-helpers@1.0.0: resolution: { - integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==, + integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=6.0.0' } - postcss-discard-comments@6.0.2: + prettier@2.8.8: resolution: { - integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==, + integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=10.13.0' } + hasBin: true - postcss-discard-duplicates@6.0.3: + prettier@3.2.5: resolution: { - integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==, + integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=14' } + hasBin: true - postcss-discard-empty@6.0.3: + pretty-format@29.7.0: resolution: { - integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==, + integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - postcss-discard-overridden@6.0.2: + pretty-quick@4.0.0: resolution: { - integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==, + integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==, } - engines: { node: ^14 || ^16 || >=18.0 } + engines: { node: '>=14' } + hasBin: true peerDependencies: - postcss: ^8.4.31 + prettier: ^3.0.0 - postcss-import@14.1.0: + proc-log@3.0.0: resolution: { - integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==, + integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==, } - engines: { node: '>=10.0.0' } - peerDependencies: - postcss: ^8.0.0 + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } - postcss-loader@6.2.1: + process-nextick-args@2.0.1: resolution: { - integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==, + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, } - engines: { node: '>= 12.13.0' } - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - postcss-merge-longhand@6.0.5: + process-warning@1.0.0: resolution: { - integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==, + integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - postcss-merge-rules@6.1.1: + process@0.11.10: resolution: { - integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==, + integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>= 0.6.0' } - postcss-minify-font-values@6.1.0: + property-expr@2.0.6: resolution: { - integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==, + integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - postcss-minify-gradients@6.0.3: + proto-list@1.2.4: resolution: { - integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==, + integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - postcss-minify-params@6.1.0: + proto3-json-serializer@2.0.2: resolution: { - integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==, + integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=14.0.0' } - postcss-minify-selectors@6.0.4: + protobufjs@7.4.0: resolution: { - integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==, + integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=12.0.0' } - postcss-modules-extract-imports@3.1.0: + proxy-addr@2.0.7: resolution: { - integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==, + integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, } - engines: { node: ^10 || ^12 || >= 14 } - peerDependencies: - postcss: ^8.1.0 + engines: { node: '>= 0.10' } - postcss-modules-local-by-default@4.0.5: + proxy-from-env@1.1.0: resolution: { - integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==, + integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, } - engines: { node: ^10 || ^12 || >= 14 } - peerDependencies: - postcss: ^8.1.0 - postcss-modules-scope@3.2.0: + prr@1.0.1: resolution: { - integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==, + integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==, } - engines: { node: ^10 || ^12 || >= 14 } - peerDependencies: - postcss: ^8.1.0 - postcss-modules-values@4.0.0: + ps-tree@1.2.0: resolution: { - integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==, + integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==, } - engines: { node: ^10 || ^12 || >= 14 } - peerDependencies: - postcss: ^8.1.0 + engines: { node: '>= 0.10' } + hasBin: true - postcss-normalize-charset@6.0.2: + psl@1.9.0: resolution: { - integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==, + integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - postcss-normalize-display-values@6.0.2: + pump@3.0.2: resolution: { - integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==, + integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - postcss-normalize-positions@6.0.2: + punycode.js@2.3.1: resolution: { - integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==, + integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=6' } - postcss-normalize-repeat-style@6.0.2: + punycode@1.3.2: resolution: { - integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==, + integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - postcss-normalize-string@6.0.2: + punycode@2.3.1: resolution: { - integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==, + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=6' } - postcss-normalize-timing-functions@6.0.2: + pupa@3.1.0: resolution: { - integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==, + integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=12.20' } - postcss-normalize-unicode@6.1.0: + pure-rand@6.1.0: resolution: { - integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==, + integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - postcss-normalize-url@6.0.2: + qs@6.10.4: resolution: { - integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==, + integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=0.6' } - postcss-normalize-whitespace@6.0.2: + qs@6.13.0: resolution: { - integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==, + integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=0.6' } - postcss-ordered-values@6.0.2: + qs@6.5.3: resolution: { - integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==, + integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=0.6' } - postcss-reduce-initial@6.1.0: + querystring@0.2.0: resolution: { - integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==, + integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 + engines: { node: '>=0.4.x' } + deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. - postcss-reduce-transforms@6.0.2: + querystringify@2.2.0: resolution: { - integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==, + integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - postcss-selector-parser@6.1.2: + queue-microtask@1.2.3: resolution: { - integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==, - } - engines: { node: '>=4' } - - postcss-svgo@6.0.3: - resolution: - { - integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==, - } - engines: { node: ^14 || ^16 || >= 18 } - peerDependencies: - postcss: ^8.4.31 - - postcss-unique-selectors@6.0.4: - resolution: - { - integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==, - } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - - postcss-value-parser@4.2.0: - resolution: - { - integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, - } - - postcss@8.4.47: - resolution: - { - integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==, - } - engines: { node: ^10 || ^12 || >=14 } - - prelude-ls@1.2.1: - resolution: - { - integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, - } - engines: { node: '>= 0.8.0' } - - prettier-linter-helpers@1.0.0: - resolution: - { - integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, - } - engines: { node: '>=6.0.0' } - - prettier@2.8.8: - resolution: - { - integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, - } - engines: { node: '>=10.13.0' } - hasBin: true - - prettier@3.2.5: - resolution: - { - integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==, - } - engines: { node: '>=14' } - hasBin: true - - pretty-format@29.7.0: - resolution: - { - integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - - pretty-quick@4.0.0: - resolution: - { - integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==, - } - engines: { node: '>=14' } - hasBin: true - peerDependencies: - prettier: ^3.0.0 - - proc-log@3.0.0: - resolution: - { - integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==, - } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } - - process-nextick-args@2.0.1: - resolution: - { - integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, - } - - process-warning@1.0.0: - resolution: - { - integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==, - } - - process@0.11.10: - resolution: - { - integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, - } - engines: { node: '>= 0.6.0' } - - property-expr@2.0.6: - resolution: - { - integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==, - } - - proto-list@1.2.4: - resolution: - { - integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==, - } - - proto3-json-serializer@2.0.2: - resolution: - { - integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==, - } - engines: { node: '>=14.0.0' } - - protobufjs@7.4.0: - resolution: - { - integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==, - } - engines: { node: '>=12.0.0' } - - proxy-addr@2.0.7: - resolution: - { - integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, - } - engines: { node: '>= 0.10' } - - proxy-from-env@1.1.0: - resolution: - { - integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, - } - - prr@1.0.1: - resolution: - { - integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==, - } - - ps-tree@1.2.0: - resolution: - { - integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==, - } - engines: { node: '>= 0.10' } - hasBin: true - - psl@1.9.0: - resolution: - { - integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, - } - - pump@3.0.2: - resolution: - { - integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==, - } - - punycode.js@2.3.1: - resolution: - { - integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==, - } - engines: { node: '>=6' } - - punycode@1.3.2: - resolution: - { - integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==, - } - - punycode@2.3.1: - resolution: - { - integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, - } - engines: { node: '>=6' } - - pupa@3.1.0: - resolution: - { - integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==, - } - engines: { node: '>=12.20' } - - pure-rand@6.1.0: - resolution: - { - integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==, - } - - qs@6.10.4: - resolution: - { - integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==, - } - engines: { node: '>=0.6' } - - qs@6.11.0: - resolution: - { - integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, - } - engines: { node: '>=0.6' } - - qs@6.13.0: - resolution: - { - integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==, - } - engines: { node: '>=0.6' } - - qs@6.5.3: - resolution: - { - integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==, - } - engines: { node: '>=0.6' } - - querystring@0.2.0: - resolution: - { - integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==, - } - engines: { node: '>=0.4.x' } - deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. - - querystringify@2.2.0: - resolution: - { - integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, - } - - queue-microtask@1.2.3: - resolution: - { - integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, } queue-tick@1.0.1: @@ -11986,12 +9748,6 @@ packages: } engines: { node: '>=0.10.0' } - read-cache@1.0.0: - resolution: - { - integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, - } - read-yaml-file@1.1.0: resolution: { @@ -12187,20 +9943,6 @@ packages: } engines: { node: '>=8' } - resolve.exports@1.1.0: - resolution: - { - integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==, - } - engines: { node: '>=10' } - - resolve.exports@2.0.2: - resolution: - { - integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==, - } - engines: { node: '>=10' } - resolve@1.22.8: resolution: { @@ -12248,13 +9990,6 @@ packages: integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==, } - retry@0.13.1: - resolution: - { - integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==, - } - engines: { node: '>= 4' } - reusify@1.0.4: resolution: { @@ -12319,13 +10054,6 @@ packages: integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==, } - run-applescript@7.0.0: - resolution: - { - integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==, - } - engines: { node: '>=18' } - run-async@2.4.1: resolution: { @@ -12391,28 +10119,6 @@ packages: integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, } - sass-loader@12.6.0: - resolution: - { - integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==, - } - engines: { node: '>= 12.13.0' } - peerDependencies: - fibers: '>= 3.1.0' - node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - sass: ^1.3.0 - sass-embedded: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - fibers: - optional: true - node-sass: - optional: true - sass: - optional: true - sass-embedded: - optional: true - sass@1.75.0: resolution: { @@ -12447,32 +10153,6 @@ packages: } engines: { node: '>= 10.13.0' } - schema-utils@4.2.0: - resolution: - { - integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==, - } - engines: { node: '>= 12.13.0' } - - secure-compare@3.0.1: - resolution: - { - integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==, - } - - select-hose@2.0.0: - resolution: - { - integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==, - } - - selfsigned@2.4.1: - resolution: - { - integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==, - } - engines: { node: '>=10' } - semver-compare@1.0.0: resolution: { @@ -12544,13 +10224,6 @@ packages: integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, } - serve-index@1.9.1: - resolution: - { - integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==, - } - engines: { node: '>= 0.8.0' } - serve-static@1.16.2: resolution: { @@ -12578,12 +10251,6 @@ packages: } engines: { node: '>= 0.4' } - setprototypeof@1.1.0: - resolution: - { - integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==, - } - setprototypeof@1.2.0: resolution: { @@ -12604,12 +10271,6 @@ packages: } engines: { node: '>=8' } - shell-quote@1.8.1: - resolution: - { - integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==, - } - shelljs@0.8.5: resolution: { @@ -12672,13 +10333,6 @@ packages: } engines: { node: '>=8' } - slash@4.0.0: - resolution: - { - integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==, - } - engines: { node: '>=12' } - slice-ansi@4.0.0: resolution: { @@ -12714,12 +10368,6 @@ packages: engines: { node: '>=12' } hasBin: true - sockjs@0.3.24: - resolution: - { - integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==, - } - socks-proxy-agent@8.0.4: resolution: { @@ -12760,21 +10408,6 @@ packages: } engines: { node: '>=0.10.0' } - source-map-loader@5.0.0: - resolution: - { - integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==, - } - engines: { node: '>= 18.12.0' } - peerDependencies: - webpack: ^5.72.1 - - source-map-support@0.5.13: - resolution: - { - integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==, - } - source-map-support@0.5.19: resolution: { @@ -12831,19 +10464,6 @@ packages: integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==, } - spdy-transport@3.0.0: - resolution: - { - integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==, - } - - spdy@4.0.2: - resolution: - { - integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==, - } - engines: { node: '>=6.0.0' } - split2@4.2.0: resolution: { @@ -12890,25 +10510,11 @@ packages: integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==, } - stack-utils@2.0.6: - resolution: - { - integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==, - } - engines: { node: '>=10' } - stackback@0.0.2: resolution: { - integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, - } - - statuses@1.5.0: - resolution: - { - integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, + integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, } - engines: { node: '>= 0.6' } statuses@2.0.1: resolution: @@ -12979,13 +10585,6 @@ packages: } engines: { node: '>=0.6.19' } - string-length@4.0.2: - resolution: - { - integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==, - } - engines: { node: '>=10' } - string-width@1.0.2: resolution: { @@ -13114,34 +10713,6 @@ packages: integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==, } - style-loader@3.3.4: - resolution: - { - integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==, - } - engines: { node: '>= 12.13.0' } - peerDependencies: - webpack: ^5.0.0 - - stylehacks@6.1.1: - resolution: - { - integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==, - } - engines: { node: ^14 || ^16 || >=18.0 } - peerDependencies: - postcss: ^8.4.31 - - stylus-loader@7.1.3: - resolution: - { - integrity: sha512-TY0SKwiY7D2kMd3UxaWKSf3xHF0FFN/FAfsSqfrhxRT/koXTwffq2cgEWDkLQz7VojMu7qEEHt5TlMjkPx9UDw==, - } - engines: { node: '>= 14.15.0' } - peerDependencies: - stylus: '>=0.52.4' - webpack: ^5.0.0 - stylus@0.64.0: resolution: { @@ -13150,14 +10721,6 @@ packages: engines: { node: '>=16' } hasBin: true - superagent@8.1.2: - resolution: - { - integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==, - } - engines: { node: '>=6.4.0 <13 || >=14' } - deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net - supports-color@5.5.0: resolution: { @@ -13186,14 +10749,6 @@ packages: } engines: { node: '>= 0.4' } - svgo@3.3.2: - resolution: - { - integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==, - } - engines: { node: '>=14.0.0' } - hasBin: true - swagger-ui-dist@5.17.14: resolution: { @@ -13336,15 +10891,6 @@ packages: integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, } - thingies@1.21.0: - resolution: - { - integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==, - } - engines: { node: '>=10.18' } - peerDependencies: - tslib: ^2 - thread-stream@0.15.2: resolution: { @@ -13357,12 +10903,6 @@ packages: integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, } - thunky@1.1.0: - resolution: - { - integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==, - } - tinybench@2.7.0: resolution: { @@ -13410,12 +10950,6 @@ packages: } engines: { node: '>=14.14' } - tmpl@1.0.5: - resolution: - { - integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, - } - to-fast-properties@2.0.0: resolution: { @@ -13477,15 +11011,6 @@ packages: } engines: { node: '>=14' } - tree-dump@1.0.2: - resolution: - { - integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==, - } - engines: { node: '>=10.0' } - peerDependencies: - tslib: '2' - triple-beam@1.4.1: resolution: { @@ -13502,16 +11027,6 @@ packages: peerDependencies: typescript: '>=4.2.0' - ts-loader@9.5.1: - resolution: - { - integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==, - } - engines: { node: '>=12.0.0' } - peerDependencies: - typescript: '*' - webpack: ^5.0.0 - ts-node@10.9.1: resolution: { @@ -13542,13 +11057,6 @@ packages: typescript: optional: true - tsconfig-paths-webpack-plugin@4.0.0: - resolution: - { - integrity: sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==, - } - engines: { node: '>=10.13.0' } - tsconfig-paths@3.15.0: resolution: { @@ -13699,12 +11207,6 @@ packages: } engines: { node: '>= 0.4' } - typed-assert@1.0.9: - resolution: - { - integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==, - } - typedarray-to-buffer@3.1.5: resolution: { @@ -13846,13 +11348,6 @@ packages: } engines: { node: '>=18' } - union@0.5.0: - resolution: - { - integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==, - } - engines: { node: '>= 0.8.0' } - unique-string@3.0.0: resolution: { @@ -13916,12 +11411,6 @@ packages: integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, } - url-join@4.0.1: - resolution: - { - integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==, - } - url-parse@1.5.10: resolution: { @@ -13994,13 +11483,6 @@ packages: integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, } - v8-to-istanbul@9.3.0: - resolution: - { - integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==, - } - engines: { node: '>=10.12.0' } - validate-npm-package-license@3.0.4: resolution: { @@ -14195,12 +11677,6 @@ packages: } engines: { node: '>=14' } - walker@1.0.8: - resolution: - { - integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, - } - watchpack@2.4.2: resolution: { @@ -14208,12 +11684,6 @@ packages: } engines: { node: '>=10.13.0' } - wbuf@1.7.3: - resolution: - { - integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==, - } - wcwidth@1.0.1: resolution: { @@ -14233,41 +11703,6 @@ packages: } engines: { node: '>=12' } - webpack-dev-middleware@7.4.2: - resolution: - { - integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==, - } - engines: { node: '>= 18.12.0' } - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true - - webpack-dev-server@5.1.0: - resolution: - { - integrity: sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==, - } - engines: { node: '>= 18.12.0' } - hasBin: true - peerDependencies: - webpack: ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - - webpack-node-externals@3.0.0: - resolution: - { - integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==, - } - engines: { node: '>=6' } - webpack-sources@3.2.3: resolution: { @@ -14275,19 +11710,6 @@ packages: } engines: { node: '>=10.13.0' } - webpack-subresource-integrity@5.1.0: - resolution: - { - integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==, - } - engines: { node: '>= 12' } - peerDependencies: - html-webpack-plugin: '>= 5.0.0-beta.1 < 6' - webpack: ^5.12.0 - peerDependenciesMeta: - html-webpack-plugin: - optional: true - webpack@5.95.0: resolution: { @@ -14301,20 +11723,6 @@ packages: webpack-cli: optional: true - websocket-driver@0.7.4: - resolution: - { - integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==, - } - engines: { node: '>=0.8.0' } - - websocket-extensions@0.1.4: - resolution: - { - integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==, - } - engines: { node: '>=0.8.0' } - whatwg-encoding@2.0.0: resolution: { @@ -14458,13 +11866,6 @@ packages: integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==, } - write-file-atomic@4.0.2: - resolution: - { - integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, - } - engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } - ws@8.18.0: resolution: { @@ -14620,7 +12021,8 @@ packages: snapshots: '@aashutoshrathi/word-wrap@1.2.6': {} - '@adobe/css-tools@4.3.3': {} + '@adobe/css-tools@4.3.3': + optional: true '@ampproject/remapping@2.3.0': dependencies: @@ -14839,11 +12241,6 @@ snapshots: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.4)': - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4)': dependencies: '@babel/core': 7.24.4 @@ -15771,144 +13168,72 @@ snapshots: dependencies: tslib: 2.6.3 - '@esbuild/aix-ppc64@0.19.12': - optional: true - '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/android-arm64@0.19.12': - optional: true - '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm@0.19.12': - optional: true - '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-x64@0.19.12': - optional: true - '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.19.12': - optional: true - '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-x64@0.19.12': - optional: true - '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.19.12': - optional: true - '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.19.12': - optional: true - '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/linux-arm64@0.19.12': - optional: true - '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm@0.19.12': - optional: true - '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-ia32@0.19.12': - optional: true - '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-loong64@0.14.54': - optional: true - - '@esbuild/linux-loong64@0.19.12': - optional: true - '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-mips64el@0.19.12': - optional: true - '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-ppc64@0.19.12': - optional: true - '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.19.12': - optional: true - '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-s390x@0.19.12': - optional: true - '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-x64@0.19.12': - optional: true - '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.19.12': - optional: true - '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.19.12': - optional: true - '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.19.12': - optional: true - '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/win32-arm64@0.19.12': - optional: true - '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-ia32@0.19.12': - optional: true - '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-x64@0.19.12': - optional: true - '@esbuild/win32-x64@0.21.5': optional: true @@ -15998,170 +13323,40 @@ snapshots: '@inquirer/core@10.0.0(@types/node@22.10.2)': dependencies: '@inquirer/figures': 1.0.7 - '@inquirer/type': 3.0.0(@types/node@22.10.2) - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 - transitivePeerDependencies: - - '@types/node' - - '@inquirer/figures@1.0.0': {} - - '@inquirer/figures@1.0.7': {} - - '@inquirer/type@3.0.0(@types/node@22.10.2)': - dependencies: - '@types/node': 22.10.2 - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - - '@istanbuljs/schema@0.1.3': {} - - '@jest/console@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.10.2 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - - '@jest/environment@29.7.0': - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.10.2 - jest-mock: 29.7.0 - - '@jest/expect-utils@29.7.0': - dependencies: - jest-get-type: 29.6.3 - - '@jest/expect@29.7.0': - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/fake-timers@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.10.2 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - '@jest/globals@29.7.0': - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/reporters@29.7.0': - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.10.2 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 + '@inquirer/type': 3.0.0(@types/node@22.10.2) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 strip-ansi: 6.0.1 - v8-to-istanbul: 9.3.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 transitivePeerDependencies: - - supports-color + - '@types/node' - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 + '@inquirer/figures@1.0.0': {} - '@jest/source-map@29.6.3': - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - callsites: 3.1.0 - graceful-fs: 4.2.11 + '@inquirer/figures@1.0.7': {} - '@jest/test-result@29.7.0': + '@inquirer/type@3.0.0(@types/node@22.10.2)': dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 + '@types/node': 22.10.2 - '@jest/test-sequencer@29.7.0': + '@isaacs/cliui@8.0.2': dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + optional: true - '@jest/transform@29.7.0': - dependencies: - '@babel/core': 7.24.4 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.8 - pirates: 4.0.6 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color + '@istanbuljs/schema@0.1.3': {} - '@jest/types@29.6.3': + '@jest/schemas@29.6.3': dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 22.10.2 - '@types/yargs': 17.0.33 - chalk: 4.1.2 + '@sinclair/typebox': 0.27.8 '@jridgewell/gen-mapping@0.3.5': dependencies: @@ -16200,22 +13395,6 @@ snapshots: dependencies: jsep: 1.4.0 - '@jsonjoy.com/base64@1.1.2(tslib@2.6.3)': - dependencies: - tslib: 2.6.3 - - '@jsonjoy.com/json-pack@1.1.0(tslib@2.6.3)': - dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.6.3) - '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) - hyperdyperid: 1.2.0 - thingies: 1.21.0(tslib@2.6.3) - tslib: 2.6.3 - - '@jsonjoy.com/util@1.3.0(tslib@2.6.3)': - dependencies: - tslib: 2.6.3 - '@kubernetes/client-node@1.0.0-rc3': dependencies: '@types/js-yaml': 4.0.9 @@ -16245,8 +13424,6 @@ snapshots: - encoding - utf-8-validate - '@leichtgewicht/ip-codec@2.0.5': {} - '@ljharb/through@2.3.13': dependencies: call-bind: 1.0.7 @@ -16347,38 +13524,16 @@ snapshots: tslib: 2.6.3 yargs-parser: 21.1.1 - '@nx/esbuild@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(esbuild@0.19.12)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))': - dependencies: - '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) - '@nx/js': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - fast-glob: 3.2.7 - picocolors: 1.1.0 - tsconfig-paths: 4.2.0 - tslib: 2.6.3 - optionalDependencies: - esbuild: 0.19.12 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - debug - - nx - - supports-color - - typescript - - verdaccio - '@nx/eslint-plugin@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.6.3))(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))': dependencies: '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) '@nx/js': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) '@typescript-eslint/parser': 7.16.1(eslint@8.57.0)(typescript@5.6.3) - '@typescript-eslint/type-utils': 8.7.0(eslint@8.57.0)(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.18.1(eslint@8.57.0)(typescript@5.6.3) '@typescript-eslint/utils': 8.18.0(eslint@8.57.0)(typescript@5.6.3) chalk: 4.1.2 confusing-browser-globals: 1.0.11 - globals: 15.9.0 + globals: 15.13.0 jsonc-eslint-parser: 2.4.0 semver: 7.6.3 tslib: 2.6.3 @@ -16418,63 +13573,6 @@ snapshots: - supports-color - verdaccio - '@nx/express@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(express@4.21.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))': - dependencies: - '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) - '@nx/js': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - '@nx/node': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - tslib: 2.6.3 - optionalDependencies: - express: 4.21.0 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - '@zkochan/js-yaml' - - babel-plugin-macros - - debug - - eslint - - node-notifier - - nx - - supports-color - - ts-node - - typescript - - verdaccio - - '@nx/jest@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))': - dependencies: - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) - '@nx/js': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.6.3) - chalk: 4.1.2 - identity-obj-proxy: 3.0.0 - jest-config: 29.7.0(@types/node@22.10.2)(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3)) - jest-resolve: 29.7.0 - jest-util: 29.7.0 - minimatch: 9.0.3 - resolve.exports: 1.1.0 - semver: 7.6.3 - tslib: 2.6.3 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - babel-plugin-macros - - debug - - node-notifier - - nx - - supports-color - - ts-node - - typescript - - verdaccio - '@nx/js@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))': dependencies: '@babel/core': 7.24.4 @@ -16520,30 +13618,6 @@ snapshots: - supports-color - typescript - '@nx/node@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))': - dependencies: - '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) - '@nx/eslint': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(verdaccio@5.30.3(typanion@3.14.0)) - '@nx/jest': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - '@nx/js': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - tslib: 2.6.3 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - '@zkochan/js-yaml' - - babel-plugin-macros - - debug - - eslint - - node-notifier - - nx - - supports-color - - ts-node - - typescript - - verdaccio - '@nx/nx-darwin-arm64@20.2.2': optional: true @@ -16574,160 +13648,6 @@ snapshots: '@nx/nx-win32-x64-msvc@20.2.2': optional: true - '@nx/playwright@20.2.2(@babel/traverse@7.24.1)(@playwright/test@1.47.2)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(esbuild@0.19.12)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))': - dependencies: - '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) - '@nx/eslint': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(verdaccio@5.30.3(typanion@3.14.0)) - '@nx/js': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - '@nx/vite': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0)) - '@nx/webpack': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(esbuild@0.19.12)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.6.3) - minimatch: 9.0.3 - tslib: 2.6.3 - optionalDependencies: - '@playwright/test': 1.47.2 - transitivePeerDependencies: - - '@babel/traverse' - - '@parcel/css' - - '@rspack/core' - - '@swc-node/register' - - '@swc/core' - - '@swc/css' - - '@swc/wasm' - - '@types/node' - - '@zkochan/js-yaml' - - bufferutil - - clean-css - - csso - - debug - - esbuild - - eslint - - fibers - - html-webpack-plugin - - lightningcss - - node-sass - - nx - - sass-embedded - - supports-color - - typescript - - uglify-js - - utf-8-validate - - verdaccio - - vite - - vitest - - vue-template-compiler - - webpack-cli - - '@nx/vite@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))': - dependencies: - '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) - '@nx/js': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.6.3) - '@swc/helpers': 0.5.12 - enquirer: 2.3.6 - minimatch: 9.0.3 - tsconfig-paths: 4.2.0 - vite: 5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) - vitest: 1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - debug - - nx - - supports-color - - typescript - - verdaccio - - '@nx/web@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))': - dependencies: - '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) - '@nx/js': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - detect-port: 1.5.1 - http-server: 14.1.1 - picocolors: 1.1.0 - tslib: 2.6.3 - transitivePeerDependencies: - - '@babel/traverse' - - '@swc-node/register' - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - debug - - nx - - supports-color - - typescript - - verdaccio - - '@nx/webpack@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(esbuild@0.19.12)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))': - dependencies: - '@babel/core': 7.24.4 - '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) - '@nx/js': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) - '@phenomnomnominal/tsquery': 5.0.1(typescript@5.6.3) - ajv: 8.13.0 - autoprefixer: 10.4.20(postcss@8.4.47) - babel-loader: 9.2.1(@babel/core@7.24.4)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - browserslist: 4.24.0 - copy-webpack-plugin: 10.2.4(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - css-loader: 6.11.0(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - css-minimizer-webpack-plugin: 5.0.1(esbuild@0.19.12)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - fork-ts-checker-webpack-plugin: 7.2.13(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - less: 4.1.3 - less-loader: 11.1.0(less@4.1.3)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - license-webpack-plugin: 4.0.2(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - loader-utils: 2.0.4 - mini-css-extract-plugin: 2.4.7(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - parse5: 4.0.0 - picocolors: 1.1.0 - postcss: 8.4.47 - postcss-import: 14.1.0(postcss@8.4.47) - postcss-loader: 6.2.1(postcss@8.4.47)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - rxjs: 7.8.1 - sass: 1.75.0 - sass-loader: 12.6.0(sass@1.75.0)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - source-map-loader: 5.0.0(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - style-loader: 3.3.4(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - stylus: 0.64.0 - stylus-loader: 7.1.3(stylus@0.64.0)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - terser-webpack-plugin: 5.3.10(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - ts-loader: 9.5.1(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - tsconfig-paths-webpack-plugin: 4.0.0 - tslib: 2.6.3 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - webpack-dev-server: 5.1.0(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - webpack-node-externals: 3.0.0 - webpack-subresource-integrity: 5.1.0(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - transitivePeerDependencies: - - '@babel/traverse' - - '@parcel/css' - - '@rspack/core' - - '@swc-node/register' - - '@swc/core' - - '@swc/css' - - '@swc/wasm' - - '@types/node' - - bufferutil - - clean-css - - csso - - debug - - esbuild - - fibers - - html-webpack-plugin - - lightningcss - - node-sass - - nx - - sass-embedded - - supports-color - - typescript - - uglify-js - - utf-8-validate - - verdaccio - - vue-template-compiler - - webpack-cli - '@nx/workspace@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))': dependencies: '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) @@ -16822,11 +13742,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@phenomnomnominal/tsquery@5.0.1(typescript@5.6.3)': - dependencies: - esquery: 1.5.0 - typescript: 5.6.3 - '@pkgjs/parseargs@0.11.0': optional: true @@ -17019,14 +13934,6 @@ snapshots: '@sindresorhus/is@5.6.0': {} - '@sinonjs/commons@3.0.1': - dependencies: - type-detect: 4.0.8 - - '@sinonjs/fake-timers@10.3.0': - dependencies: - '@sinonjs/commons': 3.0.1 - '@swc-node/core@1.13.3(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)': dependencies: '@swc/core': 1.5.7(@swc/helpers@0.5.12) @@ -17120,8 +14027,6 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} - '@trysound/sax@0.2.0': {} - '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -17130,42 +14035,17 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@tybys/wasm-util@0.9.0': - dependencies: - tslib: 2.6.3 - - '@types/argparse@1.0.38': {} - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 - - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.24.0 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - - '@types/babel__traverse@7.20.6': + '@tybys/wasm-util@0.9.0': dependencies: - '@babel/types': 7.24.0 + tslib: 2.6.3 + + '@types/argparse@1.0.38': {} '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 '@types/node': 22.10.2 - '@types/bonjour@3.5.13': - dependencies: - '@types/node': 22.10.2 - '@types/cacheable-request@6.0.3': dependencies: '@types/http-cache-semantics': 4.0.4 @@ -17175,11 +14055,6 @@ snapshots: '@types/caseless@0.12.5': {} - '@types/connect-history-api-fallback@1.5.4': - dependencies: - '@types/express-serve-static-core': 4.19.0 - '@types/node': 22.10.2 - '@types/connect@3.4.38': dependencies: '@types/node': 22.10.2 @@ -17213,17 +14088,6 @@ snapshots: '@types/qs': 6.9.14 '@types/serve-static': 1.15.7 - '@types/express@4.17.21': - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.0 - '@types/qs': 6.9.14 - '@types/serve-static': 1.15.7 - - '@types/graceful-fs@4.1.9': - dependencies: - '@types/node': 22.10.2 - '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.2 @@ -17232,20 +14096,6 @@ snapshots: '@types/http-errors@2.0.4': {} - '@types/http-proxy@1.17.15': - dependencies: - '@types/node': 22.10.2 - - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - '@types/js-yaml@4.0.9': {} '@types/json-schema@7.0.15': {} @@ -17267,10 +14117,6 @@ snapshots: '@types/node': 22.10.2 form-data: 4.0.0 - '@types/node-forge@1.3.11': - dependencies: - '@types/node': 22.10.2 - '@types/node@12.20.55': {} '@types/node@20.16.11': @@ -17298,29 +14144,17 @@ snapshots: dependencies: '@types/node': 22.10.2 - '@types/retry@0.12.2': {} - '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 '@types/node': 22.10.2 - '@types/serve-index@1.9.4': - dependencies: - '@types/express': 4.17.17 - '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 '@types/node': 22.10.2 '@types/send': 0.17.4 - '@types/sockjs@0.3.36': - dependencies: - '@types/node': 22.10.2 - - '@types/stack-utils@2.0.3': {} - '@types/statuses@2.0.5': {} '@types/stream-buffers@3.0.7': @@ -17344,12 +14178,6 @@ snapshots: dependencies: '@types/node': 22.10.2 - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@17.0.33': - dependencies: - '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.10.0 @@ -17391,10 +14219,10 @@ snapshots: '@typescript-eslint/types': 8.18.0 '@typescript-eslint/visitor-keys': 8.18.0 - '@typescript-eslint/scope-manager@8.7.0': + '@typescript-eslint/scope-manager@8.18.1': dependencies: - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/types': 8.18.1 + '@typescript-eslint/visitor-keys': 8.18.1 '@typescript-eslint/type-utils@7.16.1(eslint@8.57.0)(typescript@5.6.3)': dependencies: @@ -17408,16 +14236,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.7.0(eslint@8.57.0)(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.18.1(eslint@8.57.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.7.0(eslint@8.57.0)(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.6.3) + '@typescript-eslint/utils': 8.18.1(eslint@8.57.0)(typescript@5.6.3) debug: 4.3.7 + eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - - eslint - supports-color '@typescript-eslint/types@5.59.5': {} @@ -17426,7 +14253,7 @@ snapshots: '@typescript-eslint/types@8.18.0': {} - '@typescript-eslint/types@8.7.0': {} + '@typescript-eslint/types@8.18.1': {} '@typescript-eslint/typescript-estree@5.59.5(typescript@5.6.3)': dependencies: @@ -17471,17 +14298,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.7.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.18.1(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/types': 8.18.1 + '@typescript-eslint/visitor-keys': 8.18.1 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -17508,16 +14334,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.7.0(eslint@8.57.0)(typescript@5.6.3)': + '@typescript-eslint/utils@8.18.1(eslint@8.57.0)(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.7.0 - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.18.1 + '@typescript-eslint/types': 8.18.1 + '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.6.3) eslint: 8.57.0 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - - typescript '@typescript-eslint/visitor-keys@5.59.5': dependencies: @@ -17534,10 +14360,10 @@ snapshots: '@typescript-eslint/types': 8.18.0 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.7.0': + '@typescript-eslint/visitor-keys@8.18.1': dependencies: - '@typescript-eslint/types': 8.7.0 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/types': 8.18.1 + eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.2.0': {} @@ -17666,10 +14492,6 @@ snapshots: minimatch: 7.4.6 semver: 7.6.0 - '@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))': - dependencies: - vite: 5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) - '@vitest/coverage-v8@1.5.0(vitest@1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))': dependencies: '@ampproject/remapping': 2.3.0 @@ -17911,10 +14733,6 @@ snapshots: optionalDependencies: ajv: 8.13.0 - ajv-formats@2.1.1(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - ajv-formats@3.0.1(ajv@8.13.0): optionalDependencies: ajv: 8.13.0 @@ -17923,11 +14741,6 @@ snapshots: dependencies: ajv: 6.12.6 - ajv-keywords@5.1.0(ajv@8.13.0): - dependencies: - ajv: 8.13.0 - fast-deep-equal: 3.1.3 - ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -17963,8 +14776,6 @@ snapshots: dependencies: type-fest: 1.4.0 - ansi-html-community@0.0.8: {} - ansi-regex@2.1.1: optional: true @@ -17988,6 +14799,7 @@ snapshots: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 + optional: true apache-md5@1.1.8: {} @@ -18047,8 +14859,6 @@ snapshots: array-union@2.1.0: {} - array-union@3.0.1: {} - array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.7 @@ -18074,8 +14884,6 @@ snapshots: is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 - asap@2.0.6: {} - asn1@0.2.6: dependencies: safer-buffer: 2.1.2 @@ -18090,10 +14898,6 @@ snapshots: astral-regex@2.0.0: {} - async@2.6.4: - dependencies: - lodash: 4.17.21 - async@3.2.4: {} async@3.2.5: {} @@ -18104,16 +14908,6 @@ snapshots: atomic-sleep@1.0.0: {} - autoprefixer@10.4.20(postcss@8.4.47): - dependencies: - browserslist: 4.24.0 - caniuse-lite: 1.0.30001663 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.0 - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -18145,26 +14939,6 @@ snapshots: b4a@1.6.7: {} - babel-jest@29.7.0(@babel/core@7.24.4): - dependencies: - '@babel/core': 7.24.4 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.24.4) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - babel-loader@9.2.1(@babel/core@7.24.4)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - '@babel/core': 7.24.4 - find-cache-dir: 4.0.0 - schema-utils: 4.2.0 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - babel-plugin-const-enum@1.2.0(@babel/core@7.24.4): dependencies: '@babel/core': 7.24.4 @@ -18174,23 +14948,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-istanbul@6.1.1: - dependencies: - '@babel/helper-plugin-utils': 7.24.8 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-jest-hoist@29.6.3: - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 - babel-plugin-macros@2.8.0: dependencies: '@babel/runtime': 7.24.4 @@ -18228,31 +14985,6 @@ snapshots: optionalDependencies: '@babel/traverse': 7.24.1 - babel-preset-current-node-syntax@1.1.0(@babel/core@7.24.4): - dependencies: - '@babel/core': 7.24.4 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.24.4) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) - - babel-preset-jest@29.6.3(@babel/core@7.24.4): - dependencies: - '@babel/core': 7.24.4 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.24.4) - balanced-match@1.0.2: {} bare-events@2.5.0: @@ -18260,14 +14992,8 @@ snapshots: base64-js@1.5.1: {} - basic-auth@2.0.1: - dependencies: - safe-buffer: 5.1.2 - basic-ftp@5.0.5: {} - batch@0.6.1: {} - bcrypt-pbkdf@1.0.2: dependencies: tweetnacl: 0.14.5 @@ -18282,7 +15008,8 @@ snapshots: bignumber.js@9.1.2: {} - binary-extensions@2.3.0: {} + binary-extensions@2.3.0: + optional: true bl@4.1.0: dependencies: @@ -18309,11 +15036,6 @@ snapshots: transitivePeerDependencies: - supports-color - bonjour-service@1.2.1: - dependencies: - fast-deep-equal: 3.1.3 - multicast-dns: 7.2.5 - boolbase@1.0.0: {} boolean@3.2.0: {} @@ -18410,10 +15132,6 @@ snapshots: - supports-color - utf-8-validate - bser@2.1.1: - dependencies: - node-int64: 0.4.0 - buffer-crc32@0.2.13: {} buffer-equal-constant-time@1.0.1: {} @@ -18442,10 +15160,6 @@ snapshots: dependencies: semver: 7.6.3 - bundle-name@4.1.0: - dependencies: - run-applescript: 7.0.0 - byline@5.0.0: {} bytes@3.0.0: {} @@ -18490,21 +15204,10 @@ snapshots: callsites@3.1.0: {} - camelcase@5.3.1: {} - - camelcase@6.3.0: {} - camelcase@7.0.1: {} camelcase@8.0.0: {} - caniuse-api@3.0.0: - dependencies: - browserslist: 4.24.0 - caniuse-lite: 1.0.30001663 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001663: {} caseless@0.12.0: {} @@ -18532,8 +15235,6 @@ snapshots: chalk@5.3.0: {} - char-regex@1.0.2: {} - chardet@0.7.0: {} check-error@1.0.3: @@ -18571,6 +15272,7 @@ snapshots: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 + optional: true chownr@2.0.0: {} @@ -18578,8 +15280,6 @@ snapshots: ci-info@3.9.0: {} - cjs-module-lexer@1.4.1: {} - cli-boxes@3.0.0: {} cli-cursor@3.1.0: @@ -18617,13 +15317,9 @@ snapshots: clone@1.0.4: {} - co@4.6.0: {} - code-point-at@1.1.0: optional: true - collect-v8-coverage@1.0.2: {} - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -18646,8 +15342,6 @@ snapshots: color-convert: 1.9.3 color-string: 1.9.1 - colord@2.9.3: {} - colorette@2.0.20: {} colorspace@1.1.4: @@ -18668,8 +15362,6 @@ snapshots: commander@2.20.3: {} - commander@7.2.0: {} - commitizen@4.3.0(@types/node@22.10.2)(typescript@5.6.3): dependencies: cachedir: 2.3.0 @@ -18690,8 +15382,6 @@ snapshots: - '@types/node' - typescript - common-path-prefix@3.0.0: {} - compare-func@2.0.0: dependencies: array-ify: 1.0.0 @@ -18699,8 +15389,6 @@ snapshots: compare-versions@6.1.1: {} - component-emitter@1.3.1: {} - compress-commons@5.0.3: dependencies: crc-32: 1.2.2 @@ -18750,8 +15438,6 @@ snapshots: confusing-browser-globals@1.0.11: {} - connect-history-api-fallback@2.0.0: {} - console-control-strings@1.1.0: optional: true @@ -18780,21 +15466,12 @@ snapshots: convert-source-map@2.0.0: {} - cookie-parser@1.4.6: - dependencies: - cookie: 0.4.1 - cookie-signature: 1.0.6 - cookie-signature@1.0.6: {} - cookie@0.4.1: {} - cookie@0.5.0: {} cookie@0.6.0: {} - cookiejar@2.1.4: {} - cookies@0.9.1: dependencies: depd: 2.0.0 @@ -18803,16 +15480,7 @@ snapshots: copy-anything@2.0.6: dependencies: is-what: 3.14.1 - - copy-webpack-plugin@10.2.4(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - fast-glob: 3.3.2 - glob-parent: 6.0.2 - globby: 12.2.0 - normalize-path: 3.0.0 - schema-utils: 4.2.0 - serialize-javascript: 6.0.2 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) + optional: true core-js-compat@3.36.1: dependencies: @@ -18829,8 +15497,6 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - corser@2.0.1: {} - cosmiconfig-typescript-loader@5.0.0(@types/node@22.10.2)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3): dependencies: '@types/node': 22.10.2 @@ -18846,14 +15512,6 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - cosmiconfig@7.1.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - cosmiconfig@9.0.0(typescript@5.6.3): dependencies: env-paths: 2.2.1 @@ -18882,35 +15540,6 @@ snapshots: dependencies: type-fest: 1.4.0 - css-declaration-sorter@7.2.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - css-loader@6.11.0(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - icss-utils: 5.1.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.47) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.47) - postcss-modules-scope: 3.2.0(postcss@8.4.47) - postcss-modules-values: 4.0.0(postcss@8.4.47) - postcss-value-parser: 4.2.0 - semver: 7.6.3 - optionalDependencies: - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - - css-minimizer-webpack-plugin@5.0.1(esbuild@0.19.12)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - cssnano: 6.1.2(postcss@8.4.47) - jest-worker: 29.7.0 - postcss: 8.4.47 - schema-utils: 4.2.0 - serialize-javascript: 6.0.2 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - optionalDependencies: - esbuild: 0.19.12 - css-select@5.1.0: dependencies: boolbase: 1.0.0 @@ -18919,70 +15548,10 @@ snapshots: domutils: 3.1.0 nth-check: 2.1.1 - css-tree@2.2.1: - dependencies: - mdn-data: 2.0.28 - source-map-js: 1.2.1 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.1 - css-what@6.1.0: {} - cssesc@3.0.0: {} - cssfontparser@1.2.1: {} - cssnano-preset-default@6.1.2(postcss@8.4.47): - dependencies: - browserslist: 4.24.0 - css-declaration-sorter: 7.2.0(postcss@8.4.47) - cssnano-utils: 4.0.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-calc: 9.0.1(postcss@8.4.47) - postcss-colormin: 6.1.0(postcss@8.4.47) - postcss-convert-values: 6.1.0(postcss@8.4.47) - postcss-discard-comments: 6.0.2(postcss@8.4.47) - postcss-discard-duplicates: 6.0.3(postcss@8.4.47) - postcss-discard-empty: 6.0.3(postcss@8.4.47) - postcss-discard-overridden: 6.0.2(postcss@8.4.47) - postcss-merge-longhand: 6.0.5(postcss@8.4.47) - postcss-merge-rules: 6.1.1(postcss@8.4.47) - postcss-minify-font-values: 6.1.0(postcss@8.4.47) - postcss-minify-gradients: 6.0.3(postcss@8.4.47) - postcss-minify-params: 6.1.0(postcss@8.4.47) - postcss-minify-selectors: 6.0.4(postcss@8.4.47) - postcss-normalize-charset: 6.0.2(postcss@8.4.47) - postcss-normalize-display-values: 6.0.2(postcss@8.4.47) - postcss-normalize-positions: 6.0.2(postcss@8.4.47) - postcss-normalize-repeat-style: 6.0.2(postcss@8.4.47) - postcss-normalize-string: 6.0.2(postcss@8.4.47) - postcss-normalize-timing-functions: 6.0.2(postcss@8.4.47) - postcss-normalize-unicode: 6.1.0(postcss@8.4.47) - postcss-normalize-url: 6.0.2(postcss@8.4.47) - postcss-normalize-whitespace: 6.0.2(postcss@8.4.47) - postcss-ordered-values: 6.0.2(postcss@8.4.47) - postcss-reduce-initial: 6.1.0(postcss@8.4.47) - postcss-reduce-transforms: 6.0.2(postcss@8.4.47) - postcss-svgo: 6.0.3(postcss@8.4.47) - postcss-unique-selectors: 6.0.4(postcss@8.4.47) - - cssnano-utils@4.0.2(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - cssnano@6.1.2(postcss@8.4.47): - dependencies: - cssnano-preset-default: 6.1.2(postcss@8.4.47) - lilconfig: 3.1.2 - postcss: 8.4.47 - - csso@5.0.5: - dependencies: - css-tree: 2.2.1 - cssstyle@3.0.0: dependencies: rrweb-cssom: 0.6.0 @@ -19065,8 +15634,6 @@ snapshots: dedent@0.7.0: {} - dedent@1.5.3: {} - deep-eql@4.1.3: dependencies: type-detect: 4.0.8 @@ -19075,15 +15642,6 @@ snapshots: deep-is@0.1.4: {} - deepmerge@4.3.1: {} - - default-browser-id@5.0.0: {} - - default-browser@5.2.1: - dependencies: - bundle-name: 4.1.0 - default-browser-id: 5.0.0 - defaults@1.0.4: dependencies: clone: 1.0.4 @@ -19098,8 +15656,6 @@ snapshots: define-lazy-prop@2.0.0: {} - define-lazy-prop@3.0.0: {} - define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -19117,8 +15673,6 @@ snapshots: delegates@1.0.0: optional: true - depd@1.1.2: {} - depd@2.0.0: {} destroy@1.2.0: {} @@ -19129,8 +15683,6 @@ snapshots: detect-libc@1.0.3: {} - detect-newline@3.1.0: {} - detect-node@2.1.0: {} detect-port@1.5.1: @@ -19140,11 +15692,6 @@ snapshots: transitivePeerDependencies: - supports-color - dezalgo@1.0.4: - dependencies: - asap: 2.0.6 - wrappy: 1.0.2 - diff-sequences@29.6.3: {} diff@4.0.2: {} @@ -19153,10 +15700,6 @@ snapshots: dependencies: path-type: 4.0.0 - dns-packet@5.6.1: - dependencies: - '@leichtgewicht/ip-codec': 2.0.5 - doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -19267,8 +15810,6 @@ snapshots: emittery@0.11.0: {} - emittery@0.13.1: {} - emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -19388,116 +15929,6 @@ snapshots: es6-error@4.1.1: {} - esbuild-android-64@0.14.54: - optional: true - - esbuild-android-arm64@0.14.54: - optional: true - - esbuild-darwin-64@0.14.54: - optional: true - - esbuild-darwin-arm64@0.14.54: - optional: true - - esbuild-freebsd-64@0.14.54: - optional: true - - esbuild-freebsd-arm64@0.14.54: - optional: true - - esbuild-linux-32@0.14.54: - optional: true - - esbuild-linux-64@0.14.54: - optional: true - - esbuild-linux-arm64@0.14.54: - optional: true - - esbuild-linux-arm@0.14.54: - optional: true - - esbuild-linux-mips64le@0.14.54: - optional: true - - esbuild-linux-ppc64le@0.14.54: - optional: true - - esbuild-linux-riscv64@0.14.54: - optional: true - - esbuild-linux-s390x@0.14.54: - optional: true - - esbuild-netbsd-64@0.14.54: - optional: true - - esbuild-openbsd-64@0.14.54: - optional: true - - esbuild-sunos-64@0.14.54: - optional: true - - esbuild-windows-32@0.14.54: - optional: true - - esbuild-windows-64@0.14.54: - optional: true - - esbuild-windows-arm64@0.14.54: - optional: true - - esbuild@0.14.54: - optionalDependencies: - '@esbuild/linux-loong64': 0.14.54 - esbuild-android-64: 0.14.54 - esbuild-android-arm64: 0.14.54 - esbuild-darwin-64: 0.14.54 - esbuild-darwin-arm64: 0.14.54 - esbuild-freebsd-64: 0.14.54 - esbuild-freebsd-arm64: 0.14.54 - esbuild-linux-32: 0.14.54 - esbuild-linux-64: 0.14.54 - esbuild-linux-arm: 0.14.54 - esbuild-linux-arm64: 0.14.54 - esbuild-linux-mips64le: 0.14.54 - esbuild-linux-ppc64le: 0.14.54 - esbuild-linux-riscv64: 0.14.54 - esbuild-linux-s390x: 0.14.54 - esbuild-netbsd-64: 0.14.54 - esbuild-openbsd-64: 0.14.54 - esbuild-sunos-64: 0.14.54 - esbuild-windows-32: 0.14.54 - esbuild-windows-64: 0.14.54 - esbuild-windows-arm64: 0.14.54 - - esbuild@0.19.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -19532,8 +15963,6 @@ snapshots: escape-string-regexp@1.0.5: {} - escape-string-regexp@2.0.0: {} - escape-string-regexp@4.0.0: {} escodegen@2.1.0: @@ -19705,8 +16134,6 @@ snapshots: event-target-shim@5.0.1: {} - eventemitter3@4.0.7: {} - eventemitter3@5.0.1: {} events@1.1.1: {} @@ -19749,20 +16176,10 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - exit@0.1.2: {} - expand-tilde@2.0.2: dependencies: homedir-polyfill: 1.0.3 - expect@29.7.0: - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - express-rate-limit@5.5.1: {} express@4.21.0: @@ -19825,14 +16242,6 @@ snapshots: fast-fifo@1.3.2: {} - fast-glob@3.2.7: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -19857,14 +16266,6 @@ snapshots: dependencies: reusify: 1.0.4 - faye-websocket@0.11.4: - dependencies: - websocket-driver: 0.7.4 - - fb-watchman@2.0.2: - dependencies: - bser: 2.1.1 - fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -19905,11 +16306,6 @@ snapshots: transitivePeerDependencies: - supports-color - find-cache-dir@4.0.0: - dependencies: - common-path-prefix: 3.0.0 - pkg-dir: 7.0.0 - find-my-way-ts@0.1.4: dependencies: fast-querystring: 1.1.2 @@ -19931,11 +16327,6 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - find-up@6.3.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - find-up@7.0.0: dependencies: locate-path: 7.2.0 @@ -19971,26 +16362,10 @@ snapshots: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 + optional: true forever-agent@0.6.1: {} - fork-ts-checker-webpack-plugin@7.2.13(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - '@babel/code-frame': 7.24.2 - chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 7.1.0 - deepmerge: 4.3.1 - fs-extra: 10.1.0 - memfs: 3.5.3 - minimatch: 3.1.2 - node-abort-controller: 3.1.1 - schema-utils: 3.3.0 - semver: 7.6.3 - tapable: 2.2.1 - typescript: 5.6.3 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - form-data-encoder@2.1.4: {} form-data@2.3.3: @@ -20011,17 +16386,8 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 - formidable@2.1.2: - dependencies: - dezalgo: 1.0.4 - hexoid: 1.0.0 - once: 1.4.0 - qs: 6.11.0 - forwarded@0.2.0: {} - fraction.js@4.3.7: {} - fresh@0.5.2: {} from@0.1.7: {} @@ -20032,12 +16398,6 @@ snapshots: fs-constants@1.0.0: {} - fs-extra@10.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 @@ -20067,8 +16427,6 @@ snapshots: dependencies: minipass: 3.3.6 - fs-monkey@1.0.6: {} - fs.realpath@1.0.0: {} fsevents@2.3.2: @@ -20133,8 +16491,6 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-package-type@0.1.0: {} - get-stream@5.2.0: dependencies: pump: 3.0.2 @@ -20198,6 +16554,7 @@ snapshots: minipass: 7.1.2 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + optional: true glob@6.0.4: dependencies: @@ -20261,7 +16618,7 @@ snapshots: dependencies: type-fest: 0.20.2 - globals@15.9.0: {} + globals@15.13.0: {} globalthis@1.0.3: dependencies: @@ -20276,15 +16633,6 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globby@12.2.0: - dependencies: - array-union: 3.0.1 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 4.0.0 - globrex@0.1.2: {} google-auth-library@9.14.1: @@ -20385,8 +16733,6 @@ snapshots: - encoding - supports-color - handle-thing@2.0.1: {} - handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -20403,8 +16749,6 @@ snapshots: ajv: 6.12.6 har-schema: 2.0.0 - harmony-reflect@1.6.2: {} - has-bigints@1.0.2: {} has-flag@3.0.0: {} @@ -20440,8 +16784,6 @@ snapshots: headers-utils@1.2.5: {} - hexoid@1.0.0: {} - homedir-polyfill@1.0.3: dependencies: parse-passwd: 1.0.0 @@ -20452,19 +16794,10 @@ snapshots: dependencies: lru-cache: 10.4.3 - hpack.js@2.1.6: - dependencies: - inherits: 2.0.4 - obuf: 1.1.2 - readable-stream: 2.3.8 - wbuf: 1.7.3 - html-encoding-sniffer@3.0.0: dependencies: whatwg-encoding: 2.0.0 - html-entities@2.5.2: {} - html-escaper@2.0.2: {} htmlparser2@8.0.2: @@ -20476,15 +16809,6 @@ snapshots: http-cache-semantics@4.1.1: {} - http-deceiver@1.2.7: {} - - http-errors@1.6.3: - dependencies: - depd: 1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: 1.5.0 - http-errors@2.0.0: dependencies: depd: 2.0.0 @@ -20493,8 +16817,6 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-parser-js@0.5.8: {} - http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 @@ -20510,45 +16832,6 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-middleware@2.0.6(@types/express@4.17.21): - dependencies: - '@types/http-proxy': 1.17.15 - http-proxy: 1.18.1 - is-glob: 4.0.3 - is-plain-obj: 3.0.0 - micromatch: 4.0.8 - optionalDependencies: - '@types/express': 4.17.21 - transitivePeerDependencies: - - debug - - http-proxy@1.18.1: - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.6 - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - - http-server@14.1.1: - dependencies: - basic-auth: 2.0.1 - chalk: 4.1.2 - corser: 2.0.1 - he: 1.2.0 - html-encoding-sniffer: 3.0.0 - http-proxy: 1.18.1 - mime: 1.6.0 - minimist: 1.2.8 - opener: 1.5.2 - portfinder: 1.0.32 - secure-compare: 3.0.1 - union: 0.5.0 - url-join: 4.0.1 - transitivePeerDependencies: - - debug - - supports-color - http-signature@1.2.0: dependencies: assert-plus: 1.0.0 @@ -20599,8 +16882,6 @@ snapshots: husky@8.0.3: {} - hyperdyperid@1.2.0: {} - iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -20609,14 +16890,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - identity-obj-proxy@3.0.0: - dependencies: - harmony-reflect: 1.6.2 - ieee754@1.1.13: {} ieee754@1.2.1: {} @@ -20628,7 +16901,8 @@ snapshots: immer@10.1.1: {} - immutable@4.3.5: {} + immutable@4.3.5: + optional: true import-fresh@3.3.0: dependencies: @@ -20646,8 +16920,6 @@ snapshots: once: 1.4.0 wrappy: 1.0.2 - inherits@2.0.3: {} - inherits@2.0.4: {} ini@1.3.8: {} @@ -20709,8 +16981,6 @@ snapshots: ipaddr.js@1.9.1: {} - ipaddr.js@2.2.0: {} - is-arguments@1.1.1: dependencies: call-bind: 1.0.7 @@ -20732,6 +17002,7 @@ snapshots: is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 + optional: true is-boolean-object@1.1.2: dependencies: @@ -20758,8 +17029,6 @@ snapshots: is-docker@2.2.1: {} - is-docker@3.0.0: {} - is-extglob@2.1.1: {} is-fullwidth-code-point@1.0.0: @@ -20771,8 +17040,6 @@ snapshots: is-fullwidth-code-point@4.0.0: {} - is-generator-fn@2.1.0: {} - is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.2 @@ -20781,10 +17048,6 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-inside-container@1.0.0: - dependencies: - is-docker: 3.0.0 - is-installed-globally@0.4.0: dependencies: global-dirs: 3.0.1 @@ -20794,8 +17057,6 @@ snapshots: is-negative-zero@2.0.3: {} - is-network-error@1.1.0: {} - is-node-process@1.2.0: {} is-npm@6.0.0: {} @@ -20810,8 +17071,6 @@ snapshots: is-path-inside@3.0.3: {} - is-plain-obj@3.0.0: {} - is-potential-custom-element-name@1.0.1: {} is-promise@2.2.2: {} @@ -20861,7 +17120,8 @@ snapshots: dependencies: call-bind: 1.0.7 - is-what@3.14.1: {} + is-what@3.14.1: + optional: true is-windows@1.0.2: {} @@ -20869,348 +17129,68 @@ snapshots: dependencies: is-docker: 2.2.1 - is-wsl@3.1.0: - dependencies: - is-inside-container: 1.0.0 - - is-yarn-global@0.4.1: {} - - isarray@1.0.0: {} - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - isomorphic-ws@5.0.0(ws@8.18.0): - dependencies: - ws: 8.18.0 - - isstream@0.1.2: {} - - istanbul-lib-coverage@3.2.2: {} - - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.24.4 - '@babel/parser': 7.24.4 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - istanbul-lib-instrument@6.0.3: - dependencies: - '@babel/core': 7.24.4 - '@babel/parser': 7.24.4 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - istanbul-lib-report@3.0.1: - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - - istanbul-lib-source-maps@4.0.1: - dependencies: - debug: 4.3.7 - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - - istanbul-lib-source-maps@5.0.4: - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.7 - istanbul-lib-coverage: 3.2.2 - transitivePeerDependencies: - - supports-color - - istanbul-reports@3.1.7: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jake@10.8.7: - dependencies: - async: 3.2.5 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - - jest-canvas-mock@2.5.2: - dependencies: - cssfontparser: 1.2.1 - moo-color: 1.0.3 - - jest-circus@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.10.2 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.5.3 - is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-config@29.7.0(@types/node@22.10.2)(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3)): - dependencies: - '@babel/core': 7.24.4 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.4) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.10.2 - ts-node: 10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-docblock@29.7.0: - dependencies: - detect-newline: 3.1.0 - - jest-each@29.7.0: - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 - - jest-environment-node@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.10.2 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - jest-get-type@29.6.3: {} - - jest-haste-map@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 22.10.2 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.8 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - jest-leak-detector@29.7.0: - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-matcher-utils@29.7.0: - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-message-util@29.7.0: - dependencies: - '@babel/code-frame': 7.24.2 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 + is-yarn-global@0.4.1: {} + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} - jest-mock@29.7.0: + isomorphic-ws@5.0.0(ws@8.18.0): dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.10.2 - jest-util: 29.7.0 + ws: 8.18.0 - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - optionalDependencies: - jest-resolve: 29.7.0 + isstream@0.1.2: {} - jest-regex-util@29.6.3: {} + istanbul-lib-coverage@3.2.2: {} - jest-resolve@29.7.0: + istanbul-lib-report@3.0.1: dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.8 - resolve.exports: 2.0.2 - slash: 3.0.0 + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 - jest-runner@29.7.0: + istanbul-lib-source-maps@5.0.4: dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.10.2 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 + '@jridgewell/trace-mapping': 0.3.25 + debug: 4.3.7 + istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color - jest-runtime@29.7.0: + istanbul-reports@3.1.7: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.10.2 - chalk: 4.1.2 - cjs-module-lexer: 1.4.1 - collect-v8-coverage: 1.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 - jest-snapshot@29.7.0: + jackspeak@3.4.3: dependencies: - '@babel/core': 7.24.4 - '@babel/generator': 7.24.4 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) - '@babel/types': 7.24.0 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.24.4) - chalk: 4.1.2 - expect: 29.7.0 - graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + optional: true - jest-util@29.7.0: + jake@10.8.7: dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.10.2 + async: 3.2.5 chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 + filelist: 1.0.4 + minimatch: 3.1.2 + + jest-canvas-mock@2.5.2: + dependencies: + cssfontparser: 1.2.1 + moo-color: 1.0.3 - jest-validate@29.7.0: + jest-diff@29.7.0: dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 chalk: 4.1.2 + diff-sequences: 29.6.3 jest-get-type: 29.6.3 - leven: 3.1.0 pretty-format: 29.7.0 - jest-watcher@29.7.0: - dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.10.2 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.7.0 - string-length: 4.0.2 + jest-get-type@29.6.3: {} jest-worker@27.5.1: dependencies: @@ -21224,13 +17204,6 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@29.7.0: - dependencies: - '@types/node': 22.10.2 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - jiti@1.21.0: {} jju@1.4.0: {} @@ -21411,8 +17384,6 @@ snapshots: kleur@4.1.5: {} - klona@2.0.6: {} - kolorist@1.8.0: {} kuler@2.0.0: {} @@ -21421,21 +17392,10 @@ snapshots: dependencies: package-json: 8.1.1 - launch-editor@2.9.1: - dependencies: - picocolors: 1.1.0 - shell-quote: 1.8.1 - lazystream@1.0.1: dependencies: readable-stream: 2.3.8 - less-loader@11.1.0(less@4.1.3)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - klona: 2.0.6 - less: 4.1.3 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - less@4.1.3: dependencies: copy-anything: 2.0.6 @@ -21449,24 +17409,15 @@ snapshots: mime: 1.6.0 needle: 3.3.1 source-map: 0.6.1 - - leven@3.1.0: {} + optional: true levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - license-webpack-plugin@4.0.2(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - webpack-sources: 3.2.3 - optionalDependencies: - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - lilconfig@2.1.0: {} - lilconfig@3.1.2: {} - lines-and-columns@1.2.4: {} lines-and-columns@2.0.3: {} @@ -21553,8 +17504,6 @@ snapshots: lodash.map@4.6.0: {} - lodash.memoize@4.1.2: {} - lodash.merge@4.6.2: {} lodash.mergewith@4.6.2: {} @@ -21656,10 +17605,6 @@ snapshots: make-error@1.3.6: {} - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - map-stream@0.1.0: {} markdown-it@14.1.0: @@ -21675,25 +17620,10 @@ snapshots: dependencies: escape-string-regexp: 4.0.0 - mdn-data@2.0.28: {} - - mdn-data@2.0.30: {} - mdurl@2.0.0: {} media-typer@0.3.0: {} - memfs@3.5.3: - dependencies: - fs-monkey: 1.0.6 - - memfs@4.12.0: - dependencies: - '@jsonjoy.com/json-pack': 1.1.0(tslib@2.6.3) - '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) - tree-dump: 1.0.2(tslib@2.6.3) - tslib: 2.6.3 - meow@12.1.1: {} merge-descriptors@1.0.3: {} @@ -21733,13 +17663,6 @@ snapshots: mimic-response@4.0.0: {} - mini-css-extract-plugin@2.4.7(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - schema-utils: 4.2.0 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - - minimalistic-assert@1.0.1: {} - minimatch@3.0.8: dependencies: brace-expansion: 1.1.11 @@ -21783,11 +17706,6 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 - mkcert@3.2.0: - dependencies: - commander: 11.0.0 - node-forge: 1.3.1 - mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -21843,11 +17761,6 @@ snapshots: muggle-string@0.4.1: {} - multicast-dns@7.2.5: - dependencies: - dns-packet: 5.6.1 - thunky: 1.1.0 - multipasta@0.2.2: {} mute-stream@0.0.8: {} @@ -21882,8 +17795,6 @@ snapshots: netmask@2.0.2: {} - node-abort-controller@3.1.1: {} - node-addon-api@7.1.1: {} node-fetch@2.6.7: @@ -21894,10 +17805,6 @@ snapshots: dependencies: whatwg-url: 5.0.0 - node-forge@1.3.1: {} - - node-int64@0.4.0: {} - node-machine-id@1.1.12: {} node-releases@2.0.18: {} @@ -21920,8 +17827,6 @@ snapshots: normalize-path@3.0.0: {} - normalize-range@0.1.2: {} - normalize-url@6.1.0: {} normalize-url@8.0.1: {} @@ -22077,8 +17982,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 - obuf@1.1.2: {} - oidc-token-hash@5.0.3: {} on-exit-leak-free@0.2.0: {} @@ -22105,21 +18008,12 @@ snapshots: dependencies: mimic-fn: 4.0.0 - open@10.1.0: - dependencies: - default-browser: 5.2.1 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 3.1.0 - open@8.4.2: dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - opener@1.5.2: {} - openid-client@5.7.0: dependencies: jose: 4.15.9 @@ -22210,12 +18104,6 @@ snapshots: p-map@2.1.0: {} - p-retry@6.2.0: - dependencies: - '@types/retry': 0.12.2 - is-network-error: 1.1.0 - retry: 0.13.1 - p-try@2.2.0: {} pac-proxy-agent@7.0.2: @@ -22236,7 +18124,8 @@ snapshots: degenerator: 5.0.1 netmask: 2.0.2 - package-json-from-dist@1.0.1: {} + package-json-from-dist@1.0.1: + optional: true package-json@8.1.1: dependencies: @@ -22258,7 +18147,8 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-node-version@1.0.1: {} + parse-node-version@1.0.1: + optional: true parse-passwd@1.0.0: {} @@ -22267,8 +18157,6 @@ snapshots: domhandler: 5.0.3 parse5: 7.1.2 - parse5@4.0.0: {} - parse5@7.1.2: dependencies: entities: 4.5.0 @@ -22293,288 +18181,85 @@ snapshots: dependencies: lru-cache: 10.4.3 minipass: 7.1.2 + optional: true - path-to-regexp@0.1.10: {} - - path-to-regexp@6.3.0: {} - - path-type@4.0.0: {} - - pathe@1.1.2: {} - - pathval@1.1.1: {} - - pause-stream@0.0.11: - dependencies: - through: 2.3.8 - - pend@1.2.0: {} - - performance-now@2.1.0: {} - - picocolors@1.1.0: {} - - picomatch@2.3.1: {} - - picomatch@3.0.1: {} - - picomatch@4.0.2: {} - - pidtree@0.6.0: {} - - pify@2.3.0: {} - - pify@3.0.0: {} - - pify@4.0.1: {} - - pino-abstract-transport@0.5.0: - dependencies: - duplexify: 4.1.3 - split2: 4.2.0 - - pino-abstract-transport@1.1.0: - dependencies: - readable-stream: 4.5.2 - split2: 4.2.0 - - pino-std-serializers@4.0.0: {} - - pino@7.11.0: - dependencies: - atomic-sleep: 1.0.0 - fast-redact: 3.5.0 - on-exit-leak-free: 0.2.0 - pino-abstract-transport: 0.5.0 - pino-std-serializers: 4.0.0 - process-warning: 1.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.1.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 2.8.0 - thread-stream: 0.15.2 - - pirates@4.0.6: {} - - pkg-dir@7.0.0: - dependencies: - find-up: 6.3.0 - - pkg-types@1.0.3: - dependencies: - jsonc-parser: 3.2.0 - mlly: 1.6.1 - pathe: 1.1.2 - - pkginfo@0.4.1: {} - - playwright-core@1.47.2: {} - - playwright@1.47.2: - dependencies: - playwright-core: 1.47.2 - optionalDependencies: - fsevents: 2.3.2 - - portfinder@1.0.32: - dependencies: - async: 2.6.4 - debug: 3.2.7 - mkdirp: 0.5.6 - transitivePeerDependencies: - - supports-color - - possible-typed-array-names@1.0.0: {} - - postcss-calc@9.0.1(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 - - postcss-colormin@6.1.0(postcss@8.4.47): - dependencies: - browserslist: 4.24.0 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - postcss-convert-values@6.1.0(postcss@8.4.47): - dependencies: - browserslist: 4.24.0 - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - postcss-discard-comments@6.0.2(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-discard-duplicates@6.0.3(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-discard-empty@6.0.3(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-discard-overridden@6.0.2(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-import@14.1.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.8 - - postcss-loader@6.2.1(postcss@8.4.47)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - cosmiconfig: 7.1.0 - klona: 2.0.6 - postcss: 8.4.47 - semver: 7.6.3 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - - postcss-merge-longhand@6.0.5(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - stylehacks: 6.1.1(postcss@8.4.47) - - postcss-merge-rules@6.1.1(postcss@8.4.47): - dependencies: - browserslist: 4.24.0 - caniuse-api: 3.0.0 - cssnano-utils: 4.0.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - postcss-minify-font-values@6.1.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + path-to-regexp@0.1.10: {} - postcss-minify-gradients@6.0.3(postcss@8.4.47): - dependencies: - colord: 2.9.3 - cssnano-utils: 4.0.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + path-to-regexp@6.3.0: {} - postcss-minify-params@6.1.0(postcss@8.4.47): - dependencies: - browserslist: 4.24.0 - cssnano-utils: 4.0.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + path-type@4.0.0: {} - postcss-minify-selectors@6.0.4(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 + pathe@1.1.2: {} - postcss-modules-extract-imports@3.1.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 + pathval@1.1.1: {} - postcss-modules-local-by-default@4.0.5(postcss@8.4.47): + pause-stream@0.0.11: dependencies: - icss-utils: 5.1.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 + through: 2.3.8 - postcss-modules-scope@3.2.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 + pend@1.2.0: {} - postcss-modules-values@4.0.0(postcss@8.4.47): - dependencies: - icss-utils: 5.1.0(postcss@8.4.47) - postcss: 8.4.47 + performance-now@2.1.0: {} - postcss-normalize-charset@6.0.2(postcss@8.4.47): - dependencies: - postcss: 8.4.47 + picocolors@1.1.0: {} - postcss-normalize-display-values@6.0.2(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + picomatch@2.3.1: {} - postcss-normalize-positions@6.0.2(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + picomatch@3.0.1: {} - postcss-normalize-repeat-style@6.0.2(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + picomatch@4.0.2: {} - postcss-normalize-string@6.0.2(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + pidtree@0.6.0: {} - postcss-normalize-timing-functions@6.0.2(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + pify@3.0.0: {} - postcss-normalize-unicode@6.1.0(postcss@8.4.47): - dependencies: - browserslist: 4.24.0 - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + pify@4.0.1: {} - postcss-normalize-url@6.0.2(postcss@8.4.47): + pino-abstract-transport@0.5.0: dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + duplexify: 4.1.3 + split2: 4.2.0 - postcss-normalize-whitespace@6.0.2(postcss@8.4.47): + pino-abstract-transport@1.1.0: dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + readable-stream: 4.5.2 + split2: 4.2.0 - postcss-ordered-values@6.0.2(postcss@8.4.47): - dependencies: - cssnano-utils: 4.0.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + pino-std-serializers@4.0.0: {} - postcss-reduce-initial@6.1.0(postcss@8.4.47): + pino@7.11.0: dependencies: - browserslist: 4.24.0 - caniuse-api: 3.0.0 - postcss: 8.4.47 + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 0.2.0 + pino-abstract-transport: 0.5.0 + pino-std-serializers: 4.0.0 + process-warning: 1.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.1.0 + safe-stable-stringify: 2.4.3 + sonic-boom: 2.8.0 + thread-stream: 0.15.2 - postcss-reduce-transforms@6.0.2(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 + pirates@4.0.6: {} - postcss-selector-parser@6.1.2: + pkg-types@1.0.3: dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 + jsonc-parser: 3.2.0 + mlly: 1.6.1 + pathe: 1.1.2 - postcss-svgo@6.0.3(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - svgo: 3.3.2 + pkginfo@0.4.1: {} - postcss-unique-selectors@6.0.4(postcss@8.4.47): + playwright-core@1.47.2: {} + + playwright@1.47.2: dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 + playwright-core: 1.47.2 + optionalDependencies: + fsevents: 2.3.2 - postcss-value-parser@4.2.0: {} + possible-typed-array-names@1.0.0: {} postcss@8.4.47: dependencies: @@ -22677,10 +18362,6 @@ snapshots: dependencies: side-channel: 1.0.6 - qs@6.11.0: - dependencies: - side-channel: 1.0.6 - qs@6.13.0: dependencies: side-channel: 1.0.6 @@ -22726,10 +18407,6 @@ snapshots: loose-envify: 1.4.0 optional: true - read-cache@1.0.0: - dependencies: - pify: 2.3.0 - read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 @@ -22768,6 +18445,7 @@ snapshots: readdirp@3.6.0: dependencies: picomatch: 2.3.1 + optional: true real-require@0.1.0: {} @@ -22865,10 +18543,6 @@ snapshots: resolve-from@5.0.0: {} - resolve.exports@1.1.0: {} - - resolve.exports@2.0.2: {} - resolve@1.22.8: dependencies: is-core-module: 2.13.1 @@ -22904,8 +18578,6 @@ snapshots: retry@0.10.1: {} - retry@0.13.1: {} - reusify@1.0.4: {} rfc4648@1.5.3: {} @@ -22957,8 +18629,6 @@ snapshots: rrweb-cssom@0.6.0: {} - run-applescript@7.0.0: {} - run-async@2.4.1: {} run-async@3.0.0: {} @@ -22992,19 +18662,12 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@12.6.0(sass@1.75.0)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - klona: 2.0.6 - neo-async: 2.6.2 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - optionalDependencies: - sass: 1.75.0 - sass@1.75.0: dependencies: chokidar: 3.6.0 immutable: 4.3.5 - source-map-js: 1.2.0 + source-map-js: 1.2.1 + optional: true sax@1.2.1: {} @@ -23020,22 +18683,6 @@ snapshots: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@4.2.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.13.0 - ajv-formats: 2.1.1(ajv@8.13.0) - ajv-keywords: 5.1.0(ajv@8.13.0) - - secure-compare@3.0.1: {} - - select-hose@2.0.0: {} - - selfsigned@2.4.1: - dependencies: - '@types/node-forge': 1.3.11 - node-forge: 1.3.1 - semver-compare@1.0.0: {} semver-diff@4.0.0: @@ -23082,18 +18729,6 @@ snapshots: dependencies: randombytes: 2.1.0 - serve-index@1.9.1: - dependencies: - accepts: 1.3.8 - batch: 0.6.1 - debug: 2.6.9 - escape-html: 1.0.3 - http-errors: 1.6.3 - mime-types: 2.1.35 - parseurl: 1.3.3 - transitivePeerDependencies: - - supports-color - serve-static@1.16.2: dependencies: encodeurl: 2.0.0 @@ -23122,8 +18757,6 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - setprototypeof@1.1.0: {} - setprototypeof@1.2.0: {} shebang-command@2.0.0: @@ -23132,8 +18765,6 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.8.1: {} - shelljs@0.8.5: dependencies: glob: 7.2.3 @@ -23170,8 +18801,6 @@ snapshots: slash@3.0.0: {} - slash@4.0.0: {} - slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 @@ -23192,12 +18821,6 @@ snapshots: '@sentry/node': 7.110.1 global-agent: 3.0.0 - sockjs@0.3.24: - dependencies: - faye-websocket: 0.11.4 - uuid: 8.3.2 - websocket-driver: 0.7.4 - socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.1 @@ -23223,17 +18846,6 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@5.0.0(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - iconv-lite: 0.6.3 - source-map-js: 1.2.1 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - - source-map-support@0.5.13: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - source-map-support@0.5.19: dependencies: buffer-from: 1.1.2 @@ -23246,7 +18858,8 @@ snapshots: source-map@0.6.1: {} - source-map@0.7.4: {} + source-map@0.7.4: + optional: true spawndamnit@2.0.0: dependencies: @@ -23267,27 +18880,6 @@ snapshots: spdx-license-ids@3.0.17: {} - spdy-transport@3.0.0: - dependencies: - debug: 4.3.7 - detect-node: 2.1.0 - hpack.js: 2.1.6 - obuf: 1.1.2 - readable-stream: 3.6.2 - wbuf: 1.7.3 - transitivePeerDependencies: - - supports-color - - spdy@4.0.2: - dependencies: - debug: 4.3.7 - handle-thing: 2.0.1 - http-deceiver: 1.2.7 - select-hose: 2.0.0 - spdy-transport: 3.0.0 - transitivePeerDependencies: - - supports-color - split2@4.2.0: {} split@0.3.3: @@ -23316,14 +18908,8 @@ snapshots: stack-trace@0.0.10: {} - stack-utils@2.0.6: - dependencies: - escape-string-regexp: 2.0.0 - stackback@0.0.2: {} - statuses@1.5.0: {} - statuses@2.0.1: {} std-env@3.7.0: {} @@ -23358,11 +18944,6 @@ snapshots: string-argv@0.3.2: {} - string-length@4.0.2: - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - string-width@1.0.2: dependencies: code-point-at: 1.1.0 @@ -23440,23 +19021,6 @@ snapshots: stubs@3.0.0: {} - style-loader@3.3.4(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - - stylehacks@6.1.1(postcss@8.4.47): - dependencies: - browserslist: 4.24.0 - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - stylus-loader@7.1.3(stylus@0.64.0)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - fast-glob: 3.3.2 - normalize-path: 3.0.0 - stylus: 0.64.0 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - stylus@0.64.0: dependencies: '@adobe/css-tools': 4.3.3 @@ -23466,21 +19030,7 @@ snapshots: source-map: 0.7.4 transitivePeerDependencies: - supports-color - - superagent@8.1.2: - dependencies: - component-emitter: 1.3.1 - cookiejar: 2.1.4 - debug: 4.3.7 - fast-safe-stringify: 2.1.1 - form-data: 4.0.0 - formidable: 2.1.2 - methods: 1.1.2 - mime: 2.6.0 - qs: 6.11.0 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color + optional: true supports-color@5.5.0: dependencies: @@ -23496,23 +19046,13 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svgo@3.3.2: - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 5.1.0 - css-tree: 2.3.1 - css-what: 6.1.0 - csso: 5.0.5 - picocolors: 1.1.0 - swagger-ui-dist@5.17.14: {} - swc-loader@0.1.15(@swc/core@1.5.7(@swc/helpers@0.5.12))(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): + swc-loader@0.1.15(@swc/core@1.5.7(@swc/helpers@0.5.12))(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))): dependencies: '@swc/core': 1.5.7(@swc/helpers@0.5.12) loader-utils: 2.0.4 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) + webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12)) symbol-tree@3.2.4: {} @@ -23571,17 +19111,16 @@ snapshots: term-size@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): + terser-webpack-plugin@5.3.10(@swc/core@1.5.7(@swc/helpers@0.5.12))(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.33.0 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) + webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12)) optionalDependencies: '@swc/core': 1.5.7(@swc/helpers@0.5.12) - esbuild: 0.19.12 terser@5.33.0: dependencies: @@ -23606,18 +19145,12 @@ snapshots: text-table@0.2.0: {} - thingies@1.21.0(tslib@2.6.3): - dependencies: - tslib: 2.6.3 - thread-stream@0.15.2: dependencies: real-require: 0.1.0 through@2.3.8: {} - thunky@1.1.0: {} - tinybench@2.7.0: {} tinyglobby@0.2.10: @@ -23639,8 +19172,6 @@ snapshots: tmp@0.2.3: {} - tmpl@1.0.5: {} - to-fast-properties@2.0.0: {} to-regex-range@5.0.1: @@ -23673,26 +19204,12 @@ snapshots: dependencies: punycode: 2.3.1 - tree-dump@1.0.2(tslib@2.6.3): - dependencies: - tslib: 2.6.3 - triple-beam@1.4.1: {} ts-api-utils@1.3.0(typescript@5.6.3): dependencies: typescript: 5.6.3 - ts-loader@9.5.1(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.17.1 - micromatch: 4.0.8 - semver: 7.6.3 - source-map: 0.7.4 - typescript: 5.6.3 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -23717,12 +19234,6 @@ snapshots: optionalDependencies: typescript: 5.6.3 - tsconfig-paths-webpack-plugin@4.0.0: - dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.17.1 - tsconfig-paths: 4.2.0 - tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -23810,8 +19321,6 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typed-assert@1.0.9: {} - typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 @@ -23875,10 +19384,6 @@ snapshots: unicorn-magic@0.1.0: {} - union@0.5.0: - dependencies: - qs: 6.13.0 - unique-string@3.0.0: dependencies: crypto-random-string: 4.0.0 @@ -23920,8 +19425,6 @@ snapshots: dependencies: punycode: 2.3.1 - url-join@4.0.1: {} - url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -23956,12 +19459,6 @@ snapshots: v8-compile-cache-lib@3.0.1: {} - v8-to-istanbul@9.3.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -24174,19 +19671,11 @@ snapshots: dependencies: xml-name-validator: 4.0.0 - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - wbuf@1.7.3: - dependencies: - minimalistic-assert: 1.0.1 - wcwidth@1.0.1: dependencies: defaults: 1.0.4 @@ -24195,65 +19684,9 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-dev-middleware@7.4.2(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - colorette: 2.0.20 - memfs: 4.12.0 - mime-types: 2.1.35 - on-finished: 2.4.1 - range-parser: 1.2.1 - schema-utils: 4.2.0 - optionalDependencies: - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - - webpack-dev-server@5.1.0(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.21 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.7 - '@types/sockjs': 0.3.36 - '@types/ws': 8.5.12 - ansi-html-community: 0.0.8 - bonjour-service: 1.2.1 - chokidar: 3.6.0 - colorette: 2.0.20 - compression: 1.7.4 - connect-history-api-fallback: 2.0.0 - express: 4.21.0 - graceful-fs: 4.2.11 - html-entities: 2.5.2 - http-proxy-middleware: 2.0.6(@types/express@4.17.21) - ipaddr.js: 2.2.0 - launch-editor: 2.9.1 - open: 10.1.0 - p-retry: 6.2.0 - schema-utils: 4.2.0 - selfsigned: 2.4.1 - serve-index: 1.9.1 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack-dev-middleware: 7.4.2(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) - ws: 8.18.0 - optionalDependencies: - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - utf-8-validate - - webpack-node-externals@3.0.0: {} - webpack-sources@3.2.3: {} - webpack-subresource-integrity@5.1.0(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)): - dependencies: - typed-assert: 1.0.9 - webpack: 5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12) - - webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12): + webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12)): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 @@ -24275,7 +19708,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))(esbuild@0.19.12)) + terser-webpack-plugin: 5.3.10(@swc/core@1.5.7(@swc/helpers@0.5.12))(webpack@5.95.0(@swc/core@1.5.7(@swc/helpers@0.5.12))) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -24283,14 +19716,6 @@ snapshots: - esbuild - uglify-js - websocket-driver@0.7.4: - dependencies: - http-parser-js: 0.5.8 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - - websocket-extensions@0.1.4: {} - whatwg-encoding@2.0.0: dependencies: iconv-lite: 0.6.3 @@ -24400,11 +19825,6 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - write-file-atomic@4.0.2: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - ws@8.18.0: {} xdg-basedir@5.1.0: {} From cdbbf2cace5dd75a19911376a11f482f30311e00 Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Mon, 16 Dec 2024 15:45:22 -0700 Subject: [PATCH 12/14] chore: update-changesets-config --- .changeset/config.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.changeset/config.json b/.changeset/config.json index 71e3542de..36407468a 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -7,16 +7,14 @@ } ], "commit": false, - "fixed": [["@forgerock/ping-protect"]], + "fixed": [], "linked": [], "access": "public", "baseBranch": "master", "updateInternalDependencies": "patch", "ignore": [ - "@forgerock/device-client", - "@forgerock/autoscript-apps", - "@forgerock/autoscript-suites", "@forgerock/davinci-app", - "@forgerock/mock-api" + "@forgerock/davinci-suites", + "@forgerock/mock-api-v2" ] } From 013165dbe2a35b805f3e45b191813509982e35f2 Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Mon, 16 Dec 2024 15:48:56 -0700 Subject: [PATCH 13/14] chore: remove-labeler-action --- .github/workflows/labeler.yml | 21 --------------------- .prettierignore | 6 +++++- e2e/davinci-suites/playwright.config.ts | 4 ---- nx.json | 1 + 4 files changed, 6 insertions(+), 26 deletions(-) delete mode 100644 .github/workflows/labeler.yml diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml deleted file mode 100644 index d74a063c0..000000000 --- a/.github/workflows/labeler.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Labeler -on: - pull_request: - -env: - NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} - NX_CLOUD_ENCRYPTION_KEY: ${{ secrets.NX_CLOUD_ENCRYPTION_KEY }} - -jobs: - label-pr: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.event.pull_request.head.ref }} - repository: ${{github.event.pull_request.head.repo.full_name}} - fetch-depth: 0 - - uses: actions/labeler@v4 - with: - repo-token: '${{ secrets.GITHUB_TOKEN }}' - sync-labels: true diff --git a/.prettierignore b/.prettierignore index b479f21ae..a1d996fa8 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,4 +5,8 @@ package-lock.json */*/package-lock.json .husky/* -/.nx/workspace-data \ No newline at end of file +/.nx/workspace-data +pnpm-lock.yml +packages/*/dist +e2e/*/dist +*/dist \ No newline at end of file diff --git a/e2e/davinci-suites/playwright.config.ts b/e2e/davinci-suites/playwright.config.ts index d1b17ba97..7143e91b6 100644 --- a/e2e/davinci-suites/playwright.config.ts +++ b/e2e/davinci-suites/playwright.config.ts @@ -5,12 +5,8 @@ import { workspaceRoot } from '@nx/devkit'; const baseURL = process.env['BASE_URL'] || 'http://localhost:5829'; const config: PlaywrightTestConfig = { -<<<<<<< HEAD - ...baseConfig, outputDir: './.playwright', -======= testDir: './src', ->>>>>>> c9c7c19 (chore: remove-ping-protect-and-e2es) reporter: process.env.CI ? 'github' : 'list', timeout: 30000, use: { diff --git a/nx.json b/nx.json index 0d184f5f1..ea577d9a9 100644 --- a/nx.json +++ b/nx.json @@ -35,6 +35,7 @@ "test": { "dependsOn": ["^build", "^test"], "inputs": ["noMarkdown", "^noMarkdown"], + "outputs": ["{projectRoot}/coverage"], "cache": true }, "build": { From 02779e28f50308306202d7fd5ee2d9e98baea385 Mon Sep 17 00:00:00 2001 From: ryanbas21 Date: Tue, 17 Dec 2024 12:28:33 -0700 Subject: [PATCH 14/14] chore: creating-package-generator --- .eslintrc.json | 7 + .gitignore | 1 + contributing_docs/creating-a-package.md | 31 + generators.json | 9 + nx.json | 5 + package.json | 11 +- pnpm-lock.yaml | 2131 ++++++++++++++++- pnpm-workspace.yaml | 1 + project.json | 1 + tools/create-package/.eslintignore | 12 + tools/create-package/.eslintrc.json | 37 + tools/create-package/README.md | 7 + tools/create-package/generators.json | 9 + tools/create-package/package.json | 13 + tools/create-package/project.json | 48 + .../create-package-generator.spec.ts | 21 + .../generators/create-package-generator.ts | 32 + .../generators/files/.eslintignore.template | 11 + .../generators/files/.eslintrc.json.template | 33 + .../generators/files/CHANGELOG.md.template | 0 .../src/generators/files/README.md.template | 3 + .../generators/files/package.json.template | 26 + .../generators/files/src/index.ts.template | 1 + .../files/src/lib/index.ts.template | 3 + .../generators/files/tsconfig.json.template | 25 + .../files/tsconfig.lib.json.template | 13 + .../files/tsconfig.spec.json.template | 27 + .../generators/files/typedoc.json.template | 68 + .../generators/files/vite.config.ts.template | 26 + .../create-package/src/generators/schema.d.ts | 8 + .../create-package/src/generators/schema.json | 53 + tools/create-package/src/index.ts | 0 tools/create-package/tsconfig.json | 14 + tools/create-package/tsconfig.lib.json | 10 + tools/create-package/tsconfig.spec.json | 26 + tools/create-package/vite.config.ts | 27 + 36 files changed, 2664 insertions(+), 86 deletions(-) create mode 100644 contributing_docs/creating-a-package.md create mode 100644 generators.json create mode 100644 tools/create-package/.eslintignore create mode 100644 tools/create-package/.eslintrc.json create mode 100644 tools/create-package/README.md create mode 100644 tools/create-package/generators.json create mode 100644 tools/create-package/package.json create mode 100644 tools/create-package/project.json create mode 100644 tools/create-package/src/generators/create-package-generator.spec.ts create mode 100644 tools/create-package/src/generators/create-package-generator.ts create mode 100644 tools/create-package/src/generators/files/.eslintignore.template create mode 100644 tools/create-package/src/generators/files/.eslintrc.json.template create mode 100644 tools/create-package/src/generators/files/CHANGELOG.md.template create mode 100644 tools/create-package/src/generators/files/README.md.template create mode 100644 tools/create-package/src/generators/files/package.json.template create mode 100644 tools/create-package/src/generators/files/src/index.ts.template create mode 100644 tools/create-package/src/generators/files/src/lib/index.ts.template create mode 100644 tools/create-package/src/generators/files/tsconfig.json.template create mode 100644 tools/create-package/src/generators/files/tsconfig.lib.json.template create mode 100644 tools/create-package/src/generators/files/tsconfig.spec.json.template create mode 100644 tools/create-package/src/generators/files/typedoc.json.template create mode 100644 tools/create-package/src/generators/files/vite.config.ts.template create mode 100644 tools/create-package/src/generators/schema.d.ts create mode 100644 tools/create-package/src/generators/schema.json create mode 100644 tools/create-package/src/index.ts create mode 100644 tools/create-package/tsconfig.json create mode 100644 tools/create-package/tsconfig.lib.json create mode 100644 tools/create-package/tsconfig.spec.json create mode 100644 tools/create-package/vite.config.ts diff --git a/.eslintrc.json b/.eslintrc.json index 8400f59bd..f68d95d71 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -69,6 +69,13 @@ "files": "*.json", "parser": "jsonc-eslint-parser", "rules": {} + }, + { + "files": ["./package.json", "./generators.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "@nx/nx-plugin-checks": "error" + } } ], "parser": "@typescript-eslint/parser", diff --git a/.gitignore b/.gitignore index 1bf650934..aa40e056d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ tmp/ e2e/**/dist */dist/* +**/dist dist/* packages/*/dist/ bundles/ diff --git a/contributing_docs/creating-a-package.md b/contributing_docs/creating-a-package.md new file mode 100644 index 000000000..3308a9fbb --- /dev/null +++ b/contributing_docs/creating-a-package.md @@ -0,0 +1,31 @@ +# Creating a package + +We have a local plugin to create packages within the repository. This document will explain the options when creating a package. + +## How to generate a package + +There is a `pnpm` command to create a package. `pnpm create-package`. + +## Options + +You will be provided with several prompts when creating the package. + +The only required prompt is a `name`. This is the `package` name and the file-system name. + +### Optional prompts + +`scope`: this is the `npm` scope that will be interpolated into the `package.json` `name` field. Do not include the `@` symbol, it is added automatically. + +`sideEffects`: This is to ensure packages are tree shakeable. `false` sets the the value to `false`. If you intend to have `sideEffects` you can set it to `true`. however this will mark _every_ file as a side effect. It's best to edit this afterwards on your own if the value is not `false`. + +`description`: If you want to add a description of the package in the `package.json`, `description` field. + +`moduleType`: This sets the `module` type. Either `commonjs` or `module` are valid entries. Default is `module` + +`outputDir`: This sets up the `output` directory. by default, it is set to `dist`. This typically shouldn't need to be changed. + +## Notes + +All packages are marked as `private` by default. This is to prevent unwanted publishing. It is the developer's responsibility to mark a package as public when ready to publish. See [releases](./releases.md) for more information on releases. + +All packages are by default setup to used `tsc`. Other build tools can be used after the generator is run. If its requested to add a generator or option for using `vite` or something else, please reach out to @ryanbas21 or add the feature in yourself and PR it. diff --git a/generators.json b/generators.json new file mode 100644 index 000000000..4e742ad23 --- /dev/null +++ b/generators.json @@ -0,0 +1,9 @@ +{ + "generators": { + "create-package-generator": { + "factory": "./tools/create-package/src/generators/create-package-generator", + "schema": "./tools/create-package/src/generators/schema.json", + "description": "create-package-generator generator" + } + } +} diff --git a/nx.json b/nx.json index ea577d9a9..7d4d99790 100644 --- a/nx.json +++ b/nx.json @@ -49,6 +49,11 @@ "inputs": ["noMarkdown", "^noMarkdown"], "outputs": ["{projectRoot}/.playwright"], "cache": true + }, + "@nx/js:tsc": { + "cache": true, + "dependsOn": ["^build"], + "inputs": ["production", "^production"] } }, "parallel": 1, diff --git a/package.json b/package.json index 8d8248947..11b662888 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "ci:version": "changeset version && pnpm install --no-frozen-lockfile && pnpm nx format:write", "changeset": "changeset", "commit": "git cz", + "create-package": "nx build @forgerock/create-package && nx g @forgerock/create-package:create", "docs": "nx affected --target=typedoc", "e2e": "CI=true nx affected:e2e", "format:staged": "pretty-quick --staged", @@ -44,13 +45,17 @@ "@effect/platform-node": "^0.53.26", "@effect/schema": "^0.68.23", "@effect/vitest": "^0.6.7", + "@forgerock/create-package": "workspace:*", "@nx/devkit": "20.2.2", - "@nx/eslint-plugin": "20.2.2", "@nx/eslint": "20.2.2", + "@nx/eslint-plugin": "20.2.2", + "@nx/jest": "20.2.2", "@nx/js": "20.2.2", + "@nx/plugin": "20.2.2", "@nx/workspace": "20.2.2", "@playwright/test": "^1.47.2", "@swc-node/register": "1.9.2", + "@swc/cli": "~0.3.12", "@swc/core": "1.5.7", "@swc/helpers": "0.5.12", "@types/estree": "^1.0.1", @@ -111,6 +116,7 @@ }, "packageManager": "pnpm@9.15.0+sha256.09a8fe31a34fda706354680619f4002f4ccef6dadff93240d24ef6c831f0fd28", "dependencies": { + "@nx/devkit": "20.2.2", "@changesets/changelog-github": "^0.5.0", "@changesets/cli": "^2.27.9", "browserstack-node-sdk": "1.34.17", @@ -132,5 +138,6 @@ "path-to-regexp@<0.1.10": ">=0.1.10", "rollup@<2.79.2": ">=2.79.2" } - } + }, + "generators": "./generators.json" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ff2b2271..b6defd3e2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,6 +28,9 @@ importers: '@changesets/cli': specifier: ^2.27.9 version: 2.27.9 + '@nx/devkit': + specifier: 20.2.2 + version: 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) browserstack-node-sdk: specifier: 1.34.17 version: 1.34.17 @@ -59,18 +62,24 @@ importers: '@effect/vitest': specifier: ^0.6.7 version: 0.6.7(effect@3.5.3)(vitest@1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0)) - '@nx/devkit': - specifier: 20.2.2 - version: 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) + '@forgerock/create-package': + specifier: workspace:* + version: link:tools/create-package/dist '@nx/eslint': specifier: 20.2.2 version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(verdaccio@5.30.3(typanion@3.14.0)) '@nx/eslint-plugin': specifier: 20.2.2 version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.6.3))(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) + '@nx/jest': + specifier: 20.2.2 + version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) '@nx/js': specifier: 20.2.2 version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) + '@nx/plugin': + specifier: 20.2.2 + version: 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) '@nx/workspace': specifier: 20.2.2 version: 20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)) @@ -80,6 +89,9 @@ importers: '@swc-node/register': specifier: 1.9.2 version: 1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3) + '@swc/cli': + specifier: ~0.3.12 + version: 0.3.14(@swc/core@1.5.7(@swc/helpers@0.5.12))(chokidar@3.6.0) '@swc/core': specifier: 1.5.7 version: 1.5.7(@swc/helpers@0.5.12) @@ -289,6 +301,17 @@ importers: specifier: ^1.4.0 version: 1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + packages/pkce: {} + + tools/create-package/dist: + dependencies: + '@nx/devkit': + specifier: 20.2.2 + version: 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) + vitest: + specifier: ^1.4.0 + version: 1.5.0(@types/node@22.10.2)(@vitest/ui@1.5.0)(jsdom@22.1.0)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + packages: '@aashutoshrathi/word-wrap@1.2.6': resolution: @@ -594,6 +617,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-bigint@7.8.3': + resolution: + { + integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, + } + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-class-properties@7.12.13': resolution: { @@ -1991,6 +2022,13 @@ packages: } engines: { node: '>=12' } + '@istanbuljs/load-nyc-config@1.1.0': + resolution: + { + integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, + } + engines: { node: '>=8' } + '@istanbuljs/schema@0.1.3': resolution: { @@ -1998,6 +2036,60 @@ packages: } engines: { node: '>=8' } + '@jest/console@29.7.0': + resolution: + { + integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + '@jest/environment@29.7.0': + resolution: + { + integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + '@jest/expect-utils@29.7.0': + resolution: + { + integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + '@jest/expect@29.7.0': + resolution: + { + integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + '@jest/fake-timers@29.7.0': + resolution: + { + integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + '@jest/globals@29.7.0': + resolution: + { + integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + '@jest/reporters@29.7.0': + resolution: + { + integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + '@jest/schemas@29.6.3': resolution: { @@ -2005,6 +2097,41 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/source-map@29.6.3': + resolution: + { + integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + '@jest/test-result@29.7.0': + resolution: + { + integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + '@jest/test-sequencer@29.7.0': + resolution: + { + integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + '@jest/transform@29.7.0': + resolution: + { + integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + '@jest/types@29.6.3': + resolution: + { + integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jridgewell/gen-mapping@0.3.5': resolution: { @@ -2124,6 +2251,13 @@ packages: integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==, } + '@mole-inc/bin-wrapper@8.0.1': + resolution: + { + integrity: sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + '@mswjs/interceptors@0.36.5': resolution: { @@ -2131,6 +2265,157 @@ packages: } engines: { node: '>=18' } + '@napi-rs/nice-android-arm-eabi@1.0.1': + resolution: + { + integrity: sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==, + } + engines: { node: '>= 10' } + cpu: [arm] + os: [android] + + '@napi-rs/nice-android-arm64@1.0.1': + resolution: + { + integrity: sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==, + } + engines: { node: '>= 10' } + cpu: [arm64] + os: [android] + + '@napi-rs/nice-darwin-arm64@1.0.1': + resolution: + { + integrity: sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==, + } + engines: { node: '>= 10' } + cpu: [arm64] + os: [darwin] + + '@napi-rs/nice-darwin-x64@1.0.1': + resolution: + { + integrity: sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==, + } + engines: { node: '>= 10' } + cpu: [x64] + os: [darwin] + + '@napi-rs/nice-freebsd-x64@1.0.1': + resolution: + { + integrity: sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==, + } + engines: { node: '>= 10' } + cpu: [x64] + os: [freebsd] + + '@napi-rs/nice-linux-arm-gnueabihf@1.0.1': + resolution: + { + integrity: sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==, + } + engines: { node: '>= 10' } + cpu: [arm] + os: [linux] + + '@napi-rs/nice-linux-arm64-gnu@1.0.1': + resolution: + { + integrity: sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==, + } + engines: { node: '>= 10' } + cpu: [arm64] + os: [linux] + + '@napi-rs/nice-linux-arm64-musl@1.0.1': + resolution: + { + integrity: sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==, + } + engines: { node: '>= 10' } + cpu: [arm64] + os: [linux] + + '@napi-rs/nice-linux-ppc64-gnu@1.0.1': + resolution: + { + integrity: sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==, + } + engines: { node: '>= 10' } + cpu: [ppc64] + os: [linux] + + '@napi-rs/nice-linux-riscv64-gnu@1.0.1': + resolution: + { + integrity: sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==, + } + engines: { node: '>= 10' } + cpu: [riscv64] + os: [linux] + + '@napi-rs/nice-linux-s390x-gnu@1.0.1': + resolution: + { + integrity: sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==, + } + engines: { node: '>= 10' } + cpu: [s390x] + os: [linux] + + '@napi-rs/nice-linux-x64-gnu@1.0.1': + resolution: + { + integrity: sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==, + } + engines: { node: '>= 10' } + cpu: [x64] + os: [linux] + + '@napi-rs/nice-linux-x64-musl@1.0.1': + resolution: + { + integrity: sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==, + } + engines: { node: '>= 10' } + cpu: [x64] + os: [linux] + + '@napi-rs/nice-win32-arm64-msvc@1.0.1': + resolution: + { + integrity: sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==, + } + engines: { node: '>= 10' } + cpu: [arm64] + os: [win32] + + '@napi-rs/nice-win32-ia32-msvc@1.0.1': + resolution: + { + integrity: sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==, + } + engines: { node: '>= 10' } + cpu: [ia32] + os: [win32] + + '@napi-rs/nice-win32-x64-msvc@1.0.1': + resolution: + { + integrity: sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==, + } + engines: { node: '>= 10' } + cpu: [x64] + os: [win32] + + '@napi-rs/nice@1.0.1': + resolution: + { + integrity: sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==, + } + engines: { node: '>= 10' } + '@napi-rs/wasm-runtime@0.2.4': resolution: { @@ -2196,6 +2481,12 @@ packages: '@zkochan/js-yaml': optional: true + '@nx/jest@20.2.2': + resolution: + { + integrity: sha512-czZprpiVAZQKixpib1Vphi3Aoh5qBr7KATgP7+P0ogDTrxd7sivCFDM8wZeilhdTfx85wsR0viOtLVm6D3RTLA==, + } + '@nx/js@20.2.2': resolution: { @@ -2297,6 +2588,12 @@ packages: cpu: [x64] os: [win32] + '@nx/plugin@20.2.2': + resolution: + { + integrity: sha512-OqFcME4catupIgdlMd5BdT/rnLKs3ZBoOAXe718aoBNwvC513AX3kYajZ04RCI11MfEcnCXI0PDQBl1I/Usm2w==, + } + '@nx/workspace@20.2.2': resolution: { @@ -2463,6 +2760,14 @@ packages: } engines: { node: '>=14' } + '@phenomnomnominal/tsquery@5.0.1': + resolution: + { + integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==, + } + peerDependencies: + typescript: ^3 || ^4 || ^5 + '@pkgjs/parseargs@0.11.0': resolution: { @@ -2840,6 +3145,18 @@ packages: } engines: { node: '>=14.16' } + '@sinonjs/commons@3.0.1': + resolution: + { + integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==, + } + + '@sinonjs/fake-timers@10.3.0': + resolution: + { + integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==, + } + '@swc-node/core@1.13.3': resolution: { @@ -2865,6 +3182,20 @@ packages: integrity: sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==, } + '@swc/cli@0.3.14': + resolution: + { + integrity: sha512-0vGqD6FSW67PaZUZABkA+ADKsX7OUY/PwNEz1SbQdCvVk/e4Z36Gwh7mFVBQH9RIsMonTyhV1RHkwkGnEfR3zQ==, + } + engines: { node: '>= 16.14.0' } + hasBin: true + peerDependencies: + '@swc/core': ^1.2.66 + chokidar: ^3.5.1 + peerDependenciesMeta: + chokidar: + optional: true + '@swc/core-darwin-arm64@1.5.7': resolution: { @@ -2999,6 +3330,12 @@ packages: } engines: { node: '>=14.16' } + '@tokenizer/token@0.3.0': + resolution: + { + integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==, + } + '@tootallnate/once@2.0.0': resolution: { @@ -3048,31 +3385,55 @@ packages: integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==, } - '@types/body-parser@1.19.5': + '@types/babel__core@7.20.5': resolution: { - integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==, + integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, } - '@types/cacheable-request@6.0.3': + '@types/babel__generator@7.6.8': resolution: { - integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==, + integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==, } - '@types/caseless@0.12.5': + '@types/babel__template@7.4.4': resolution: { - integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==, + integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, } - '@types/connect@3.4.38': + '@types/babel__traverse@7.20.6': resolution: { - integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, + integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==, } - '@types/conventional-commits-parser@5.0.0': + '@types/body-parser@1.19.5': + resolution: + { + integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==, + } + + '@types/cacheable-request@6.0.3': + resolution: + { + integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==, + } + + '@types/caseless@0.12.5': + resolution: + { + integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==, + } + + '@types/connect@3.4.38': + resolution: + { + integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, + } + + '@types/conventional-commits-parser@5.0.0': resolution: { integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==, @@ -3114,6 +3475,12 @@ packages: integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==, } + '@types/graceful-fs@4.1.9': + resolution: + { + integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==, + } + '@types/hast@3.0.4': resolution: { @@ -3132,6 +3499,24 @@ packages: integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==, } + '@types/istanbul-lib-coverage@2.0.6': + resolution: + { + integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==, + } + + '@types/istanbul-lib-report@3.0.3': + resolution: + { + integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==, + } + + '@types/istanbul-reports@3.0.4': + resolution: + { + integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==, + } + '@types/js-yaml@4.0.9': resolution: { @@ -3240,6 +3625,12 @@ packages: integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==, } + '@types/stack-utils@2.0.3': + resolution: + { + integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==, + } + '@types/statuses@2.0.5': resolution: { @@ -3288,6 +3679,18 @@ packages: integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==, } + '@types/yargs-parser@21.0.3': + resolution: + { + integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, + } + + '@types/yargs@17.0.33': + resolution: + { + integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==, + } + '@typescript-eslint/eslint-plugin@7.16.1': resolution: { @@ -4055,6 +4458,12 @@ packages: integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==, } + arch@2.2.0: + resolution: + { + integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==, + } + archiver-utils@4.0.1: resolution: { @@ -4251,6 +4660,15 @@ packages: integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==, } + babel-jest@29.7.0: + resolution: + { + integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + peerDependencies: + '@babel/core': ^7.8.0 + babel-plugin-const-enum@1.2.0: resolution: { @@ -4259,6 +4677,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + babel-plugin-istanbul@6.1.1: + resolution: + { + integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, + } + engines: { node: '>=8' } + + babel-plugin-jest-hoist@29.6.3: + resolution: + { + integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + babel-plugin-macros@2.8.0: resolution: { @@ -4301,6 +4733,23 @@ packages: '@babel/traverse': optional: true + babel-preset-current-node-syntax@1.1.0: + resolution: + { + integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==, + } + peerDependencies: + '@babel/core': ^7.0.0 + + babel-preset-jest@29.6.3: + resolution: + { + integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + peerDependencies: + '@babel/core': ^7.0.0 + balanced-match@1.0.2: resolution: { @@ -4357,6 +4806,27 @@ packages: integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==, } + bin-check@4.1.0: + resolution: + { + integrity: sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==, + } + engines: { node: '>=4' } + + bin-version-check@5.1.0: + resolution: + { + integrity: sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g==, + } + engines: { node: '>=12' } + + bin-version@6.0.0: + resolution: + { + integrity: sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==, + } + engines: { node: '>=12' } + binary-extensions@2.3.0: resolution: { @@ -4443,6 +4913,12 @@ packages: } hasBin: true + bser@2.1.1: + resolution: + { + integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, + } + buffer-crc32@0.2.13: resolution: { @@ -4568,6 +5044,20 @@ packages: } engines: { node: '>=6' } + camelcase@5.3.1: + resolution: + { + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, + } + engines: { node: '>=6' } + + camelcase@6.3.0: + resolution: + { + integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, + } + engines: { node: '>=10' } + camelcase@7.0.1: resolution: { @@ -4622,6 +5112,13 @@ packages: } engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + char-regex@1.0.2: + resolution: + { + integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==, + } + engines: { node: '>=10' } + chardet@0.7.0: resolution: { @@ -4675,6 +5172,12 @@ packages: } engines: { node: '>=8' } + cjs-module-lexer@1.4.1: + resolution: + { + integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==, + } + cli-boxes@3.0.0: resolution: { @@ -4752,6 +5255,13 @@ packages: } engines: { node: '>=0.8' } + co@4.6.0: + resolution: + { + integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==, + } + engines: { iojs: '>= 1.0.0', node: '>= 0.12.0' } + code-point-at@1.1.0: resolution: { @@ -4759,6 +5269,12 @@ packages: } engines: { node: '>=0.10.0' } + collect-v8-coverage@1.0.2: + resolution: + { + integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==, + } + color-convert@1.9.3: resolution: { @@ -4835,6 +5351,13 @@ packages: integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, } + commander@8.3.0: + resolution: + { + integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, + } + engines: { node: '>= 12' } + commitizen@4.3.0: resolution: { @@ -5269,6 +5792,17 @@ packages: integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==, } + dedent@1.5.3: + resolution: + { + integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==, + } + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + deep-eql@4.1.3: resolution: { @@ -5289,6 +5823,13 @@ packages: integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, } + deepmerge@4.3.1: + resolution: + { + integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, + } + engines: { node: '>=0.10.0' } + defaults@1.0.4: resolution: { @@ -5379,6 +5920,13 @@ packages: engines: { node: '>=0.10' } hasBin: true + detect-newline@3.1.0: + resolution: + { + integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, + } + engines: { node: '>=8' } + detect-node@2.1.0: resolution: { @@ -5608,6 +6156,13 @@ packages: } engines: { node: '>=12' } + emittery@0.13.1: + resolution: + { + integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==, + } + engines: { node: '>=12' } + emoji-regex@8.0.0: resolution: { @@ -5797,6 +6352,13 @@ packages: } engines: { node: '>=0.8.0' } + escape-string-regexp@2.0.0: + resolution: + { + integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, + } + engines: { node: '>=8' } + escape-string-regexp@4.0.0: resolution: { @@ -5804,6 +6366,13 @@ packages: } engines: { node: '>=10' } + escape-string-regexp@5.0.0: + resolution: + { + integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, + } + engines: { node: '>=12' } + escodegen@2.1.0: resolution: { @@ -6033,6 +6602,13 @@ packages: } engines: { node: '>=0.8.x' } + execa@0.7.0: + resolution: + { + integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==, + } + engines: { node: '>=4' } + execa@5.1.1: resolution: { @@ -6054,6 +6630,20 @@ packages: } engines: { node: '>=16.17' } + executable@4.1.1: + resolution: + { + integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==, + } + engines: { node: '>=4' } + + exit@0.1.2: + resolution: + { + integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==, + } + engines: { node: '>= 0.8.0' } + expand-tilde@2.0.2: resolution: { @@ -6061,6 +6651,13 @@ packages: } engines: { node: '>=0.10.0' } + expect@29.7.0: + resolution: + { + integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + express-rate-limit@5.5.1: resolution: { @@ -6074,6 +6671,20 @@ packages: } engines: { node: '>= 0.10.0' } + ext-list@2.2.2: + resolution: + { + integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==, + } + engines: { node: '>=0.10.0' } + + ext-name@5.0.0: + resolution: + { + integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==, + } + engines: { node: '>=4' } + extend@3.0.2: resolution: { @@ -6175,6 +6786,12 @@ packages: integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, } + fb-watchman@2.0.2: + resolution: + { + integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, + } + fd-slicer@1.1.0: resolution: { @@ -6218,12 +6835,33 @@ packages: } engines: { node: ^10.12.0 || >=12.0.0 } + file-type@17.1.6: + resolution: + { + integrity: sha512-hlDw5Ev+9e883s0pwUsuuYNu4tD7GgpUnOvykjv1Gya0ZIjuKumthDRua90VUn6/nlRKAjcxLUnHNTIUWwWIiw==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + filelist@1.0.4: resolution: { integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==, } + filename-reserved-regex@3.0.0: + resolution: + { + integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + + filenamify@5.1.1: + resolution: + { + integrity: sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==, + } + engines: { node: '>=12.20' } + fill-range@7.1.1: resolution: { @@ -6277,6 +6915,13 @@ packages: } engines: { node: '>=18' } + find-versions@5.1.0: + resolution: + { + integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==, + } + engines: { node: '>=12' } + findup-sync@4.0.0: resolution: { @@ -6525,6 +7170,20 @@ packages: } engines: { node: '>= 0.4' } + get-package-type@0.1.0: + resolution: + { + integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, + } + engines: { node: '>=8.0.0' } + + get-stream@3.0.0: + resolution: + { + integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==, + } + engines: { node: '>=4' } + get-stream@5.2.0: resolution: { @@ -6827,6 +7486,12 @@ packages: engines: { node: '>=6' } deprecated: this library is no longer supported + harmony-reflect@1.6.2: + resolution: + { + integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==, + } + has-bigints@1.0.2: resolution: { @@ -7089,6 +7754,13 @@ packages: } engines: { node: '>=0.10.0' } + identity-obj-proxy@3.0.0: + resolution: + { + integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==, + } + engines: { node: '>=4' } + ieee754@1.1.13: resolution: { @@ -7353,6 +8025,13 @@ packages: } engines: { node: '>=12' } + is-generator-fn@2.1.0: + resolution: + { + integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==, + } + engines: { node: '>=6' } + is-generator-function@1.0.10: resolution: { @@ -7429,6 +8108,13 @@ packages: } engines: { node: '>=8' } + is-plain-obj@1.1.0: + resolution: + { + integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, + } + engines: { node: '>=0.10.0' } + is-potential-custom-element-name@1.0.1: resolution: { @@ -7461,6 +8147,13 @@ packages: } engines: { node: '>= 0.4' } + is-stream@1.1.0: + resolution: + { + integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==, + } + engines: { node: '>=0.10.0' } + is-stream@2.0.1: resolution: { @@ -7485,174 +8178,341 @@ packages: is-subdir@1.2.0: resolution: { - integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==, + integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==, + } + engines: { node: '>=4' } + + is-symbol@1.0.4: + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + } + engines: { node: '>= 0.4' } + + is-text-path@2.0.0: + resolution: + { + integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==, + } + engines: { node: '>=8' } + + is-typed-array@1.1.13: + resolution: + { + integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==, + } + engines: { node: '>= 0.4' } + + is-typedarray@1.0.0: + resolution: + { + integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, + } + + is-unicode-supported@0.1.0: + resolution: + { + integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, + } + engines: { node: '>=10' } + + is-utf8@0.2.1: + resolution: + { + integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==, + } + + is-weakref@1.0.2: + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } + + is-what@3.14.1: + resolution: + { + integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, + } + + is-windows@1.0.2: + resolution: + { + integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, + } + engines: { node: '>=0.10.0' } + + is-wsl@2.2.0: + resolution: + { + integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, + } + engines: { node: '>=8' } + + is-yarn-global@0.4.1: + resolution: + { + integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==, + } + engines: { node: '>=12' } + + isarray@1.0.0: + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + } + + isarray@2.0.5: + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + } + + isexe@2.0.0: + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } + + isomorphic-ws@5.0.0: + resolution: + { + integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==, + } + peerDependencies: + ws: '*' + + isstream@0.1.2: + resolution: + { + integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==, + } + + istanbul-lib-coverage@3.2.2: + resolution: + { + integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, + } + engines: { node: '>=8' } + + istanbul-lib-instrument@5.2.1: + resolution: + { + integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, + } + engines: { node: '>=8' } + + istanbul-lib-instrument@6.0.3: + resolution: + { + integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==, + } + engines: { node: '>=10' } + + istanbul-lib-report@3.0.1: + resolution: + { + integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==, + } + engines: { node: '>=10' } + + istanbul-lib-source-maps@4.0.1: + resolution: + { + integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==, + } + engines: { node: '>=10' } + + istanbul-lib-source-maps@5.0.4: + resolution: + { + integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==, } - engines: { node: '>=4' } + engines: { node: '>=10' } - is-symbol@1.0.4: + istanbul-reports@3.1.7: resolution: { - integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==, } - engines: { node: '>= 0.4' } + engines: { node: '>=8' } - is-text-path@2.0.0: + jackspeak@3.4.3: resolution: { - integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==, + integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, } - engines: { node: '>=8' } - is-typed-array@1.1.13: + jake@10.8.7: resolution: { - integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==, + integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==, } - engines: { node: '>= 0.4' } + engines: { node: '>=10' } + hasBin: true - is-typedarray@1.0.0: + jest-canvas-mock@2.5.2: resolution: { - integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, + integrity: sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==, } - is-unicode-supported@0.1.0: + jest-circus@29.7.0: resolution: { - integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, + integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==, } - engines: { node: '>=10' } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - is-utf8@0.2.1: + jest-config@29.7.0: resolution: { - integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==, + integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==, } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true - is-weakref@1.0.2: + jest-diff@29.7.0: resolution: { - integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==, } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - is-what@3.14.1: + jest-docblock@29.7.0: resolution: { - integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, + integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==, } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - is-windows@1.0.2: + jest-each@29.7.0: resolution: { - integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, + integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==, } - engines: { node: '>=0.10.0' } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - is-wsl@2.2.0: + jest-environment-node@29.7.0: resolution: { - integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, + integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==, } - engines: { node: '>=8' } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - is-yarn-global@0.4.1: + jest-get-type@29.6.3: resolution: { - integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==, + integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==, } - engines: { node: '>=12' } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - isarray@1.0.0: + jest-haste-map@29.7.0: resolution: { - integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==, } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - isarray@2.0.5: + jest-leak-detector@29.7.0: resolution: { - integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==, } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - isexe@2.0.0: + jest-matcher-utils@29.7.0: resolution: { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==, } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - isomorphic-ws@5.0.0: + jest-message-util@29.7.0: resolution: { - integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==, + integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==, } - peerDependencies: - ws: '*' + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - isstream@0.1.2: + jest-mock@29.7.0: resolution: { - integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==, + integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==, } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - istanbul-lib-coverage@3.2.2: + jest-pnp-resolver@1.2.3: resolution: { - integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, + integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==, } - engines: { node: '>=8' } + engines: { node: '>=6' } + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true - istanbul-lib-report@3.0.1: + jest-regex-util@29.6.3: resolution: { - integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==, + integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==, } - engines: { node: '>=10' } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - istanbul-lib-source-maps@5.0.4: + jest-resolve@29.7.0: resolution: { - integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==, + integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==, } - engines: { node: '>=10' } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - istanbul-reports@3.1.7: + jest-runner@29.7.0: resolution: { - integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==, + integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==, } - engines: { node: '>=8' } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jackspeak@3.4.3: + jest-runtime@29.7.0: resolution: { - integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, + integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==, } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jake@10.8.7: + jest-snapshot@29.7.0: resolution: { - integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==, + integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==, } - engines: { node: '>=10' } - hasBin: true + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jest-canvas-mock@2.5.2: + jest-util@29.7.0: resolution: { - integrity: sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==, + integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==, } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jest-diff@29.7.0: + jest-validate@29.7.0: resolution: { - integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==, + integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jest-get-type@29.6.3: + jest-watcher@29.7.0: resolution: { - integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==, + integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } @@ -7670,6 +8530,13 @@ packages: } engines: { node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0 } + jest-worker@29.7.0: + resolution: + { + integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jiti@1.21.0: resolution: { @@ -7984,6 +8851,13 @@ packages: engines: { node: '>=6' } hasBin: true + leven@3.1.0: + resolution: + { + integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, + } + engines: { node: '>=6' } + levn@0.4.1: resolution: { @@ -8337,6 +9211,12 @@ packages: integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, } + makeerror@1.0.12: + resolution: + { + integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, + } + map-stream@0.1.0: resolution: { @@ -8778,6 +9658,12 @@ packages: encoding: optional: true + node-int64@0.4.0: + resolution: + { + integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, + } + node-machine-id@1.1.12: resolution: { @@ -8850,6 +9736,13 @@ packages: } deprecated: This package is no longer supported. + npm-run-path@2.0.2: + resolution: + { + integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==, + } + engines: { node: '>=4' } + npm-run-path@4.0.1: resolution: { @@ -9053,6 +9946,13 @@ packages: } engines: { node: '>=10' } + os-filter-obj@2.0.0: + resolution: + { + integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==, + } + engines: { node: '>=4' } + os-homedir@1.0.2: resolution: { @@ -9107,6 +10007,13 @@ packages: } engines: { node: '>=8' } + p-finally@1.0.0: + resolution: + { + integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, + } + engines: { node: '>=4' } + p-limit@2.3.0: resolution: { @@ -9277,6 +10184,13 @@ packages: } engines: { node: '>=0.10.0' } + path-key@2.0.1: + resolution: + { + integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==, + } + engines: { node: '>=4' } + path-key@3.1.1: resolution: { @@ -9341,6 +10255,13 @@ packages: integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==, } + peek-readable@5.3.1: + resolution: + { + integrity: sha512-GVlENSDW6KHaXcd9zkZltB7tCLosKB/4Hg0fqBJkAoBgYG2Tn1xtMgXtSUuMU9AK/gCm/tTdT8mgAeF4YNeeqw==, + } + engines: { node: '>=14.16' } + pend@1.2.0: resolution: { @@ -9388,6 +10309,13 @@ packages: engines: { node: '>=0.10' } hasBin: true + pify@2.3.0: + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, + } + engines: { node: '>=0.10.0' } + pify@3.0.0: resolution: { @@ -9434,6 +10362,12 @@ packages: } engines: { node: '>= 6' } + piscina@4.8.0: + resolution: + { + integrity: sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==, + } + pkg-types@1.0.3: resolution: { @@ -9775,6 +10709,13 @@ packages: } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + readable-web-to-node-stream@3.0.2: + resolution: + { + integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==, + } + engines: { node: '>=8' } + readdir-glob@1.1.3: resolution: { @@ -9943,6 +10884,20 @@ packages: } engines: { node: '>=8' } + resolve.exports@1.1.0: + resolution: + { + integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==, + } + engines: { node: '>=10' } + + resolve.exports@2.0.3: + resolution: + { + integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==, + } + engines: { node: '>=10' } + resolve@1.22.8: resolution: { @@ -10166,6 +11121,20 @@ packages: } engines: { node: '>=12' } + semver-regex@4.0.5: + resolution: + { + integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==, + } + engines: { node: '>=12' } + + semver-truncate@3.0.0: + resolution: + { + integrity: sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg==, + } + engines: { node: '>=12' } + semver@5.7.2: resolution: { @@ -10394,6 +11363,20 @@ packages: integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==, } + sort-keys-length@1.0.1: + resolution: + { + integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==, + } + engines: { node: '>=0.10.0' } + + sort-keys@1.1.2: + resolution: + { + integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==, + } + engines: { node: '>=0.10.0' } + source-map-js@1.2.0: resolution: { @@ -10408,6 +11391,12 @@ packages: } engines: { node: '>=0.10.0' } + source-map-support@0.5.13: + resolution: + { + integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==, + } + source-map-support@0.5.19: resolution: { @@ -10510,6 +11499,13 @@ packages: integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==, } + stack-utils@2.0.6: + resolution: + { + integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==, + } + engines: { node: '>=10' } + stackback@0.0.2: resolution: { @@ -10585,6 +11581,13 @@ packages: } engines: { node: '>=0.6.19' } + string-length@4.0.2: + resolution: + { + integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==, + } + engines: { node: '>=10' } + string-width@1.0.2: resolution: { @@ -10673,6 +11676,13 @@ packages: } engines: { node: '>=8' } + strip-eof@1.0.0: + resolution: + { + integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==, + } + engines: { node: '>=0.10.0' } + strip-final-newline@2.0.0: resolution: { @@ -10707,6 +11717,20 @@ packages: integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==, } + strip-outer@2.0.0: + resolution: + { + integrity: sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + + strtok3@7.1.1: + resolution: + { + integrity: sha512-mKX8HA/cdBqMKUr0MMZAFssCkIGoZeSCMXgnt79yKxNFguMLVFgRe6wB+fsL0NmoHDbeyZXczy7vEPSoo3rkzg==, + } + engines: { node: '>=16' } + stubs@3.0.0: resolution: { @@ -10950,6 +11974,12 @@ packages: } engines: { node: '>=14.14' } + tmpl@1.0.5: + resolution: + { + integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, + } + to-fast-properties@2.0.0: resolution: { @@ -10971,6 +12001,13 @@ packages: } engines: { node: '>=0.6' } + token-types@5.0.1: + resolution: + { + integrity: sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==, + } + engines: { node: '>=14.16' } + toposort@2.0.2: resolution: { @@ -11011,6 +12048,13 @@ packages: } engines: { node: '>=14' } + trim-repeated@2.0.0: + resolution: + { + integrity: sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==, + } + engines: { node: '>=12' } + triple-beam@1.4.1: resolution: { @@ -11483,6 +12527,13 @@ packages: integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, } + v8-to-istanbul@9.3.0: + resolution: + { + integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==, + } + engines: { node: '>=10.12.0' } + validate-npm-package-license@3.0.4: resolution: { @@ -11677,6 +12728,12 @@ packages: } engines: { node: '>=14' } + walker@1.0.8: + resolution: + { + integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, + } + watchpack@2.4.2: resolution: { @@ -11860,11 +12917,18 @@ packages: integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, } - write-file-atomic@3.0.3: + write-file-atomic@3.0.3: + resolution: + { + integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==, + } + + write-file-atomic@4.0.2: resolution: { - integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==, + integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } ws@8.18.0: resolution: @@ -12241,6 +13305,11 @@ snapshots: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4)': dependencies: '@babel/core': 7.24.4 @@ -13352,12 +14421,143 @@ snapshots: wrap-ansi-cjs: wrap-ansi@7.0.0 optional: true + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + '@istanbuljs/schema@0.1.3': {} + '@jest/console@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@types/node': 22.10.2 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 22.10.2 + jest-mock: 29.7.0 + + '@jest/expect-utils@29.7.0': + dependencies: + jest-get-type: 29.6.3 + + '@jest/expect@29.7.0': + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 22.10.2 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + '@jest/globals@29.7.0': + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/reporters@29.7.0': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 22.10.2 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.7 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 + '@jest/source-map@29.6.3': + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + callsites: 3.1.0 + graceful-fs: 4.2.11 + + '@jest/test-result@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 + + '@jest/test-sequencer@29.7.0': + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + + '@jest/transform@29.7.0': + dependencies: + '@babel/core': 7.24.4 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.8 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.10.2 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -13479,6 +14679,17 @@ snapshots: '@microsoft/tsdoc@0.15.0': {} + '@mole-inc/bin-wrapper@8.0.1': + dependencies: + bin-check: 4.1.0 + bin-version-check: 5.1.0 + content-disposition: 0.5.4 + ext-name: 5.0.0 + file-type: 17.1.6 + filenamify: 5.1.1 + got: 11.8.6 + os-filter-obj: 2.0.0 + '@mswjs/interceptors@0.36.5': dependencies: '@open-draft/deferred-promise': 2.2.0 @@ -13488,6 +14699,74 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 + '@napi-rs/nice-android-arm-eabi@1.0.1': + optional: true + + '@napi-rs/nice-android-arm64@1.0.1': + optional: true + + '@napi-rs/nice-darwin-arm64@1.0.1': + optional: true + + '@napi-rs/nice-darwin-x64@1.0.1': + optional: true + + '@napi-rs/nice-freebsd-x64@1.0.1': + optional: true + + '@napi-rs/nice-linux-arm-gnueabihf@1.0.1': + optional: true + + '@napi-rs/nice-linux-arm64-gnu@1.0.1': + optional: true + + '@napi-rs/nice-linux-arm64-musl@1.0.1': + optional: true + + '@napi-rs/nice-linux-ppc64-gnu@1.0.1': + optional: true + + '@napi-rs/nice-linux-riscv64-gnu@1.0.1': + optional: true + + '@napi-rs/nice-linux-s390x-gnu@1.0.1': + optional: true + + '@napi-rs/nice-linux-x64-gnu@1.0.1': + optional: true + + '@napi-rs/nice-linux-x64-musl@1.0.1': + optional: true + + '@napi-rs/nice-win32-arm64-msvc@1.0.1': + optional: true + + '@napi-rs/nice-win32-ia32-msvc@1.0.1': + optional: true + + '@napi-rs/nice-win32-x64-msvc@1.0.1': + optional: true + + '@napi-rs/nice@1.0.1': + optionalDependencies: + '@napi-rs/nice-android-arm-eabi': 1.0.1 + '@napi-rs/nice-android-arm64': 1.0.1 + '@napi-rs/nice-darwin-arm64': 1.0.1 + '@napi-rs/nice-darwin-x64': 1.0.1 + '@napi-rs/nice-freebsd-x64': 1.0.1 + '@napi-rs/nice-linux-arm-gnueabihf': 1.0.1 + '@napi-rs/nice-linux-arm64-gnu': 1.0.1 + '@napi-rs/nice-linux-arm64-musl': 1.0.1 + '@napi-rs/nice-linux-ppc64-gnu': 1.0.1 + '@napi-rs/nice-linux-riscv64-gnu': 1.0.1 + '@napi-rs/nice-linux-s390x-gnu': 1.0.1 + '@napi-rs/nice-linux-x64-gnu': 1.0.1 + '@napi-rs/nice-linux-x64-musl': 1.0.1 + '@napi-rs/nice-win32-arm64-msvc': 1.0.1 + '@napi-rs/nice-win32-ia32-msvc': 1.0.1 + '@napi-rs/nice-win32-x64-msvc': 1.0.1 + optional: true + '@napi-rs/wasm-runtime@0.2.4': dependencies: '@emnapi/core': 1.2.0 @@ -13573,6 +14852,38 @@ snapshots: - supports-color - verdaccio + '@nx/jest@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))': + dependencies: + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) + '@nx/js': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.6.3) + chalk: 4.1.2 + identity-obj-proxy: 3.0.0 + jest-config: 29.7.0(@types/node@22.10.2)(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3)) + jest-resolve: 29.7.0 + jest-util: 29.7.0 + minimatch: 9.0.3 + resolve.exports: 1.1.0 + semver: 7.6.3 + tslib: 2.6.3 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - babel-plugin-macros + - debug + - node-notifier + - nx + - supports-color + - ts-node + - typescript + - verdaccio + '@nx/js@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))': dependencies: '@babel/core': 7.24.4 @@ -13648,6 +14959,30 @@ snapshots: '@nx/nx-win32-x64-msvc@20.2.2': optional: true + '@nx/plugin@20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0))': + dependencies: + '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) + '@nx/eslint': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(verdaccio@5.30.3(typanion@3.14.0)) + '@nx/jest': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) + '@nx/js': 20.2.2(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12)))(typescript@5.6.3)(verdaccio@5.30.3(typanion@3.14.0)) + tslib: 2.6.3 + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - '@zkochan/js-yaml' + - babel-plugin-macros + - debug + - eslint + - node-notifier + - nx + - supports-color + - ts-node + - typescript + - verdaccio + '@nx/workspace@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))': dependencies: '@nx/devkit': 20.2.2(nx@20.2.2(@swc-node/register@1.9.2(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)(typescript@5.6.3))(@swc/core@1.5.7(@swc/helpers@0.5.12))) @@ -13742,6 +15077,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@phenomnomnominal/tsquery@5.0.1(typescript@5.6.3)': + dependencies: + esquery: 1.5.0 + typescript: 5.6.3 + '@pkgjs/parseargs@0.11.0': optional: true @@ -13934,6 +15274,14 @@ snapshots: '@sindresorhus/is@5.6.0': {} + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + '@swc-node/core@1.13.3(@swc/core@1.5.7(@swc/helpers@0.5.12))(@swc/types@0.1.7)': dependencies: '@swc/core': 1.5.7(@swc/helpers@0.5.12) @@ -13958,6 +15306,21 @@ snapshots: source-map-support: 0.5.21 tslib: 2.6.3 + '@swc/cli@0.3.14(@swc/core@1.5.7(@swc/helpers@0.5.12))(chokidar@3.6.0)': + dependencies: + '@mole-inc/bin-wrapper': 8.0.1 + '@swc/core': 1.5.7(@swc/helpers@0.5.12) + '@swc/counter': 0.1.3 + commander: 8.3.0 + fast-glob: 3.3.2 + minimatch: 9.0.5 + piscina: 4.8.0 + semver: 7.6.3 + slash: 3.0.0 + source-map: 0.7.4 + optionalDependencies: + chokidar: 3.6.0 + '@swc/core-darwin-arm64@1.5.7': optional: true @@ -14023,6 +15386,8 @@ snapshots: dependencies: defer-to-connect: 2.0.1 + '@tokenizer/token@0.3.0': {} + '@tootallnate/once@2.0.0': {} '@tootallnate/quickjs-emscripten@0.23.0': {} @@ -14041,6 +15406,27 @@ snapshots: '@types/argparse@1.0.38': {} + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.24.0 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + + '@types/babel__traverse@7.20.6': + dependencies: + '@babel/types': 7.24.0 + '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 @@ -14088,6 +15474,10 @@ snapshots: '@types/qs': 6.9.14 '@types/serve-static': 1.15.7 + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 22.10.2 + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.2 @@ -14096,6 +15486,16 @@ snapshots: '@types/http-errors@2.0.4': {} + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + '@types/js-yaml@4.0.9': {} '@types/json-schema@7.0.15': {} @@ -14155,6 +15555,8 @@ snapshots: '@types/node': 22.10.2 '@types/send': 0.17.4 + '@types/stack-utils@2.0.3': {} + '@types/statuses@2.0.5': {} '@types/stream-buffers@3.0.7': @@ -14178,6 +15580,12 @@ snapshots: dependencies: '@types/node': 22.10.2 + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.33': + dependencies: + '@types/yargs-parser': 21.0.3 + '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.10.0 @@ -14799,13 +16207,14 @@ snapshots: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - optional: true apache-md5@1.1.8: {} aproba@1.2.0: optional: true + arch@2.2.0: {} + archiver-utils@4.0.1: dependencies: glob: 8.1.0 @@ -14939,6 +16348,19 @@ snapshots: b4a@1.6.7: {} + babel-jest@29.7.0(@babel/core@7.24.4): + dependencies: + '@babel/core': 7.24.4 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.24.4) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + babel-plugin-const-enum@1.2.0(@babel/core@7.24.4): dependencies: '@babel/core': 7.24.4 @@ -14948,6 +16370,23 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.24.8 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@29.6.3: + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.6 + babel-plugin-macros@2.8.0: dependencies: '@babel/runtime': 7.24.4 @@ -14985,6 +16424,31 @@ snapshots: optionalDependencies: '@babel/traverse': 7.24.1 + babel-preset-current-node-syntax@1.1.0(@babel/core@7.24.4): + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) + + babel-preset-jest@29.6.3(@babel/core@7.24.4): + dependencies: + '@babel/core': 7.24.4 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.24.4) + balanced-match@1.0.2: {} bare-events@2.5.0: @@ -15008,6 +16472,22 @@ snapshots: bignumber.js@9.1.2: {} + bin-check@4.1.0: + dependencies: + execa: 0.7.0 + executable: 4.1.1 + + bin-version-check@5.1.0: + dependencies: + bin-version: 6.0.0 + semver: 7.6.3 + semver-truncate: 3.0.0 + + bin-version@6.0.0: + dependencies: + execa: 5.1.1 + find-versions: 5.1.0 + binary-extensions@2.3.0: optional: true @@ -15132,6 +16612,10 @@ snapshots: - supports-color - utf-8-validate + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + buffer-crc32@0.2.13: {} buffer-equal-constant-time@1.0.1: {} @@ -15204,6 +16688,10 @@ snapshots: callsites@3.1.0: {} + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + camelcase@7.0.1: {} camelcase@8.0.0: {} @@ -15235,6 +16723,8 @@ snapshots: chalk@5.3.0: {} + char-regex@1.0.2: {} + chardet@0.7.0: {} check-error@1.0.3: @@ -15280,6 +16770,8 @@ snapshots: ci-info@3.9.0: {} + cjs-module-lexer@1.4.1: {} + cli-boxes@3.0.0: {} cli-cursor@3.1.0: @@ -15317,9 +16809,13 @@ snapshots: clone@1.0.4: {} + co@4.6.0: {} + code-point-at@1.1.0: optional: true + collect-v8-coverage@1.0.2: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -15362,6 +16858,8 @@ snapshots: commander@2.20.3: {} + commander@8.3.0: {} + commitizen@4.3.0(@types/node@22.10.2)(typescript@5.6.3): dependencies: cachedir: 2.3.0 @@ -15634,6 +17132,8 @@ snapshots: dedent@0.7.0: {} + dedent@1.5.3: {} + deep-eql@4.1.3: dependencies: type-detect: 4.0.8 @@ -15642,6 +17142,8 @@ snapshots: deep-is@0.1.4: {} + deepmerge@4.3.1: {} + defaults@1.0.4: dependencies: clone: 1.0.4 @@ -15683,6 +17185,8 @@ snapshots: detect-libc@1.0.3: {} + detect-newline@3.1.0: {} + detect-node@2.1.0: {} detect-port@1.5.1: @@ -15810,6 +17314,8 @@ snapshots: emittery@0.11.0: {} + emittery@0.13.1: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -15963,8 +17469,12 @@ snapshots: escape-string-regexp@1.0.5: {} + escape-string-regexp@2.0.0: {} + escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + escodegen@2.1.0: dependencies: esprima: 4.0.1 @@ -16140,6 +17650,16 @@ snapshots: events@3.3.0: {} + execa@0.7.0: + dependencies: + cross-spawn: 7.0.6 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -16176,10 +17696,24 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + executable@4.1.1: + dependencies: + pify: 2.3.0 + + exit@0.1.2: {} + expand-tilde@2.0.2: dependencies: homedir-polyfill: 1.0.3 + expect@29.7.0: + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + express-rate-limit@5.5.1: {} express@4.21.0: @@ -16218,6 +17752,15 @@ snapshots: transitivePeerDependencies: - supports-color + ext-list@2.2.2: + dependencies: + mime-db: 1.52.0 + + ext-name@5.0.0: + dependencies: + ext-list: 2.2.2 + sort-keys-length: 1.0.1 + extend@3.0.2: {} extendable-error@0.1.7: {} @@ -16266,6 +17809,10 @@ snapshots: dependencies: reusify: 1.0.4 + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -16286,10 +17833,24 @@ snapshots: dependencies: flat-cache: 3.2.0 + file-type@17.1.6: + dependencies: + readable-web-to-node-stream: 3.0.2 + strtok3: 7.1.1 + token-types: 5.0.1 + filelist@1.0.4: dependencies: minimatch: 5.1.6 + filename-reserved-regex@3.0.0: {} + + filenamify@5.1.1: + dependencies: + filename-reserved-regex: 3.0.0 + strip-outer: 2.0.0 + trim-repeated: 2.0.0 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -16333,6 +17894,10 @@ snapshots: path-exists: 5.0.0 unicorn-magic: 0.1.0 + find-versions@5.1.0: + dependencies: + semver-regex: 4.0.5 + findup-sync@4.0.0: dependencies: detect-file: 1.0.0 @@ -16491,6 +18056,10 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 + get-package-type@0.1.0: {} + + get-stream@3.0.0: {} + get-stream@5.2.0: dependencies: pump: 3.0.2 @@ -16749,6 +18318,8 @@ snapshots: ajv: 6.12.6 har-schema: 2.0.0 + harmony-reflect@1.6.2: {} + has-bigints@1.0.2: {} has-flag@3.0.0: {} @@ -16890,6 +18461,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + identity-obj-proxy@3.0.0: + dependencies: + harmony-reflect: 1.6.2 + ieee754@1.1.13: {} ieee754@1.2.1: {} @@ -17040,6 +18615,8 @@ snapshots: is-fullwidth-code-point@4.0.0: {} + is-generator-fn@2.1.0: {} + is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.2 @@ -17071,6 +18648,8 @@ snapshots: is-path-inside@3.0.3: {} + is-plain-obj@1.1.0: {} + is-potential-custom-element-name@1.0.1: {} is-promise@2.2.2: {} @@ -17086,6 +18665,8 @@ snapshots: dependencies: call-bind: 1.0.7 + is-stream@1.1.0: {} + is-stream@2.0.1: {} is-stream@3.0.0: {} @@ -17145,12 +18726,40 @@ snapshots: istanbul-lib-coverage@3.2.2: {} + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.24.4 + '@babel/parser': 7.24.4 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.24.4 + '@babel/parser': 7.24.4 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.3.7 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + istanbul-lib-source-maps@5.0.4: dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -17183,6 +18792,63 @@ snapshots: cssfontparser: 1.2.1 moo-color: 1.0.3 + jest-circus@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 22.10.2 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.3 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.1.0 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@22.10.2)(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3)): + dependencies: + '@babel/core': 7.24.4 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.24.4) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.10.2 + ts-node: 10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.6.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + jest-diff@29.7.0: dependencies: chalk: 4.1.2 @@ -17190,8 +18856,200 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-docblock@29.7.0: + dependencies: + detect-newline: 3.1.0 + + jest-each@29.7.0: + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + + jest-environment-node@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 22.10.2 + jest-mock: 29.7.0 + jest-util: 29.7.0 + jest-get-type@29.6.3: {} + jest-haste-map@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 22.10.2 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-leak-detector@29.7.0: + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-matcher-utils@29.7.0: + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.24.2 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 22.10.2 + jest-util: 29.7.0 + + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + optionalDependencies: + jest-resolve: 29.7.0 + + jest-regex-util@29.6.3: {} + + jest-resolve@29.7.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.8 + resolve.exports: 2.0.3 + slash: 3.0.0 + + jest-runner@29.7.0: + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 22.10.2 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + + jest-runtime@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 22.10.2 + chalk: 4.1.2 + cjs-module-lexer: 1.4.1 + collect-v8-coverage: 1.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + + jest-snapshot@29.7.0: + dependencies: + '@babel/core': 7.24.4 + '@babel/generator': 7.24.4 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + '@babel/types': 7.24.0 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.24.4) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 22.10.2 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + + jest-watcher@29.7.0: + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 22.10.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + jest-worker@27.5.1: dependencies: '@types/node': 22.10.2 @@ -17204,6 +19062,13 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 + jest-worker@29.7.0: + dependencies: + '@types/node': 22.10.2 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + jiti@1.21.0: {} jju@1.4.0: {} @@ -17411,6 +19276,8 @@ snapshots: source-map: 0.6.1 optional: true + leven@3.1.0: {} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -17605,6 +19472,10 @@ snapshots: make-error@1.3.6: {} + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + map-stream@0.1.0: {} markdown-it@14.1.0: @@ -17805,6 +19676,8 @@ snapshots: dependencies: whatwg-url: 5.0.0 + node-int64@0.4.0: {} + node-machine-id@1.1.12: {} node-releases@2.0.18: {} @@ -17866,6 +19739,10 @@ snapshots: optionalDependencies: npmlog: 4.1.2 + npm-run-path@2.0.2: + dependencies: + path-key: 2.0.1 + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -18053,6 +19930,10 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 + os-filter-obj@2.0.0: + dependencies: + arch: 2.2.0 + os-homedir@1.0.2: {} os-tmpdir@1.0.2: {} @@ -18074,6 +19955,8 @@ snapshots: dependencies: p-map: 2.1.0 + p-finally@1.0.0: {} + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -18171,6 +20054,8 @@ snapshots: path-is-absolute@1.0.1: {} + path-key@2.0.1: {} + path-key@3.1.1: {} path-key@4.0.0: {} @@ -18197,6 +20082,8 @@ snapshots: dependencies: through: 2.3.8 + peek-readable@5.3.1: {} + pend@1.2.0: {} performance-now@2.1.0: {} @@ -18211,6 +20098,8 @@ snapshots: pidtree@0.6.0: {} + pify@2.3.0: {} + pify@3.0.0: {} pify@4.0.1: {} @@ -18243,6 +20132,10 @@ snapshots: pirates@4.0.6: {} + piscina@4.8.0: + optionalDependencies: + '@napi-rs/nice': 1.0.1 + pkg-types@1.0.3: dependencies: jsonc-parser: 3.2.0 @@ -18438,6 +20331,10 @@ snapshots: process: 0.11.10 string_decoder: 1.3.0 + readable-web-to-node-stream@3.0.2: + dependencies: + readable-stream: 3.6.2 + readdir-glob@1.1.3: dependencies: minimatch: 5.1.6 @@ -18543,6 +20440,10 @@ snapshots: resolve-from@5.0.0: {} + resolve.exports@1.1.0: {} + + resolve.exports@2.0.3: {} + resolve@1.22.8: dependencies: is-core-module: 2.13.1 @@ -18689,6 +20590,12 @@ snapshots: dependencies: semver: 7.6.3 + semver-regex@4.0.5: {} + + semver-truncate@3.0.0: + dependencies: + semver: 7.6.3 + semver@5.7.2: {} semver@6.3.1: {} @@ -18842,10 +20749,23 @@ snapshots: dependencies: atomic-sleep: 1.0.0 + sort-keys-length@1.0.1: + dependencies: + sort-keys: 1.1.2 + + sort-keys@1.1.2: + dependencies: + is-plain-obj: 1.1.0 + source-map-js@1.2.0: {} source-map-js@1.2.1: {} + source-map-support@0.5.13: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + source-map-support@0.5.19: dependencies: buffer-from: 1.1.2 @@ -18858,8 +20778,7 @@ snapshots: source-map@0.6.1: {} - source-map@0.7.4: - optional: true + source-map@0.7.4: {} spawndamnit@2.0.0: dependencies: @@ -18908,6 +20827,10 @@ snapshots: stack-trace@0.0.10: {} + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + stackback@0.0.2: {} statuses@2.0.1: {} @@ -18944,6 +20867,11 @@ snapshots: string-argv@0.3.2: {} + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + string-width@1.0.2: dependencies: code-point-at: 1.1.0 @@ -19007,6 +20935,8 @@ snapshots: strip-bom@4.0.0: {} + strip-eof@1.0.0: {} + strip-final-newline@2.0.0: {} strip-final-newline@3.0.0: {} @@ -19019,6 +20949,13 @@ snapshots: dependencies: js-tokens: 9.0.0 + strip-outer@2.0.0: {} + + strtok3@7.1.1: + dependencies: + '@tokenizer/token': 0.3.0 + peek-readable: 5.3.1 + stubs@3.0.0: {} stylus@0.64.0: @@ -19172,6 +21109,8 @@ snapshots: tmp@0.2.3: {} + tmpl@1.0.5: {} + to-fast-properties@2.0.0: {} to-regex-range@5.0.1: @@ -19180,6 +21119,11 @@ snapshots: toidentifier@1.0.1: {} + token-types@5.0.1: + dependencies: + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + toposort@2.0.2: {} totalist@3.0.1: {} @@ -19204,6 +21148,10 @@ snapshots: dependencies: punycode: 2.3.1 + trim-repeated@2.0.0: + dependencies: + escape-string-regexp: 5.0.0 + triple-beam@1.4.1: {} ts-api-utils@1.3.0(typescript@5.6.3): @@ -19459,6 +21407,12 @@ snapshots: v8-compile-cache-lib@3.0.1: {} + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -19671,6 +21625,10 @@ snapshots: dependencies: xml-name-validator: 4.0.0 + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 @@ -19825,6 +21783,11 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + ws@8.18.0: {} xdg-basedir@5.1.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index dee99969e..c1dba70f4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,6 +2,7 @@ packages: - 'packages/*' - '!**/test/**' - 'e2e/*' + - tools/create-package/dist catalog: '@reduxjs/toolkit': ^2.2.5 diff --git a/project.json b/project.json index 32d2e22f5..fe2f5e5c8 100644 --- a/project.json +++ b/project.json @@ -1,6 +1,7 @@ { "name": "forgerock-verdaccio", "$schema": "node_modules/nx/schemas/project-schema.json", + "includedScripts": [], "targets": { "local-registry": { "executor": "@nx/js:verdaccio", diff --git a/tools/create-package/.eslintignore b/tools/create-package/.eslintignore new file mode 100644 index 000000000..e0852e300 --- /dev/null +++ b/tools/create-package/.eslintignore @@ -0,0 +1,12 @@ +node_modules +*.md +LICENSE +.babelrc +.env* +.bin +dist +.eslintignore +docs +coverage +vite.config.*.timestamp* +generators/files/* \ No newline at end of file diff --git a/tools/create-package/.eslintrc.json b/tools/create-package/.eslintrc.json new file mode 100644 index 000000000..6c819b6d2 --- /dev/null +++ b/tools/create-package/.eslintrc.json @@ -0,0 +1,37 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "@nx/dependency-checks": [ + "error", + { + "ignoredFiles": ["{projectRoot}/eslint.config.{js,cjs,mjs}"] + } + ] + } + }, + { + "files": ["./package.json", "./generators.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "@nx/nx-plugin-checks": "error" + } + } + ] +} diff --git a/tools/create-package/README.md b/tools/create-package/README.md new file mode 100644 index 000000000..0ad516868 --- /dev/null +++ b/tools/create-package/README.md @@ -0,0 +1,7 @@ +# create-package + +This library was generated with [Nx](https://nx.dev). + +## Building + +Run `nx build create-package` to build the library. diff --git a/tools/create-package/generators.json b/tools/create-package/generators.json new file mode 100644 index 000000000..17b9a3bb0 --- /dev/null +++ b/tools/create-package/generators.json @@ -0,0 +1,9 @@ +{ + "generators": { + "create": { + "factory": "./src/generators/create-package-generator", + "schema": "./src/generators/schema.json", + "description": "create-package-generator generator" + } + } +} diff --git a/tools/create-package/package.json b/tools/create-package/package.json new file mode 100644 index 000000000..3022844b6 --- /dev/null +++ b/tools/create-package/package.json @@ -0,0 +1,13 @@ +{ + "name": "@forgerock/create-package", + "version": "0.0.1", + "dependencies": { + "@nx/devkit": "20.2.2", + "vitest": "^1.4.0" + }, + "type": "commonjs", + "main": "./src/index.js", + "typings": "./src/index.d.ts", + "private": true, + "generators": "./generators.json" +} diff --git a/tools/create-package/project.json b/tools/create-package/project.json new file mode 100644 index 000000000..d637759b6 --- /dev/null +++ b/tools/create-package/project.json @@ -0,0 +1,48 @@ +{ + "name": "@forgerock/create-package", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "tools/create-package/src", + "projectType": "library", + "tags": [], + "targets": { + "build": { + "executor": "@nx/js:tsc", + "outputs": ["{options.outputPath}"], + "options": { + "outputPath": "tools/create-package/dist", + "main": "tools/create-package/src/index.ts", + "tsConfig": "tools/create-package/tsconfig.lib.json", + "assets": [ + "tools/create-package/*.md", + { + "input": "./tools/create-package/src", + "glob": "**/!(*.ts)", + "output": "./src" + }, + { + "input": "./tools/create-package/src", + "glob": "**/*.d.ts", + "output": "./src" + }, + { + "input": "./tools/create-package", + "glob": "generators.json", + "output": "." + }, + { + "input": "./tools/create-package", + "glob": "executors.json", + "output": "." + } + ] + } + }, + "lint": { + "executor": "@nx/eslint:lint", + "options": { + "lintFilePatterns": ["tools/create-package/**/*.ts"], + "ignorePath": ".eslintignore" + } + } + } +} diff --git a/tools/create-package/src/generators/create-package-generator.spec.ts b/tools/create-package/src/generators/create-package-generator.spec.ts new file mode 100644 index 000000000..e046667ec --- /dev/null +++ b/tools/create-package/src/generators/create-package-generator.spec.ts @@ -0,0 +1,21 @@ +import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; +import { Tree, readProjectConfiguration } from '@nx/devkit'; + +import { createPackageGeneratorGenerator } from './create-package-generator'; +import { CreatePackageGeneratorGeneratorSchema } from './schema'; +import { beforeEach, describe, expect, it } from 'vitest'; + +describe('create-package-generator generator', () => { + let tree: Tree; + const options: CreatePackageGeneratorGeneratorSchema = { name: 'test' }; + + beforeEach(() => { + tree = createTreeWithEmptyWorkspace(); + }); + + it('should run successfully', async () => { + await createPackageGeneratorGenerator(tree, options); + const config = readProjectConfiguration(tree, 'test'); + expect(config).toBeDefined(); + }); +}); diff --git a/tools/create-package/src/generators/create-package-generator.ts b/tools/create-package/src/generators/create-package-generator.ts new file mode 100644 index 000000000..5a654b9f1 --- /dev/null +++ b/tools/create-package/src/generators/create-package-generator.ts @@ -0,0 +1,32 @@ +import { formatFiles, generateFiles, installPackagesTask, names, Tree } from '@nx/devkit'; +import * as path from 'path'; +import { CreatePackageGeneratorGeneratorSchema } from './schema'; + +export async function createPackageGeneratorGenerator( + tree: Tree, + options: CreatePackageGeneratorGeneratorSchema, +) { + if (!options.name) { + throw new Error('Invalid name provided. Please provide a name'); + } + if (options.moduleType !== 'module' && options.moduleType !== 'commonjs') { + throw new Error('Invalid moduleType provided. Please provide a valid moduleType'); + } + + const projectRoot = `packages/${names(options.name).fileName}`; + + const resolvedOptions = { + ...options, + name: names(options.name).propertyName, + packageScope: names(options.packageScope).name || 'pingidentity', + }; + console.log(resolvedOptions); + + generateFiles(tree, path.join(__dirname, 'files'), projectRoot, resolvedOptions); + await formatFiles(tree); + return () => { + installPackagesTask(tree, true); + }; +} + +export default createPackageGeneratorGenerator; diff --git a/tools/create-package/src/generators/files/.eslintignore.template b/tools/create-package/src/generators/files/.eslintignore.template new file mode 100644 index 000000000..315e19449 --- /dev/null +++ b/tools/create-package/src/generators/files/.eslintignore.template @@ -0,0 +1,11 @@ +node_modules +*.md +LICENSE +.babelrc +.env* +.bin +dist +.eslintignore +docs +coverage +vite.config.*.timestamp* \ No newline at end of file diff --git a/tools/create-package/src/generators/files/.eslintrc.json.template b/tools/create-package/src/generators/files/.eslintrc.json.template new file mode 100644 index 000000000..3fc5707da --- /dev/null +++ b/tools/create-package/src/generators/files/.eslintrc.json.template @@ -0,0 +1,33 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "@nx/dependency-checks": [ + "error", + { + "ignoredFiles": [ + "{projectRoot}/eslint.config.{js,cjs,mjs}", + "{projectRoot}/vite.config.{js,ts,mjs,mts}" + ] + } + ] + } + } + ] +} diff --git a/tools/create-package/src/generators/files/CHANGELOG.md.template b/tools/create-package/src/generators/files/CHANGELOG.md.template new file mode 100644 index 000000000..e69de29bb diff --git a/tools/create-package/src/generators/files/README.md.template b/tools/create-package/src/generators/files/README.md.template new file mode 100644 index 000000000..48df5f0f8 --- /dev/null +++ b/tools/create-package/src/generators/files/README.md.template @@ -0,0 +1,3 @@ +# <%= name %> + +Generated by default by the package generator, please edit this file diff --git a/tools/create-package/src/generators/files/package.json.template b/tools/create-package/src/generators/files/package.json.template new file mode 100644 index 000000000..0f7110ad9 --- /dev/null +++ b/tools/create-package/src/generators/files/package.json.template @@ -0,0 +1,26 @@ +{ + "name": "@<%= packageScope %>/<%= name %>", + "version": "0.0.0", + "private": true, + "type": "module", + "main": "./dist/index.js", + "module": "./dist/index.js", + "typings": "./dist/index.d.ts", + "sideEffects": <%= sideEffects %>, + "exports": { + ".": "./dist/index.js", + "./package.json": "./package.json", + "./types": "./dist/index.d.ts" + }, + "files": ["<%= outputDir %>"], + "dependencies": {}, + "devDependencies": {}, + "scripts": { + "build": "tsc --project ./tsconfig.lib.json ", + "docs": "typedoc --options packages/<%= name %>/typedoc.json", + "lint": "eslint **/*.ts --fix", + "test": "vitest", + "test:watch": "vitest --watch", + "test:coverage": "vitest --coverage" + } +} diff --git a/tools/create-package/src/generators/files/src/index.ts.template b/tools/create-package/src/generators/files/src/index.ts.template new file mode 100644 index 000000000..cf3efb90f --- /dev/null +++ b/tools/create-package/src/generators/files/src/index.ts.template @@ -0,0 +1 @@ +import <%= name %> from "./lib/index.ts" \ No newline at end of file diff --git a/tools/create-package/src/generators/files/src/lib/index.ts.template b/tools/create-package/src/generators/files/src/lib/index.ts.template new file mode 100644 index 000000000..e37975641 --- /dev/null +++ b/tools/create-package/src/generators/files/src/lib/index.ts.template @@ -0,0 +1,3 @@ +export function <%= name %>() { + return {}; +} \ No newline at end of file diff --git a/tools/create-package/src/generators/files/tsconfig.json.template b/tools/create-package/src/generators/files/tsconfig.json.template new file mode 100644 index 000000000..0d50c6406 --- /dev/null +++ b/tools/create-package/src/generators/files/tsconfig.json.template @@ -0,0 +1,25 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "module": "NodeNext", + "moduleDetection": "force", + "target": "ES2022", + "forceConsistentCasingInFileNames": true, + "strict": true, + "composite": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ] +} \ No newline at end of file diff --git a/tools/create-package/src/generators/files/tsconfig.lib.json.template b/tools/create-package/src/generators/files/tsconfig.lib.json.template new file mode 100644 index 000000000..48c57bbf2 --- /dev/null +++ b/tools/create-package/src/generators/files/tsconfig.lib.json.template @@ -0,0 +1,13 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./dist", + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "composite": true, + "lib": ["es2022", "dom", "dom.iterable"], + }, + "include": ["src/**/*.ts"], + "exclude": ["vite.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"], +} diff --git a/tools/create-package/src/generators/files/tsconfig.spec.json.template b/tools/create-package/src/generators/files/tsconfig.spec.json.template new file mode 100644 index 000000000..74ae07cf7 --- /dev/null +++ b/tools/create-package/src/generators/files/tsconfig.spec.json.template @@ -0,0 +1,27 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": true, + "outDir": "../../dist/out-tsc", + "types": [ + "vitest/vitest", + "vitest/globals", + "vitest/importMeta", + "vite/client", + "node" + ] + }, + "include": [ + "vite.config.ts", + "vitest.config.ts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx", + "src/**/*.d.ts" + ] +} diff --git a/tools/create-package/src/generators/files/typedoc.json.template b/tools/create-package/src/generators/files/typedoc.json.template new file mode 100644 index 000000000..f281c9889 --- /dev/null +++ b/tools/create-package/src/generators/files/typedoc.json.template @@ -0,0 +1,68 @@ +{ + "entryPointStrategy": "expand", + "entryPoints": ["./src/"], + "tsconfig": "tsconfig.lib.json", + "compilerOptions": {}, + "exclude": [ + "**/*.(spec|test|e2e).ts", + "**/*.mock.*", + "**/*.data.*", + "docs/**", + "tests/**", + "specs/**", + "spec/**", + "test/**" + ], + "externalPattern": ["**/node_modules/**"], + "excludeExternals": true, + "excludeInternal": false, + "excludePrivate": false, + "excludeProtected": false, + "excludeNotDocumented": false, + "externalSymbolLinkMappings": {}, + "out": "./docs", + "emit": "docs", + "theme": "typedoc-github-theme", + "name": "<%= name %>", + "includeVersion": true, + "readme": "./README.md", + "disableSources": false, + "excludeTags": [], + "cname": "", + "sourceLinkTemplate": "", + "gitRevision": "master", + "gitRemote": "origin", + "lang": "en", + "githubPages": true, + "hideGenerator": true, + "searchInComments": false, + "cleanOutputDir": true, + "titleLink": "", + "navigationLinks": {}, + "sidebarLinks": {}, + "commentStyle": "all", + "categorizeByGroup": true, + "defaultCategory": "Other", + "categoryOrder": [], + "sort": ["visibility", "required-first", "source-order"], + "visibilityFilters": { + "protected": true, + "private": true, + "inherited": true, + "external": true + }, + "searchCategoryBoosts": {}, + "searchGroupBoosts": {}, + "preserveWatchOutput": false, + "skipErrorChecking": false, + "validation": { + "notExported": true, + "invalidLink": true, + "notDocumented": true + }, + "requiredToBeDocumented": [], + "treatWarningsAsErrors": false, + "intentionallyNotExported": [], + "logLevel": "Verbose", + "plugin": ["typedoc-plugin-rename-defaults", "typedoc-github-theme"] +} diff --git a/tools/create-package/src/generators/files/vite.config.ts.template b/tools/create-package/src/generators/files/vite.config.ts.template new file mode 100644 index 000000000..b8354249c --- /dev/null +++ b/tools/create-package/src/generators/files/vite.config.ts.template @@ -0,0 +1,26 @@ +import { defineConfig } from 'vite'; + +export default defineConfig(() => ({ + cacheDir: '../../node_modules/.vite/<%= name %>', + test: { + reporters: ['default'], + globals: true, + passWithNoTests: true, + watch: !process.env['CI'], + coverage: { + enabled: Boolean(process.env['CI']), + reporter: ['text', 'json', 'html'], + reportsDirectory: './coverage', + provider: 'v8', + }, + deps: { + optimizer: { + web: { + include: ['vitest-canvas-mock'], + }, + }, + }, + environment: 'jsdom', + include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + }, +})); diff --git a/tools/create-package/src/generators/schema.d.ts b/tools/create-package/src/generators/schema.d.ts new file mode 100644 index 000000000..80ec965ce --- /dev/null +++ b/tools/create-package/src/generators/schema.d.ts @@ -0,0 +1,8 @@ +export interface CreatePackageGeneratorGeneratorSchema { + name: string; + packageScope?: string; + description?: string; + sideEffects?: boolean; + outputDir?: string; + moduleType?: 'module' | 'commonjs'; +} diff --git a/tools/create-package/src/generators/schema.json b/tools/create-package/src/generators/schema.json new file mode 100644 index 000000000..90c038b45 --- /dev/null +++ b/tools/create-package/src/generators/schema.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://json-schema.org/schema", + "$id": "CreatePackageGenerator", + "title": "Creating a package in the repository", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the package", + "$default": { + "$source": "argv", + "index": 0 + }, + "x-prompt": "Name of package: " + }, + "packageScope": { + "type": "string", + "description": "Scope of the package [defaults to '@pingidentity']", + "$default": "pingidentity", + "x-prompt": "Scope of the package [defaults to '@pingidentity']: ", + "optional": true + }, + "description": { + "type": "string", + "description": "description of package [put in description field of package.json, defaults to empty string], include the npm scope in the name.", + "$default": "", + "x-prompt": "Description: ", + "optional": true + }, + "sideEffects": { + "type": "boolean", + "description": "Will this package have side effects? [tree-shaking], false means no side effects", + "$default": false, + "x-prompt": "Does the package have side effects? [tree-shaking], false means no side effects [defaults to false]", + "optional": true + }, + "outputDir": { + "type": "string", + "description": "Output directory for the package", + "$default": "./dist", + "x-prompt": "Output directory for the package [defaults to './dist']: ", + "optional": true + }, + "moduleType": { + "type": "string", + "description": "Type of module to list in package.json (module or commonjs)", + "$default": "module", + "x-prompt": "Type of module [defaults to 'module']: ", + "optional": true + } + }, + "required": ["name"] +} diff --git a/tools/create-package/src/index.ts b/tools/create-package/src/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/tools/create-package/tsconfig.json b/tools/create-package/tsconfig.json new file mode 100644 index 000000000..91dbeb8dc --- /dev/null +++ b/tools/create-package/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "module": "commonjs", + "skipLibCheck": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + } + ] +} diff --git a/tools/create-package/tsconfig.lib.json b/tools/create-package/tsconfig.lib.json new file mode 100644 index 000000000..93ab50449 --- /dev/null +++ b/tools/create-package/tsconfig.lib.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "declaration": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"], + "exclude": ["vite.config.ts"] +} diff --git a/tools/create-package/tsconfig.spec.json b/tools/create-package/tsconfig.spec.json new file mode 100644 index 000000000..9beef6c1e --- /dev/null +++ b/tools/create-package/tsconfig.spec.json @@ -0,0 +1,26 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "types": [ + "vitest", + "vitest/globals", + "vitest/importMeta", + "vite/client", + "node" + ] + }, + "include": [ + "vite.config.ts", + "vitest.config.ts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx", + "src/**/*.d.ts" + ] +} diff --git a/tools/create-package/vite.config.ts b/tools/create-package/vite.config.ts new file mode 100644 index 000000000..7aa4d5f12 --- /dev/null +++ b/tools/create-package/vite.config.ts @@ -0,0 +1,27 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + reporters: ['default'], + globals: true, + setupFiles: ['./vitest.setup.ts'], + passWithNoTests: true, + watch: !process.env['CI'], + coverage: { + enabled: Boolean(process.env['CI']), + reporter: ['text', 'json', 'html'], + reportsDirectory: './coverage', + provider: 'v8', + }, + + deps: { + optimizer: { + web: { + include: ['vitest-canvas-mock'], + }, + }, + }, + environment: 'jsdom', + include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + }, +});

%IWOZ~6t2hH~U(C*i- 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 diff --git a/e2e/autoscript-apps/src/register-basic/autoscript.ts b/e2e/autoscript-apps/src/register-basic/autoscript.ts deleted file mode 100644 index f0f1c134d..000000000 --- a/e2e/autoscript-apps/src/register-basic/autoscript.ts +++ /dev/null @@ -1,149 +0,0 @@ -/* - * @forgerock/javascript-sdk - * - * autoscript.ts - * - * Copyright (c) 2020 ForgeRock. All rights reserved. - * This software may be modified and distributed under the terms - * of the MIT license. See the LICENSE file for details. - */ -// @ts-nocheck -import * as forgerock from '@forgerock/javascript-sdk'; -import { delay as rxDelay, map, mergeMap } from 'rxjs/operators'; -import { from } from 'rxjs'; - -function autoscript() { - const delay = 0; - - const url = new URL(window.location.href); - - const amUrl = url.searchParams.get('amUrl') || 'http://localhost:9443/am'; - const realmPath = url.searchParams.get('realmPath') || 'root'; - const tree = url.searchParams.get('tree') || 'Registration'; - const un = url.searchParams.get('un') || 'f9022889-4452-48a0-aa94-182436645551'; - const pw = url.searchParams.get('pw') || 'password'; - const email = url.searchParams.get('email') || 'sally.tester@me.com'; - - console.log('Configure the SDK'); - forgerock.Config.set({ - realmPath, - tree, - serverConfig: { - baseUrl: amUrl, - }, - }); - - try { - forgerock.SessionManager.logout(); - } catch (err) { - // Do nothing - } - - console.log('Initiate first step with `undefined`'); - // Wrapping in setTimeout to give the test time to bind listener to console.log - setTimeout(function () { - from(forgerock.FRAuth.next()) - .pipe( - rxDelay(delay), - mergeMap((step) => { - console.log('Handle ValidatedCreateUsernameCallback'); - const unCb = step.getCallbackOfType('ValidatedCreateUsernameCallback'); - console.log(`Prompt from UsernameCallback is ${unCb.getPrompt()}`); - unCb.setName(un); - - console.log('Handle ValidatedCreatePasswordCallback'); - const pwCb = step.getCallbackOfType('ValidatedCreatePasswordCallback'); - console.log(`Prompt from PasswordCallback is ${pwCb.getPrompt()}`); - pwCb.setPassword(pw); - - const [saCb1, saCb2, saCb3] = step.getCallbacksOfType('StringAttributeInputCallback'); - - console.log(`Prompt 1: ${saCb1.getPrompt()}`); - console.log(`Prompt 2: ${saCb2.getPrompt()}`); - console.log(`Prompt 3: ${saCb3.getPrompt()}`); - - saCb1.setInputValue('Sally'); - saCb2.setInputValue('Tester'); - saCb3.setInputValue(email); - - const [baCb1, baCb2] = step.getCallbacksOfType('BooleanAttributeInputCallback'); - - console.log(`Prompt 4: ${baCb1.getPrompt()}`); - console.log(`Prompt 5: ${baCb2.getPrompt()}`); - - baCb1.setInputValue(false); - baCb2.setInputValue(false); - - // const naCb = step.getCallbackOfType('NumberAttributeInputCallback'); - // console.log(`Prompt 6: ${naCb.getPrompt()}`); - - // naCb.setInputValue(40); - - console.log('Handle KbaCreateCallback'); - const [kbCb1, kbCb2] = step.getCallbacksOfType('KbaCreateCallback'); - - console.log(`Prompt 7: ${kbCb1.getPrompt()}`); - console.log(`Prompt 8: ${kbCb2.getPrompt()}`); - - const [pdq1, pdq2] = kbCb1.getPredefinedQuestions(); - console.log(`Predefined Question1: ${pdq1}`); - console.log(`Predefined Question 2: ${pdq2}`); - - kbCb1.setQuestion('What is your favorite color?'); - kbCb1.setAnswer('Red'); - - kbCb2.setQuestion('Who was your first employer?'); - kbCb2.setAnswer('AAA Engineering'); - - console.log('Handle TermsAndConditionsCallback'); - const tcCb = step.getCallbackOfType('TermsAndConditionsCallback'); - - console.log(`Terms version: ${tcCb.getVersion()}`); - console.log(`Terms text: ${tcCb.getTerms()}`); - - tcCb.setAccepted(); - - return forgerock.FRAuth.next(step); - }), - rxDelay(delay), - map( - (step) => { - if (step.payload.status === 401) { - throw new Error('Auth_Error'); - } else if (step.payload.tokenId) { - console.log('Basic login successful'); - document.body.innerHTML = '