diff --git a/.nx/cache/run.json b/.nx/cache/run.json index 011281a..8e3d16b 100644 --- a/.nx/cache/run.json +++ b/.nx/cache/run.json @@ -1,18 +1,29 @@ { "run": { "command": "nx run-many -t build", - "startTime": "2025-04-08T14:42:01.328Z", - "endTime": "2025-04-08T14:42:09.462Z", + "startTime": "2026-02-18T13:21:04.649Z", + "endTime": "2026-02-18T13:21:06.555Z", "inner": false }, "tasks": [ + { + "taskId": "flowerbase-client:build", + "target": "build", + "projectName": "flowerbase-client", + "hash": "14969267837840804475", + "startTime": "2026-02-18T13:21:04.653Z", + "endTime": "2026-02-18T13:21:05.402Z", + "params": "", + "cacheStatus": "cache-miss", + "status": 0 + }, { "taskId": "flowerbase:build", "target": "build", "projectName": "flowerbase", - "hash": "3084298656420127870", - "startTime": "2025-04-08T14:42:01.339Z", - "endTime": "2025-04-08T14:42:09.459Z", + "hash": "2980540345380768176", + "startTime": "2026-02-18T13:21:04.653Z", + "endTime": "2026-02-18T13:21:06.555Z", "params": "", "cacheStatus": "cache-miss", "status": 0 diff --git a/.nx/workspace-data/eslint-4393011795395336301.hash b/.nx/workspace-data/eslint-4393011795395336301.hash index 7ae8ef1..31e8265 100644 --- a/.nx/workspace-data/eslint-4393011795395336301.hash +++ b/.nx/workspace-data/eslint-4393011795395336301.hash @@ -2955,5 +2955,562 @@ } } } - } + }, + "2785934865875674696": {}, + "4047996060630508531": {}, + "14243262592594028778": { + "packages/demo/packages/backend": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/demo/packages/backend" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "16271266613306522148": { + "packages/flowerbase": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/flowerbase" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "3330699167753731561": { + "packages/flowerbase-client": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/flowerbase-client" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "18258003792085048147": { + "packages/users-exporter": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/users-exporter" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{projectRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "501568519733392556": {}, + "5141837616386735087": {}, + "38245162778620127": { + "packages/flowerbase-client": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/flowerbase-client" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "3464797113442723002": { + "packages/demo/packages/frontend": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/demo/packages/frontend", + "env": { + "ESLINT_USE_FLAT_CONFIG": "true" + } + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{projectRoot}/eslint.config.js", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "11869388454833377541": {}, + "12486331242163022093": { + "packages/flowerbase-client": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/flowerbase-client" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "15732323634371647158": {}, + "5833335673622973049": {}, + "16753912086103265677": { + "packages/flowerbase-client": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/flowerbase-client" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "17975942142327101007": {}, + "3518049646475311888": { + "packages/flowerbase-client": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/flowerbase-client" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "11214801283860708060": {}, + "9563081561217347383": { + "packages/flowerbase-client": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/flowerbase-client" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "15250673799770718877": {}, + "16043827146532386667": {}, + "3775102660243808780": {}, + "8185323132319422219": {}, + "10699958932482613538": { + "packages/flowerbase-client": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/flowerbase-client" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "3479890724724462190": {}, + "2903610026317078934": { + "packages/flowerbase-client": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/flowerbase-client" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "15304781475234514756": {}, + "8837099669121088483": { + "packages/flowerbase-client": { + "targets": { + "lint": { + "command": "eslint .", + "cache": true, + "options": { + "cwd": "packages/flowerbase-client" + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + } + } + } + } + }, + "10987886293153722861": {}, + "14064844314444733242": {}, + "7514329782891895923": {}, + "5980300937045577246": {} } \ No newline at end of file diff --git a/.nx/workspace-data/file-map.json b/.nx/workspace-data/file-map.json index fa8d845..ecbd153 100644 --- a/.nx/workspace-data/file-map.json +++ b/.nx/workspace-data/file-map.json @@ -2,6 +2,19 @@ "version": "6.0", "nxVersion": "19.4.1", "deps": { + "@aws-sdk/client-lambda": "^3.974.0", + "@aws-sdk/client-s3": "^3.974.0", + "@aws-sdk/s3-request-presigner": "^3.975.0", + "@fastify/cors": "^11.2.0", + "@fastify/jwt": "^10.0.0", + "@fastify/mongodb": "^9.0.2", + "@fastify/swagger": "^9.6.1", + "@fastify/swagger-ui": "^5.2.4", + "bson": "^6.10.4", + "fastify-raw-body": "^5.0.0", + "jsonwebtoken": "^9.0.3", + "node-cron": "^4.2.1", + "undici": "^7.18.2", "@babel/core": "^7.24.5", "@babel/preset-react": "^7.24.1", "@nx/eslint": "19.4.1", @@ -19,9 +32,12 @@ "@swc/helpers": "~0.5.11", "@swc/jest": "0.2.36", "@types/jest": "^29.4.0", + "@types/jsonwebtoken": "^9.0.10", + "@types/mongodb": "^4.0.7", "@types/node": "18.16.9", "@typescript-eslint/eslint-plugin": "^7.3.0", "@typescript-eslint/parser": "^7.3.0", + "dotenv": "^17.2.3", "eslint": "~8.57.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.29.1", @@ -30,10 +46,12 @@ "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-react": "^7.34.1", "eslint-plugin-react-hooks": "^4.6.2", + "fastify": "^5.6.2", "jest": "^29.4.1", "jest-environment-jsdom": "^29.4.1", "jest-environment-node": "^29.4.1", "markdownlint-cli2": "^0.15.0", + "mongodb": "^6.21.0", "nx": "19.4.1", "prettier": "^3.2.5", "rimraf": "^5.0.7", @@ -52,6 +70,9 @@ ], "@flowerforce/flower-react": [ "packages/flower-react/src/index.ts" + ], + "@flowerforce/flowerbase-client": [ + "packages/flowerbase-client/src/index.ts" ] }, "nxJsonPlugins": [ @@ -90,83 +111,633 @@ "fileMap": { "nonProjectFiles": [ { - "file": "package-lock.json", - "hash": "6247264392227273707" + "file": "tests/e2e/app/functions/registerUser.js", + "hash": "1096604339171123824" }, { - "file": "package.json", - "hash": "9247982261855955756" + "file": "tests/e2e/app/triggers/authLogoutTrigger.json", + "hash": "1836100657080208461" }, { - "file": ".eslintrc", - "hash": "4890099772766365500" + "file": "tests/e2e/app/functions/isAuthorizedUser.js", + "hash": "12061499283479486648" }, { - "file": ".prettierrc", - "hash": "7656430364163193455" + "file": "tests/e2e/app/functions/onDatabaseEvent.js", + "hash": "17969777180321672077" }, { - "file": ".github/workflows/release.yaml", - "hash": "2304665246591611055" + "file": "tests/e2e/app/http_endpoints/config.json", + "hash": "283484943582039223" }, { - "file": "jest.preset.js", - "hash": "9430166341120122740" + "file": "tests/e2e/app/triggers/databaseFilteredTrigger.json", + "hash": "11259857634546410406" + }, + { + "file": ".github/workflows/checks.yaml", + "hash": "16547202209486812471" + }, + { + "file": "tests/e2e/app/functions/config.json", + "hash": "10712353534517014632" + }, + { + "file": ".npmignore", + "hash": "9882982332580877298" + }, + { + "file": "tests/jest.setup.ts", + "hash": "16509739583874154299" + }, + { + "file": "tests/e2e/app/triggers/activityLogsTrigger.json", + "hash": "395720982642555206" + }, + { + "file": "tests/jest.e2e.progress.ts", + "hash": "2083570672789483403" + }, + { + "file": "tests/e2e/app/data_sources/mongodb-atlas/flowerbase-e2e/todos/rules.json", + "hash": "863005567355159571" + }, + { + "file": "tests/e2e/app/functions/returnError.js", + "hash": "4501793984933362447" + }, + { + "file": "tests/e2e/mongodb-atlas.rules.e2e.auth-security.test.ts", + "hash": "15011075867320064758" + }, + { + "file": "tests/e2e/app/functions/isAuthorizedMyUser.js", + "hash": "10259378679667886210" + }, + { + "file": ".gitignore", + "hash": "11422279077599310690" + }, + { + "file": "tsconfig.base.json", + "hash": "5401898182446782145" }, { "file": ".github/PULL_REQUEST_TEMPLATE.md", "hash": "777829933608130992" }, { - "file": "LICENSE", - "hash": "12182717254072030367" + "file": "nx.json", + "hash": "9418980942870310400" + }, + { + "file": "tests/e2e/app/functions/resetPasswordHandler.js", + "hash": "18419354252732000278" + }, + { + "file": "tests/e2e/app/functions/onScheduledEvent.js", + "hash": "3854362741209032419" + }, + { + "file": "tests/e2e/app/functions/systemListUsers.js", + "hash": "7007329885357391977" + }, + { + "file": "tests/e2e/app/triggers/databaseFilteredUpdateTrigger.json", + "hash": "3596319629215370079" + }, + { + "file": "tests/e2e/app/data_sources/mongodb-atlas/flowerbase-e2e/uploads/rules.json", + "hash": "1925761587798365750" + }, + { + "file": "tests/jest.e2e.config.ts", + "hash": "6726280926107045844" + }, + { + "file": "tests/e2e/app/data_sources/mongodb-atlas/flowerbase-e2e/users/rules.json", + "hash": "1056007096859617412" + }, + { + "file": "tests/e2e/app/data_sources/mongodb-atlas/flowerbase-e2e/activities/rules.json", + "hash": "1768617780364424485" + }, + { + "file": "tests/e2e/app/data_sources/mongodb-atlas/flowerbase-e2e/counters/rules.json", + "hash": "8148162646501299783" + }, + { + "file": "eslint.config.mjs", + "hash": "15816864606171050325" + }, + { + "file": "tests/e2e/app/triggers/authProviderDeleteLocalTrigger.json", + "hash": "2150240271941957358" + }, + { + "file": "tests/e2e/app/auth/custom_user_data.json", + "hash": "18051466035722818120" + }, + { + "file": "jest.preset.js", + "hash": "9430166341120122740" + }, + { + "file": "package.json", + "hash": "508178370391364313" + }, + { + "file": "tests/e2e/app/triggers/authProviderDeleteAnonTrigger.json", + "hash": "13737979108962657154" + }, + { + "file": "tests/e2e/app/functions/publicListAuthUsers.js", + "hash": "11800951351378935304" + }, + { + "file": "tests/e2e/app/data_sources/mongodb-atlas/flowerbase-e2e/activityLogs/rules.json", + "hash": "4524129455339916834" + }, + { + "file": "tests/e2e/app/triggers/authProviderCreateLocalTrigger.json", + "hash": "3048152403549231655" + }, + { + "file": "tests/e2e/app/triggers/authProviderLogoutLocalTrigger.json", + "hash": "1792274792638039408" + }, + { + "file": "tests/e2e/app/functions/logFilteredTriggerEvent.js", + "hash": "15583025830653371627" + }, + { + "file": "tests/e2e/app/functions/onLogoutUser.js", + "hash": "11442649786456429072" }, { "file": ".vscode/settings.json", "hash": "17816762371917633494" }, { - "file": ".npmignore", - "hash": "9882982332580877298" + "file": "package-lock.json", + "hash": "11258619287395865617" }, { - "file": "nx.json", - "hash": "9418980942870310400" + "file": "tests/e2e/app/functions/privateEcho.js", + "hash": "6836600470679077376" }, { - "file": "DOCS.md", - "hash": "2756621401304838524" + "file": "tests/e2e/app/functions/deleteUser.js", + "hash": "6678370898472755620" }, { - "file": ".github/workflows/prerelease.yaml", - "hash": "1579121106462692968" + "file": "tests/e2e/app/triggers/databaseUpdateTrigger.json", + "hash": "16581162696690458140" }, { - "file": "tsconfig.base.json", - "hash": "11549800608902314440" + "file": "tests/e2e/app/functions/logAuthProviderTrigger.js", + "hash": "4266167861022625021" }, { "file": "jest.config.ts", - "hash": "3494843969422251966" + "hash": "5853812946981808822" + }, + { + "file": "tests/e2e/app/auth/providers.json", + "hash": "15681281809782999918" + }, + { + "file": "tests/e2e/app/triggers/scheduledTrigger.json", + "hash": "545107063181767691" + }, + { + "file": "tests/e2e/mongodb-atlas.rules.e2e.functions-and-auth-flow.test.ts", + "hash": "5941247762964536376" }, { "file": "scripts/prerelease.ts", "hash": "14144003354920194568" }, { - "file": "eslint.config.mjs", - "hash": "15816864606171050325" + "file": ".eslintrc", + "hash": "4890099772766365500" }, { - "file": ".gitignore", - "hash": "3556843805136296686" + "file": "DOCS.md", + "hash": "17488165957299042018" }, { - "file": ".github/workflows/checks.yaml", - "hash": "16547202209486812471" + "file": "tests/e2e/app/triggers/databaseDeleteTrigger.json", + "hash": "14111446758564022030" + }, + { + "file": "tests/e2e/app/triggers/authDeleteTrigger.json", + "hash": "8680079864016241310" + }, + { + "file": "tests/tsconfig.json", + "hash": "13445280480020550257" + }, + { + "file": "packages/.DS_Store", + "hash": "15077414037009071161" + }, + { + "file": "tests/e2e/app/functions/onDeleteUser.js", + "hash": "12274762387888860017" + }, + { + "file": "tests/e2e/app/functions/api_checkWorkspace.js", + "hash": "6973690313848077722" + }, + { + "file": "tests/e2e/app/functions/onCreateUser.js", + "hash": "4580054730814084394" + }, + { + "file": "tests/e2e/app/triggers/authProviderLogoutAnonTrigger.json", + "hash": "15828090454882580960" + }, + { + "file": "tests/e2e/mongodb-atlas.rules.e2e.setup.ts", + "hash": "11349252792148620928" + }, + { + "file": "tests/e2e/app/functions/logTriggerEvent.js", + "hash": "13979563669884900520" + }, + { + "file": ".github/workflows/prerelease.yaml", + "hash": "1579121106462692968" + }, + { + "file": "LICENSE", + "hash": "12182717254072030367" + }, + { + "file": "tests/e2e/app/triggers/authProviderCreateAnonTrigger.json", + "hash": "5950253218381904692" + }, + { + "file": "tests/e2e/app/functions/logFilteredUpdateEvent.js", + "hash": "2692769432115363208" + }, + { + "file": "tests/e2e/app/functions/publicDeleteUser.js", + "hash": "6678370898472755620" + }, + { + "file": "tests/e2e/app/triggers/databaseInsertTrigger.json", + "hash": "10184773110874568527" + }, + { + "file": ".github/workflows/release.yaml", + "hash": "2304665246591611055" + }, + { + "file": "tests/e2e/app/functions/isAuthorizedAdmin.js", + "hash": "16244791795421806438" + }, + { + "file": "tests/e2e/app/data_sources/mongodb-atlas/flowerbase-e2e/projects/rules.json", + "hash": "14577402069784390801" + }, + { + "file": "tests/e2e/app/functions/confirmUser.js", + "hash": "5144243232060808999" + }, + { + "file": "tests/e2e/mongodb-atlas.rules.e2e.rules-and-triggers.test.ts", + "hash": "9549814775145475561" + }, + { + "file": ".prettierrc", + "hash": "7656430364163193455" } ], "projectFileMap": { + "flowerbase-client": [ + { + "file": "packages/flowerbase-client/jest.config.ts", + "hash": "17849956774949306964" + }, + { + "file": "packages/flowerbase-client/package.json", + "hash": "12263835537411133707", + "deps": [ + "npm:bson" + ] + }, + { + "file": "packages/flowerbase-client/project.json", + "hash": "5493291550777482588" + }, + { + "file": "packages/flowerbase-client/src/__tests__/auth.test.ts", + "hash": "11550208128941638011" + }, + { + "file": "packages/flowerbase-client/src/__tests__/compat.test.ts", + "hash": "1497928536189725155" + }, + { + "file": "packages/flowerbase-client/src/__tests__/functions.test.ts", + "hash": "509443908780282791" + }, + { + "file": "packages/flowerbase-client/src/__tests__/mongo.test.ts", + "hash": "9398673696582245458", + "deps": [ + "npm:bson" + ] + }, + { + "file": "packages/flowerbase-client/src/__tests__/session.test.ts", + "hash": "12628474924754525320" + }, + { + "file": "packages/flowerbase-client/src/__tests__/watch.test.ts", + "hash": "5910266356103524904" + }, + { + "file": "packages/flowerbase-client/src/app.ts", + "hash": "7809050342420212807" + }, + { + "file": "packages/flowerbase-client/src/bson.ts", + "hash": "13215244798852301026", + "deps": [ + "npm:bson" + ] + }, + { + "file": "packages/flowerbase-client/src/credentials.ts", + "hash": "9916271421611682513" + }, + { + "file": "packages/flowerbase-client/src/functions.ts", + "hash": "18206193230612241749" + }, + { + "file": "packages/flowerbase-client/src/http.ts", + "hash": "16035740055388331282" + }, + { + "file": "packages/flowerbase-client/src/index.ts", + "hash": "14131607053581401392" + }, + { + "file": "packages/flowerbase-client/src/mongo.ts", + "hash": "5895244027182516822" + }, + { + "file": "packages/flowerbase-client/src/session.native.ts", + "hash": "6858861236939626691" + }, + { + "file": "packages/flowerbase-client/src/session.ts", + "hash": "11574113873141260898" + }, + { + "file": "packages/flowerbase-client/src/types.ts", + "hash": "5589692425030908876" + }, + { + "file": "packages/flowerbase-client/src/user.ts", + "hash": "14997483607613540202" + }, + { + "file": "packages/flowerbase-client/src/watch.ts", + "hash": "16487776971548671757" + }, + { + "file": "packages/flowerbase-client/tsconfig.json", + "hash": "13327561258159855651" + }, + { + "file": "packages/flowerbase-client/tsconfig.spec.json", + "hash": "2699137341616558329" + }, + { + "file": "packages/flowerbase-client/flowerforce-flowerbase-client-0.1.0.tgz", + "hash": "8605621980611479255" + }, + { + "file": "packages/flowerbase-client/.DS_Store", + "hash": "14084404632488199927" + } + ], + "flowerbase-demo": [ + { + "file": "packages/demo/README.md", + "hash": "10793297036395519946" + }, + { + "file": "packages/demo/package-lock.json", + "hash": "2096834049677913296" + }, + { + "file": "packages/demo/package.json", + "hash": "7323055674015837798", + "deps": [ + "npm:concurrently" + ] + } + ], + "frontend": [ + { + "file": "packages/demo/packages/frontend/.gitignore", + "hash": "13046175384202504187" + }, + { + "file": "packages/demo/packages/frontend/README.md", + "hash": "13160460843517416105" + }, + { + "file": "packages/demo/packages/frontend/eslint.config.js", + "hash": "16145672096969245511", + "deps": [ + "npm:@eslint/js", + "npm:globals", + "npm:eslint-plugin-react-hooks", + "npm:typescript-eslint" + ] + }, + { + "file": "packages/demo/packages/frontend/index.html", + "hash": "4025202329384162906" + }, + { + "file": "packages/demo/packages/frontend/package-lock.json", + "hash": "16161709975294344697" + }, + { + "file": "packages/demo/packages/frontend/package.json", + "hash": "7658799625535406384", + "deps": [ + "npm:typescript@5.8.3", + "flowerbase-client" + ] + }, + { + "file": "packages/demo/packages/frontend/public/vite.svg", + "hash": "16046085400642193116" + }, + { + "file": "packages/demo/packages/frontend/src/App.css", + "hash": "3739391659270974612" + }, + { + "file": "packages/demo/packages/frontend/src/App.tsx", + "hash": "1989732526986445183" + }, + { + "file": "packages/demo/packages/frontend/src/api/client.ts", + "hash": "7018350660053599364", + "deps": [ + "flowerbase-client" + ] + }, + { + "file": "packages/demo/packages/frontend/src/appRoutes.ts", + "hash": "6744697892634064487" + }, + { + "file": "packages/demo/packages/frontend/src/assets/react.svg", + "hash": "16069471864800376455" + }, + { + "file": "packages/demo/packages/frontend/src/components/EmptyState/index.tsx", + "hash": "13818087902908550141" + }, + { + "file": "packages/demo/packages/frontend/src/components/Layout/index.tsx", + "hash": "12426680341573013953" + }, + { + "file": "packages/demo/packages/frontend/src/components/Loader/index.tsx", + "hash": "5439699450597759093" + }, + { + "file": "packages/demo/packages/frontend/src/components/NewTask/index.tsx", + "hash": "16179991392904483125" + }, + { + "file": "packages/demo/packages/frontend/src/components/Pagination/index.tsx", + "hash": "15784848270396726706" + }, + { + "file": "packages/demo/packages/frontend/src/components/TaskBoard/index.tsx", + "hash": "7496398157237751950" + }, + { + "file": "packages/demo/packages/frontend/src/components/TaskTable/index.tsx", + "hash": "15200496161907260446" + }, + { + "file": "packages/demo/packages/frontend/src/context/Authentication.tsx", + "hash": "14876304677772450168", + "deps": [ + "flowerbase-client" + ] + }, + { + "file": "packages/demo/packages/frontend/src/hooks/useAuthentication.ts", + "hash": "6290839895112002736" + }, + { + "file": "packages/demo/packages/frontend/src/index.css", + "hash": "8688147797407610842" + }, + { + "file": "packages/demo/packages/frontend/src/main.tsx", + "hash": "15503771049540406531" + }, + { + "file": "packages/demo/packages/frontend/src/pages/Home/index.tsx", + "hash": "4709903194139215019" + }, + { + "file": "packages/demo/packages/frontend/src/pages/Login/index.tsx", + "hash": "16267190739117165768" + }, + { + "file": "packages/demo/packages/frontend/src/pages/Registration/index.tsx", + "hash": "12840201238792842803" + }, + { + "file": "packages/demo/packages/frontend/src/pages/Welcome/index.tsx", + "hash": "4928837705085028779" + }, + { + "file": "packages/demo/packages/frontend/src/vite-env.d.ts", + "hash": "12946363841406869089" + }, + { + "file": "packages/demo/packages/frontend/tsconfig.app.json", + "hash": "1003689959762436138" + }, + { + "file": "packages/demo/packages/frontend/tsconfig.json", + "hash": "2365188958523842680" + }, + { + "file": "packages/demo/packages/frontend/tsconfig.node.json", + "hash": "2201964403257550573" + }, + { + "file": "packages/demo/packages/frontend/vite.config.ts", + "hash": "1209058190278590239" + } + ], + "mongo-server-migration-tool": [ + { + "file": "packages/users-exporter/.eslintrc", + "hash": "531717505489517412" + }, + { + "file": "packages/users-exporter/.gitignore", + "hash": "15517215104101331287" + }, + { + "file": "packages/users-exporter/index.js", + "hash": "3929933325449928300", + "deps": [ + "npm:body-parser", + "npm:express" + ] + }, + { + "file": "packages/users-exporter/package-lock.json", + "hash": "6289575477489563347" + }, + { + "file": "packages/users-exporter/package.json", + "hash": "5752898723106887178", + "deps": [ + "npm:body-parser", + "npm:ejs", + "npm:express", + "npm:nodemon" + ] + }, + { + "file": "packages/users-exporter/public/style.css", + "hash": "7743102332916063903" + }, + { + "file": "packages/users-exporter/utils.js", + "hash": "14648336352583640131" + }, + { + "file": "packages/users-exporter/views/guide.ejs", + "hash": "6292029403127836910" + }, + { + "file": "packages/users-exporter/views/index.ejs", + "hash": "15944591097490259315" + } + ], "backend": [ { "file": "packages/demo/packages/backend/auth/custom_user_data.json", @@ -186,16 +757,24 @@ }, { "file": "packages/demo/packages/backend/data_sources/mongodb-atlas/flowerbase-demo/users/rules.json", - "hash": "12610595509922332041" + "hash": "11158631464633243667" }, { "file": "packages/demo/packages/backend/functions/config.json", "hash": "12162700482727257434" }, + { + "file": "packages/demo/packages/backend/functions/getSignedUrlUpload.js", + "hash": "13781441951555291074" + }, { "file": "packages/demo/packages/backend/functions/searchTodos.ts", "hash": "12062627583008359396" }, + { + "file": "packages/demo/packages/backend/functions/uploadAvatar.js", + "hash": "16086433554358340147" + }, { "file": "packages/demo/packages/backend/global.d.ts", "hash": "196340667037983804", @@ -203,6 +782,14 @@ "flowerbase" ] }, + { + "file": "packages/demo/packages/backend/http_endpoints/checkActivationCode/config.json", + "hash": "9828658159991762271" + }, + { + "file": "packages/demo/packages/backend/http_endpoints/checkActivationCode/source.js", + "hash": "3707450925527327282" + }, { "file": "packages/demo/packages/backend/http_endpoints/config.json", "hash": "13358479922256070029" @@ -233,6 +820,22 @@ "flowerbase" ] }, + { + "file": "packages/demo/packages/backend/triggers/createUser.json", + "hash": "16319841598686305298" + }, + { + "file": "packages/demo/packages/backend/triggers/triggerActivity.json", + "hash": "5885571456472531343" + }, + { + "file": "packages/demo/packages/backend/triggers/triggerActivityWorkflow.json", + "hash": "12358945922282629820" + }, + { + "file": "packages/demo/packages/backend/triggers/updateUser.json", + "hash": "2707963361243102474" + }, { "file": "packages/demo/packages/backend/tsconfig.json", "hash": "13542890855063395180" @@ -241,7 +844,7 @@ "flowerbase": [ { "file": "packages/flowerbase/CHANGELOG.md", - "hash": "127082807175306356" + "hash": "9509580238628287818" }, { "file": "packages/flowerbase/LICENSE", @@ -249,24 +852,29 @@ }, { "file": "packages/flowerbase/README.md", - "hash": "1134395253210228373" + "hash": "18156375728904989688" }, { "file": "packages/flowerbase/jest.config.ts", - "hash": "10084875477368389864" + "hash": "6339764820849345799" + }, + { + "file": "packages/flowerbase/jest.setup.ts", + "hash": "13054768681658541679" }, { "file": "packages/flowerbase/package.json", - "hash": "13329414870720393396", + "hash": "13226679410922320672", "deps": [ "npm:@babel/cli", "npm:@babel/core", "npm:@babel/preset-env", "npm:@eslint/compat@1.2.9", - "npm:@eslint/eslintrc", - "npm:@eslint/js", + "npm:@eslint/eslintrc@3.3.1", + "npm:@eslint/js@9.31.0", "npm:@types/cors", "npm:@types/jest", + "npm:@types/jsonwebtoken", "npm:@types/lodash", "npm:@types/node@22.6.1", "npm:@types/node-cron", @@ -278,27 +886,30 @@ "npm:eslint-plugin-eslint-plugin", "npm:eslint-plugin-import", "npm:eslint-plugin-prettier", - "npm:globals", + "npm:globals@15.15.0", "npm:jest", "npm:prettier", "npm:ts-jest", "npm:ts-node", "npm:typescript@5.8.3", "npm:typescript-eslint", - "npm:@fastify/cors", - "npm:@fastify/jwt", + "npm:@aws-sdk/client-lambda", + "npm:@aws-sdk/client-s3", + "npm:@aws-sdk/s3-request-presigner", + "npm:@fastify/cors@10.1.0", + "npm:@fastify/jwt@9.1.0", "npm:@fastify/mongodb", "npm:@fastify/swagger", "npm:@fastify/swagger-ui", - "npm:@sendgrid/mail", - "npm:aws-sdk", + "npm:@fastify/websocket", "npm:bson", - "npm:dotenv", + "npm:dotenv@16.6.1", "npm:fastify", - "npm:fastify-mongoose-driver", "npm:fastify-plugin", + "npm:fastify-raw-body", + "npm:jsonwebtoken", "npm:lodash", - "npm:node-cron", + "npm:node-cron@3.0.3", "npm:nodemon", "npm:undici" ] @@ -314,9 +925,13 @@ "npm:@nx/rollup" ] }, + { + "file": "packages/flowerbase/src/auth/__tests__/controller.test.ts", + "hash": "14943626304137196982" + }, { "file": "packages/flowerbase/src/auth/controller.ts", - "hash": "8920025419019649307", + "hash": "1474910861078378353", "deps": [ "npm:bson", "npm:fastify" @@ -326,74 +941,124 @@ "file": "packages/flowerbase/src/auth/dtos.ts", "hash": "6343106066576624195" }, + { + "file": "packages/flowerbase/src/auth/plugins/jwt.test.ts", + "hash": "1266709910485506755", + "deps": [ + "npm:bson", + "npm:fastify", + "npm:jsonwebtoken" + ] + }, { "file": "packages/flowerbase/src/auth/plugins/jwt.ts", - "hash": "12836475117394787433", + "hash": "16599486677297112600", "deps": [ - "npm:@fastify/jwt", + "npm:@fastify/jwt@9.1.0", "npm:fastify-plugin", "npm:mongodb" ] }, { - "file": "packages/flowerbase/src/auth/providers/local-userpass/controller.ts", - "hash": "4579298034115210652", + "file": "packages/flowerbase/src/auth/providers/anon-user/__tests__/controller.test.ts", + "hash": "13529770543941493836" + }, + { + "file": "packages/flowerbase/src/auth/providers/anon-user/controller.ts", + "hash": "11685784340854904625", + "deps": [ + "npm:bson", + "npm:fastify" + ] + }, + { + "file": "packages/flowerbase/src/auth/providers/anon-user/dtos.ts", + "hash": "3703631532425608473" + }, + { + "file": "packages/flowerbase/src/auth/providers/custom-function/controller.ts", + "hash": "3075898428771656026", "deps": [ - "npm:@sendgrid/mail", "npm:fastify" ] }, + { + "file": "packages/flowerbase/src/auth/providers/custom-function/dtos.ts", + "hash": "7559619402975462891" + }, + { + "file": "packages/flowerbase/src/auth/providers/custom-function/schema.ts", + "hash": "2482579847029883881" + }, + { + "file": "packages/flowerbase/src/auth/providers/local-userpass/controller.ts", + "hash": "12434408571507929388", + "deps": [ + "npm:fastify", + "npm:mongodb" + ] + }, { "file": "packages/flowerbase/src/auth/providers/local-userpass/dtos.ts", - "hash": "1644823176426115039" + "hash": "17123691840568124227" }, { "file": "packages/flowerbase/src/auth/utils.ts", - "hash": "2617179695288496778" + "hash": "13598986937616970135" }, { "file": "packages/flowerbase/src/babel.config.json", "hash": "14511888821248979530" }, + { + "file": "packages/flowerbase/src/cli/call-function.ts", + "hash": "9126611680641648957", + "deps": [ + "npm:dotenv@16.6.1", + "npm:bson" + ] + }, { "file": "packages/flowerbase/src/constants.ts", - "hash": "18362866349821028139" + "hash": "1097944913684601087" }, { "file": "packages/flowerbase/src/fastify.d.ts", - "hash": "14193545383250288700", + "hash": "3106640570093454820", "deps": [ "npm:fastify" ] }, { "file": "packages/flowerbase/src/features/endpoints/index.ts", - "hash": "10322214324742830283" + "hash": "5705686709306993782" }, { "file": "packages/flowerbase/src/features/endpoints/interface.ts", - "hash": "785632599852090663", + "hash": "14804177081976194272", "deps": [ "npm:fastify" ] }, { "file": "packages/flowerbase/src/features/endpoints/utils.ts", - "hash": "7233423249475751733", + "hash": "6069764909479790732", "deps": [ "npm:fastify" ] }, { "file": "packages/flowerbase/src/features/functions/controller.ts", - "hash": "10317662607881668023", + "hash": "15001560215327512717", "deps": [ - "npm:bson" + "npm:bson", + "npm:fastify", + "npm:mongodb" ] }, { "file": "packages/flowerbase/src/features/functions/dtos.ts", - "hash": "15742582065315377219", + "hash": "8326249929844353803", "deps": [ "npm:mongodb" ] @@ -404,122 +1069,263 @@ }, { "file": "packages/flowerbase/src/features/functions/interface.ts", - "hash": "912071536843058793", + "hash": "7936177857331552921", + "deps": [ + "npm:fastify", + "npm:mongodb" + ] + }, + { + "file": "packages/flowerbase/src/features/functions/queue.ts", + "hash": "15986375598725850700" + }, + { + "file": "packages/flowerbase/src/features/functions/utils.ts", + "hash": "12611968809054740068", + "deps": [ + "npm:mongodb", + "npm:bson" + ] + }, + { + "file": "packages/flowerbase/src/features/rules/index.tsx", + "hash": "3244421341483603138" + }, + { + "file": "packages/flowerbase/src/features/rules/interface.ts", + "hash": "2676357654844338889", + "deps": [ + "npm:mongodb" + ] + }, + { + "file": "packages/flowerbase/src/features/rules/utils.ts", + "hash": "11383808865513800166" + }, + { + "file": "packages/flowerbase/src/features/triggers/dtos.ts", + "hash": "1007270384080480265", + "deps": [ + "npm:fastify" + ] + }, + { + "file": "packages/flowerbase/src/features/triggers/index.ts", + "hash": "14878198622730599495" + }, + { + "file": "packages/flowerbase/src/features/triggers/interface.ts", + "hash": "17573973945157024638", + "deps": [ + "npm:fastify" + ] + }, + { + "file": "packages/flowerbase/src/features/triggers/utils.ts", + "hash": "12462335448490200136", + "deps": [ + "npm:node-cron@3.0.3" + ] + }, + { + "file": "packages/flowerbase/src/global.ts", + "hash": "14381761140991733809" + }, + { + "file": "packages/flowerbase/src/index.ts", + "hash": "13722208710189071866", + "deps": [ + "npm:dotenv@16.6.1", + "npm:fastify", + [ + "npm:@fastify/swagger", + "dynamic" + ], + [ + "npm:@fastify/swagger-ui", + "dynamic" + ] + ] + }, + { + "file": "packages/flowerbase/src/model.ts", + "hash": "9933800582847598013", + "deps": [ + "npm:mongodb" + ] + }, + { + "file": "packages/flowerbase/src/monitoring/plugin.ts", + "hash": "544061718082719187", + "deps": [ + "npm:@fastify/websocket", + "npm:fastify", + "npm:fastify-plugin" + ] + }, + { + "file": "packages/flowerbase/src/monitoring/routes/collections.ts", + "hash": "4225852441709525391", + "deps": [ + "npm:fastify" + ] + }, + { + "file": "packages/flowerbase/src/monitoring/routes/endpoints.ts", + "hash": "13073149735357459672", + "deps": [ + "npm:fastify", + "npm:light-my-request" + ] + }, + { + "file": "packages/flowerbase/src/monitoring/routes/events.ts", + "hash": "9687328506837489566", + "deps": [ + "npm:fastify" + ] + }, + { + "file": "packages/flowerbase/src/monitoring/routes/functions.ts", + "hash": "12247847107603612520", + "deps": [ + "npm:fastify" + ] + }, + { + "file": "packages/flowerbase/src/monitoring/routes/triggers.ts", + "hash": "15361898786371876716", + "deps": [ + "npm:fastify" + ] + }, + { + "file": "packages/flowerbase/src/monitoring/routes/users.ts", + "hash": "8801115617979519016", "deps": [ "npm:fastify", "npm:mongodb" ] }, { - "file": "packages/flowerbase/src/features/functions/utils.ts", - "hash": "14048521564942895702", - "deps": [ - "npm:bson" - ] + "file": "packages/flowerbase/src/monitoring/ui.collections.js", + "hash": "9580735280195969378" }, { - "file": "packages/flowerbase/src/features/rules/index.tsx", - "hash": "3244421341483603138" + "file": "packages/flowerbase/src/monitoring/ui.css", + "hash": "12507031817585947384" }, { - "file": "packages/flowerbase/src/features/rules/interface.ts", - "hash": "2676357654844338889", - "deps": [ - "npm:mongodb" - ] + "file": "packages/flowerbase/src/monitoring/ui.endpoints.js", + "hash": "4255300091113096229" }, { - "file": "packages/flowerbase/src/features/rules/utils.ts", - "hash": "14508962079404020007" + "file": "packages/flowerbase/src/monitoring/ui.events.js", + "hash": "11924204632533388067" }, { - "file": "packages/flowerbase/src/features/triggers/dtos.ts", - "hash": "1007270384080480265", - "deps": [ - "npm:fastify" - ] + "file": "packages/flowerbase/src/monitoring/ui.functions.js", + "hash": "4296907008938204027" }, { - "file": "packages/flowerbase/src/features/triggers/index.ts", - "hash": "1248982878963613136" + "file": "packages/flowerbase/src/monitoring/ui.html", + "hash": "8338356038380641402" }, { - "file": "packages/flowerbase/src/features/triggers/interface.ts", - "hash": "16360644002465208188", - "deps": [ - "npm:fastify" - ] + "file": "packages/flowerbase/src/monitoring/ui.js", + "hash": "8199797434404862523" }, { - "file": "packages/flowerbase/src/features/triggers/utils.ts", - "hash": "15383177248991603914", - "deps": [ - "npm:node-cron" - ] + "file": "packages/flowerbase/src/monitoring/ui.shared.js", + "hash": "8896099021228179057" }, { - "file": "packages/flowerbase/src/global.ts", - "hash": "14381761140991733809" + "file": "packages/flowerbase/src/monitoring/ui.triggers.js", + "hash": "10223339882609198811" }, { - "file": "packages/flowerbase/src/index.ts", - "hash": "12298194705739830846", - "deps": [ - "npm:dotenv", - "npm:fastify", - [ - "npm:@fastify/swagger", - "dynamic" - ], - [ - "npm:@fastify/swagger-ui", - "dynamic" - ] - ] + "file": "packages/flowerbase/src/monitoring/ui.users.js", + "hash": "4022413201100279359" }, { - "file": "packages/flowerbase/src/model.ts", - "hash": "9933800582847598013", + "file": "packages/flowerbase/src/monitoring/utils.ts", + "hash": "3112871417408794315", "deps": [ + "npm:fastify", "npm:mongodb" ] }, { "file": "packages/flowerbase/src/services/api/index.ts", - "hash": "13154803586196965911" + "hash": "13103900090478429082" }, { "file": "packages/flowerbase/src/services/api/model.ts", - "hash": "13722414967955360840", + "hash": "15415734570826592695", "deps": [ "npm:undici" ] }, { "file": "packages/flowerbase/src/services/api/utils.ts", - "hash": "10047722720056444277", + "hash": "5094157541073024529", "deps": [ "npm:undici" ] }, + { + "file": "packages/flowerbase/src/services/auth/index.ts", + "hash": "6813088195721022952" + }, + { + "file": "packages/flowerbase/src/services/auth/model.ts", + "hash": "12657768819925933649", + "deps": [ + "npm:fastify" + ] + }, { "file": "packages/flowerbase/src/services/aws/index.ts", - "hash": "8623043682952178476", + "hash": "11631331890966022904", "deps": [ - "npm:aws-sdk" + "npm:@aws-sdk/client-lambda", + "npm:@aws-sdk/client-s3", + "npm:@aws-sdk/s3-request-presigner" ] }, { "file": "packages/flowerbase/src/services/index.ts", - "hash": "7639652096463866032" + "hash": "11286318638998603910" }, { "file": "packages/flowerbase/src/services/interface.ts", "hash": "9182309902335945344" }, + { + "file": "packages/flowerbase/src/services/mongodb-atlas/__tests__/count.test.ts", + "hash": "4753234825735460270" + }, + { + "file": "packages/flowerbase/src/services/mongodb-atlas/__tests__/findOneAndUpdate.test.ts", + "hash": "15087592482341162599", + "deps": [ + "npm:mongodb" + ] + }, + { + "file": "packages/flowerbase/src/services/mongodb-atlas/__tests__/realmCompatibility.test.ts", + "hash": "3239354588284059101", + "deps": [ + "npm:mongodb" + ] + }, + { + "file": "packages/flowerbase/src/services/mongodb-atlas/__tests__/utils.test.ts", + "hash": "17210881828951251922" + }, { "file": "packages/flowerbase/src/services/mongodb-atlas/index.ts", - "hash": "3539048172604260214", + "hash": "14373423105713038261", "deps": [ "npm:lodash", "npm:mongodb" @@ -527,7 +1333,7 @@ }, { "file": "packages/flowerbase/src/services/mongodb-atlas/model.ts", - "hash": "15471339076050936384", + "hash": "4368580067679956705", "deps": [ "npm:fastify", "npm:mongodb" @@ -535,33 +1341,72 @@ }, { "file": "packages/flowerbase/src/services/mongodb-atlas/utils.ts", - "hash": "18021074533375938270", + "hash": "15016738647407462159", + "deps": [ + "npm:mongodb" + ] + }, + { + "file": "packages/flowerbase/src/services/monitoring.ts", + "hash": "10260357933681280769" + }, + { + "file": "packages/flowerbase/src/shared/handleUserDeletion.ts", + "hash": "2321865198149517359", + "deps": [ + "npm:bson" + ] + }, + { + "file": "packages/flowerbase/src/shared/handleUserRegistration.ts", + "hash": "12479108567549862565" + }, + { + "file": "packages/flowerbase/src/shared/models/handleUserDeletion.model.ts", + "hash": "3583082757029727010", "deps": [ + "npm:fastify", "npm:mongodb" ] }, + { + "file": "packages/flowerbase/src/shared/models/handleUserRegistration.model.ts", + "hash": "11418916871465146854", + "deps": [ + "npm:fastify" + ] + }, { "file": "packages/flowerbase/src/state.ts", - "hash": "353851505670162145", + "hash": "9033198568720703882", "deps": [ "npm:fastify" ] }, + { + "file": "packages/flowerbase/src/types/fastify-raw-body.d.ts", + "hash": "9766797978358814454", + "deps": [ + "npm:fastify", + "npm:@fastify/jwt@9.1.0", + "npm:mongodb" + ] + }, { "file": "packages/flowerbase/src/utils/__tests__/STEP_A_STATES.test.ts", "hash": "12771726917679948298" }, { "file": "packages/flowerbase/src/utils/__tests__/STEP_B_STATES.test.ts", - "hash": "2472460417322068958" + "hash": "3020879427085530715" }, { "file": "packages/flowerbase/src/utils/__tests__/STEP_C_STATES.test.ts", - "hash": "14957286937543586928" + "hash": "6987229160403086862" }, { "file": "packages/flowerbase/src/utils/__tests__/STEP_D_STATES.test.ts", - "hash": "8414570595457472503" + "hash": "3514578628303218268" }, { "file": "packages/flowerbase/src/utils/__tests__/checkAdditionalFieldsFn.test.ts", @@ -580,7 +1425,7 @@ }, { "file": "packages/flowerbase/src/utils/__tests__/checkIsValidFieldNameFn.test.ts", - "hash": "5910250222175867508", + "hash": "7416819536063967594", "deps": [ "npm:bson" ] @@ -589,6 +1434,10 @@ "file": "packages/flowerbase/src/utils/__tests__/comparePassword.test.ts", "hash": "16256280454203247453" }, + { + "file": "packages/flowerbase/src/utils/__tests__/contextExecuteCompatibility.test.ts", + "hash": "3743846082688166754" + }, { "file": "packages/flowerbase/src/utils/__tests__/evaluateDocumentsFiltersReadFn.test.ts", "hash": "436964690846107141" @@ -612,11 +1461,20 @@ "npm:fastify" ] }, + { + "file": "packages/flowerbase/src/utils/__tests__/generateContext.ejson.test.ts", + "hash": "9874167126794278277", + "deps": [ + "npm:bson", + "npm:mongodb" + ] + }, { "file": "packages/flowerbase/src/utils/__tests__/generateContextData.test.ts", - "hash": "5001812508298556322", + "hash": "1477496765245342137", "deps": [ - "npm:fastify" + "npm:fastify", + "npm:jsonwebtoken" ] }, { @@ -652,7 +1510,7 @@ }, { "file": "packages/flowerbase/src/utils/__tests__/operators.test.ts", - "hash": "737247346650156978" + "hash": "1090664528515446366" }, { "file": "packages/flowerbase/src/utils/__tests__/readFileContent.test.ts", @@ -660,10 +1518,11 @@ }, { "file": "packages/flowerbase/src/utils/__tests__/registerPlugins.test.ts", - "hash": "14517754102404212625", + "hash": "10374240727385282304", "deps": [ - "npm:@fastify/cors", - "npm:@fastify/mongodb" + "npm:@fastify/cors@10.1.0", + "npm:@fastify/mongodb", + "npm:fastify-raw-body" ] }, { @@ -684,28 +1543,30 @@ }, { "file": "packages/flowerbase/src/utils/context/helpers.ts", - "hash": "12365619637936967486", + "hash": "8117367608332907864", "deps": [ - "npm:@fastify/mongodb" + "npm:@fastify/mongodb", + "npm:bson", + "npm:jsonwebtoken" ] }, { "file": "packages/flowerbase/src/utils/context/index.ts", - "hash": "12563703786046313820", + "hash": "8665529807181445718", "deps": [ "npm:bson" ] }, { "file": "packages/flowerbase/src/utils/context/interface.ts", - "hash": "14920036670505654100", + "hash": "7313493433583133533", "deps": [ "npm:fastify" ] }, { "file": "packages/flowerbase/src/utils/crypto/index.ts", - "hash": "4287239720043797558" + "hash": "12353685338803429842" }, { "file": "packages/flowerbase/src/utils/helpers/someAsync.ts", @@ -717,23 +1578,24 @@ }, { "file": "packages/flowerbase/src/utils/initializer/exposeRoutes.ts", - "hash": "8924106175409292219", + "hash": "9890966727905243629", "deps": [ "npm:fastify" ] }, { "file": "packages/flowerbase/src/utils/initializer/registerPlugins.ts", - "hash": "7686917695407076207", + "hash": "12396815702607441929", "deps": [ - "npm:@fastify/cors", + "npm:@fastify/cors@10.1.0", "npm:@fastify/mongodb", - "npm:fastify" + "npm:fastify", + "npm:fastify-raw-body" ] }, { "file": "packages/flowerbase/src/utils/roles/helpers.ts", - "hash": "4715217800917884970" + "hash": "14304924114603686791" }, { "file": "packages/flowerbase/src/utils/roles/interface.ts", @@ -741,7 +1603,7 @@ }, { "file": "packages/flowerbase/src/utils/roles/machines/commonValidators.ts", - "hash": "16990573617405740601" + "hash": "10622004750045781327" }, { "file": "packages/flowerbase/src/utils/roles/machines/index.ts", @@ -769,13 +1631,24 @@ "file": "packages/flowerbase/src/utils/roles/machines/read/B/index.ts", "hash": "1232917088788722329" }, + { + "file": "packages/flowerbase/src/utils/roles/machines/read/B/validators.ts", + "hash": "6436886520895971862" + }, { "file": "packages/flowerbase/src/utils/roles/machines/read/C/index.ts", - "hash": "11686321366675128533" + "hash": "9490912165470988043" + }, + { + "file": "packages/flowerbase/src/utils/roles/machines/read/C/validators.ts", + "hash": "17587515739589945308" }, { "file": "packages/flowerbase/src/utils/roles/machines/read/D/index.ts", - "hash": "13410150708427807132" + "hash": "2205786568014225697", + "deps": [ + "npm:mongodb" + ] }, { "file": "packages/flowerbase/src/utils/roles/machines/read/D/validators.ts", @@ -814,18 +1687,18 @@ }, { "file": "packages/flowerbase/src/utils/rules-matcher/interface.ts", - "hash": "447979335739269941" + "hash": "13074592392639812646" }, { "file": "packages/flowerbase/src/utils/rules-matcher/utils.ts", - "hash": "7462657605369593355", + "hash": "14980871828986494652", "deps": [ "npm:lodash" ] }, { "file": "packages/flowerbase/src/utils/rules.ts", - "hash": "1338918994477437079", + "hash": "4456428879546629523", "deps": [ "npm:lodash" ] @@ -833,162 +1706,10 @@ { "file": "packages/flowerbase/tsconfig.json", "hash": "7518117920492327411" - } - ], - "flowerbase-demo": [ - { - "file": "packages/demo/README.md", - "hash": "10793297036395519946" - }, - { - "file": "packages/demo/package-lock.json", - "hash": "2096834049677913296" - }, - { - "file": "packages/demo/package.json", - "hash": "7323055674015837798", - "deps": [ - "npm:concurrently" - ] - } - ], - "frontend": [ - { - "file": "packages/demo/packages/frontend/.gitignore", - "hash": "13046175384202504187" - }, - { - "file": "packages/demo/packages/frontend/README.md", - "hash": "13160460843517416105" - }, - { - "file": "packages/demo/packages/frontend/eslint.config.js", - "hash": "16145672096969245511", - "deps": [ - "npm:@eslint/js", - "npm:globals", - "npm:eslint-plugin-react-hooks", - "npm:typescript-eslint" - ] - }, - { - "file": "packages/demo/packages/frontend/index.html", - "hash": "4025202329384162906" - }, - { - "file": "packages/demo/packages/frontend/package-lock.json", - "hash": "4932292718093455468" - }, - { - "file": "packages/demo/packages/frontend/package.json", - "hash": "2630108362905442116", - "deps": [ - "npm:typescript@5.8.3" - ] - }, - { - "file": "packages/demo/packages/frontend/public/vite.svg", - "hash": "16046085400642193116" - }, - { - "file": "packages/demo/packages/frontend/src/App.css", - "hash": "3739391659270974612" - }, - { - "file": "packages/demo/packages/frontend/src/App.tsx", - "hash": "1989732526986445183" - }, - { - "file": "packages/demo/packages/frontend/src/api/client.ts", - "hash": "11827492391897522812" - }, - { - "file": "packages/demo/packages/frontend/src/appRoutes.ts", - "hash": "6744697892634064487" - }, - { - "file": "packages/demo/packages/frontend/src/assets/react.svg", - "hash": "16069471864800376455" - }, - { - "file": "packages/demo/packages/frontend/src/components/EmptyState/index.tsx", - "hash": "13818087902908550141" - }, - { - "file": "packages/demo/packages/frontend/src/components/Layout/index.tsx", - "hash": "9208038598266246320" - }, - { - "file": "packages/demo/packages/frontend/src/components/Loader/index.tsx", - "hash": "5439699450597759093" - }, - { - "file": "packages/demo/packages/frontend/src/components/NewTask/index.tsx", - "hash": "16179991392904483125" - }, - { - "file": "packages/demo/packages/frontend/src/components/Pagination/index.tsx", - "hash": "15784848270396726706" - }, - { - "file": "packages/demo/packages/frontend/src/components/TaskBoard/index.tsx", - "hash": "7496398157237751950" - }, - { - "file": "packages/demo/packages/frontend/src/components/TaskTable/index.tsx", - "hash": "15200496161907260446" - }, - { - "file": "packages/demo/packages/frontend/src/context/Authentication.tsx", - "hash": "6615975624568309645" - }, - { - "file": "packages/demo/packages/frontend/src/hooks/useAuthentication.ts", - "hash": "6290839895112002736" - }, - { - "file": "packages/demo/packages/frontend/src/index.css", - "hash": "8688147797407610842" - }, - { - "file": "packages/demo/packages/frontend/src/main.tsx", - "hash": "15503771049540406531" - }, - { - "file": "packages/demo/packages/frontend/src/pages/Home/index.tsx", - "hash": "12195795209109929614" - }, - { - "file": "packages/demo/packages/frontend/src/pages/Login/index.tsx", - "hash": "16267190739117165768" - }, - { - "file": "packages/demo/packages/frontend/src/pages/Registration/index.tsx", - "hash": "12840201238792842803" - }, - { - "file": "packages/demo/packages/frontend/src/pages/Welcome/index.tsx", - "hash": "4928837705085028779" }, { - "file": "packages/demo/packages/frontend/src/vite-env.d.ts", - "hash": "12946363841406869089" - }, - { - "file": "packages/demo/packages/frontend/tsconfig.app.json", - "hash": "709621094284831163" - }, - { - "file": "packages/demo/packages/frontend/tsconfig.json", - "hash": "2365188958523842680" - }, - { - "file": "packages/demo/packages/frontend/tsconfig.node.json", - "hash": "2201964403257550573" - }, - { - "file": "packages/demo/packages/frontend/vite.config.ts", - "hash": "16225914092815047172" + "file": "packages/flowerbase/tsconfig.spec.json", + "hash": "15136652269573100245" } ] } diff --git a/.nx/workspace-data/jest-7930610538513362720.hash b/.nx/workspace-data/jest-7930610538513362720.hash index 9ccf300..2f38347 100644 --- a/.nx/workspace-data/jest-7930610538513362720.hash +++ b/.nx/workspace-data/jest-7930610538513362720.hash @@ -2537,5 +2537,383 @@ ] } } + }, + "11715068479211956020": { + "targets": { + "test": { + "command": "jest", + "options": { + "cwd": "packages/flowerbase" + }, + "metadata": { + "technologies": [ + "jest" + ], + "description": "Run Jest Tests", + "help": { + "command": "npx jest --help", + "example": { + "options": { + "coverage": true + } + } + } + }, + "cache": true, + "inputs": [ + "default", + "^default", + { + "externalDependencies": [ + "jest" + ] + } + ], + "outputs": [ + "{projectRoot}/coverage" + ] + } + } + }, + "1598589799570057655": { + "targets": { + "test": { + "command": "jest", + "options": { + "cwd": "packages/flowerbase-client" + }, + "metadata": { + "technologies": [ + "jest" + ], + "description": "Run Jest Tests", + "help": { + "command": "npx jest --help", + "example": { + "options": { + "coverage": true + } + } + } + }, + "cache": true, + "inputs": [ + "default", + "^default", + { + "externalDependencies": [ + "jest" + ] + } + ], + "outputs": [ + "{projectRoot}/coverage" + ] + } + } + }, + "10261962879670255793": { + "targets": { + "test": { + "command": "jest", + "options": { + "cwd": "packages/flowerbase-client" + }, + "metadata": { + "technologies": [ + "jest" + ], + "description": "Run Jest Tests", + "help": { + "command": "npx jest --help", + "example": { + "options": { + "coverage": true + } + } + } + }, + "cache": true, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/jest.preset.js", + { + "externalDependencies": [ + "jest" + ] + } + ], + "outputs": [ + "{projectRoot}/coverage" + ] + } + } + }, + "10535547029373522524": { + "targets": { + "test": { + "command": "jest", + "options": { + "cwd": "packages/flowerbase-client" + }, + "metadata": { + "technologies": [ + "jest" + ], + "description": "Run Jest Tests", + "help": { + "command": "npx jest --help", + "example": { + "options": { + "coverage": true + } + } + } + }, + "cache": true, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/jest.preset.js", + { + "externalDependencies": [ + "jest" + ] + } + ], + "outputs": [ + "{projectRoot}/coverage" + ] + } + } + }, + "7522116867884443026": { + "targets": { + "test": { + "command": "jest", + "options": { + "cwd": "packages/flowerbase-client" + }, + "metadata": { + "technologies": [ + "jest" + ], + "description": "Run Jest Tests", + "help": { + "command": "npx jest --help", + "example": { + "options": { + "coverage": true + } + } + } + }, + "cache": true, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/jest.preset.js", + { + "externalDependencies": [ + "jest" + ] + } + ], + "outputs": [ + "{projectRoot}/coverage" + ] + } + } + }, + "10647627077606426037": { + "targets": { + "test": { + "command": "jest", + "options": { + "cwd": "packages/flowerbase-client" + }, + "metadata": { + "technologies": [ + "jest" + ], + "description": "Run Jest Tests", + "help": { + "command": "npx jest --help", + "example": { + "options": { + "coverage": true + } + } + } + }, + "cache": true, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/jest.preset.js", + { + "externalDependencies": [ + "jest" + ] + } + ], + "outputs": [ + "{projectRoot}/coverage" + ] + } + } + }, + "75877857378050963": { + "targets": { + "test": { + "command": "jest", + "options": { + "cwd": "packages/flowerbase-client" + }, + "metadata": { + "technologies": [ + "jest" + ], + "description": "Run Jest Tests", + "help": { + "command": "npx jest --help", + "example": { + "options": { + "coverage": true + } + } + } + }, + "cache": true, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/jest.preset.js", + { + "externalDependencies": [ + "jest" + ] + } + ], + "outputs": [ + "{projectRoot}/coverage" + ] + } + } + }, + "6141875076753546841": { + "targets": { + "test": { + "command": "jest", + "options": { + "cwd": "packages/flowerbase-client" + }, + "metadata": { + "technologies": [ + "jest" + ], + "description": "Run Jest Tests", + "help": { + "command": "npx jest --help", + "example": { + "options": { + "coverage": true + } + } + } + }, + "cache": true, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/jest.preset.js", + { + "externalDependencies": [ + "jest" + ] + } + ], + "outputs": [ + "{projectRoot}/coverage" + ] + } + } + }, + "9151673963219170356": { + "targets": { + "test": { + "command": "jest", + "options": { + "cwd": "packages/flowerbase-client" + }, + "metadata": { + "technologies": [ + "jest" + ], + "description": "Run Jest Tests", + "help": { + "command": "npx jest --help", + "example": { + "options": { + "coverage": true + } + } + } + }, + "cache": true, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/jest.preset.js", + { + "externalDependencies": [ + "jest" + ] + } + ], + "outputs": [ + "{projectRoot}/coverage" + ] + } + } + }, + "9125072480265990907": { + "targets": { + "test": { + "command": "jest", + "options": { + "cwd": "packages/flowerbase-client" + }, + "metadata": { + "technologies": [ + "jest" + ], + "description": "Run Jest Tests", + "help": { + "command": "npx jest --help", + "example": { + "options": { + "coverage": true + } + } + } + }, + "cache": true, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/jest.preset.js", + { + "externalDependencies": [ + "jest" + ] + } + ], + "outputs": [ + "{projectRoot}/coverage" + ] + } + } } } \ No newline at end of file diff --git a/.nx/workspace-data/lockfile.hash b/.nx/workspace-data/lockfile.hash index 1c9b410..19dbc2d 100644 --- a/.nx/workspace-data/lockfile.hash +++ b/.nx/workspace-data/lockfile.hash @@ -1 +1 @@ -2019528854201643610 \ No newline at end of file +2188204013223097533 \ No newline at end of file diff --git a/.nx/workspace-data/parsed-lock-file.json b/.nx/workspace-data/parsed-lock-file.json index 2595fff..c9b4875 100644 --- a/.nx/workspace-data/parsed-lock-file.json +++ b/.nx/workspace-data/parsed-lock-file.json @@ -18,13 +18,589 @@ "hash": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==" } }, + "npm:@aws-crypto/crc32": { + "type": "npm", + "name": "npm:@aws-crypto/crc32", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/crc32", + "hash": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==" + } + }, + "npm:@aws-crypto/crc32c": { + "type": "npm", + "name": "npm:@aws-crypto/crc32c", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/crc32c", + "hash": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==" + } + }, + "npm:@aws-crypto/sha1-browser": { + "type": "npm", + "name": "npm:@aws-crypto/sha1-browser", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/sha1-browser", + "hash": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==" + } + }, + "npm:@smithy/is-array-buffer@2.2.0": { + "type": "npm", + "name": "npm:@smithy/is-array-buffer@2.2.0", + "data": { + "version": "2.2.0", + "packageName": "@smithy/is-array-buffer", + "hash": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==" + } + }, + "npm:@smithy/is-array-buffer": { + "type": "npm", + "name": "npm:@smithy/is-array-buffer", + "data": { + "version": "4.2.0", + "packageName": "@smithy/is-array-buffer", + "hash": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==" + } + }, + "npm:@smithy/util-buffer-from@2.2.0": { + "type": "npm", + "name": "npm:@smithy/util-buffer-from@2.2.0", + "data": { + "version": "2.2.0", + "packageName": "@smithy/util-buffer-from", + "hash": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==" + } + }, + "npm:@smithy/util-buffer-from": { + "type": "npm", + "name": "npm:@smithy/util-buffer-from", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-buffer-from", + "hash": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==" + } + }, + "npm:@smithy/util-utf8@2.3.0": { + "type": "npm", + "name": "npm:@smithy/util-utf8@2.3.0", + "data": { + "version": "2.3.0", + "packageName": "@smithy/util-utf8", + "hash": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==" + } + }, + "npm:@smithy/util-utf8": { + "type": "npm", + "name": "npm:@smithy/util-utf8", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-utf8", + "hash": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==" + } + }, + "npm:@aws-crypto/sha256-browser": { + "type": "npm", + "name": "npm:@aws-crypto/sha256-browser", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/sha256-browser", + "hash": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==" + } + }, + "npm:@aws-crypto/sha256-js": { + "type": "npm", + "name": "npm:@aws-crypto/sha256-js", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/sha256-js", + "hash": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==" + } + }, + "npm:@aws-crypto/supports-web-crypto": { + "type": "npm", + "name": "npm:@aws-crypto/supports-web-crypto", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/supports-web-crypto", + "hash": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==" + } + }, + "npm:@aws-crypto/util": { + "type": "npm", + "name": "npm:@aws-crypto/util", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/util", + "hash": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==" + } + }, + "npm:@aws-sdk/client-lambda": { + "type": "npm", + "name": "npm:@aws-sdk/client-lambda", + "data": { + "version": "3.974.0", + "packageName": "@aws-sdk/client-lambda", + "hash": "sha512-/8CtFqvX4GrmwdSKKQkEH1IEiqNQCpZQKzaHGYXthA8Cfjg/nyJ/M1/2c/4El5R8eiZbzzHPGhUPPFdfGMB9jQ==" + } + }, + "npm:@aws-sdk/client-s3": { + "type": "npm", + "name": "npm:@aws-sdk/client-s3", + "data": { + "version": "3.974.0", + "packageName": "@aws-sdk/client-s3", + "hash": "sha512-X+vpXNJ8cU8Iw1FtDgDHxo9z6RxlXfcTtpdGnKws4rk+tCYKSAor/DG6BRMzbh4E5xAA7DiU1Ny3BTrRRSt/Yg==" + } + }, + "npm:@aws-sdk/client-sso": { + "type": "npm", + "name": "npm:@aws-sdk/client-sso", + "data": { + "version": "3.974.0", + "packageName": "@aws-sdk/client-sso", + "hash": "sha512-ci+GiM0c4ULo4D79UMcY06LcOLcfvUfiyt8PzNY0vbt5O8BfCPYf4QomwVgkNcLLCYmroO4ge2Yy1EsLUlcD6g==" + } + }, + "npm:@aws-sdk/core": { + "type": "npm", + "name": "npm:@aws-sdk/core", + "data": { + "version": "3.973.0", + "packageName": "@aws-sdk/core", + "hash": "sha512-qy3Fmt8z4PRInM3ZqJmHihQ2tfCdj/MzbGaZpuHjYjgl1/Gcar4Pyp/zzHXh9hGEb61WNbWgsJcDUhnGIiX1TA==" + } + }, + "npm:@aws-sdk/core@3.972.0": { + "type": "npm", + "name": "npm:@aws-sdk/core@3.972.0", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/core", + "hash": "sha512-nEeUW2M9F+xdIaD98F5MBcQ4ITtykj3yKbgFZ6J0JtL3bq+Z90szQ6Yy8H/BLPYXTs3V4n9ifnBo8cprRDiE6A==" + } + }, + "npm:@aws-sdk/crc64-nvme": { + "type": "npm", + "name": "npm:@aws-sdk/crc64-nvme", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/crc64-nvme", + "hash": "sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw==" + } + }, + "npm:@aws-sdk/credential-provider-env": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-env", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-env", + "hash": "sha512-/etNHqnx96phy/SjI0HRC588o4vKH5F0xfkZ13yAATV7aNrb+5gYGNE6ePWafP+FuZ3HkULSSlJFj0AxgrAqYw==" + } + }, + "npm:@aws-sdk/credential-provider-http": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-http", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-http", + "hash": "sha512-AeopObGW5lpWbDRZ+t4EAtS7wdfSrHPLeFts7jaBzgIaCCD7TL7jAyAB9Y5bCLOPF+17+GL54djCCsjePljUAw==" + } + }, + "npm:@aws-sdk/credential-provider-ini": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-ini", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-ini", + "hash": "sha512-OdbJA3v+XlNDsrYzNPRUwr8l7gw1r/nR8l4r96MDzSBDU8WEo8T6C06SvwaXR8SpzsjO3sq5KMP86wXWg7Rj4g==" + } + }, + "npm:@aws-sdk/credential-provider-login": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-login", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-login", + "hash": "sha512-CccqDGL6ZrF3/EFWZefvKW7QwwRdxlHUO8NVBKNVcNq6womrPDvqB6xc9icACtE0XB0a7PLoSTkAg8bQVkTO2w==" + } + }, + "npm:@aws-sdk/credential-provider-node": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-node", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-node", + "hash": "sha512-DwXPk9GfuU/xG9tmCyXFVkCr6X3W8ZCoL5Ptb0pbltEx1/LCcg7T+PBqDlPiiinNCD6ilIoMJDWsnJ8ikzZA7Q==" + } + }, + "npm:@aws-sdk/credential-provider-process": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-process", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-process", + "hash": "sha512-bi47Zigu3692SJwdBvo8y1dEwE6B61stCwCFnuRWJVTfiM84B+VTSCV661CSWJmIZzmcy7J5J3kWyxL02iHj0w==" + } + }, + "npm:@aws-sdk/credential-provider-sso": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-sso", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-sso", + "hash": "sha512-dLZVNhM7wSgVUFsgVYgI5hb5Z/9PUkT46pk/SHrSmUqfx6YDvoV4YcPtaiRqviPpEGGiRtdQMEadyOKIRqulUQ==" + } + }, + "npm:@aws-sdk/credential-provider-web-identity": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-web-identity", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-web-identity", + "hash": "sha512-YMDeYgi0u687Ay0dAq/pFPKuijrlKTgsaB/UATbxCs/FzZfMiG4If5ksywHmmW7MiYUF8VVv+uou3TczvLrN4w==" + } + }, + "npm:@aws-sdk/middleware-bucket-endpoint": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-bucket-endpoint", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-bucket-endpoint", + "hash": "sha512-YVvoitBdE8WOpHqIXvv49efT73F4bJ99XH2bi3Dn3mx7WngI4RwHwn/zF5i0q1Wdi5frGSCNF3vuh+pY817//w==" + } + }, + "npm:@aws-sdk/middleware-expect-continue": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-expect-continue", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-expect-continue", + "hash": "sha512-6lfl2/J/kutzw/RLu1kjbahsz4vrGPysrdxWaw8fkjLYG+6M6AswocIAZFS/LgAVi/IWRwPTx9YC0/NH2wDrSw==" + } + }, + "npm:@aws-sdk/middleware-flexible-checksums": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-flexible-checksums", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-flexible-checksums", + "hash": "sha512-kjVVREpqeUkYQsXr78AcsJbEUlxGH7+H6yS7zkjrnu6HyEVxbdSndkKX6VpKneFOihjCAhIXlk4wf3butDHkNQ==" + } + }, + "npm:@aws-sdk/middleware-host-header": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-host-header", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-host-header", + "hash": "sha512-/R82lXLPmZ9JaUGSUdKtBp2k/5xQxvBT3zZWyKiBOhyulFotlfvdlrO8TnqstBimsl4lYEYySDL+W6ldFh6ALg==" + } + }, + "npm:@aws-sdk/middleware-location-constraint": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-location-constraint", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-location-constraint", + "hash": "sha512-YisPaCbvBk9gY5aUI8jDMDKXsLZ9Fet0WYj1MviK8tZYMgxBIYHM6l3O/OHaAIujojZvamd9F3haYYYWp5/V3w==" + } + }, + "npm:@aws-sdk/middleware-logger": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-logger", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-logger", + "hash": "sha512-JGgFl6cHg9G2FHu4lyFIzmFN8KESBiRr84gLC3Aeni0Gt1nKm+KxWLBuha/RPcXxJygGXCcMM4AykkIwxor8RA==" + } + }, + "npm:@aws-sdk/middleware-recursion-detection": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-recursion-detection", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-recursion-detection", + "hash": "sha512-taGzNRe8vPHjnliqXIHp9kBgIemLE/xCaRTMH1NH0cncHeaPcjxtnCroAAM9aOlPuKvBe2CpZESyvM1+D8oI7Q==" + } + }, + "npm:@aws-sdk/middleware-sdk-s3": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-sdk-s3", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-sdk-s3", + "hash": "sha512-q/hK0ZNf/aafFRv2wIlDM3p+izi5cXwktVNvRvW646A0MvVZmT4/vwadv/jPA9AORFbnpyf/0luxiMz181f9yg==" + } + }, + "npm:@aws-sdk/middleware-sdk-s3@3.972.0": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/middleware-sdk-s3", + "hash": "sha512-0bcKFXWx+NZ7tIlOo7KjQ+O2rydiHdIQahrq+fN6k9Osky29v17guy68urUKfhTobR6iY6KvxkroFWaFtTgS5w==" + } + }, + "npm:@aws-sdk/middleware-ssec": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-ssec", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-ssec", + "hash": "sha512-fLtRTPd/MxJT2drJKft2GVGKm35PiNEeQ1Dvz1vc/WhhgAteYrp4f1SfSgjgLaYWGMExESJL4bt8Dxqp6tVsog==" + } + }, + "npm:@aws-sdk/middleware-user-agent": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-user-agent", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-user-agent", + "hash": "sha512-6SVg4pY/9Oq9MLzO48xuM3lsOb8Rxg55qprEtFRpkUmuvKij31f5SQHEGxuiZ4RqIKrfjr2WMuIgXvqJ0eJsPA==" + } + }, + "npm:@aws-sdk/nested-clients": { + "type": "npm", + "name": "npm:@aws-sdk/nested-clients", + "data": { + "version": "3.974.0", + "packageName": "@aws-sdk/nested-clients", + "hash": "sha512-k3dwdo/vOiHMJc9gMnkPl1BA5aQfTrZbz+8fiDkWrPagqAioZgmo5oiaOaeX0grObfJQKDtcpPFR4iWf8cgl8Q==" + } + }, + "npm:@aws-sdk/region-config-resolver": { + "type": "npm", + "name": "npm:@aws-sdk/region-config-resolver", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/region-config-resolver", + "hash": "sha512-voIY8RORpxLAEgEkYaTFnkaIuRwVBEc+RjVZYcSSllPV+ZEKAacai6kNhJeE3D70Le+JCfvRb52tng/AVHY+jQ==" + } + }, + "npm:@aws-sdk/s3-request-presigner": { + "type": "npm", + "name": "npm:@aws-sdk/s3-request-presigner", + "data": { + "version": "3.975.0", + "packageName": "@aws-sdk/s3-request-presigner", + "hash": "sha512-rqDktHVSB7Ah7XXqr6BWMqDhGXEccp0h1EivaOGED73JjeG/S7taoywJPqi7YkalRb3Ka+LRc7wVoN9wSa4KQA==" + } + }, + "npm:@aws-sdk/signature-v4-multi-region": { + "type": "npm", + "name": "npm:@aws-sdk/signature-v4-multi-region", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/signature-v4-multi-region", + "hash": "sha512-2udiRijmjpN81Pvajje4TsjbXDZNP6K9bYUanBYH8hXa/tZG5qfGCySD+TyX0sgDxCQmEDMg3LaQdfjNHBDEgQ==" + } + }, + "npm:@aws-sdk/types@3.972.0": { + "type": "npm", + "name": "npm:@aws-sdk/types@3.972.0", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/types", + "hash": "sha512-U7xBIbLSetONxb2bNzHyDgND3oKGoIfmknrEVnoEU4GUSs+0augUOIn9DIWGUO2ETcRFdsRUnmx9KhPT9Ojbug==" + } + }, + "npm:@aws-sdk/types": { + "type": "npm", + "name": "npm:@aws-sdk/types", + "data": { + "version": "3.973.1", + "packageName": "@aws-sdk/types", + "hash": "sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg==" + } + }, + "npm:@aws-sdk/util-arn-parser@3.972.0": { + "type": "npm", + "name": "npm:@aws-sdk/util-arn-parser@3.972.0", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/util-arn-parser", + "hash": "sha512-RM5Mmo/KJ593iMSrALlHEOcc9YOIyOsDmS5x2NLOMdEmzv1o00fcpAkCQ02IGu1eFneBFT7uX0Mpag0HI+Cz2g==" + } + }, + "npm:@aws-sdk/util-arn-parser": { + "type": "npm", + "name": "npm:@aws-sdk/util-arn-parser", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/util-arn-parser", + "hash": "sha512-XnNit6H9PPHhqUXW/usjX6JeJ6Pm8ZNqivTjmNjgWHeOfVpblUc/MTic02UmCNR0jJLPjQ3mBKiMen0tnkNQjQ==" + } + }, + "npm:@aws-sdk/xml-builder@3.972.0": { + "type": "npm", + "name": "npm:@aws-sdk/xml-builder@3.972.0", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/xml-builder", + "hash": "sha512-POaGMcXnozzqBUyJM3HLUZ9GR6OKJWPGJEmhtTnxZXt8B6JcJ/6K3xRJ5H/j8oovVLz8Wg6vFxAHv8lvuASxMg==" + } + }, + "npm:@aws-sdk/xml-builder": { + "type": "npm", + "name": "npm:@aws-sdk/xml-builder", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/xml-builder", + "hash": "sha512-6zZGlPOqn7Xb+25MAXGb1JhgvaC5HjZj6GzszuVrnEgbhvzBRFGKYemuHBV4bho+dtqeYKPgaZUv7/e80hIGNg==" + } + }, + "npm:@aws-sdk/token-providers": { + "type": "npm", + "name": "npm:@aws-sdk/token-providers", + "data": { + "version": "3.974.0", + "packageName": "@aws-sdk/token-providers", + "hash": "sha512-cBykL0LiccKIgNhGWvQRTPvsBLPZxnmJU3pYxG538jpFX8lQtrCy1L7mmIHNEdxIdIGEPgAEHF8/JQxgBToqUQ==" + } + }, + "npm:@aws-sdk/util-endpoints": { + "type": "npm", + "name": "npm:@aws-sdk/util-endpoints", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/util-endpoints", + "hash": "sha512-6JHsl1V/a1ZW8D8AFfd4R52fwZPnZ5H4U6DS8m/bWT8qad72NvbOFAC7U2cDtFs2TShqUO3TEiX/EJibtY3ijg==" + } + }, + "npm:@aws-sdk/util-format-url": { + "type": "npm", + "name": "npm:@aws-sdk/util-format-url", + "data": { + "version": "3.972.2", + "packageName": "@aws-sdk/util-format-url", + "hash": "sha512-RCd8eur5wzDLgFBvbBhoFQ1bw1wxHJiN88MQ82IiJBs6OGXTWaf0oFgLbK06qJvnVUqL13t3jEnlYPHPNdgBWw==" + } + }, + "npm:@aws-sdk/util-locate-window": { + "type": "npm", + "name": "npm:@aws-sdk/util-locate-window", + "data": { + "version": "3.965.3", + "packageName": "@aws-sdk/util-locate-window", + "hash": "sha512-FNUqAjlKAGA7GM05kywE99q8wiPHPZqrzhq3wXRga6PRD6A0kzT85Pb0AzYBVTBRpSrKyyr6M92Y6bnSBVp2BA==" + } + }, + "npm:@aws-sdk/util-user-agent-browser": { + "type": "npm", + "name": "npm:@aws-sdk/util-user-agent-browser", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/util-user-agent-browser", + "hash": "sha512-IgF55NFmJX8d9Wql9M0nEpk2eYbuD8G4781FN4/fFgwTXBn86DvlZJuRWDCMcMqZymnBVX7HW9r+3r9ylqfW0w==" + } + }, + "npm:@aws-sdk/util-user-agent-node": { + "type": "npm", + "name": "npm:@aws-sdk/util-user-agent-node", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/util-user-agent-node", + "hash": "sha512-oIs4JFcADzoZ0c915R83XvK2HltWupxNsXUIuZse2rgk7b97zTpkxaqXiH0h9ylh31qtgo/t8hp4tIqcsMrEbQ==" + } + }, + "npm:@aws/lambda-invoke-store": { + "type": "npm", + "name": "npm:@aws/lambda-invoke-store", + "data": { + "version": "0.2.3", + "packageName": "@aws/lambda-invoke-store", + "hash": "sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==" + } + }, "npm:@babel/cli": { "type": "npm", "name": "npm:@babel/cli", "data": { - "version": "7.27.2", + "version": "7.28.0", "packageName": "@babel/cli", - "hash": "sha512-cfd7DnGlhH6OIyuPSSj3vcfIdnbXukhAyKY8NaZrFadC7pXyL9mOL5WgjcptiEJLi5k3j8aYvLIVCzezrWTaiA==" + "hash": "sha512-CYrZG7FagtE8ReKDBfItxnrEBf2khq2eTMnPuqO8UVN0wzhp1eMX1wfda8b1a32l2aqYLwRRIOGNovm8FVzmMw==" + } + }, + "npm:commander@6.2.1": { + "type": "npm", + "name": "npm:commander@6.2.1", + "data": { + "version": "6.2.1", + "packageName": "commander", + "hash": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + } + }, + "npm:commander": { + "type": "npm", + "name": "npm:commander", + "data": { + "version": "8.3.0", + "packageName": "commander", + "hash": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + } + }, + "npm:commander@7.2.0": { + "type": "npm", + "name": "npm:commander@7.2.0", + "data": { + "version": "7.2.0", + "packageName": "commander", + "hash": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + } + }, + "npm:commander@2.20.3": { + "type": "npm", + "name": "npm:commander@2.20.3", + "data": { + "version": "2.20.3", + "packageName": "commander", + "hash": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + }, + "npm:commander@10.0.1": { + "type": "npm", + "name": "npm:commander@10.0.1", + "data": { + "version": "10.0.1", + "packageName": "commander", + "hash": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==" + } + }, + "npm:slash@2.0.0": { + "type": "npm", + "name": "npm:slash@2.0.0", + "data": { + "version": "2.0.0", + "packageName": "slash", + "hash": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + } + }, + "npm:slash@4.0.0": { + "type": "npm", + "name": "npm:slash@4.0.0", + "data": { + "version": "4.0.0", + "packageName": "slash", + "hash": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + } + }, + "npm:slash@5.1.0": { + "type": "npm", + "name": "npm:slash@5.1.0", + "data": { + "version": "5.1.0", + "packageName": "slash", + "hash": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==" + } + }, + "npm:slash": { + "type": "npm", + "name": "npm:slash", + "data": { + "version": "3.0.0", + "packageName": "slash", + "hash": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" } }, "npm:@babel/code-frame": { @@ -40,27 +616,27 @@ "type": "npm", "name": "npm:@babel/compat-data", "data": { - "version": "7.27.5", + "version": "7.28.0", "packageName": "@babel/compat-data", - "hash": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==" + "hash": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==" } }, "npm:@babel/core": { "type": "npm", "name": "npm:@babel/core", "data": { - "version": "7.27.4", + "version": "7.28.0", "packageName": "@babel/core", - "hash": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==" + "hash": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==" } }, "npm:@babel/generator": { "type": "npm", "name": "npm:@babel/generator", "data": { - "version": "7.27.5", + "version": "7.28.0", "packageName": "@babel/generator", - "hash": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==" + "hash": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==" } }, "npm:@babel/helper-annotate-as-pure": { @@ -103,9 +679,18 @@ "type": "npm", "name": "npm:@babel/helper-define-polyfill-provider", "data": { - "version": "0.6.4", + "version": "0.6.5", "packageName": "@babel/helper-define-polyfill-provider", - "hash": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==" + "hash": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==" + } + }, + "npm:@babel/helper-globals": { + "type": "npm", + "name": "npm:@babel/helper-globals", + "data": { + "version": "7.28.0", + "packageName": "@babel/helper-globals", + "hash": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==" } }, "npm:@babel/helper-member-expression-to-functions": { @@ -229,9 +814,9 @@ "type": "npm", "name": "npm:@babel/parser", "data": { - "version": "7.27.5", + "version": "7.28.0", "packageName": "@babel/parser", - "hash": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==" + "hash": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==" } }, "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key": { @@ -283,9 +868,9 @@ "type": "npm", "name": "npm:@babel/plugin-proposal-decorators", "data": { - "version": "7.27.1", + "version": "7.28.0", "packageName": "@babel/plugin-proposal-decorators", - "hash": "sha512-DTxe4LBPrtFdsWzgpmbBKevg3e9PBy+dXRt19kSbucbZvL2uqtdqwwpluL1jfxYE0wIDTFp1nTy/q6gNLsxXrg==" + "hash": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==" } }, "npm:@babel/plugin-proposal-private-property-in-object": { @@ -490,9 +1075,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-async-generator-functions", "data": { - "version": "7.27.1", + "version": "7.28.0", "packageName": "@babel/plugin-transform-async-generator-functions", - "hash": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==" + "hash": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==" } }, "npm:@babel/plugin-transform-async-to-generator": { @@ -517,9 +1102,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-block-scoping", "data": { - "version": "7.27.5", + "version": "7.28.0", "packageName": "@babel/plugin-transform-block-scoping", - "hash": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==" + "hash": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==" } }, "npm:@babel/plugin-transform-class-properties": { @@ -544,45 +1129,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-classes", "data": { - "version": "7.27.1", + "version": "7.28.0", "packageName": "@babel/plugin-transform-classes", - "hash": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==" - } - }, - "npm:globals@11.12.0": { - "type": "npm", - "name": "npm:globals@11.12.0", - "data": { - "version": "11.12.0", - "packageName": "globals", - "hash": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - } - }, - "npm:globals@14.0.0": { - "type": "npm", - "name": "npm:globals@14.0.0", - "data": { - "version": "14.0.0", - "packageName": "globals", - "hash": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==" - } - }, - "npm:globals@13.24.0": { - "type": "npm", - "name": "npm:globals@13.24.0", - "data": { - "version": "13.24.0", - "packageName": "globals", - "hash": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==" - } - }, - "npm:globals": { - "type": "npm", - "name": "npm:globals", - "data": { - "version": "15.15.0", - "packageName": "globals", - "hash": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==" + "hash": "sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==" } }, "npm:@babel/plugin-transform-computed-properties": { @@ -598,9 +1147,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-destructuring", "data": { - "version": "7.27.3", + "version": "7.28.0", "packageName": "@babel/plugin-transform-destructuring", - "hash": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==" + "hash": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==" } }, "npm:@babel/plugin-transform-dotall-regex": { @@ -639,6 +1188,15 @@ "hash": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==" } }, + "npm:@babel/plugin-transform-explicit-resource-management": { + "type": "npm", + "name": "npm:@babel/plugin-transform-explicit-resource-management", + "data": { + "version": "7.28.0", + "packageName": "@babel/plugin-transform-explicit-resource-management", + "hash": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==" + } + }, "npm:@babel/plugin-transform-exponentiation-operator": { "type": "npm", "name": "npm:@babel/plugin-transform-exponentiation-operator", @@ -787,9 +1345,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-object-rest-spread", "data": { - "version": "7.27.3", + "version": "7.28.0", "packageName": "@babel/plugin-transform-object-rest-spread", - "hash": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==" + "hash": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==" } }, "npm:@babel/plugin-transform-object-super": { @@ -823,9 +1381,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-parameters", "data": { - "version": "7.27.1", + "version": "7.27.7", "packageName": "@babel/plugin-transform-parameters", - "hash": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==" + "hash": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==" } }, "npm:@babel/plugin-transform-private-methods": { @@ -868,9 +1426,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-react-display-name", "data": { - "version": "7.27.1", + "version": "7.28.0", "packageName": "@babel/plugin-transform-react-display-name", - "hash": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==" + "hash": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==" } }, "npm:@babel/plugin-transform-react-jsx": { @@ -904,9 +1462,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-regenerator", "data": { - "version": "7.27.5", + "version": "7.28.1", "packageName": "@babel/plugin-transform-regenerator", - "hash": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==" + "hash": "sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==" } }, "npm:@babel/plugin-transform-regexp-modifiers": { @@ -931,9 +1489,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-runtime", "data": { - "version": "7.27.4", + "version": "7.28.0", "packageName": "@babel/plugin-transform-runtime", - "hash": "sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==" + "hash": "sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA==" } }, "npm:@babel/plugin-transform-shorthand-properties": { @@ -985,9 +1543,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-typescript", "data": { - "version": "7.27.1", + "version": "7.28.0", "packageName": "@babel/plugin-transform-typescript", - "hash": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==" + "hash": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==" } }, "npm:@babel/plugin-transform-unicode-escapes": { @@ -1030,9 +1588,9 @@ "type": "npm", "name": "npm:@babel/preset-env", "data": { - "version": "7.27.2", + "version": "7.28.0", "packageName": "@babel/preset-env", - "hash": "sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==" + "hash": "sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==" } }, "npm:@babel/preset-modules": { @@ -1084,18 +1642,18 @@ "type": "npm", "name": "npm:@babel/traverse", "data": { - "version": "7.27.4", + "version": "7.28.0", "packageName": "@babel/traverse", - "hash": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==" + "hash": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==" } }, "npm:@babel/types": { "type": "npm", "name": "npm:@babel/types", "data": { - "version": "7.27.6", + "version": "7.28.1", "packageName": "@babel/types", - "hash": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==" + "hash": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==" } }, "npm:@bcoe/v8-coverage": { @@ -1129,9 +1687,9 @@ "type": "npm", "name": "npm:@jridgewell/trace-mapping", "data": { - "version": "0.3.25", + "version": "0.3.29", "packageName": "@jridgewell/trace-mapping", - "hash": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==" + "hash": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==" } }, "npm:@discoveryjs/json-ext": { @@ -1165,18 +1723,81 @@ "type": "npm", "name": "npm:@eslint/config-array", "data": { - "version": "0.20.0", + "version": "0.20.1", "packageName": "@eslint/config-array", - "hash": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==" + "hash": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==" + } + }, + "npm:brace-expansion@1.1.12": { + "type": "npm", + "name": "npm:brace-expansion@1.1.12", + "data": { + "version": "1.1.12", + "packageName": "brace-expansion", + "hash": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==" + } + }, + "npm:brace-expansion": { + "type": "npm", + "name": "npm:brace-expansion", + "data": { + "version": "2.0.2", + "packageName": "brace-expansion", + "hash": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==" + } + }, + "npm:minimatch@3.1.2": { + "type": "npm", + "name": "npm:minimatch@3.1.2", + "data": { + "version": "3.1.2", + "packageName": "minimatch", + "hash": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" + } + }, + "npm:minimatch@10.1.1": { + "type": "npm", + "name": "npm:minimatch@10.1.1", + "data": { + "version": "10.1.1", + "packageName": "minimatch", + "hash": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==" + } + }, + "npm:minimatch@5.1.6": { + "type": "npm", + "name": "npm:minimatch@5.1.6", + "data": { + "version": "5.1.6", + "packageName": "minimatch", + "hash": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==" + } + }, + "npm:minimatch@9.0.5": { + "type": "npm", + "name": "npm:minimatch@9.0.5", + "data": { + "version": "9.0.5", + "packageName": "minimatch", + "hash": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==" + } + }, + "npm:minimatch": { + "type": "npm", + "name": "npm:minimatch", + "data": { + "version": "9.0.3", + "packageName": "minimatch", + "hash": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==" } }, "npm:@eslint/config-helpers": { "type": "npm", "name": "npm:@eslint/config-helpers", "data": { - "version": "0.2.2", + "version": "0.2.3", "packageName": "@eslint/config-helpers", - "hash": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==" + "hash": "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==" } }, "npm:@eslint/core": { @@ -1188,40 +1809,130 @@ "hash": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==" } }, + "npm:@eslint/core@0.15.1": { + "type": "npm", + "name": "npm:@eslint/core@0.15.1", + "data": { + "version": "0.15.1", + "packageName": "@eslint/core", + "hash": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==" + } + }, "npm:@eslint/eslintrc": { "type": "npm", "name": "npm:@eslint/eslintrc", + "data": { + "version": "2.1.4", + "packageName": "@eslint/eslintrc", + "hash": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==" + } + }, + "npm:@eslint/eslintrc@3.3.1": { + "type": "npm", + "name": "npm:@eslint/eslintrc@3.3.1", "data": { "version": "3.3.1", "packageName": "@eslint/eslintrc", "hash": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==" } }, - "npm:@eslint/eslintrc@2.1.4": { + "npm:ajv@6.12.6": { "type": "npm", - "name": "npm:@eslint/eslintrc@2.1.4", + "name": "npm:ajv@6.12.6", "data": { - "version": "2.1.4", - "packageName": "@eslint/eslintrc", - "hash": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==" + "version": "6.12.6", + "packageName": "ajv", + "hash": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" + } + }, + "npm:ajv": { + "type": "npm", + "name": "npm:ajv", + "data": { + "version": "8.17.1", + "packageName": "ajv", + "hash": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==" + } + }, + "npm:argparse@2.0.1": { + "type": "npm", + "name": "npm:argparse@2.0.1", + "data": { + "version": "2.0.1", + "packageName": "argparse", + "hash": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + } + }, + "npm:argparse": { + "type": "npm", + "name": "npm:argparse", + "data": { + "version": "1.0.10", + "packageName": "argparse", + "hash": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + } + }, + "npm:js-yaml@4.1.0": { + "type": "npm", + "name": "npm:js-yaml@4.1.0", + "data": { + "version": "4.1.0", + "packageName": "js-yaml", + "hash": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" + } + }, + "npm:js-yaml": { + "type": "npm", + "name": "npm:js-yaml", + "data": { + "version": "3.14.1", + "packageName": "js-yaml", + "hash": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" + } + }, + "npm:json-schema-traverse@0.4.1": { + "type": "npm", + "name": "npm:json-schema-traverse@0.4.1", + "data": { + "version": "0.4.1", + "packageName": "json-schema-traverse", + "hash": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + } + }, + "npm:json-schema-traverse": { + "type": "npm", + "name": "npm:json-schema-traverse", + "data": { + "version": "1.0.0", + "packageName": "json-schema-traverse", + "hash": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" } }, "npm:@eslint/js": { "type": "npm", "name": "npm:@eslint/js", "data": { - "version": "9.28.0", + "version": "8.57.1", "packageName": "@eslint/js", - "hash": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==" + "hash": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==" } }, - "npm:@eslint/js@8.57.1": { + "npm:@eslint/js@9.31.0": { "type": "npm", - "name": "npm:@eslint/js@8.57.1", + "name": "npm:@eslint/js@9.31.0", "data": { - "version": "8.57.1", + "version": "9.31.0", "packageName": "@eslint/js", - "hash": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==" + "hash": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==" + } + }, + "npm:@eslint/js@9.28.0": { + "type": "npm", + "name": "npm:@eslint/js@9.28.0", + "data": { + "version": "9.28.0", + "packageName": "@eslint/js", + "hash": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==" } }, "npm:@eslint/object-schema": { @@ -1237,9 +1948,9 @@ "type": "npm", "name": "npm:@eslint/plugin-kit", "data": { - "version": "0.3.1", + "version": "0.3.4", "packageName": "@eslint/plugin-kit", - "hash": "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==" + "hash": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==" } }, "npm:@fastify/accept-negotiator": { @@ -1260,45 +1971,18 @@ "hash": "sha512-Rkiu/8wIjpsf46Rr+Fitd3HRP+VsxUFDDeag0hs9L0ksfnwx2g7SPQQTFL0E8Qv+rfXzQOxBJnjUB9ITUDjfWQ==" } }, - "npm:ajv@8.17.1": { - "type": "npm", - "name": "npm:ajv@8.17.1", - "data": { - "version": "8.17.1", - "packageName": "ajv", - "hash": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==" - } - }, - "npm:ajv": { - "type": "npm", - "name": "npm:ajv", - "data": { - "version": "6.12.6", - "packageName": "ajv", - "hash": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" - } - }, - "npm:json-schema-traverse@1.0.0": { - "type": "npm", - "name": "npm:json-schema-traverse@1.0.0", - "data": { - "version": "1.0.0", - "packageName": "json-schema-traverse", - "hash": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - } - }, - "npm:json-schema-traverse": { + "npm:@fastify/cors": { "type": "npm", - "name": "npm:json-schema-traverse", + "name": "npm:@fastify/cors", "data": { - "version": "0.4.1", - "packageName": "json-schema-traverse", - "hash": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "11.2.0", + "packageName": "@fastify/cors", + "hash": "sha512-LbLHBuSAdGdSFZYTLVA3+Ch2t+sA6nq3Ejc6XLAKiQ6ViS2qFnvicpj0htsx03FyYeLs04HfRNBsz/a8SvbcUw==" } }, - "npm:@fastify/cors": { + "npm:@fastify/cors@10.1.0": { "type": "npm", - "name": "npm:@fastify/cors", + "name": "npm:@fastify/cors@10.1.0", "data": { "version": "10.1.0", "packageName": "@fastify/cors", @@ -1335,6 +2019,15 @@ "npm:@fastify/jwt": { "type": "npm", "name": "npm:@fastify/jwt", + "data": { + "version": "10.0.0", + "packageName": "@fastify/jwt", + "hash": "sha512-2Qka3NiyNNcsfejMUvyzot1T4UYIzzcbkFGDdVyrl344fRZ/WkD6VFXOoXhxe2Pzf3LpJNkoSxUM4Ru4DVgkYA==" + } + }, + "npm:@fastify/jwt@9.1.0": { + "type": "npm", + "name": "npm:@fastify/jwt@9.1.0", "data": { "version": "9.1.0", "packageName": "@fastify/jwt", @@ -1377,40 +2070,40 @@ "hash": "sha512-TMYeQLCBSy2TOFmV95hQWkiTYgC/SEx7vMdV+wnZVX4tt8VBLKzmH8vV9OzJehV0+XBfg+WxPMt5wp+JBUKsVw==" } }, - "npm:mime@3.0.0": { + "npm:@fastify/static": { "type": "npm", - "name": "npm:mime@3.0.0", + "name": "npm:@fastify/static", "data": { - "version": "3.0.0", - "packageName": "mime", - "hash": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" + "version": "9.0.0", + "packageName": "@fastify/static", + "hash": "sha512-r64H8Woe/vfilg5RTy7lwWlE8ZZcTrc3kebYFMEUBrMqlydhQyoiExQXdYAy2REVpST/G35+stAM8WYp1WGmMA==" } }, - "npm:mime": { + "npm:content-disposition@1.0.1": { "type": "npm", - "name": "npm:mime", + "name": "npm:content-disposition@1.0.1", "data": { - "version": "1.6.0", - "packageName": "mime", - "hash": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "version": "1.0.1", + "packageName": "content-disposition", + "hash": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==" } }, - "npm:@fastify/static": { + "npm:content-disposition": { "type": "npm", - "name": "npm:@fastify/static", + "name": "npm:content-disposition", "data": { - "version": "8.2.0", - "packageName": "@fastify/static", - "hash": "sha512-PejC/DtT7p1yo3p+W7LiUtLMsV8fEvxAK15sozHy9t8kwo5r0uLYmhV/inURmGz1SkHZFz/8CNtHLPyhKcx4SQ==" + "version": "0.5.4", + "packageName": "content-disposition", + "hash": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==" } }, - "npm:glob@11.0.3": { + "npm:glob@13.0.0": { "type": "npm", - "name": "npm:glob@11.0.3", + "name": "npm:glob@13.0.0", "data": { - "version": "11.0.3", + "version": "13.0.0", "packageName": "glob", - "hash": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==" + "hash": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==" } }, "npm:glob@8.1.0": { @@ -1440,157 +2133,31 @@ "hash": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==" } }, - "npm:jackspeak@4.1.1": { - "type": "npm", - "name": "npm:jackspeak@4.1.1", - "data": { - "version": "4.1.1", - "packageName": "jackspeak", - "hash": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==" - } - }, - "npm:jackspeak": { - "type": "npm", - "name": "npm:jackspeak", - "data": { - "version": "3.4.3", - "packageName": "jackspeak", - "hash": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==" - } - }, - "npm:lru-cache@11.1.0": { - "type": "npm", - "name": "npm:lru-cache@11.1.0", - "data": { - "version": "11.1.0", - "packageName": "lru-cache", - "hash": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==" - } - }, - "npm:lru-cache@4.1.5": { - "type": "npm", - "name": "npm:lru-cache@4.1.5", - "data": { - "version": "4.1.5", - "packageName": "lru-cache", - "hash": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==" - } - }, - "npm:lru-cache@10.4.3": { - "type": "npm", - "name": "npm:lru-cache@10.4.3", - "data": { - "version": "10.4.3", - "packageName": "lru-cache", - "hash": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" - } - }, - "npm:lru-cache": { - "type": "npm", - "name": "npm:lru-cache", - "data": { - "version": "5.1.1", - "packageName": "lru-cache", - "hash": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" - } - }, - "npm:minimatch@10.0.3": { - "type": "npm", - "name": "npm:minimatch@10.0.3", - "data": { - "version": "10.0.3", - "packageName": "minimatch", - "hash": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==" - } - }, - "npm:minimatch@9.0.3": { - "type": "npm", - "name": "npm:minimatch@9.0.3", - "data": { - "version": "9.0.3", - "packageName": "minimatch", - "hash": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==" - } - }, - "npm:minimatch@5.1.6": { - "type": "npm", - "name": "npm:minimatch@5.1.6", - "data": { - "version": "5.1.6", - "packageName": "minimatch", - "hash": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==" - } - }, - "npm:minimatch@9.0.5": { - "type": "npm", - "name": "npm:minimatch@9.0.5", - "data": { - "version": "9.0.5", - "packageName": "minimatch", - "hash": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==" - } - }, - "npm:minimatch": { - "type": "npm", - "name": "npm:minimatch", - "data": { - "version": "3.1.2", - "packageName": "minimatch", - "hash": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" - } - }, - "npm:path-scurry@2.0.0": { - "type": "npm", - "name": "npm:path-scurry@2.0.0", - "data": { - "version": "2.0.0", - "packageName": "path-scurry", - "hash": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==" - } - }, - "npm:path-scurry": { - "type": "npm", - "name": "npm:path-scurry", - "data": { - "version": "1.11.1", - "packageName": "path-scurry", - "hash": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==" - } - }, "npm:@fastify/swagger": { "type": "npm", "name": "npm:@fastify/swagger", "data": { - "version": "9.5.1", + "version": "9.6.1", "packageName": "@fastify/swagger", - "hash": "sha512-EGjYLA7vDmCPK7XViAYMF6y4+K3XUy5soVTVxsyXolNe/Svb4nFQxvtuQvvoQb2Gzc9pxiF3+ZQN/iZDHhKtTg==" + "hash": "sha512-fKlpJqFMWoi4H3EdUkDaMteEYRCfQMEkK0HJJ0eaf4aRlKd8cbq0pVkOfXDXmtvMTXYcnx3E+l023eFDBsA1HA==" } }, "npm:@fastify/swagger-ui": { "type": "npm", "name": "npm:@fastify/swagger-ui", "data": { - "version": "5.2.3", + "version": "5.2.4", "packageName": "@fastify/swagger-ui", - "hash": "sha512-e7ivEJi9EpFcxTONqICx4llbpB2jmlI+LI1NQ/mR7QGQnyDOqZybPK572zJtcdHZW4YyYTBHcP3a03f1pOh0SA==" - } - }, - "npm:yaml@2.8.0": { - "type": "npm", - "name": "npm:yaml@2.8.0", - "data": { - "version": "2.8.0", - "packageName": "yaml", - "hash": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==" + "hash": "sha512-Maw8OYPUDxlOzKQd3VMv7T/fmjf2h6BWR3XHkhk3dD3rIfzO7C/UPnzGuTpOGMqw1HCUnctADBbeTNAzAwzUqA==" } }, - "npm:yaml": { + "npm:@fastify/websocket": { "type": "npm", - "name": "npm:yaml", + "name": "npm:@fastify/websocket", "data": { - "version": "1.10.2", - "packageName": "yaml", - "hash": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "version": "11.2.0", + "packageName": "@fastify/websocket", + "hash": "sha512-3HrDPbAG1CzUCqnslgJxppvzaAZffieOVbLp1DAy1huCSynUWPifSvfdEDUR8HlJLp3sp1A36uOM2tJogADS8w==" } }, "npm:@humanfs/core": { @@ -1791,24 +2358,6 @@ "hash": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==" } }, - "npm:argparse@1.0.10": { - "type": "npm", - "name": "npm:argparse@1.0.10", - "data": { - "version": "1.0.10", - "packageName": "argparse", - "hash": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" - } - }, - "npm:argparse": { - "type": "npm", - "name": "npm:argparse", - "data": { - "version": "2.0.1", - "packageName": "argparse", - "hash": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - } - }, "npm:camelcase@5.3.1": { "type": "npm", "name": "npm:camelcase@5.3.1", @@ -1827,24 +2376,6 @@ "hash": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" } }, - "npm:js-yaml@3.14.1": { - "type": "npm", - "name": "npm:js-yaml@3.14.1", - "data": { - "version": "3.14.1", - "packageName": "js-yaml", - "hash": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" - } - }, - "npm:js-yaml": { - "type": "npm", - "name": "npm:js-yaml", - "data": { - "version": "4.1.0", - "packageName": "js-yaml", - "hash": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" - } - }, "npm:@istanbuljs/schema": { "type": "npm", "name": "npm:@istanbuljs/schema", @@ -1863,42 +2394,6 @@ "hash": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==" } }, - "npm:slash@3.0.0": { - "type": "npm", - "name": "npm:slash@3.0.0", - "data": { - "version": "3.0.0", - "packageName": "slash", - "hash": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - } - }, - "npm:slash@4.0.0": { - "type": "npm", - "name": "npm:slash@4.0.0", - "data": { - "version": "4.0.0", - "packageName": "slash", - "hash": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" - } - }, - "npm:slash@5.1.0": { - "type": "npm", - "name": "npm:slash@5.1.0", - "data": { - "version": "5.1.0", - "packageName": "slash", - "hash": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==" - } - }, - "npm:slash": { - "type": "npm", - "name": "npm:slash", - "data": { - "version": "2.0.0", - "packageName": "slash", - "hash": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - } - }, "npm:@jest/core": { "type": "npm", "name": "npm:@jest/core", @@ -2029,9 +2524,9 @@ "type": "npm", "name": "npm:@jridgewell/gen-mapping", "data": { - "version": "0.3.8", + "version": "0.3.12", "packageName": "@jridgewell/gen-mapping", - "hash": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==" + "hash": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==" } }, "npm:@jridgewell/resolve-uri": { @@ -2043,31 +2538,22 @@ "hash": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" } }, - "npm:@jridgewell/set-array": { - "type": "npm", - "name": "npm:@jridgewell/set-array", - "data": { - "version": "1.2.1", - "packageName": "@jridgewell/set-array", - "hash": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" - } - }, "npm:@jridgewell/source-map": { "type": "npm", "name": "npm:@jridgewell/source-map", "data": { - "version": "0.3.6", + "version": "0.3.10", "packageName": "@jridgewell/source-map", - "hash": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==" + "hash": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==" } }, "npm:@jridgewell/sourcemap-codec": { "type": "npm", "name": "npm:@jridgewell/sourcemap-codec", "data": { - "version": "1.5.0", + "version": "1.5.4", "packageName": "@jridgewell/sourcemap-codec", - "hash": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + "hash": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" } }, "npm:@leichtgewicht/ip-codec": { @@ -2101,162 +2587,162 @@ "type": "npm", "name": "npm:@mongodb-js/saslprep", "data": { - "version": "1.2.2", + "version": "1.3.0", "packageName": "@mongodb-js/saslprep", - "hash": "sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==" + "hash": "sha512-zlayKCsIjYb7/IdfqxorK5+xUMyi4vOKcFy10wKJYc63NSdKI8mNME+uJqfatkPmOSMMUiojrL58IePKBm3gvQ==" } }, "npm:@napi-rs/nice": { "type": "npm", "name": "npm:@napi-rs/nice", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice", - "hash": "sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==" + "hash": "sha512-Sqih1YARrmMoHlXGgI9JrrgkzxcaaEso0AH+Y7j8NHonUs+xe4iDsgC3IBIDNdzEewbNpccNN6hip+b5vmyRLw==" } }, "npm:@napi-rs/nice-android-arm-eabi": { "type": "npm", "name": "npm:@napi-rs/nice-android-arm-eabi", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-android-arm-eabi", - "hash": "sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==" + "hash": "sha512-OZFMYUkih4g6HCKTjqJHhMUlgvPiDuSLZPbPBWHLjKmFTv74COzRlq/gwHtmEVaR39mJQ6ZyttDl2HNMUbLVoA==" } }, "npm:@napi-rs/nice-android-arm64": { "type": "npm", "name": "npm:@napi-rs/nice-android-arm64", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-android-arm64", - "hash": "sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==" + "hash": "sha512-k8u7cjeA64vQWXZcRrPbmwjH8K09CBnNaPnI9L1D5N6iMPL3XYQzLcN6WwQonfcqCDv5OCY3IqX89goPTV4KMw==" } }, "npm:@napi-rs/nice-darwin-arm64": { "type": "npm", "name": "npm:@napi-rs/nice-darwin-arm64", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-darwin-arm64", - "hash": "sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==" + "hash": "sha512-GsLdQvUcuVzoyzmtjsThnpaVEizAqH5yPHgnsBmq3JdVoVZHELFo7PuJEdfOH1DOHi2mPwB9sCJEstAYf3XCJA==" } }, "npm:@napi-rs/nice-darwin-x64": { "type": "npm", "name": "npm:@napi-rs/nice-darwin-x64", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-darwin-x64", - "hash": "sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==" + "hash": "sha512-1y3gyT3e5zUY5SxRl3QDtJiWVsbkmhtUHIYwdWWIQ3Ia+byd/IHIEpqAxOGW1nhhnIKfTCuxBadHQb+yZASVoA==" } }, "npm:@napi-rs/nice-freebsd-x64": { "type": "npm", "name": "npm:@napi-rs/nice-freebsd-x64", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-freebsd-x64", - "hash": "sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==" + "hash": "sha512-06oXzESPRdXUuzS8n2hGwhM2HACnDfl3bfUaSqLGImM8TA33pzDXgGL0e3If8CcFWT98aHows5Lk7xnqYNGFeA==" } }, "npm:@napi-rs/nice-linux-arm-gnueabihf": { "type": "npm", "name": "npm:@napi-rs/nice-linux-arm-gnueabihf", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-arm-gnueabihf", - "hash": "sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==" + "hash": "sha512-CgklZ6g8WL4+EgVVkxkEvvsi2DSLf9QIloxWO0fvQyQBp6VguUSX3eHLeRpqwW8cRm2Hv/Q1+PduNk7VK37VZw==" } }, "npm:@napi-rs/nice-linux-arm64-gnu": { "type": "npm", "name": "npm:@napi-rs/nice-linux-arm64-gnu", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-arm64-gnu", - "hash": "sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==" + "hash": "sha512-wdAJ7lgjhAlsANUCv0zi6msRwq+D4KDgU+GCCHssSxWmAERZa2KZXO0H2xdmoJ/0i03i6YfK/sWaZgUAyuW2oQ==" } }, "npm:@napi-rs/nice-linux-arm64-musl": { "type": "npm", "name": "npm:@napi-rs/nice-linux-arm64-musl", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-arm64-musl", - "hash": "sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==" + "hash": "sha512-4b1KYG+sriufhFrpUS9uNOEYYJqSfcbnwGx6uGX7JjrH8tELG90cOpCawz5THNIwlS3DhLgnCOcn0+4p6z26QA==" } }, "npm:@napi-rs/nice-linux-ppc64-gnu": { "type": "npm", "name": "npm:@napi-rs/nice-linux-ppc64-gnu", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-ppc64-gnu", - "hash": "sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==" + "hash": "sha512-iaf3vMRgr23oe1PUaKpxaH3DS0IMN0+N9iEiWVwYPm/U15vZFYdqVegGfN2PzrZLUl5lc8ZxbmEKDfuqslhAMA==" } }, "npm:@napi-rs/nice-linux-riscv64-gnu": { "type": "npm", "name": "npm:@napi-rs/nice-linux-riscv64-gnu", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-riscv64-gnu", - "hash": "sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==" + "hash": "sha512-UXoREY6Yw6rHrGuTwQgBxpfjK34t6mTjibE9/cXbefL9AuUCJ9gEgwNKZiONuR5QGswChqo9cnthjdKkYyAdDg==" } }, "npm:@napi-rs/nice-linux-s390x-gnu": { "type": "npm", "name": "npm:@napi-rs/nice-linux-s390x-gnu", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-s390x-gnu", - "hash": "sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==" + "hash": "sha512-eFbgYCRPmsqbYPAlLYU5hYTNbogmIDUvknilehHsFhCH1+0/kN87lP+XaLT0Yeq4V/rpwChSd9vlz4muzFArtw==" } }, "npm:@napi-rs/nice-linux-x64-gnu": { "type": "npm", "name": "npm:@napi-rs/nice-linux-x64-gnu", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-x64-gnu", - "hash": "sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==" + "hash": "sha512-4T3E6uTCwWT6IPnwuPcWVz3oHxvEp/qbrCxZhsgzwTUBEwu78EGNXGdHfKJQt3soth89MLqZJw+Zzvnhrsg1mQ==" } }, "npm:@napi-rs/nice-linux-x64-musl": { "type": "npm", "name": "npm:@napi-rs/nice-linux-x64-musl", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-x64-musl", - "hash": "sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==" + "hash": "sha512-NtbBkAeyBPLvCBkWtwkKXkNSn677eaT0cX3tygq+2qVv71TmHgX4gkX6o9BXjlPzdgPGwrUudavCYPT9tzkEqQ==" } }, "npm:@napi-rs/nice-win32-arm64-msvc": { "type": "npm", "name": "npm:@napi-rs/nice-win32-arm64-msvc", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-win32-arm64-msvc", - "hash": "sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==" + "hash": "sha512-vubOe3i+YtSJGEk/++73y+TIxbuVHi+W8ZzrRm2eETCjCRwNlgbfToQZ85dSA+4iBB/NJRGNp+O4hfdbbttZWA==" } }, "npm:@napi-rs/nice-win32-ia32-msvc": { "type": "npm", "name": "npm:@napi-rs/nice-win32-ia32-msvc", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-win32-ia32-msvc", - "hash": "sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==" + "hash": "sha512-BMOVrUDZeg1RNRKVlh4eyLv5djAAVLiSddfpuuQ47EFjBcklg0NUeKMFKNrKQR4UnSn4HAiACLD7YK7koskwmg==" } }, "npm:@napi-rs/nice-win32-x64-msvc": { "type": "npm", "name": "npm:@napi-rs/nice-win32-x64-msvc", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-win32-x64-msvc", - "hash": "sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==" + "hash": "sha512-kCNk6HcRZquhw/whwh4rHsdPyOSCQCgnVDVik+Y9cuSVTDy3frpiCJTScJqPPS872h4JgZKkr/+CwcwttNEo9Q==" } }, "npm:@nicolo-ribaudo/chokidar-2": { @@ -2394,24 +2880,6 @@ "hash": "sha512-vOUes8e8guFmbcpUcppUlx120Y52ovY46ZnKogOjnw5q7LN12Fvn68A2wBF8SYmyiYmPd56YtUV7A6LuS8Wd3w==" } }, - "npm:brace-expansion@2.0.1": { - "type": "npm", - "name": "npm:brace-expansion@2.0.1", - "data": { - "version": "2.0.1", - "packageName": "brace-expansion", - "hash": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==" - } - }, - "npm:brace-expansion": { - "type": "npm", - "name": "npm:brace-expansion", - "data": { - "version": "1.1.11", - "packageName": "brace-expansion", - "hash": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" - } - }, "npm:semver@7.7.2": { "type": "npm", "name": "npm:semver@7.7.2", @@ -2421,6 +2889,15 @@ "hash": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==" } }, + "npm:semver@7.7.3": { + "type": "npm", + "name": "npm:semver@7.7.3", + "data": { + "version": "7.7.3", + "packageName": "semver", + "hash": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==" + } + }, "npm:semver@5.7.2": { "type": "npm", "name": "npm:semver@5.7.2", @@ -2772,6 +3249,15 @@ "hash": "sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==" } }, + "npm:@pinojs/redact": { + "type": "npm", + "name": "npm:@pinojs/redact", + "data": { + "version": "0.4.0", + "packageName": "@pinojs/redact", + "hash": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==" + } + }, "npm:@pkgjs/parseargs": { "type": "npm", "name": "npm:@pkgjs/parseargs", @@ -2785,18 +3271,18 @@ "type": "npm", "name": "npm:@pkgr/core", "data": { - "version": "0.2.7", + "version": "0.2.9", "packageName": "@pkgr/core", - "hash": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==" + "hash": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==" } }, "npm:@pmmmwh/react-refresh-webpack-plugin": { "type": "npm", "name": "npm:@pmmmwh/react-refresh-webpack-plugin", "data": { - "version": "0.5.16", + "version": "0.5.17", "packageName": "@pmmmwh/react-refresh-webpack-plugin", - "hash": "sha512-kLQc9xz6QIqd2oIYyXRUiAp79kGpFBm3fEM9ahfG1HI0WI5gdZ2OVHWdmZYnwODt7ISck+QuQ6sBPrtvUBML7Q==" + "hash": "sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ==" } }, "npm:@rollup/plugin-babel": { @@ -2848,9 +3334,9 @@ "type": "npm", "name": "npm:@rollup/pluginutils", "data": { - "version": "5.1.4", + "version": "5.2.0", "packageName": "@rollup/pluginutils", - "hash": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==" + "hash": "sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==" } }, "npm:@rollup/pluginutils@4.2.1": { @@ -2866,135 +3352,135 @@ "type": "npm", "name": "npm:@rollup/rollup-android-arm-eabi", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-android-arm-eabi", - "hash": "sha512-gldmAyS9hpj+H6LpRNlcjQWbuKUtb94lodB9uCz71Jm+7BxK1VIOo7y62tZZwxhA7j1ylv/yQz080L5WkS+LoQ==" + "hash": "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==" } }, "npm:@rollup/rollup-android-arm64": { "type": "npm", "name": "npm:@rollup/rollup-android-arm64", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-android-arm64", - "hash": "sha512-bpRipfTgmGFdCZDFLRvIkSNO1/3RGS74aWkJJTFJBH7h3MRV4UijkaEUeOMbi9wxtxYmtAbVcnMtHTPBhLEkaw==" + "hash": "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==" } }, "npm:@rollup/rollup-darwin-arm64": { "type": "npm", "name": "npm:@rollup/rollup-darwin-arm64", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-darwin-arm64", - "hash": "sha512-JxHtA081izPBVCHLKnl6GEA0w3920mlJPLh89NojpU2GsBSB6ypu4erFg/Wx1qbpUbepn0jY4dVWMGZM8gplgA==" + "hash": "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==" } }, "npm:@rollup/rollup-darwin-x64": { "type": "npm", "name": "npm:@rollup/rollup-darwin-x64", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-darwin-x64", - "hash": "sha512-rv5UZaWVIJTDMyQ3dCEK+m0SAn6G7H3PRc2AZmExvbDvtaDc+qXkei0knQWcI3+c9tEs7iL/4I4pTQoPbNL2SA==" + "hash": "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==" } }, "npm:@rollup/rollup-freebsd-arm64": { "type": "npm", "name": "npm:@rollup/rollup-freebsd-arm64", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-freebsd-arm64", - "hash": "sha512-fJcN4uSGPWdpVmvLuMtALUFwCHgb2XiQjuECkHT3lWLZhSQ3MBQ9pq+WoWeJq2PrNxr9rPM1Qx+IjyGj8/c6zQ==" + "hash": "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==" } }, "npm:@rollup/rollup-freebsd-x64": { "type": "npm", "name": "npm:@rollup/rollup-freebsd-x64", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-freebsd-x64", - "hash": "sha512-CziHfyzpp8hJpCVE/ZdTizw58gr+m7Y2Xq5VOuCSrZR++th2xWAz4Nqk52MoIIrV3JHtVBhbBsJcAxs6NammOQ==" + "hash": "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==" } }, "npm:@rollup/rollup-linux-arm-gnueabihf": { "type": "npm", "name": "npm:@rollup/rollup-linux-arm-gnueabihf", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-arm-gnueabihf", - "hash": "sha512-UsQD5fyLWm2Fe5CDM7VPYAo+UC7+2Px4Y+N3AcPh/LdZu23YcuGPegQly++XEVaC8XUTFVPscl5y5Cl1twEI4A==" + "hash": "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==" } }, "npm:@rollup/rollup-linux-arm-musleabihf": { "type": "npm", "name": "npm:@rollup/rollup-linux-arm-musleabihf", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-arm-musleabihf", - "hash": "sha512-/i8NIrlgc/+4n1lnoWl1zgH7Uo0XK5xK3EDqVTf38KvyYgCU/Rm04+o1VvvzJZnVS5/cWSd07owkzcVasgfIkQ==" + "hash": "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==" } }, "npm:@rollup/rollup-linux-arm64-gnu": { "type": "npm", "name": "npm:@rollup/rollup-linux-arm64-gnu", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-arm64-gnu", - "hash": "sha512-eoujJFOvoIBjZEi9hJnXAbWg+Vo1Ov8n/0IKZZcPZ7JhBzxh2A+2NFyeMZIRkY9iwBvSjloKgcvnjTbGKHE44Q==" + "hash": "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==" } }, "npm:@rollup/rollup-linux-arm64-musl": { "type": "npm", "name": "npm:@rollup/rollup-linux-arm64-musl", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-arm64-musl", - "hash": "sha512-/3NrcOWFSR7RQUQIuZQChLND36aTU9IYE4j+TB40VU78S+RA0IiqHR30oSh6P1S9f9/wVOenHQnacs/Byb824g==" + "hash": "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==" } }, "npm:@rollup/rollup-linux-loongarch64-gnu": { "type": "npm", "name": "npm:@rollup/rollup-linux-loongarch64-gnu", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-loongarch64-gnu", - "hash": "sha512-O8AplvIeavK5ABmZlKBq9/STdZlnQo7Sle0LLhVA7QT+CiGpNVe197/t8Aph9bhJqbDVGCHpY2i7QyfEDDStDg==" + "hash": "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==" } }, "npm:@rollup/rollup-linux-powerpc64le-gnu": { "type": "npm", "name": "npm:@rollup/rollup-linux-powerpc64le-gnu", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-powerpc64le-gnu", - "hash": "sha512-6Qb66tbKVN7VyQrekhEzbHRxXXFFD8QKiFAwX5v9Xt6FiJ3BnCVBuyBxa2fkFGqxOCSGGYNejxd8ht+q5SnmtA==" + "hash": "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==" } }, "npm:@rollup/rollup-linux-riscv64-gnu": { "type": "npm", "name": "npm:@rollup/rollup-linux-riscv64-gnu", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-riscv64-gnu", - "hash": "sha512-KQETDSEBamQFvg/d8jajtRwLNBlGc3aKpaGiP/LvEbnmVUKlFta1vqJqTrvPtsYsfbE/DLg5CC9zyXRX3fnBiA==" + "hash": "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==" } }, "npm:@rollup/rollup-linux-riscv64-musl": { "type": "npm", "name": "npm:@rollup/rollup-linux-riscv64-musl", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-riscv64-musl", - "hash": "sha512-qMvnyjcU37sCo/tuC+JqeDKSuukGAd+pVlRl/oyDbkvPJ3awk6G6ua7tyum02O3lI+fio+eM5wsVd66X0jQtxw==" + "hash": "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==" } }, "npm:@rollup/rollup-linux-s390x-gnu": { "type": "npm", "name": "npm:@rollup/rollup-linux-s390x-gnu", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-s390x-gnu", - "hash": "sha512-I2Y1ZUgTgU2RLddUHXTIgyrdOwljjkmcZ/VilvaEumtS3Fkuhbw4p4hgHc39Ypwvo2o7sBFNl2MquNvGCa55Iw==" + "hash": "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==" } }, "npm:@rollup/rollup-linux-x64-gnu": { @@ -3006,49 +3492,49 @@ "hash": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==" } }, - "npm:@rollup/rollup-linux-x64-gnu@4.42.0": { + "npm:@rollup/rollup-linux-x64-gnu@4.45.1": { "type": "npm", - "name": "npm:@rollup/rollup-linux-x64-gnu@4.42.0", + "name": "npm:@rollup/rollup-linux-x64-gnu@4.45.1", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-x64-gnu", - "hash": "sha512-Gfm6cV6mj3hCUY8TqWa63DB8Mx3NADoFwiJrMpoZ1uESbK8FQV3LXkhfry+8bOniq9pqY1OdsjFWNsSbfjPugw==" + "hash": "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==" } }, "npm:@rollup/rollup-linux-x64-musl": { "type": "npm", "name": "npm:@rollup/rollup-linux-x64-musl", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-x64-musl", - "hash": "sha512-g86PF8YZ9GRqkdi0VoGlcDUb4rYtQKyTD1IVtxxN4Hpe7YqLBShA7oHMKU6oKTCi3uxwW4VkIGnOaH/El8de3w==" + "hash": "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==" } }, "npm:@rollup/rollup-win32-arm64-msvc": { "type": "npm", "name": "npm:@rollup/rollup-win32-arm64-msvc", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-win32-arm64-msvc", - "hash": "sha512-+axkdyDGSp6hjyzQ5m1pgcvQScfHnMCcsXkx8pTgy/6qBmWVhtRVlgxjWwDp67wEXXUr0x+vD6tp5W4x6V7u1A==" + "hash": "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==" } }, "npm:@rollup/rollup-win32-ia32-msvc": { "type": "npm", "name": "npm:@rollup/rollup-win32-ia32-msvc", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-win32-ia32-msvc", - "hash": "sha512-F+5J9pelstXKwRSDq92J0TEBXn2nfUrQGg+HK1+Tk7VOL09e0gBqUHugZv7SW4MGrYj41oNCUe3IKCDGVlis2g==" + "hash": "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==" } }, "npm:@rollup/rollup-win32-x64-msvc": { "type": "npm", "name": "npm:@rollup/rollup-win32-x64-msvc", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-win32-x64-msvc", - "hash": "sha512-LpHiJRwkaVz/LqjHjK8LCi8osq7elmpwujwbXKNW88bM8eeGxavJIKKjkjpMHAh/2xfnrt1ZSnhTv41WYUHYmA==" + "hash": "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==" } }, "npm:@rtsao/scc": { @@ -3060,33 +3546,6 @@ "hash": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==" } }, - "npm:@sendgrid/client": { - "type": "npm", - "name": "npm:@sendgrid/client", - "data": { - "version": "8.1.5", - "packageName": "@sendgrid/client", - "hash": "sha512-Jqt8aAuGIpWGa15ZorTWI46q9gbaIdQFA21HIPQQl60rCjzAko75l3D1z7EyjFrNr4MfQ0StusivWh8Rjh10Cg==" - } - }, - "npm:@sendgrid/helpers": { - "type": "npm", - "name": "npm:@sendgrid/helpers", - "data": { - "version": "8.0.0", - "packageName": "@sendgrid/helpers", - "hash": "sha512-Ze7WuW2Xzy5GT5WRx+yEv89fsg/pgy3T1E3FS0QEx0/VvRmigMZ5qyVGhJz4SxomegDkzXv/i0aFPpHKN8qdAA==" - } - }, - "npm:@sendgrid/mail": { - "type": "npm", - "name": "npm:@sendgrid/mail", - "data": { - "version": "8.1.5", - "packageName": "@sendgrid/mail", - "hash": "sha512-W+YuMnkVs4+HA/bgfto4VHKcPKLc7NiZ50/NH2pzO6UHCCFuq8/GNB98YJlLEr/ESDyzAaDr7lVE7hoBwFTT3Q==" - } - }, "npm:@sinclair/typebox": { "type": "npm", "name": "npm:@sinclair/typebox", @@ -3132,6 +3591,438 @@ "hash": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==" } }, + "npm:@smithy/abort-controller": { + "type": "npm", + "name": "npm:@smithy/abort-controller", + "data": { + "version": "4.2.8", + "packageName": "@smithy/abort-controller", + "hash": "sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw==" + } + }, + "npm:@smithy/chunked-blob-reader": { + "type": "npm", + "name": "npm:@smithy/chunked-blob-reader", + "data": { + "version": "5.2.0", + "packageName": "@smithy/chunked-blob-reader", + "hash": "sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==" + } + }, + "npm:@smithy/chunked-blob-reader-native": { + "type": "npm", + "name": "npm:@smithy/chunked-blob-reader-native", + "data": { + "version": "4.2.1", + "packageName": "@smithy/chunked-blob-reader-native", + "hash": "sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==" + } + }, + "npm:@smithy/config-resolver": { + "type": "npm", + "name": "npm:@smithy/config-resolver", + "data": { + "version": "4.4.6", + "packageName": "@smithy/config-resolver", + "hash": "sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==" + } + }, + "npm:@smithy/core": { + "type": "npm", + "name": "npm:@smithy/core", + "data": { + "version": "3.21.1", + "packageName": "@smithy/core", + "hash": "sha512-NUH8R4O6FkN8HKMojzbGg/5pNjsfTjlMmeFclyPfPaXXUrbr5TzhWgbf7t92wfrpCHRgpjyz7ffASIS3wX28aA==" + } + }, + "npm:@smithy/credential-provider-imds": { + "type": "npm", + "name": "npm:@smithy/credential-provider-imds", + "data": { + "version": "4.2.8", + "packageName": "@smithy/credential-provider-imds", + "hash": "sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw==" + } + }, + "npm:@smithy/eventstream-codec": { + "type": "npm", + "name": "npm:@smithy/eventstream-codec", + "data": { + "version": "4.2.8", + "packageName": "@smithy/eventstream-codec", + "hash": "sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw==" + } + }, + "npm:@smithy/eventstream-serde-browser": { + "type": "npm", + "name": "npm:@smithy/eventstream-serde-browser", + "data": { + "version": "4.2.8", + "packageName": "@smithy/eventstream-serde-browser", + "hash": "sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw==" + } + }, + "npm:@smithy/eventstream-serde-config-resolver": { + "type": "npm", + "name": "npm:@smithy/eventstream-serde-config-resolver", + "data": { + "version": "4.3.8", + "packageName": "@smithy/eventstream-serde-config-resolver", + "hash": "sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ==" + } + }, + "npm:@smithy/eventstream-serde-node": { + "type": "npm", + "name": "npm:@smithy/eventstream-serde-node", + "data": { + "version": "4.2.8", + "packageName": "@smithy/eventstream-serde-node", + "hash": "sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A==" + } + }, + "npm:@smithy/eventstream-serde-universal": { + "type": "npm", + "name": "npm:@smithy/eventstream-serde-universal", + "data": { + "version": "4.2.8", + "packageName": "@smithy/eventstream-serde-universal", + "hash": "sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ==" + } + }, + "npm:@smithy/fetch-http-handler": { + "type": "npm", + "name": "npm:@smithy/fetch-http-handler", + "data": { + "version": "5.3.9", + "packageName": "@smithy/fetch-http-handler", + "hash": "sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA==" + } + }, + "npm:@smithy/hash-blob-browser": { + "type": "npm", + "name": "npm:@smithy/hash-blob-browser", + "data": { + "version": "4.2.9", + "packageName": "@smithy/hash-blob-browser", + "hash": "sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg==" + } + }, + "npm:@smithy/hash-node": { + "type": "npm", + "name": "npm:@smithy/hash-node", + "data": { + "version": "4.2.8", + "packageName": "@smithy/hash-node", + "hash": "sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA==" + } + }, + "npm:@smithy/hash-stream-node": { + "type": "npm", + "name": "npm:@smithy/hash-stream-node", + "data": { + "version": "4.2.8", + "packageName": "@smithy/hash-stream-node", + "hash": "sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w==" + } + }, + "npm:@smithy/invalid-dependency": { + "type": "npm", + "name": "npm:@smithy/invalid-dependency", + "data": { + "version": "4.2.8", + "packageName": "@smithy/invalid-dependency", + "hash": "sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ==" + } + }, + "npm:@smithy/md5-js": { + "type": "npm", + "name": "npm:@smithy/md5-js", + "data": { + "version": "4.2.8", + "packageName": "@smithy/md5-js", + "hash": "sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ==" + } + }, + "npm:@smithy/middleware-content-length": { + "type": "npm", + "name": "npm:@smithy/middleware-content-length", + "data": { + "version": "4.2.8", + "packageName": "@smithy/middleware-content-length", + "hash": "sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A==" + } + }, + "npm:@smithy/middleware-endpoint": { + "type": "npm", + "name": "npm:@smithy/middleware-endpoint", + "data": { + "version": "4.4.11", + "packageName": "@smithy/middleware-endpoint", + "hash": "sha512-/WqsrycweGGfb9sSzME4CrsuayjJF6BueBmkKlcbeU5q18OhxRrvvKlmfw3tpDsK5ilx2XUJvoukwxHB0nHs/Q==" + } + }, + "npm:@smithy/middleware-retry": { + "type": "npm", + "name": "npm:@smithy/middleware-retry", + "data": { + "version": "4.4.27", + "packageName": "@smithy/middleware-retry", + "hash": "sha512-xFUYCGRVsfgiN5EjsJJSzih9+yjStgMTCLANPlf0LVQkPDYCe0hz97qbdTZosFOiYlGBlHYityGRxrQ/hxhfVQ==" + } + }, + "npm:@smithy/middleware-serde": { + "type": "npm", + "name": "npm:@smithy/middleware-serde", + "data": { + "version": "4.2.9", + "packageName": "@smithy/middleware-serde", + "hash": "sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ==" + } + }, + "npm:@smithy/middleware-stack": { + "type": "npm", + "name": "npm:@smithy/middleware-stack", + "data": { + "version": "4.2.8", + "packageName": "@smithy/middleware-stack", + "hash": "sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA==" + } + }, + "npm:@smithy/node-config-provider": { + "type": "npm", + "name": "npm:@smithy/node-config-provider", + "data": { + "version": "4.3.8", + "packageName": "@smithy/node-config-provider", + "hash": "sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg==" + } + }, + "npm:@smithy/node-http-handler": { + "type": "npm", + "name": "npm:@smithy/node-http-handler", + "data": { + "version": "4.4.8", + "packageName": "@smithy/node-http-handler", + "hash": "sha512-q9u+MSbJVIJ1QmJ4+1u+cERXkrhuILCBDsJUBAW1MPE6sFonbCNaegFuwW9ll8kh5UdyY3jOkoOGlc7BesoLpg==" + } + }, + "npm:@smithy/property-provider": { + "type": "npm", + "name": "npm:@smithy/property-provider", + "data": { + "version": "4.2.8", + "packageName": "@smithy/property-provider", + "hash": "sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w==" + } + }, + "npm:@smithy/protocol-http": { + "type": "npm", + "name": "npm:@smithy/protocol-http", + "data": { + "version": "5.3.8", + "packageName": "@smithy/protocol-http", + "hash": "sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ==" + } + }, + "npm:@smithy/querystring-builder": { + "type": "npm", + "name": "npm:@smithy/querystring-builder", + "data": { + "version": "4.2.8", + "packageName": "@smithy/querystring-builder", + "hash": "sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw==" + } + }, + "npm:@smithy/querystring-parser": { + "type": "npm", + "name": "npm:@smithy/querystring-parser", + "data": { + "version": "4.2.8", + "packageName": "@smithy/querystring-parser", + "hash": "sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA==" + } + }, + "npm:@smithy/service-error-classification": { + "type": "npm", + "name": "npm:@smithy/service-error-classification", + "data": { + "version": "4.2.8", + "packageName": "@smithy/service-error-classification", + "hash": "sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ==" + } + }, + "npm:@smithy/shared-ini-file-loader": { + "type": "npm", + "name": "npm:@smithy/shared-ini-file-loader", + "data": { + "version": "4.4.3", + "packageName": "@smithy/shared-ini-file-loader", + "hash": "sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg==" + } + }, + "npm:@smithy/signature-v4": { + "type": "npm", + "name": "npm:@smithy/signature-v4", + "data": { + "version": "5.3.8", + "packageName": "@smithy/signature-v4", + "hash": "sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg==" + } + }, + "npm:@smithy/smithy-client": { + "type": "npm", + "name": "npm:@smithy/smithy-client", + "data": { + "version": "4.10.12", + "packageName": "@smithy/smithy-client", + "hash": "sha512-VKO/HKoQ5OrSHW6AJUmEnUKeXI1/5LfCwO9cwyao7CmLvGnZeM1i36Lyful3LK1XU7HwTVieTqO1y2C/6t3qtA==" + } + }, + "npm:@smithy/types": { + "type": "npm", + "name": "npm:@smithy/types", + "data": { + "version": "4.12.0", + "packageName": "@smithy/types", + "hash": "sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw==" + } + }, + "npm:@smithy/url-parser": { + "type": "npm", + "name": "npm:@smithy/url-parser", + "data": { + "version": "4.2.8", + "packageName": "@smithy/url-parser", + "hash": "sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA==" + } + }, + "npm:@smithy/util-base64": { + "type": "npm", + "name": "npm:@smithy/util-base64", + "data": { + "version": "4.3.0", + "packageName": "@smithy/util-base64", + "hash": "sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==" + } + }, + "npm:@smithy/util-body-length-browser": { + "type": "npm", + "name": "npm:@smithy/util-body-length-browser", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-body-length-browser", + "hash": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==" + } + }, + "npm:@smithy/util-body-length-node": { + "type": "npm", + "name": "npm:@smithy/util-body-length-node", + "data": { + "version": "4.2.1", + "packageName": "@smithy/util-body-length-node", + "hash": "sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==" + } + }, + "npm:@smithy/util-config-provider": { + "type": "npm", + "name": "npm:@smithy/util-config-provider", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-config-provider", + "hash": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==" + } + }, + "npm:@smithy/util-defaults-mode-browser": { + "type": "npm", + "name": "npm:@smithy/util-defaults-mode-browser", + "data": { + "version": "4.3.26", + "packageName": "@smithy/util-defaults-mode-browser", + "hash": "sha512-vva0dzYUTgn7DdE0uaha10uEdAgmdLnNFowKFjpMm6p2R0XDk5FHPX3CBJLzWQkQXuEprsb0hGz9YwbicNWhjw==" + } + }, + "npm:@smithy/util-defaults-mode-node": { + "type": "npm", + "name": "npm:@smithy/util-defaults-mode-node", + "data": { + "version": "4.2.29", + "packageName": "@smithy/util-defaults-mode-node", + "hash": "sha512-c6D7IUBsZt/aNnTBHMTf+OVh+h/JcxUUgfTcIJaWRe6zhOum1X+pNKSZtZ+7fbOn5I99XVFtmrnXKv8yHHErTQ==" + } + }, + "npm:@smithy/util-endpoints": { + "type": "npm", + "name": "npm:@smithy/util-endpoints", + "data": { + "version": "3.2.8", + "packageName": "@smithy/util-endpoints", + "hash": "sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw==" + } + }, + "npm:@smithy/util-hex-encoding": { + "type": "npm", + "name": "npm:@smithy/util-hex-encoding", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-hex-encoding", + "hash": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==" + } + }, + "npm:@smithy/util-middleware": { + "type": "npm", + "name": "npm:@smithy/util-middleware", + "data": { + "version": "4.2.8", + "packageName": "@smithy/util-middleware", + "hash": "sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A==" + } + }, + "npm:@smithy/util-retry": { + "type": "npm", + "name": "npm:@smithy/util-retry", + "data": { + "version": "4.2.8", + "packageName": "@smithy/util-retry", + "hash": "sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg==" + } + }, + "npm:@smithy/util-stream": { + "type": "npm", + "name": "npm:@smithy/util-stream", + "data": { + "version": "4.5.10", + "packageName": "@smithy/util-stream", + "hash": "sha512-jbqemy51UFSZSp2y0ZmRfckmrzuKww95zT9BYMmuJ8v3altGcqjwoV1tzpOwuHaKrwQrCjIzOib499ymr2f98g==" + } + }, + "npm:@smithy/util-uri-escape": { + "type": "npm", + "name": "npm:@smithy/util-uri-escape", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-uri-escape", + "hash": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==" + } + }, + "npm:@smithy/util-waiter": { + "type": "npm", + "name": "npm:@smithy/util-waiter", + "data": { + "version": "4.2.8", + "packageName": "@smithy/util-waiter", + "hash": "sha512-n+lahlMWk+aejGuax7DPWtqav8HYnWxQwR+LCG2BgCUmaGcTe9qZCFsmw8TMg9iG75HOwhrJCX9TCJRLH+Yzqg==" + } + }, + "npm:@smithy/uuid": { + "type": "npm", + "name": "npm:@smithy/uuid", + "data": { + "version": "1.1.0", + "packageName": "@smithy/uuid", + "hash": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==" + } + }, "npm:@svgr/babel-plugin-add-jsx-attribute": { "type": "npm", "name": "npm:@svgr/babel-plugin-add-jsx-attribute", @@ -3298,9 +4189,9 @@ "type": "npm", "name": "npm:source-map", "data": { - "version": "0.7.4", + "version": "0.7.6", "packageName": "source-map", - "hash": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + "hash": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==" } }, "npm:source-map-support@0.5.21": { @@ -3339,51 +4230,6 @@ "hash": "sha512-0vGqD6FSW67PaZUZABkA+ADKsX7OUY/PwNEz1SbQdCvVk/e4Z36Gwh7mFVBQH9RIsMonTyhV1RHkwkGnEfR3zQ==" } }, - "npm:commander@8.3.0": { - "type": "npm", - "name": "npm:commander@8.3.0", - "data": { - "version": "8.3.0", - "packageName": "commander", - "hash": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - } - }, - "npm:commander": { - "type": "npm", - "name": "npm:commander", - "data": { - "version": "6.2.1", - "packageName": "commander", - "hash": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" - } - }, - "npm:commander@7.2.0": { - "type": "npm", - "name": "npm:commander@7.2.0", - "data": { - "version": "7.2.0", - "packageName": "commander", - "hash": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - } - }, - "npm:commander@2.20.3": { - "type": "npm", - "name": "npm:commander@2.20.3", - "data": { - "version": "2.20.3", - "packageName": "commander", - "hash": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - } - }, - "npm:commander@10.0.1": { - "type": "npm", - "name": "npm:commander@10.0.1", - "data": { - "version": "10.0.1", - "packageName": "commander", - "hash": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==" - } - }, "npm:@swc/core": { "type": "npm", "name": "npm:@swc/core", @@ -3514,9 +4360,9 @@ "type": "npm", "name": "npm:@swc/types", "data": { - "version": "0.1.22", + "version": "0.1.23", "packageName": "@swc/types", - "hash": "sha512-D13mY/ZA4PPEFSy6acki9eBT/3WgjMoRqNcdpIvjaYLQ44Xk5BdaL7UkDxAh6Z9UOe7tCCp67BVmZCojYp9owg==" + "hash": "sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==" } }, "npm:@szmarczak/http-timer": { @@ -3645,15 +4491,6 @@ "hash": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==" } }, - "npm:@types/bson": { - "type": "npm", - "name": "npm:@types/bson", - "data": { - "version": "4.0.5", - "packageName": "@types/bson", - "hash": "sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg==" - } - }, "npm:@types/cacheable-request": { "type": "npm", "name": "npm:@types/cacheable-request", @@ -3717,15 +4554,6 @@ "hash": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" } }, - "npm:@types/estree@1.0.7": { - "type": "npm", - "name": "npm:@types/estree@1.0.7", - "data": { - "version": "1.0.7", - "packageName": "@types/estree", - "hash": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" - } - }, "npm:@types/express": { "type": "npm", "name": "npm:@types/express", @@ -3739,9 +4567,9 @@ "type": "npm", "name": "npm:@types/express-serve-static-core", "data": { - "version": "5.0.6", + "version": "5.0.7", "packageName": "@types/express-serve-static-core", - "hash": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==" + "hash": "sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==" } }, "npm:@types/express-serve-static-core@4.19.6": { @@ -3915,6 +4743,15 @@ "hash": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" } }, + "npm:@types/jsonwebtoken": { + "type": "npm", + "name": "npm:@types/jsonwebtoken", + "data": { + "version": "9.0.10", + "packageName": "@types/jsonwebtoken", + "hash": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==" + } + }, "npm:@types/keyv": { "type": "npm", "name": "npm:@types/keyv", @@ -3928,9 +4765,9 @@ "type": "npm", "name": "npm:@types/lodash", "data": { - "version": "4.17.17", + "version": "4.17.20", "packageName": "@types/lodash", - "hash": "sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==" + "hash": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==" } }, "npm:@types/mime": { @@ -3946,18 +4783,27 @@ "type": "npm", "name": "npm:@types/minimatch", "data": { - "version": "5.1.2", + "version": "6.0.0", "packageName": "@types/minimatch", - "hash": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" + "hash": "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==" } }, "npm:@types/mongodb": { "type": "npm", "name": "npm:@types/mongodb", "data": { - "version": "3.6.20", + "version": "4.0.7", "packageName": "@types/mongodb", - "hash": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==" + "hash": "sha512-lPUYPpzA43baXqnd36cZ9xxorprybxXDzteVKCPAdp14ppHtFJHnXYvNpmBvtMUTb5fKXVv6sVbzo1LHkWhJlw==" + } + }, + "npm:@types/ms": { + "type": "npm", + "name": "npm:@types/ms", + "data": { + "version": "2.1.0", + "packageName": "@types/ms", + "hash": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" } }, "npm:@types/node": { @@ -3975,7 +4821,7 @@ "data": { "version": "22.6.1", "packageName": "@types/node", - "hash": "sha512-V48tCfcKb/e6cVUigLAaJDAILdMP0fUW6BidkPK4GpGjXcfbnoHasCZDwz3N3yVt5we2RHm4XTQCpv0KJz9zqw==" + "hash": "11330948847435156743" } }, "npm:@types/node-cron": { @@ -3991,9 +4837,9 @@ "type": "npm", "name": "npm:@types/node-forge", "data": { - "version": "1.3.11", + "version": "1.3.13", "packageName": "@types/node-forge", - "hash": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==" + "hash": "sha512-zePQJSW5QkwSHKRApqWCVKeKoSOt4xvEnLENZPjyvm9Ezdf/EyDeJM7jqLzOwjVICQQzvLZ63T55MKdJB5H6ww==" } }, "npm:@types/parse-json": { @@ -4158,13 +5004,22 @@ "hash": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==" } }, + "npm:@typescript-eslint/eslint-plugin@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/eslint-plugin", + "hash": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==" + } + }, "npm:@typescript-eslint/eslint-plugin@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/eslint-plugin@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/eslint-plugin", - "hash": "sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==" + "hash": "5154269998615099408" } }, "npm:@typescript-eslint/parser": { @@ -4176,31 +5031,49 @@ "hash": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==" } }, + "npm:@typescript-eslint/parser@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/parser@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/parser", + "hash": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==" + } + }, "npm:@typescript-eslint/parser@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/parser@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/parser", - "hash": "sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==" + "hash": "2528793030655814064" } }, "npm:@typescript-eslint/project-service": { "type": "npm", "name": "npm:@typescript-eslint/project-service", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/project-service", + "hash": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==" + } + }, + "npm:@typescript-eslint/project-service@8.34.0": { + "type": "npm", + "name": "npm:@typescript-eslint/project-service@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/project-service", "hash": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==" } }, - "npm:@typescript-eslint/types@8.34.0": { + "npm:@typescript-eslint/types@8.38.0": { "type": "npm", - "name": "npm:@typescript-eslint/types@8.34.0", + "name": "npm:@typescript-eslint/types@8.38.0", "data": { - "version": "8.34.0", + "version": "8.38.0", "packageName": "@typescript-eslint/types", - "hash": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==" + "hash": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==" } }, "npm:@typescript-eslint/types": { @@ -4212,6 +5085,15 @@ "hash": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==" } }, + "npm:@typescript-eslint/types@8.34.0": { + "type": "npm", + "name": "npm:@typescript-eslint/types@8.34.0", + "data": { + "version": "8.34.0", + "packageName": "@typescript-eslint/types", + "hash": "1304243825666539567" + } + }, "npm:@typescript-eslint/scope-manager": { "type": "npm", "name": "npm:@typescript-eslint/scope-manager", @@ -4221,18 +5103,36 @@ "hash": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==" } }, + "npm:@typescript-eslint/scope-manager@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/scope-manager@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/scope-manager", + "hash": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==" + } + }, "npm:@typescript-eslint/scope-manager@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/scope-manager@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/scope-manager", - "hash": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==" + "hash": "13839688833242731393" } }, "npm:@typescript-eslint/tsconfig-utils": { "type": "npm", "name": "npm:@typescript-eslint/tsconfig-utils", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/tsconfig-utils", + "hash": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==" + } + }, + "npm:@typescript-eslint/tsconfig-utils@8.34.0": { + "type": "npm", + "name": "npm:@typescript-eslint/tsconfig-utils@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/tsconfig-utils", @@ -4248,13 +5148,22 @@ "hash": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==" } }, + "npm:@typescript-eslint/type-utils@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/type-utils@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/type-utils", + "hash": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==" + } + }, "npm:@typescript-eslint/type-utils@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/type-utils@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/type-utils", - "hash": "sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==" + "hash": "16977224433903519836" } }, "npm:@typescript-eslint/typescript-estree": { @@ -4266,13 +5175,22 @@ "hash": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==" } }, + "npm:@typescript-eslint/typescript-estree@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/typescript-estree@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/typescript-estree", + "hash": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==" + } + }, "npm:@typescript-eslint/typescript-estree@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/typescript-estree@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/typescript-estree", - "hash": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==" + "hash": "7847620451363138215" } }, "npm:@typescript-eslint/utils": { @@ -4284,13 +5202,22 @@ "hash": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==" } }, + "npm:@typescript-eslint/utils@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/utils@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/utils", + "hash": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==" + } + }, "npm:@typescript-eslint/utils@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/utils@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/utils", - "hash": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==" + "hash": "16006777985047460075" } }, "npm:@typescript-eslint/visitor-keys": { @@ -4302,13 +5229,22 @@ "hash": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==" } }, + "npm:@typescript-eslint/visitor-keys@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/visitor-keys@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/visitor-keys", + "hash": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==" + } + }, "npm:@typescript-eslint/visitor-keys@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/visitor-keys@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/visitor-keys", - "hash": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==" + "hash": "9659487471867788105" } }, "npm:@ungap/structured-clone": { @@ -4599,6 +5535,15 @@ "hash": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==" } }, + "npm:acorn-import-phases": { + "type": "npm", + "name": "npm:acorn-import-phases", + "data": { + "version": "1.0.4", + "packageName": "acorn-import-phases", + "hash": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==" + } + }, "npm:acorn-jsx": { "type": "npm", "name": "npm:acorn-jsx", @@ -4657,18 +5602,18 @@ "type": "npm", "name": "npm:ajv-keywords", "data": { - "version": "3.5.2", + "version": "5.1.0", "packageName": "ajv-keywords", - "hash": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + "hash": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==" } }, - "npm:ajv-keywords@5.1.0": { + "npm:ajv-keywords@3.5.2": { "type": "npm", - "name": "npm:ajv-keywords@5.1.0", + "name": "npm:ajv-keywords@3.5.2", "data": { - "version": "5.1.0", + "version": "3.5.2", "packageName": "ajv-keywords", - "hash": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==" + "hash": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" } }, "npm:ansi-colors": { @@ -4689,6 +5634,33 @@ "hash": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==" } }, + "npm:type-fest@0.21.3": { + "type": "npm", + "name": "npm:type-fest@0.21.3", + "data": { + "version": "0.21.3", + "packageName": "type-fest", + "hash": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + } + }, + "npm:type-fest@4.41.0": { + "type": "npm", + "name": "npm:type-fest@4.41.0", + "data": { + "version": "4.41.0", + "packageName": "type-fest", + "hash": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==" + } + }, + "npm:type-fest": { + "type": "npm", + "name": "npm:type-fest", + "data": { + "version": "0.20.2", + "packageName": "type-fest", + "hash": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + } + }, "npm:ansi-html": { "type": "npm", "name": "npm:ansi-html", @@ -4729,9 +5701,9 @@ "type": "npm", "name": "npm:picomatch", "data": { - "version": "4.0.2", + "version": "4.0.3", "packageName": "picomatch", - "hash": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==" + "hash": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==" } }, "npm:arch": { @@ -4941,15 +5913,6 @@ "hash": "sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==" } }, - "npm:aws-sdk": { - "type": "npm", - "name": "npm:aws-sdk", - "data": { - "version": "2.1692.0", - "packageName": "aws-sdk", - "hash": "sha512-x511uiJ/57FIsbgUe5csJ13k3uzu25uWQE+XqfBis/sB0SFoiElJWXRkgEAUh0U6n40eT3ay5Ue4oPkRMu1LYw==" - } - }, "npm:axe-core": { "type": "npm", "name": "npm:axe-core", @@ -4963,9 +5926,9 @@ "type": "npm", "name": "npm:axios", "data": { - "version": "1.9.0", + "version": "1.11.0", "packageName": "axios", - "hash": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==" + "hash": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==" } }, "npm:axobject-query": { @@ -5085,31 +6048,49 @@ "hash": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==" } }, + "npm:yaml@1.10.2": { + "type": "npm", + "name": "npm:yaml@1.10.2", + "data": { + "version": "1.10.2", + "packageName": "yaml", + "hash": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + } + }, + "npm:yaml": { + "type": "npm", + "name": "npm:yaml", + "data": { + "version": "2.8.0", + "packageName": "yaml", + "hash": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==" + } + }, "npm:babel-plugin-polyfill-corejs2": { "type": "npm", "name": "npm:babel-plugin-polyfill-corejs2", "data": { - "version": "0.4.13", + "version": "0.4.14", "packageName": "babel-plugin-polyfill-corejs2", - "hash": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==" + "hash": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==" } }, "npm:babel-plugin-polyfill-corejs3": { "type": "npm", "name": "npm:babel-plugin-polyfill-corejs3", "data": { - "version": "0.11.1", + "version": "0.13.0", "packageName": "babel-plugin-polyfill-corejs3", - "hash": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==" + "hash": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==" } }, "npm:babel-plugin-polyfill-regenerator": { "type": "npm", "name": "npm:babel-plugin-polyfill-regenerator", "data": { - "version": "0.6.4", + "version": "0.6.5", "packageName": "babel-plugin-polyfill-regenerator", - "hash": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==" + "hash": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==" } }, "npm:babel-plugin-transform-async-to-promises": { @@ -5319,15 +6300,6 @@ "hash": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==" } }, - "npm:bl@2.2.1": { - "type": "npm", - "name": "npm:bl@2.2.1", - "data": { - "version": "2.2.1", - "packageName": "bl", - "hash": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==" - } - }, "npm:buffer@5.7.1": { "type": "npm", "name": "npm:buffer@5.7.1", @@ -5337,15 +6309,6 @@ "hash": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==" } }, - "npm:buffer": { - "type": "npm", - "name": "npm:buffer", - "data": { - "version": "4.9.2", - "packageName": "buffer", - "hash": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==" - } - }, "npm:buffer@6.0.3": { "type": "npm", "name": "npm:buffer@6.0.3", @@ -5355,15 +6318,6 @@ "hash": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" } }, - "npm:bluebird": { - "type": "npm", - "name": "npm:bluebird", - "data": { - "version": "3.5.1", - "packageName": "bluebird", - "hash": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" - } - }, "npm:bn.js": { "type": "npm", "name": "npm:bn.js", @@ -5409,15 +6363,6 @@ "hash": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" } }, - "npm:debug@3.1.0": { - "type": "npm", - "name": "npm:debug@3.1.0", - "data": { - "version": "3.1.0", - "packageName": "debug", - "hash": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" - } - }, "npm:iconv-lite@0.4.24": { "type": "npm", "name": "npm:iconv-lite@0.4.24", @@ -5427,6 +6372,15 @@ "hash": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" } }, + "npm:iconv-lite@0.7.0": { + "type": "npm", + "name": "npm:iconv-lite@0.7.0", + "data": { + "version": "0.7.0", + "packageName": "iconv-lite", + "hash": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==" + } + }, "npm:iconv-lite": { "type": "npm", "name": "npm:iconv-lite", @@ -5445,15 +6399,6 @@ "hash": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } }, - "npm:ms@2.1.2": { - "type": "npm", - "name": "npm:ms@2.1.2", - "data": { - "version": "2.1.2", - "packageName": "ms", - "hash": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - }, "npm:ms": { "type": "npm", "name": "npm:ms", @@ -5499,6 +6444,15 @@ "hash": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" } }, + "npm:bowser": { + "type": "npm", + "name": "npm:bowser", + "data": { + "version": "2.13.1", + "packageName": "bowser", + "hash": "sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==" + } + }, "npm:braces": { "type": "npm", "name": "npm:braces", @@ -5512,9 +6466,9 @@ "type": "npm", "name": "npm:browserslist", "data": { - "version": "4.25.0", + "version": "4.25.1", "packageName": "browserslist", - "hash": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==" + "hash": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==" } }, "npm:bs-logger": { @@ -5544,13 +6498,13 @@ "hash": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==" } }, - "npm:bson@1.1.6": { + "npm:buffer-equal-constant-time": { "type": "npm", - "name": "npm:bson@1.1.6", + "name": "npm:buffer-equal-constant-time", "data": { - "version": "1.1.6", - "packageName": "bson", - "hash": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" + "version": "1.0.1", + "packageName": "buffer-equal-constant-time", + "hash": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" } }, "npm:buffer-from": { @@ -5638,9 +6592,9 @@ "type": "npm", "name": "npm:caniuse-lite", "data": { - "version": "1.0.30001721", + "version": "1.0.30001727", "packageName": "caniuse-lite", - "hash": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==" + "hash": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==" } }, "npm:chalk": { @@ -5679,6 +6633,24 @@ "hash": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==" } }, + "npm:glob-parent@5.1.2": { + "type": "npm", + "name": "npm:glob-parent@5.1.2", + "data": { + "version": "5.1.2", + "packageName": "glob-parent", + "hash": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + } + }, + "npm:glob-parent": { + "type": "npm", + "name": "npm:glob-parent", + "data": { + "version": "6.0.2", + "packageName": "glob-parent", + "hash": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" + } + }, "npm:chrome-trace-event": { "type": "npm", "name": "npm:chrome-trace-event", @@ -5890,9 +6862,9 @@ "type": "npm", "name": "npm:compression", "data": { - "version": "1.8.0", + "version": "1.8.1", "packageName": "compression", - "hash": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==" + "hash": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==" } }, "npm:concat-map": { @@ -5917,9 +6889,9 @@ "type": "npm", "name": "npm:concurrently", "data": { - "version": "9.1.2", + "version": "9.2.0", "packageName": "concurrently", - "hash": "sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==" + "hash": "sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==" } }, "npm:supports-color@8.1.1": { @@ -5967,15 +6939,6 @@ "hash": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==" } }, - "npm:content-disposition": { - "type": "npm", - "name": "npm:content-disposition", - "data": { - "version": "0.5.4", - "packageName": "content-disposition", - "hash": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==" - } - }, "npm:content-type": { "type": "npm", "name": "npm:content-type", @@ -6039,24 +7002,6 @@ "hash": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==" } }, - "npm:glob-parent@6.0.2": { - "type": "npm", - "name": "npm:glob-parent@6.0.2", - "data": { - "version": "6.0.2", - "packageName": "glob-parent", - "hash": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" - } - }, - "npm:glob-parent": { - "type": "npm", - "name": "npm:glob-parent", - "data": { - "version": "5.1.2", - "packageName": "glob-parent", - "hash": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" - } - }, "npm:globby@12.2.0": { "type": "npm", "name": "npm:globby@12.2.0", @@ -6097,18 +7042,18 @@ "type": "npm", "name": "npm:core-js-compat", "data": { - "version": "3.43.0", + "version": "3.44.0", "packageName": "core-js-compat", - "hash": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==" + "hash": "sha512-JepmAj2zfl6ogy34qfWtcE7nHKAJnKsQFRn++scjVS2bZFllwptzw61BZcZFYBPpUznLfAvh0LGhxKppk04ClA==" } }, "npm:core-js-pure": { "type": "npm", "name": "npm:core-js-pure", "data": { - "version": "3.43.0", + "version": "3.44.0", "packageName": "core-js-pure", - "hash": "sha512-i/AgxU2+A+BbJdMxh3v7/vxi2SbFqxiFmg6VsDwYB4jkucrd1BZNA9a9gphC0fYMG5IBSgQcbQnk865VCLe7xA==" + "hash": "sha512-gvMQAGB4dfVUxpYD0k3Fq8J+n5bB6Ytl15lqlZrOIXFzxOhtPaObfkQGHtMRdyjIf7z2IeNULwi1jEwyS+ltKQ==" } }, "npm:core-util-is": { @@ -6205,9 +7150,9 @@ "type": "npm", "name": "npm:css-select", "data": { - "version": "5.1.0", + "version": "5.2.2", "packageName": "css-select", - "hash": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==" + "hash": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==" } }, "npm:css-select@4.3.0": { @@ -6250,9 +7195,9 @@ "type": "npm", "name": "npm:css-what", "data": { - "version": "6.1.0", + "version": "6.2.2", "packageName": "css-what", - "hash": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + "hash": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==" } }, "npm:cssesc": { @@ -6439,9 +7384,9 @@ "type": "npm", "name": "npm:decimal.js", "data": { - "version": "10.5.0", + "version": "10.6.0", "packageName": "decimal.js", - "hash": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==" + "hash": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==" } }, "npm:decompress-response": { @@ -6552,15 +7497,6 @@ "hash": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" } }, - "npm:denque": { - "type": "npm", - "name": "npm:denque", - "data": { - "version": "1.5.1", - "packageName": "denque", - "hash": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" - } - }, "npm:depd": { "type": "npm", "name": "npm:depd", @@ -6772,9 +7708,18 @@ "type": "npm", "name": "npm:dotenv", "data": { - "version": "16.5.0", + "version": "17.2.3", + "packageName": "dotenv", + "hash": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==" + } + }, + "npm:dotenv@16.6.1": { + "type": "npm", + "name": "npm:dotenv@16.6.1", + "data": { + "version": "16.6.1", "packageName": "dotenv", - "hash": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==" + "hash": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==" } }, "npm:dotenv@16.4.7": { @@ -6813,6 +7758,15 @@ "hash": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" } }, + "npm:duplexify": { + "type": "npm", + "name": "npm:duplexify", + "data": { + "version": "4.1.3", + "packageName": "duplexify", + "hash": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==" + } + }, "npm:eastasianwidth": { "type": "npm", "name": "npm:eastasianwidth", @@ -6853,9 +7807,9 @@ "type": "npm", "name": "npm:electron-to-chromium", "data": { - "version": "1.5.166", + "version": "1.5.190", "packageName": "electron-to-chromium", - "hash": "sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==" + "hash": "sha512-k4McmnB2091YIsdCgkS0fMVMPOJgxl93ltFzaryXqwip1AaxeDqKCGLxkXODDA5Ab/D+tV5EL5+aTx76RvLRxw==" } }, "npm:emittery": { @@ -6916,18 +7870,18 @@ "type": "npm", "name": "npm:end-of-stream", "data": { - "version": "1.4.4", + "version": "1.4.5", "packageName": "end-of-stream", - "hash": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" + "hash": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==" } }, "npm:enhanced-resolve": { "type": "npm", "name": "npm:enhanced-resolve", "data": { - "version": "5.18.1", + "version": "5.18.2", "packageName": "enhanced-resolve", - "hash": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==" + "hash": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==" } }, "npm:enquirer": { @@ -7134,16 +8088,16 @@ "data": { "version": "9.28.0", "packageName": "eslint", - "hash": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==" + "hash": "3993069672115803897" } }, "npm:eslint-config-prettier": { "type": "npm", "name": "npm:eslint-config-prettier", "data": { - "version": "9.1.0", + "version": "9.1.2", "packageName": "eslint-config-prettier", - "hash": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==" + "hash": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==" } }, "npm:eslint-import-resolver-node": { @@ -7159,9 +8113,9 @@ "type": "npm", "name": "npm:eslint-module-utils", "data": { - "version": "2.12.0", + "version": "2.12.1", "packageName": "eslint-module-utils", - "hash": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==" + "hash": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==" } }, "npm:eslint-plugin-eslint-comments": { @@ -7177,18 +8131,18 @@ "type": "npm", "name": "npm:eslint-plugin-eslint-plugin", "data": { - "version": "6.4.0", + "version": "6.5.0", "packageName": "eslint-plugin-eslint-plugin", - "hash": "sha512-X94/hr7DnckX68wE6Qqeo3DsZndZSclfoewjwD249yG5z2EAOl3UGUohLIgOpmbUjcFv6AlfW3wxBnOiWkS1Iw==" + "hash": "sha512-DT8YpcXDtMBcBZN39JlkHGurHKU8eYFLavTrnowQLeNwqe/diRUsllsftgD/7dZ2/ItabNLLF2/EYapE1H+G7Q==" } }, "npm:eslint-plugin-import": { "type": "npm", "name": "npm:eslint-plugin-import", "data": { - "version": "2.31.0", + "version": "2.32.0", "packageName": "eslint-plugin-import", - "hash": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==" + "hash": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==" } }, "npm:json5@1.0.2": { @@ -7267,9 +8221,9 @@ "type": "npm", "name": "npm:eslint-plugin-prettier", "data": { - "version": "5.4.1", + "version": "5.5.3", "packageName": "eslint-plugin-prettier", - "hash": "sha512-9dF+KuU/Ilkq27A8idRP7N2DH8iUR6qXcjF3FR2wETY21PZdBrIjwCau8oboyGj9b7etWmTGEeM8e7oOed6ZWg==" + "hash": "sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==" } }, "npm:eslint-plugin-react": { @@ -7332,7 +8286,7 @@ "data": { "version": "8.4.0", "packageName": "eslint-scope", - "hash": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==" + "hash": "2542004802398266375" } }, "npm:eslint-visitor-keys": { @@ -7353,24 +8307,6 @@ "hash": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==" } }, - "npm:espree@9.6.1": { - "type": "npm", - "name": "npm:espree@9.6.1", - "data": { - "version": "9.6.1", - "packageName": "espree", - "hash": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==" - } - }, - "npm:espree": { - "type": "npm", - "name": "npm:espree", - "data": { - "version": "10.4.0", - "packageName": "espree", - "hash": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==" - } - }, "npm:find-up@5.0.0": { "type": "npm", "name": "npm:find-up@5.0.0", @@ -7452,31 +8388,22 @@ "hash": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==" } }, - "npm:type-fest@0.20.2": { - "type": "npm", - "name": "npm:type-fest@0.20.2", - "data": { - "version": "0.20.2", - "packageName": "type-fest", - "hash": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - } - }, - "npm:type-fest@4.41.0": { + "npm:espree": { "type": "npm", - "name": "npm:type-fest@4.41.0", + "name": "npm:espree", "data": { - "version": "4.41.0", - "packageName": "type-fest", - "hash": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==" + "version": "9.6.1", + "packageName": "espree", + "hash": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==" } }, - "npm:type-fest": { + "npm:espree@10.4.0": { "type": "npm", - "name": "npm:type-fest", + "name": "npm:espree@10.4.0", "data": { - "version": "0.21.3", - "packageName": "type-fest", - "hash": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "version": "10.4.0", + "packageName": "espree", + "hash": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==" } }, "npm:esprima": { @@ -7578,22 +8505,40 @@ "hash": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" } }, - "npm:events": { + "npm:lru-cache@4.1.5": { "type": "npm", - "name": "npm:events", + "name": "npm:lru-cache@4.1.5", "data": { - "version": "1.1.1", - "packageName": "events", - "hash": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==" + "version": "4.1.5", + "packageName": "lru-cache", + "hash": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==" } }, - "npm:events@3.3.0": { + "npm:lru-cache@10.4.3": { "type": "npm", - "name": "npm:events@3.3.0", + "name": "npm:lru-cache@10.4.3", "data": { - "version": "3.3.0", - "packageName": "events", - "hash": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + "version": "10.4.3", + "packageName": "lru-cache", + "hash": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + } + }, + "npm:lru-cache": { + "type": "npm", + "name": "npm:lru-cache", + "data": { + "version": "5.1.1", + "packageName": "lru-cache", + "hash": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" + } + }, + "npm:lru-cache@11.2.4": { + "type": "npm", + "name": "npm:lru-cache@11.2.4", + "data": { + "version": "11.2.4", + "packageName": "lru-cache", + "hash": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==" } }, "npm:npm-run-path@2.0.2": { @@ -7824,6 +8769,15 @@ "npm:fast-jwt": { "type": "npm", "name": "npm:fast-jwt", + "data": { + "version": "6.1.0", + "packageName": "fast-jwt", + "hash": "sha512-cGK/TXlud8INL49Iv7yRtZy0PHzNJId1shfqNCqdF0gOlWiy+1FPgjxX+ZHp/CYxFYDaoNnxeYEGzcXSkahUEQ==" + } + }, + "npm:fast-jwt@5.0.6": { + "type": "npm", + "name": "npm:fast-jwt@5.0.6", "data": { "version": "5.0.6", "packageName": "fast-jwt", @@ -7848,15 +8802,6 @@ "hash": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==" } }, - "npm:fast-redact": { - "type": "npm", - "name": "npm:fast-redact", - "data": { - "version": "3.5.0", - "packageName": "fast-redact", - "hash": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==" - } - }, "npm:fast-uri": { "type": "npm", "name": "npm:fast-uri", @@ -7866,6 +8811,15 @@ "hash": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==" } }, + "npm:fast-xml-parser": { + "type": "npm", + "name": "npm:fast-xml-parser", + "data": { + "version": "5.2.5", + "packageName": "fast-xml-parser", + "hash": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==" + } + }, "npm:fastest-levenshtein": { "type": "npm", "name": "npm:fastest-levenshtein", @@ -7888,36 +8842,63 @@ "type": "npm", "name": "npm:fastify", "data": { - "version": "5.3.3", + "version": "5.6.2", "packageName": "fastify", - "hash": "sha512-nCBiBCw9q6jPx+JJNVgO8JVnTXeUyrGcyTKPQikRkA/PanrFcOIo4R+ZnLeOLPZPGgzjomqfVarzE0kYx7qWiQ==" + "hash": "sha512-dPugdGnsvYkBlENLhCgX8yhyGCsCPrpA8lFWbTNU428l+YOnLgYHR69hzV8HWPC79n536EqzqQtvhtdaCE0dKg==" } }, - "npm:fastify-mongoose-driver": { + "npm:fastify-plugin": { "type": "npm", - "name": "npm:fastify-mongoose-driver", + "name": "npm:fastify-plugin", "data": { - "version": "3.2.0", - "packageName": "fastify-mongoose-driver", - "hash": "sha512-O18y5DUrqMjlqZ3IEHV6/HQelx+kuaVYo1T7iMEJwtqhSD3gHeS5mOOWrdsEzB7WvjyspGgbFXMKihODQUQSJQ==" + "version": "5.0.1", + "packageName": "fastify-plugin", + "hash": "sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==" } }, - "npm:fastify-plugin@1.6.1": { + "npm:fastify-raw-body": { "type": "npm", - "name": "npm:fastify-plugin@1.6.1", + "name": "npm:fastify-raw-body", "data": { - "version": "1.6.1", - "packageName": "fastify-plugin", - "hash": "sha512-APBcb27s+MjaBIerFirYmBLatoPCgmHZM6XP0K+nDL9k0yX8NJPWDY1RAC3bh6z+AB5ULS2j31BUfLMT3uaZ4A==" + "version": "5.0.0", + "packageName": "fastify-raw-body", + "hash": "sha512-2qfoaQ3BQDhZ1gtbkKZd6n0kKxJISJGM6u/skD9ljdWItAscjXrtZ1lnjr7PavmXX9j4EyCPmBDiIsLn07d5vA==" } }, - "npm:fastify-plugin": { + "npm:raw-body@3.0.1": { "type": "npm", - "name": "npm:fastify-plugin", + "name": "npm:raw-body@3.0.1", "data": { - "version": "5.0.1", - "packageName": "fastify-plugin", - "hash": "sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==" + "version": "3.0.1", + "packageName": "raw-body", + "hash": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==" + } + }, + "npm:raw-body": { + "type": "npm", + "name": "npm:raw-body", + "data": { + "version": "2.5.2", + "packageName": "raw-body", + "hash": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==" + } + }, + "npm:secure-json-parse@2.7.0": { + "type": "npm", + "name": "npm:secure-json-parse@2.7.0", + "data": { + "version": "2.7.0", + "packageName": "secure-json-parse", + "hash": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" + } + }, + "npm:secure-json-parse": { + "type": "npm", + "name": "npm:secure-json-parse", + "data": { + "version": "4.0.0", + "packageName": "secure-json-parse", + "hash": "sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==" } }, "npm:fastparallel": { @@ -7989,7 +8970,7 @@ "data": { "version": "8.0.0", "packageName": "file-entry-cache", - "hash": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==" + "hash": "16256128166423601800" } }, "npm:file-loader": { @@ -8133,7 +9114,7 @@ "data": { "version": "4.0.1", "packageName": "flat-cache", - "hash": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==" + "hash": "404706785609825744" } }, "npm:rimraf@3.0.2": { @@ -8248,9 +9229,9 @@ "type": "npm", "name": "npm:form-data", "data": { - "version": "4.0.3", + "version": "4.0.4", "packageName": "form-data", - "hash": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==" + "hash": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==" } }, "npm:forwarded": { @@ -8302,9 +9283,9 @@ "type": "npm", "name": "npm:fs-monkey", "data": { - "version": "1.0.6", + "version": "1.1.0", "packageName": "fs-monkey", - "hash": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" + "hash": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==" } }, "npm:fs-readdir-recursive": { @@ -8451,6 +9432,33 @@ "hash": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" } }, + "npm:globals": { + "type": "npm", + "name": "npm:globals", + "data": { + "version": "13.24.0", + "packageName": "globals", + "hash": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==" + } + }, + "npm:globals@14.0.0": { + "type": "npm", + "name": "npm:globals@14.0.0", + "data": { + "version": "14.0.0", + "packageName": "globals", + "hash": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==" + } + }, + "npm:globals@15.15.0": { + "type": "npm", + "name": "npm:globals@15.15.0", + "data": { + "version": "15.15.0", + "packageName": "globals", + "hash": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==" + } + }, "npm:globalthis": { "type": "npm", "name": "npm:globalthis", @@ -8784,6 +9792,24 @@ "hash": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==" } }, + "npm:mime@1.6.0": { + "type": "npm", + "name": "npm:mime@1.6.0", + "data": { + "version": "1.6.0", + "packageName": "mime", + "hash": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + } + }, + "npm:mime": { + "type": "npm", + "name": "npm:mime", + "data": { + "version": "3.0.0", + "packageName": "mime", + "hash": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" + } + }, "npm:http2-wrapper": { "type": "npm", "name": "npm:http2-wrapper", @@ -8896,9 +9922,9 @@ "type": "npm", "name": "npm:immutable", "data": { - "version": "5.1.2", + "version": "5.1.3", "packageName": "immutable", - "hash": "sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==" + "hash": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==" } }, "npm:import-cwd": { @@ -9045,15 +10071,6 @@ "hash": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" } }, - "npm:is-arguments": { - "type": "npm", - "name": "npm:is-arguments", - "data": { - "version": "1.2.0", - "packageName": "is-arguments", - "hash": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==" - } - }, "npm:is-array-buffer": { "type": "npm", "name": "npm:is-array-buffer", @@ -9792,15 +10809,6 @@ "hash": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==" } }, - "npm:jmespath": { - "type": "npm", - "name": "npm:jmespath", - "data": { - "version": "0.16.0", - "packageName": "jmespath", - "hash": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" - } - }, "npm:js-tokens": { "type": "npm", "name": "npm:js-tokens", @@ -9927,6 +10935,15 @@ "hash": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==" } }, + "npm:jsonwebtoken": { + "type": "npm", + "name": "npm:jsonwebtoken", + "data": { + "version": "9.0.3", + "packageName": "jsonwebtoken", + "hash": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==" + } + }, "npm:jsx-ast-utils": { "type": "npm", "name": "npm:jsx-ast-utils", @@ -9936,13 +10953,22 @@ "hash": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==" } }, - "npm:kareem": { + "npm:jwa": { "type": "npm", - "name": "npm:kareem", + "name": "npm:jwa", "data": { - "version": "2.3.2", - "packageName": "kareem", - "hash": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" + "version": "2.0.1", + "packageName": "jwa", + "hash": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==" + } + }, + "npm:jws": { + "type": "npm", + "name": "npm:jws", + "data": { + "version": "4.0.1", + "packageName": "jws", + "hash": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==" } }, "npm:keyv": { @@ -10161,6 +11187,60 @@ "hash": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" } }, + "npm:lodash.includes": { + "type": "npm", + "name": "npm:lodash.includes", + "data": { + "version": "4.3.0", + "packageName": "lodash.includes", + "hash": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + } + }, + "npm:lodash.isboolean": { + "type": "npm", + "name": "npm:lodash.isboolean", + "data": { + "version": "3.0.3", + "packageName": "lodash.isboolean", + "hash": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + } + }, + "npm:lodash.isinteger": { + "type": "npm", + "name": "npm:lodash.isinteger", + "data": { + "version": "4.0.4", + "packageName": "lodash.isinteger", + "hash": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + } + }, + "npm:lodash.isnumber": { + "type": "npm", + "name": "npm:lodash.isnumber", + "data": { + "version": "3.0.3", + "packageName": "lodash.isnumber", + "hash": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + } + }, + "npm:lodash.isplainobject": { + "type": "npm", + "name": "npm:lodash.isplainobject", + "data": { + "version": "4.0.6", + "packageName": "lodash.isplainobject", + "hash": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + } + }, + "npm:lodash.isstring": { + "type": "npm", + "name": "npm:lodash.isstring", + "data": { + "version": "4.0.1", + "packageName": "lodash.isstring", + "hash": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + } + }, "npm:lodash.memoize": { "type": "npm", "name": "npm:lodash.memoize", @@ -10179,6 +11259,15 @@ "hash": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" } }, + "npm:lodash.once": { + "type": "npm", + "name": "npm:lodash.once", + "data": { + "version": "4.1.1", + "packageName": "lodash.once", + "hash": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + } + }, "npm:lodash.uniq": { "type": "npm", "name": "npm:lodash.uniq", @@ -10525,18 +11614,9 @@ "type": "npm", "name": "npm:mongodb", "data": { - "version": "6.17.0", + "version": "6.21.0", "packageName": "mongodb", - "hash": "sha512-neerUzg/8U26cgruLysKEjJvoNSXhyID3RvzvdcpsIi2COYM3FS3o9nlH7fxFtefTb942dX3W9i37oPfCVj4wA==" - } - }, - "npm:mongodb@3.7.4": { - "type": "npm", - "name": "npm:mongodb@3.7.4", - "data": { - "version": "3.7.4", - "packageName": "mongodb", - "hash": "sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==" + "hash": "sha512-URyb/VXMjJ4da46OeSXg+puO39XH9DeQpWCslifrRn9JWugy0D+DvvBvkm2WxmHe61O/H19JM66p1z7RHVkZ6A==" } }, "npm:mongodb-connection-string-url": { @@ -10584,60 +11664,6 @@ "hash": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==" } }, - "npm:mongoose": { - "type": "npm", - "name": "npm:mongoose", - "data": { - "version": "5.13.23", - "packageName": "mongoose", - "hash": "sha512-Q5bo1yYOcH2wbBPP4tGmcY5VKsFkQcjUDh66YjrbneAFB3vNKQwLvteRFLuLiU17rA5SDl3UMcMJLD9VS8ng2Q==" - } - }, - "npm:mongoose-legacy-pluralize": { - "type": "npm", - "name": "npm:mongoose-legacy-pluralize", - "data": { - "version": "1.0.2", - "packageName": "mongoose-legacy-pluralize", - "hash": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" - } - }, - "npm:optional-require@1.1.8": { - "type": "npm", - "name": "npm:optional-require@1.1.8", - "data": { - "version": "1.1.8", - "packageName": "optional-require", - "hash": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==" - } - }, - "npm:optional-require": { - "type": "npm", - "name": "npm:optional-require", - "data": { - "version": "1.0.3", - "packageName": "optional-require", - "hash": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==" - } - }, - "npm:mpath": { - "type": "npm", - "name": "npm:mpath", - "data": { - "version": "0.8.4", - "packageName": "mpath", - "hash": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==" - } - }, - "npm:mquery": { - "type": "npm", - "name": "npm:mquery", - "data": { - "version": "3.2.5", - "packageName": "mquery", - "hash": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==" - } - }, "npm:multicast-dns": { "type": "npm", "name": "npm:multicast-dns", @@ -10683,15 +11709,6 @@ "hash": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" } }, - "npm:sax": { - "type": "npm", - "name": "npm:sax", - "data": { - "version": "1.2.1", - "packageName": "sax", - "hash": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==" - } - }, "npm:sax@1.2.4": { "type": "npm", "name": "npm:sax@1.2.4", @@ -10741,27 +11758,18 @@ "type": "npm", "name": "npm:node-cron", "data": { - "version": "3.0.3", + "version": "4.2.1", "packageName": "node-cron", - "hash": "sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==" - } - }, - "npm:uuid@8.3.2": { - "type": "npm", - "name": "npm:uuid@8.3.2", - "data": { - "version": "8.3.2", - "packageName": "uuid", - "hash": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "hash": "sha512-lgimEHPE/QDgFlywTd8yTR61ptugX3Qer29efeyWw2rv259HtGBNn1vZVmp8lB9uo9wC0t/AT4iGqXxia+CJFg==" } }, - "npm:uuid": { + "npm:node-cron@3.0.3": { "type": "npm", - "name": "npm:uuid", + "name": "npm:node-cron@3.0.3", "data": { - "version": "8.0.0", - "packageName": "uuid", - "hash": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==" + "version": "3.0.3", + "packageName": "node-cron", + "hash": "sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==" } }, "npm:node-forge": { @@ -10984,9 +11992,9 @@ "type": "npm", "name": "npm:on-headers", "data": { - "version": "1.0.2", + "version": "1.1.0", "packageName": "on-headers", - "hash": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + "hash": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==" } }, "npm:once": { @@ -11232,6 +12240,24 @@ "hash": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" } }, + "npm:path-scurry": { + "type": "npm", + "name": "npm:path-scurry", + "data": { + "version": "2.0.1", + "packageName": "path-scurry", + "hash": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==" + } + }, + "npm:path-scurry@1.11.1": { + "type": "npm", + "name": "npm:path-scurry@1.11.1", + "data": { + "version": "1.11.1", + "packageName": "path-scurry", + "hash": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==" + } + }, "npm:path-to-regexp": { "type": "npm", "name": "npm:path-to-regexp", @@ -11263,18 +12289,18 @@ "type": "npm", "name": "npm:pino", "data": { - "version": "9.7.0", + "version": "10.1.1", "packageName": "pino", - "hash": "sha512-vnMCM6xZTb1WDmLvtG2lE/2p+t9hDEIvTWJsu6FejkE62vB7gDhvzrpFR4Cw2to+9JNQxVnkAKVPA1KPB98vWg==" + "hash": "sha512-3qqVfpJtRQUCAOs4rTOEwLH6mwJJ/CSAlbis8fKOiMzTtXh0HN/VLsn3UWVTJ7U8DsWmxeNon2IpGb+wORXH4g==" } }, "npm:pino-abstract-transport": { "type": "npm", "name": "npm:pino-abstract-transport", "data": { - "version": "2.0.0", + "version": "3.0.0", "packageName": "pino-abstract-transport", - "hash": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==" + "hash": "sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==" } }, "npm:pino-std-serializers": { @@ -11344,9 +12370,9 @@ "type": "npm", "name": "npm:postcss", "data": { - "version": "8.5.4", + "version": "8.5.6", "packageName": "postcss", - "hash": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==" + "hash": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==" } }, "npm:postcss-calc": { @@ -11947,9 +12973,9 @@ "type": "npm", "name": "npm:prettier", "data": { - "version": "3.5.3", + "version": "3.6.2", "packageName": "prettier", - "hash": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==" + "hash": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==" } }, "npm:prettier-linter-helpers": { @@ -12100,9 +13126,9 @@ "type": "npm", "name": "npm:pump", "data": { - "version": "3.0.2", + "version": "3.0.3", "packageName": "pump", - "hash": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==" + "hash": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==" } }, "npm:punycode": { @@ -12114,15 +13140,6 @@ "hash": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" } }, - "npm:punycode@1.3.2": { - "type": "npm", - "name": "npm:punycode@1.3.2", - "data": { - "version": "1.3.2", - "packageName": "punycode", - "hash": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" - } - }, "npm:punycode.js": { "type": "npm", "name": "npm:punycode.js", @@ -12141,15 +13158,6 @@ "hash": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==" } }, - "npm:querystring": { - "type": "npm", - "name": "npm:querystring", - "data": { - "version": "0.2.0", - "packageName": "querystring", - "hash": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==" - } - }, "npm:querystringify": { "type": "npm", "name": "npm:querystringify", @@ -12204,22 +13212,13 @@ "hash": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" } }, - "npm:raw-body": { - "type": "npm", - "name": "npm:raw-body", - "data": { - "version": "2.5.2", - "packageName": "raw-body", - "hash": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==" - } - }, "npm:react-refresh": { "type": "npm", "name": "npm:react-refresh", "data": { - "version": "0.17.0", + "version": "0.18.0", "packageName": "react-refresh", - "hash": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==" + "hash": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==" } }, "npm:read-cache": { @@ -12240,6 +13239,15 @@ "hash": "sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw==" } }, + "npm:events@3.3.0": { + "type": "npm", + "name": "npm:events@3.3.0", + "data": { + "version": "3.3.0", + "packageName": "events", + "hash": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + } + }, "npm:readdirp": { "type": "npm", "name": "npm:readdirp", @@ -12303,15 +13311,6 @@ "hash": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==" } }, - "npm:regexp-clone": { - "type": "npm", - "name": "npm:regexp-clone", - "data": { - "version": "1.0.0", - "packageName": "regexp-clone", - "hash": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" - } - }, "npm:regexp.prototype.flags": { "type": "npm", "name": "npm:regexp.prototype.flags", @@ -12348,15 +13347,6 @@ "hash": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==" } }, - "npm:require-at": { - "type": "npm", - "name": "npm:require-at", - "data": { - "version": "1.0.6", - "packageName": "require-at", - "hash": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==" - } - }, "npm:require-directory": { "type": "npm", "name": "npm:require-directory", @@ -12456,13 +13446,22 @@ "hash": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" } }, + "npm:jackspeak@3.4.3": { + "type": "npm", + "name": "npm:jackspeak@3.4.3", + "data": { + "version": "3.4.3", + "packageName": "jackspeak", + "hash": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==" + } + }, "npm:rollup": { "type": "npm", "name": "npm:rollup", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "rollup", - "hash": "sha512-LW+Vse3BJPyGJGAJt1j8pWDKPd73QM8cRXYK1IxOBgL2AGLu7Xd2YOW0M2sLUBCkF5MshXXtMApyEAEzMVMsnw==" + "hash": "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==" } }, "npm:rollup-plugin-copy": { @@ -12645,15 +13644,6 @@ "hash": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" } }, - "npm:saslprep": { - "type": "npm", - "name": "npm:saslprep", - "data": { - "version": "1.0.3", - "packageName": "saslprep", - "hash": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==" - } - }, "npm:sass": { "type": "npm", "name": "npm:sass", @@ -12690,15 +13680,6 @@ "hash": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==" } }, - "npm:secure-json-parse": { - "type": "npm", - "name": "npm:secure-json-parse", - "data": { - "version": "4.0.0", - "packageName": "secure-json-parse", - "hash": "sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==" - } - }, "npm:select-hose": { "type": "npm", "name": "npm:select-hose", @@ -12856,9 +13837,9 @@ "type": "npm", "name": "npm:shell-quote", "data": { - "version": "1.8.2", + "version": "1.8.3", "packageName": "shell-quote", - "hash": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==" + "hash": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==" } }, "npm:side-channel": { @@ -12897,15 +13878,6 @@ "hash": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==" } }, - "npm:sift": { - "type": "npm", - "name": "npm:sift", - "data": { - "version": "13.5.2", - "packageName": "sift", - "hash": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" - } - }, "npm:simple-update-notifier": { "type": "npm", "name": "npm:simple-update-notifier", @@ -12924,15 +13896,6 @@ "hash": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" } }, - "npm:sliced": { - "type": "npm", - "name": "npm:sliced", - "data": { - "version": "1.0.1", - "packageName": "sliced", - "hash": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" - } - }, "npm:snake-case": { "type": "npm", "name": "npm:snake-case", @@ -12951,6 +13914,15 @@ "hash": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==" } }, + "npm:uuid@8.3.2": { + "type": "npm", + "name": "npm:uuid@8.3.2", + "data": { + "version": "8.3.2", + "packageName": "uuid", + "hash": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + }, "npm:sonic-boom": { "type": "npm", "name": "npm:sonic-boom", @@ -13086,6 +14058,15 @@ "hash": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==" } }, + "npm:stream-shift": { + "type": "npm", + "name": "npm:stream-shift", + "data": { + "version": "1.0.3", + "packageName": "stream-shift", + "hash": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + } + }, "npm:string-hash": { "type": "npm", "name": "npm:string-hash", @@ -13212,6 +14193,15 @@ "hash": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==" } }, + "npm:strnum": { + "type": "npm", + "name": "npm:strnum", + "data": { + "version": "2.1.2", + "packageName": "strnum", + "hash": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==" + } + }, "npm:strong-log-transformer": { "type": "npm", "name": "npm:strong-log-transformer", @@ -13297,9 +14287,9 @@ "type": "npm", "name": "npm:synckit", "data": { - "version": "0.11.8", + "version": "0.11.11", "packageName": "synckit", - "hash": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==" + "hash": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==" } }, "npm:tapable": { @@ -13324,9 +14314,9 @@ "type": "npm", "name": "npm:terser", "data": { - "version": "5.42.0", + "version": "5.43.1", "packageName": "terser", - "hash": "sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==" + "hash": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==" } }, "npm:terser-webpack-plugin": { @@ -13360,9 +14350,9 @@ "type": "npm", "name": "npm:thread-stream", "data": { - "version": "3.1.0", + "version": "4.0.0", "packageName": "thread-stream", - "hash": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==" + "hash": "sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==" } }, "npm:through": { @@ -13495,9 +14485,9 @@ "type": "npm", "name": "npm:ts-jest", "data": { - "version": "29.3.4", + "version": "29.4.0", "packageName": "ts-jest", - "hash": "sha512-Iqbrm8IXOmV+ggWHOTEbjwyCf2xZlUMv5npExksXohL+tk8va4Fjhb+X2+Rt9NBmgO7bJ8WpnMLOwih/DnMlFA==" + "hash": "sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==" } }, "npm:ts-loader": { @@ -13614,16 +14604,16 @@ "data": { "version": "5.8.3", "packageName": "typescript", - "hash": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==" + "hash": "11120043928876084114" } }, "npm:typescript-eslint": { "type": "npm", "name": "npm:typescript-eslint", "data": { - "version": "8.34.0", + "version": "8.38.0", "packageName": "typescript-eslint", - "hash": "sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==" + "hash": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==" } }, "npm:uc.micro": { @@ -13657,18 +14647,9 @@ "type": "npm", "name": "npm:undici", "data": { - "version": "7.10.0", + "version": "7.18.2", "packageName": "undici", - "hash": "sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==" - } - }, - "npm:undici-types": { - "type": "npm", - "name": "npm:undici-types", - "data": { - "version": "6.19.8", - "packageName": "undici-types", - "hash": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + "hash": "sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==" } }, "npm:unicode-canonical-property-names-ecmascript": { @@ -13752,15 +14733,6 @@ "hash": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" } }, - "npm:url": { - "type": "npm", - "name": "npm:url", - "data": { - "version": "0.10.3", - "packageName": "url", - "hash": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==" - } - }, "npm:url-join": { "type": "npm", "name": "npm:url-join", @@ -13779,15 +14751,6 @@ "hash": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==" } }, - "npm:util": { - "type": "npm", - "name": "npm:util", - "data": { - "version": "0.12.5", - "packageName": "util", - "hash": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==" - } - }, "npm:util-deprecate": { "type": "npm", "name": "npm:util-deprecate", @@ -13900,9 +14863,9 @@ "type": "npm", "name": "npm:webpack", "data": { - "version": "5.99.9", + "version": "5.100.2", "packageName": "webpack", - "hash": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==" + "hash": "sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw==" } }, "npm:webpack-cli": { @@ -13954,9 +14917,9 @@ "type": "npm", "name": "npm:webpack-sources", "data": { - "version": "3.3.2", + "version": "3.3.3", "packageName": "webpack-sources", - "hash": "sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==" + "hash": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==" } }, "npm:webpack-subresource-integrity": { @@ -14089,9 +15052,9 @@ "type": "npm", "name": "npm:ws", "data": { - "version": "8.18.2", + "version": "8.18.3", "packageName": "ws", - "hash": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==" + "hash": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==" } }, "npm:xml-name-validator": { @@ -14103,24 +15066,6 @@ "hash": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==" } }, - "npm:xml2js": { - "type": "npm", - "name": "npm:xml2js", - "data": { - "version": "0.6.2", - "packageName": "xml2js", - "hash": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==" - } - }, - "npm:xmlbuilder": { - "type": "npm", - "name": "npm:xmlbuilder", - "data": { - "version": "11.0.1", - "packageName": "xmlbuilder", - "hash": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - } - }, "npm:xmlchars": { "type": "npm", "name": "npm:xmlchars", @@ -14181,7 +15126,7 @@ "data": { "version": "1.2.9", "packageName": "@eslint/compat", - "hash": "sha512-gCdSY54n7k+driCadyMNv8JSPzYLeDVM/ikZRtvtROBpRdFSkS8W9A82MqsaY7lZuwL0wiapgD0NT1xT0hyJsA==" + "hash": "6936902268944395473" } } }, @@ -14197,4588 +15142,7648 @@ "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:@babel/core", + "source": "npm:@aws-crypto/crc32", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:@aws-crypto/crc32", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:commander", + "source": "npm:@aws-crypto/crc32", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:convert-source-map", + "source": "npm:@aws-crypto/crc32c", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:fs-readdir-recursive", + "source": "npm:@aws-crypto/crc32c", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:glob", + "source": "npm:@aws-crypto/crc32c", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:make-dir", + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:@aws-crypto/supports-web-crypto", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:slash", + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:@nicolo-ribaudo/chokidar-2", + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:chokidar", + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:@aws-sdk/util-locate-window", "type": "static" }, { - "source": "npm:@babel/code-frame", - "target": "npm:@babel/helper-validator-identifier", + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:@smithy/util-utf8@2.3.0", "type": "static" }, { - "source": "npm:@babel/code-frame", - "target": "npm:js-tokens", + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/code-frame", - "target": "npm:picocolors", + "source": "npm:@smithy/is-array-buffer@2.2.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@ampproject/remapping", + "source": "npm:@smithy/util-buffer-from@2.2.0", + "target": "npm:@smithy/is-array-buffer@2.2.0", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/code-frame", + "source": "npm:@smithy/util-buffer-from@2.2.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/generator", + "source": "npm:@smithy/util-utf8@2.3.0", + "target": "npm:@smithy/util-buffer-from@2.2.0", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@smithy/util-utf8@2.3.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/helper-module-transforms", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@aws-crypto/sha256-js", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/helpers", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@aws-crypto/supports-web-crypto", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/parser", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/template", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/traverse", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@aws-sdk/util-locate-window", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/types", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@smithy/util-utf8@2.3.0", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:convert-source-map", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:debug", + "source": "npm:@smithy/is-array-buffer@2.2.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:gensync", + "source": "npm:@smithy/util-buffer-from@2.2.0", + "target": "npm:@smithy/is-array-buffer@2.2.0", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:json5", + "source": "npm:@smithy/util-buffer-from@2.2.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:semver", + "source": "npm:@smithy/util-utf8@2.3.0", + "target": "npm:@smithy/util-buffer-from@2.2.0", "type": "static" }, { - "source": "npm:@babel/generator", - "target": "npm:@babel/parser", + "source": "npm:@smithy/util-utf8@2.3.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/generator", - "target": "npm:@babel/types", + "source": "npm:@aws-crypto/sha256-js", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/generator", - "target": "npm:@jridgewell/gen-mapping", + "source": "npm:@aws-crypto/sha256-js", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/generator", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:@aws-crypto/sha256-js", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/generator", - "target": "npm:jsesc", + "source": "npm:@aws-crypto/supports-web-crypto", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/helper-annotate-as-pure", - "target": "npm:@babel/types", + "source": "npm:@aws-crypto/util", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/helper-compilation-targets", - "target": "npm:@babel/compat-data", + "source": "npm:@aws-crypto/util", + "target": "npm:@smithy/util-utf8@2.3.0", "type": "static" }, { - "source": "npm:@babel/helper-compilation-targets", - "target": "npm:@babel/helper-validator-option", + "source": "npm:@aws-crypto/util", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/helper-compilation-targets", - "target": "npm:browserslist", + "source": "npm:@smithy/is-array-buffer@2.2.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/helper-compilation-targets", - "target": "npm:lru-cache", + "source": "npm:@smithy/util-buffer-from@2.2.0", + "target": "npm:@smithy/is-array-buffer@2.2.0", "type": "static" }, { - "source": "npm:@babel/helper-compilation-targets", - "target": "npm:semver", + "source": "npm:@smithy/util-buffer-from@2.2.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/core", + "source": "npm:@smithy/util-utf8@2.3.0", + "target": "npm:@smithy/util-buffer-from@2.2.0", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@smithy/util-utf8@2.3.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/helper-member-expression-to-functions", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-crypto/sha256-browser", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/helper-optimise-call-expression", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-crypto/sha256-js", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/helper-replace-supers", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/credential-provider-node", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/middleware-host-header", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:semver", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/middleware-logger", "type": "static" }, { - "source": "npm:@babel/helper-create-regexp-features-plugin", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/middleware-recursion-detection", "type": "static" }, { - "source": "npm:@babel/helper-create-regexp-features-plugin", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/middleware-user-agent", "type": "static" }, { - "source": "npm:@babel/helper-create-regexp-features-plugin", - "target": "npm:regexpu-core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/region-config-resolver", "type": "static" }, { - "source": "npm:@babel/helper-create-regexp-features-plugin", - "target": "npm:semver", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/util-endpoints", "type": "static" }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/util-user-agent-browser", "type": "static" }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/util-user-agent-node", "type": "static" }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:debug", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/config-resolver", "type": "static" }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:lodash.debounce", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:resolve", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/eventstream-serde-browser", "type": "static" }, { - "source": "npm:@babel/helper-member-expression-to-functions", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/eventstream-serde-config-resolver", "type": "static" }, { - "source": "npm:@babel/helper-member-expression-to-functions", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/eventstream-serde-node", "type": "static" }, { - "source": "npm:@babel/helper-module-imports", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/fetch-http-handler", "type": "static" }, { - "source": "npm:@babel/helper-module-imports", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/hash-node", "type": "static" }, { - "source": "npm:@babel/helper-module-transforms", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/invalid-dependency", "type": "static" }, { - "source": "npm:@babel/helper-module-transforms", - "target": "npm:@babel/helper-module-imports", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/middleware-content-length", "type": "static" }, { - "source": "npm:@babel/helper-module-transforms", - "target": "npm:@babel/helper-validator-identifier", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@babel/helper-module-transforms", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/middleware-retry", "type": "static" }, { - "source": "npm:@babel/helper-optimise-call-expression", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/middleware-serde", "type": "static" }, { - "source": "npm:@babel/helper-remap-async-to-generator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/middleware-stack", "type": "static" }, { - "source": "npm:@babel/helper-remap-async-to-generator", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/helper-remap-async-to-generator", - "target": "npm:@babel/helper-wrap-function", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/node-http-handler", "type": "static" }, { - "source": "npm:@babel/helper-remap-async-to-generator", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/helper-replace-supers", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/helper-replace-supers", - "target": "npm:@babel/helper-member-expression-to-functions", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/helper-replace-supers", - "target": "npm:@babel/helper-optimise-call-expression", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:@babel/helper-replace-supers", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/helper-skip-transparent-expression-wrappers", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-body-length-browser", "type": "static" }, { - "source": "npm:@babel/helper-skip-transparent-expression-wrappers", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-body-length-node", "type": "static" }, { - "source": "npm:@babel/helper-wrap-function", - "target": "npm:@babel/template", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-defaults-mode-browser", "type": "static" }, { - "source": "npm:@babel/helper-wrap-function", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-defaults-mode-node", "type": "static" }, { - "source": "npm:@babel/helper-wrap-function", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-endpoints", "type": "static" }, { - "source": "npm:@babel/helpers", - "target": "npm:@babel/template", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/helpers", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-retry", "type": "static" }, { - "source": "npm:@babel/parser", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-waiter", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-crypto/sha1-browser", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-crypto/sha256-browser", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-crypto/sha256-js", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/credential-provider-node", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-bucket-endpoint", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-expect-continue", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", - "target": "npm:@babel/plugin-transform-optional-chaining", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-flexible-checksums", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-host-header", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-location-constraint", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-logger", "type": "static" }, { - "source": "npm:@babel/plugin-proposal-decorators", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-recursion-detection", "type": "static" }, { - "source": "npm:@babel/plugin-proposal-decorators", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-sdk-s3", "type": "static" }, { - "source": "npm:@babel/plugin-proposal-decorators", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-ssec", "type": "static" }, { - "source": "npm:@babel/plugin-proposal-decorators", - "target": "npm:@babel/plugin-syntax-decorators", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-user-agent", "type": "static" }, { - "source": "npm:@babel/plugin-proposal-private-property-in-object", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/region-config-resolver", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-async-generators", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/signature-v4-multi-region", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-async-generators", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-bigint", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/util-endpoints", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-bigint", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/util-user-agent-browser", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-class-properties", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/util-user-agent-node", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-class-properties", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/config-resolver", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-class-static-block", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-class-static-block", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/eventstream-serde-browser", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-decorators", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/eventstream-serde-config-resolver", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-decorators", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/eventstream-serde-node", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-import-assertions", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/fetch-http-handler", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-import-assertions", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/hash-blob-browser", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-import-attributes", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/hash-node", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-import-attributes", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/hash-stream-node", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-import-meta", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/invalid-dependency", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-import-meta", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/md5-js", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-json-strings", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/middleware-content-length", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-json-strings", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-jsx", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/middleware-retry", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-jsx", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/middleware-serde", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-logical-assignment-operators", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/middleware-stack", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-logical-assignment-operators", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-nullish-coalescing-operator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/node-http-handler", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-nullish-coalescing-operator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-numeric-separator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-numeric-separator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-object-rest-spread", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-object-rest-spread", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-optional-catch-binding", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-body-length-browser", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-optional-catch-binding", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-body-length-node", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-optional-chaining", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-defaults-mode-browser", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-optional-chaining", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-defaults-mode-node", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-private-property-in-object", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-endpoints", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-private-property-in-object", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-top-level-await", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-retry", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-top-level-await", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-typescript", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-typescript", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-waiter", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-unicode-sets-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-unicode-sets-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-crypto/sha256-browser", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-unicode-sets-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-crypto/sha256-js", "type": "static" }, { - "source": "npm:@babel/plugin-transform-arrow-functions", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-arrow-functions", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/middleware-host-header", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-generator-functions", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/middleware-logger", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-generator-functions", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/middleware-recursion-detection", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-generator-functions", - "target": "npm:@babel/helper-remap-async-to-generator", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/middleware-user-agent", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-generator-functions", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/region-config-resolver", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-to-generator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-to-generator", - "target": "npm:@babel/helper-module-imports", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/util-endpoints", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-to-generator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/util-user-agent-browser", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-to-generator", - "target": "npm:@babel/helper-remap-async-to-generator", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/util-user-agent-node", "type": "static" }, { - "source": "npm:@babel/plugin-transform-block-scoped-functions", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/config-resolver", "type": "static" }, { - "source": "npm:@babel/plugin-transform-block-scoped-functions", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-block-scoping", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/fetch-http-handler", "type": "static" }, { - "source": "npm:@babel/plugin-transform-block-scoping", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/hash-node", "type": "static" }, { - "source": "npm:@babel/plugin-transform-class-properties", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/invalid-dependency", "type": "static" }, { - "source": "npm:@babel/plugin-transform-class-properties", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/middleware-content-length", "type": "static" }, { - "source": "npm:@babel/plugin-transform-class-properties", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@babel/plugin-transform-class-static-block", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/middleware-retry", "type": "static" }, { - "source": "npm:@babel/plugin-transform-class-static-block", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/middleware-serde", "type": "static" }, { - "source": "npm:@babel/plugin-transform-class-static-block", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/middleware-stack", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/node-http-handler", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/helper-replace-supers", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:globals@11.12.0", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/plugin-transform-computed-properties", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-body-length-browser", "type": "static" }, { - "source": "npm:@babel/plugin-transform-computed-properties", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-body-length-node", "type": "static" }, { - "source": "npm:@babel/plugin-transform-computed-properties", - "target": "npm:@babel/template", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-defaults-mode-browser", "type": "static" }, { - "source": "npm:@babel/plugin-transform-destructuring", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-defaults-mode-node", "type": "static" }, { - "source": "npm:@babel/plugin-transform-destructuring", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-endpoints", "type": "static" }, { - "source": "npm:@babel/plugin-transform-dotall-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/plugin-transform-dotall-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-retry", "type": "static" }, { - "source": "npm:@babel/plugin-transform-dotall-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/plugin-transform-duplicate-keys", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-duplicate-keys", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core", + "target": "npm:@aws-sdk/xml-builder", "type": "static" }, { - "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-dynamic-import", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-dynamic-import", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-exponentiation-operator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/signature-v4", "type": "static" }, { - "source": "npm:@babel/plugin-transform-exponentiation-operator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/plugin-transform-export-namespace-from", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-export-namespace-from", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/plugin-transform-for-of", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/plugin-transform-for-of", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/plugin-transform-for-of", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "source": "npm:@aws-sdk/core", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-function-name", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/crc64-nvme", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-function-name", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@aws-sdk/crc64-nvme", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-function-name", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-env", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-function-name", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/credential-provider-env", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-json-strings", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-env", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-json-strings", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-env", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-literals", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-env", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-literals", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-logical-assignment-operators", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-logical-assignment-operators", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/fetch-http-handler", "type": "static" }, { - "source": "npm:@babel/plugin-transform-member-expression-literals", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/node-http-handler", "type": "static" }, { - "source": "npm:@babel/plugin-transform-member-expression-literals", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-amd", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-amd", - "target": "npm:@babel/helper-module-transforms", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-amd", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-commonjs", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-commonjs", - "target": "npm:@babel/helper-module-transforms", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-commonjs", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-systemjs", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-env", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-systemjs", - "target": "npm:@babel/helper-module-transforms", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-systemjs", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-login", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-systemjs", - "target": "npm:@babel/helper-validator-identifier", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-process", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-systemjs", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-sso", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-umd", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-web-identity", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-umd", - "target": "npm:@babel/helper-module-transforms", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/nested-clients", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-umd", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@smithy/credential-provider-imds", "type": "static" }, { - "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/plugin-transform-new-target", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-new-target", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-nullish-coalescing-operator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-nullish-coalescing-operator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@aws-sdk/nested-clients", "type": "static" }, { - "source": "npm:@babel/plugin-transform-numeric-separator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-numeric-separator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-rest-spread", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-rest-spread", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-rest-spread", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-rest-spread", - "target": "npm:@babel/plugin-transform-destructuring", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-rest-spread", - "target": "npm:@babel/plugin-transform-parameters", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-env", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-super", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-super", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-ini", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-super", - "target": "npm:@babel/helper-replace-supers", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-process", "type": "static" }, { - "source": "npm:@babel/plugin-transform-optional-catch-binding", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-sso", "type": "static" }, { - "source": "npm:@babel/plugin-transform-optional-catch-binding", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-web-identity", "type": "static" }, { - "source": "npm:@babel/plugin-transform-optional-chaining", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-optional-chaining", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@smithy/credential-provider-imds", "type": "static" }, { - "source": "npm:@babel/plugin-transform-optional-chaining", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-parameters", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/plugin-transform-parameters", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-methods", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-methods", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-methods", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-property-in-object", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-property-in-object", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-property-in-object", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-property-in-object", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-property-literals", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@aws-sdk/client-sso", "type": "static" }, { - "source": "npm:@babel/plugin-transform-property-literals", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-constant-elements", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@aws-sdk/token-providers", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-constant-elements", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-display-name", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-display-name", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/helper-module-imports", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@aws-sdk/nested-clients", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/plugin-syntax-jsx", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx-development", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx-development", - "target": "npm:@babel/plugin-transform-react-jsx", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-pure-annotations", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-pure-annotations", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-pure-annotations", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@aws-sdk/util-arn-parser", "type": "static" }, { - "source": "npm:@babel/plugin-transform-regenerator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-regenerator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-regexp-modifiers", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-regexp-modifiers", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@smithy/util-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-regexp-modifiers", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-reserved-words", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-expect-continue", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-reserved-words", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-expect-continue", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-expect-continue", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:@babel/helper-module-imports", + "source": "npm:@aws-sdk/middleware-expect-continue", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-crypto/crc32", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:babel-plugin-polyfill-corejs2", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-crypto/crc32c", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:babel-plugin-polyfill-corejs3", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:babel-plugin-polyfill-regenerator", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:semver", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-sdk/crc64-nvme", "type": "static" }, { - "source": "npm:@babel/plugin-transform-shorthand-properties", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-shorthand-properties", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/is-array-buffer", "type": "static" }, { - "source": "npm:@babel/plugin-transform-spread", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-spread", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-spread", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-sticky-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/plugin-transform-sticky-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@babel/plugin-transform-template-literals", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/plugin-transform-template-literals", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typeof-symbol", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-host-header", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typeof-symbol", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-host-header", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-host-header", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/middleware-host-header", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/middleware-location-constraint", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-location-constraint", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "source": "npm:@aws-sdk/middleware-location-constraint", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/plugin-syntax-typescript", + "source": "npm:@aws-sdk/middleware-logger", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-escapes", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-logger", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-escapes", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-logger", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-property-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-recursion-detection", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-property-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/middleware-recursion-detection", + "target": "npm:@aws/lambda-invoke-store", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-property-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-recursion-detection", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-recursion-detection", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/middleware-recursion-detection", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-sets-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-sets-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@aws-sdk/util-arn-parser", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-sets-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/compat-data", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/signature-v4", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/helper-validator-option", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/util-config-provider", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-proposal-private-property-in-object", + "source": "npm:@aws-sdk/middleware-ssec", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-syntax-import-assertions", + "source": "npm:@aws-sdk/middleware-ssec", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-syntax-import-attributes", + "source": "npm:@aws-sdk/middleware-ssec", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-syntax-unicode-sets-regex", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-arrow-functions", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-async-generator-functions", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@aws-sdk/util-endpoints", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-async-to-generator", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-block-scoped-functions", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-block-scoping", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-class-properties", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-class-static-block", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-crypto/sha256-browser", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-classes", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-crypto/sha256-js", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-computed-properties", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-destructuring", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/middleware-host-header", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-dotall-regex", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/middleware-logger", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-duplicate-keys", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/middleware-recursion-detection", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/middleware-user-agent", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-dynamic-import", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/region-config-resolver", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-exponentiation-operator", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-export-namespace-from", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/util-endpoints", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-for-of", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/util-user-agent-browser", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-function-name", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/util-user-agent-node", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-json-strings", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/config-resolver", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-literals", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-logical-assignment-operators", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/fetch-http-handler", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-member-expression-literals", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/hash-node", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-modules-amd", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/invalid-dependency", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-modules-commonjs", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/middleware-content-length", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-modules-systemjs", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-modules-umd", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/middleware-retry", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-named-capturing-groups-regex", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/middleware-serde", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-new-target", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/middleware-stack", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-nullish-coalescing-operator", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-numeric-separator", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/node-http-handler", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-object-rest-spread", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-object-super", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-optional-catch-binding", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-optional-chaining", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-parameters", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-private-methods", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-body-length-browser", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-private-property-in-object", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-body-length-node", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-property-literals", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-defaults-mode-browser", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-regenerator", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-defaults-mode-node", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-regexp-modifiers", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-endpoints", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-reserved-words", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-shorthand-properties", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-retry", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-spread", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-sticky-regex", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-template-literals", + "source": "npm:@aws-sdk/region-config-resolver", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-typeof-symbol", + "source": "npm:@aws-sdk/region-config-resolver", + "target": "npm:@smithy/config-resolver", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-unicode-escapes", + "source": "npm:@aws-sdk/region-config-resolver", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-unicode-property-regex", + "source": "npm:@aws-sdk/region-config-resolver", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-unicode-regex", + "source": "npm:@aws-sdk/region-config-resolver", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-unicode-sets-regex", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@aws-sdk/signature-v4-multi-region", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/preset-modules", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:babel-plugin-polyfill-corejs2", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@aws-sdk/util-format-url", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:babel-plugin-polyfill-corejs3", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:babel-plugin-polyfill-regenerator", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:core-js-compat", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:semver", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-modules", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/preset-modules", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", "type": "static" }, { - "source": "npm:@babel/preset-modules", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:@aws-sdk/types@3.972.0", "type": "static" }, { - "source": "npm:@babel/preset-modules", - "target": "npm:esutils", + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:@smithy/signature-v4", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/helper-validator-option", + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/plugin-transform-react-display-name", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@aws-sdk/types@3.972.0", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/plugin-transform-react-jsx", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@aws-sdk/xml-builder@3.972.0", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/plugin-transform-react-jsx-development", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/plugin-transform-react-pure-annotations", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/helper-validator-option", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/signature-v4", "type": "static" }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/plugin-syntax-jsx", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/plugin-transform-modules-commonjs", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/plugin-transform-typescript", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/template", - "target": "npm:@babel/code-frame", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/template", - "target": "npm:@babel/parser", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/template", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:@babel/code-frame", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@aws-sdk/core@3.972.0", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:@babel/generator", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@aws-sdk/types@3.972.0", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:@babel/parser", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@aws-sdk/util-arn-parser@3.972.0", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:@babel/template", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:debug", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:globals@11.12.0", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/signature-v4", "type": "static" }, { - "source": "npm:@babel/types", - "target": "npm:@babel/helper-string-parser", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/types", - "target": "npm:@babel/helper-validator-identifier", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@cspotcode/source-map-support", - "target": "npm:@jridgewell/trace-mapping@0.3.9", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/util-config-provider", "type": "static" }, { - "source": "npm:@jridgewell/trace-mapping@0.3.9", - "target": "npm:@jridgewell/resolve-uri", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@jridgewell/trace-mapping@0.3.9", - "target": "npm:@jridgewell/sourcemap-codec", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@eslint-community/eslint-utils", - "target": "npm:eslint", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@eslint-community/eslint-utils", - "target": "npm:eslint-visitor-keys", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@eslint/config-array", - "target": "npm:@eslint/object-schema", + "source": "npm:@aws-sdk/types@3.972.0", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@eslint/config-array", - "target": "npm:debug", + "source": "npm:@aws-sdk/types@3.972.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@eslint/config-array", - "target": "npm:minimatch", + "source": "npm:@aws-sdk/util-arn-parser@3.972.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@eslint/core", - "target": "npm:@types/json-schema", + "source": "npm:@aws-sdk/xml-builder@3.972.0", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:ajv", + "source": "npm:@aws-sdk/xml-builder@3.972.0", + "target": "npm:fast-xml-parser", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:debug", + "source": "npm:@aws-sdk/xml-builder@3.972.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:espree", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:globals@14.0.0", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@aws-sdk/nested-clients", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:ignore", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:import-fresh", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:js-yaml", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:minimatch", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:strip-json-comments", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@eslint/plugin-kit", - "target": "npm:@eslint/core", + "source": "npm:@aws-sdk/types", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@eslint/plugin-kit", - "target": "npm:levn", + "source": "npm:@aws-sdk/types", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@fastify/ajv-compiler", - "target": "npm:ajv@8.17.1", + "source": "npm:@aws-sdk/util-arn-parser", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@fastify/ajv-compiler", - "target": "npm:ajv-formats", + "source": "npm:@aws-sdk/util-endpoints", + "target": "npm:@aws-sdk/types@3.972.0", "type": "static" }, { - "source": "npm:@fastify/ajv-compiler", - "target": "npm:fast-uri", + "source": "npm:@aws-sdk/util-endpoints", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-deep-equal", + "source": "npm:@aws-sdk/util-endpoints", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-uri", + "source": "npm:@aws-sdk/util-endpoints", + "target": "npm:@smithy/util-endpoints", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:json-schema-traverse@1.0.0", + "source": "npm:@aws-sdk/util-endpoints", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:require-from-string", + "source": "npm:@aws-sdk/types@3.972.0", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@fastify/cors", - "target": "npm:fastify-plugin", + "source": "npm:@aws-sdk/types@3.972.0", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@fastify/cors", - "target": "npm:mnemonist", + "source": "npm:@aws-sdk/util-format-url", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@fastify/fast-json-stringify-compiler", - "target": "npm:fast-json-stringify", + "source": "npm:@aws-sdk/util-format-url", + "target": "npm:@smithy/querystring-builder", "type": "static" }, { - "source": "npm:@fastify/jwt", - "target": "npm:@fastify/error", + "source": "npm:@aws-sdk/util-format-url", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@fastify/jwt", - "target": "npm:@lukeed/ms", + "source": "npm:@aws-sdk/util-format-url", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@fastify/jwt", - "target": "npm:fast-jwt", + "source": "npm:@aws-sdk/util-locate-window", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@fastify/jwt", - "target": "npm:fastify-plugin", + "source": "npm:@aws-sdk/util-user-agent-browser", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@fastify/jwt", - "target": "npm:steed", + "source": "npm:@aws-sdk/util-user-agent-browser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@fastify/merge-json-schemas", - "target": "npm:dequal", + "source": "npm:@aws-sdk/util-user-agent-browser", + "target": "npm:bowser", "type": "static" }, { - "source": "npm:@fastify/mongodb", - "target": "npm:fastify-plugin", + "source": "npm:@aws-sdk/util-user-agent-browser", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@fastify/mongodb", - "target": "npm:mongodb", + "source": "npm:@aws-sdk/util-user-agent-node", + "target": "npm:@aws-sdk/middleware-user-agent", "type": "static" }, { - "source": "npm:@fastify/proxy-addr", - "target": "npm:@fastify/forwarded", + "source": "npm:@aws-sdk/util-user-agent-node", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@fastify/proxy-addr", - "target": "npm:ipaddr.js", + "source": "npm:@aws-sdk/util-user-agent-node", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@fastify/send", - "target": "npm:@lukeed/ms", + "source": "npm:@aws-sdk/util-user-agent-node", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@fastify/send", - "target": "npm:escape-html", + "source": "npm:@aws-sdk/util-user-agent-node", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@fastify/send", - "target": "npm:fast-decode-uri-component", + "source": "npm:@aws-sdk/xml-builder", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@fastify/send", - "target": "npm:http-errors", + "source": "npm:@aws-sdk/xml-builder", + "target": "npm:fast-xml-parser", "type": "static" }, { - "source": "npm:@fastify/send", - "target": "npm:mime@3.0.0", + "source": "npm:@aws-sdk/xml-builder", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@fastify/static", - "target": "npm:@fastify/accept-negotiator", + "source": "npm:@babel/cli", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@fastify/static", - "target": "npm:@fastify/send", + "source": "npm:@babel/cli", + "target": "npm:@jridgewell/trace-mapping", "type": "static" }, { - "source": "npm:@fastify/static", - "target": "npm:content-disposition", + "source": "npm:@babel/cli", + "target": "npm:commander@6.2.1", "type": "static" }, { - "source": "npm:@fastify/static", - "target": "npm:fastify-plugin", + "source": "npm:@babel/cli", + "target": "npm:convert-source-map", "type": "static" }, { - "source": "npm:@fastify/static", - "target": "npm:fastq", + "source": "npm:@babel/cli", + "target": "npm:fs-readdir-recursive", "type": "static" }, { - "source": "npm:@fastify/static", - "target": "npm:glob@11.0.3", + "source": "npm:@babel/cli", + "target": "npm:glob", "type": "static" }, { - "source": "npm:glob@11.0.3", - "target": "npm:foreground-child", + "source": "npm:@babel/cli", + "target": "npm:make-dir", "type": "static" }, { - "source": "npm:glob@11.0.3", - "target": "npm:jackspeak@4.1.1", + "source": "npm:@babel/cli", + "target": "npm:slash@2.0.0", "type": "static" }, { - "source": "npm:glob@11.0.3", - "target": "npm:minimatch@10.0.3", + "source": "npm:@babel/cli", + "target": "npm:@nicolo-ribaudo/chokidar-2", "type": "static" }, { - "source": "npm:glob@11.0.3", - "target": "npm:minipass", + "source": "npm:@babel/cli", + "target": "npm:chokidar", "type": "static" }, { - "source": "npm:glob@11.0.3", - "target": "npm:package-json-from-dist", + "source": "npm:@babel/code-frame", + "target": "npm:@babel/helper-validator-identifier", "type": "static" }, { - "source": "npm:glob@11.0.3", - "target": "npm:path-scurry@2.0.0", + "source": "npm:@babel/code-frame", + "target": "npm:js-tokens", "type": "static" }, { - "source": "npm:jackspeak@4.1.1", - "target": "npm:@isaacs/cliui", + "source": "npm:@babel/code-frame", + "target": "npm:picocolors", "type": "static" }, { - "source": "npm:minimatch@10.0.3", - "target": "npm:@isaacs/brace-expansion", + "source": "npm:@babel/core", + "target": "npm:@ampproject/remapping", "type": "static" }, { - "source": "npm:path-scurry@2.0.0", - "target": "npm:lru-cache@11.1.0", + "source": "npm:@babel/core", + "target": "npm:@babel/code-frame", "type": "static" }, { - "source": "npm:path-scurry@2.0.0", - "target": "npm:minipass", + "source": "npm:@babel/core", + "target": "npm:@babel/generator", "type": "static" }, { - "source": "npm:@fastify/swagger", - "target": "npm:fastify-plugin", + "source": "npm:@babel/core", + "target": "npm:@babel/helper-compilation-targets", "type": "static" }, { - "source": "npm:@fastify/swagger", - "target": "npm:json-schema-resolver", + "source": "npm:@babel/core", + "target": "npm:@babel/helper-module-transforms", "type": "static" }, { - "source": "npm:@fastify/swagger", - "target": "npm:openapi-types", + "source": "npm:@babel/core", + "target": "npm:@babel/helpers", "type": "static" }, { - "source": "npm:@fastify/swagger", - "target": "npm:rfdc", + "source": "npm:@babel/core", + "target": "npm:@babel/parser", "type": "static" }, { - "source": "npm:@fastify/swagger", - "target": "npm:yaml@2.8.0", + "source": "npm:@babel/core", + "target": "npm:@babel/template", "type": "static" }, { - "source": "npm:@fastify/swagger-ui", - "target": "npm:@fastify/static", + "source": "npm:@babel/core", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@fastify/swagger-ui", - "target": "npm:fastify-plugin", + "source": "npm:@babel/core", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:@fastify/swagger-ui", - "target": "npm:openapi-types", + "source": "npm:@babel/core", + "target": "npm:convert-source-map", "type": "static" }, { - "source": "npm:@fastify/swagger-ui", - "target": "npm:rfdc", + "source": "npm:@babel/core", + "target": "npm:debug", "type": "static" }, { - "source": "npm:@fastify/swagger-ui", - "target": "npm:yaml@2.8.0", + "source": "npm:@babel/core", + "target": "npm:gensync", "type": "static" }, { - "source": "npm:@humanfs/node", - "target": "npm:@humanfs/core", + "source": "npm:@babel/core", + "target": "npm:json5", "type": "static" }, { - "source": "npm:@humanfs/node", - "target": "npm:@humanwhocodes/retry@0.3.1", + "source": "npm:@babel/core", + "target": "npm:semver", "type": "static" }, { - "source": "npm:@humanwhocodes/config-array", - "target": "npm:@humanwhocodes/object-schema", + "source": "npm:@babel/generator", + "target": "npm:@babel/parser", "type": "static" }, { - "source": "npm:@humanwhocodes/config-array", - "target": "npm:debug", + "source": "npm:@babel/generator", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:@humanwhocodes/config-array", - "target": "npm:minimatch", + "source": "npm:@babel/generator", + "target": "npm:@jridgewell/gen-mapping", "type": "static" }, { - "source": "npm:@isaacs/brace-expansion", - "target": "npm:@isaacs/balanced-match", + "source": "npm:@babel/generator", + "target": "npm:@jridgewell/trace-mapping", "type": "static" }, { - "source": "npm:@isaacs/cliui", - "target": "npm:string-width@5.1.2", + "source": "npm:@babel/generator", + "target": "npm:jsesc", "type": "static" }, { - "source": "npm:@isaacs/cliui", - "target": "npm:string-width-cjs", + "source": "npm:@babel/helper-annotate-as-pure", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:@isaacs/cliui", - "target": "npm:strip-ansi@7.1.0", + "source": "npm:@babel/helper-compilation-targets", + "target": "npm:@babel/compat-data", "type": "static" }, { - "source": "npm:@isaacs/cliui", - "target": "npm:strip-ansi-cjs", + "source": "npm:@babel/helper-compilation-targets", + "target": "npm:@babel/helper-validator-option", "type": "static" }, { - "source": "npm:@isaacs/cliui", - "target": "npm:wrap-ansi@8.1.0", + "source": "npm:@babel/helper-compilation-targets", + "target": "npm:browserslist", "type": "static" }, { - "source": "npm:@isaacs/cliui", - "target": "npm:wrap-ansi-cjs", + "source": "npm:@babel/helper-compilation-targets", + "target": "npm:lru-cache", "type": "static" }, { - "source": "npm:string-width@5.1.2", - "target": "npm:eastasianwidth", + "source": "npm:@babel/helper-compilation-targets", + "target": "npm:semver", "type": "static" }, { - "source": "npm:string-width@5.1.2", - "target": "npm:emoji-regex", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:string-width@5.1.2", - "target": "npm:strip-ansi@7.1.0", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/helper-annotate-as-pure", "type": "static" }, { - "source": "npm:strip-ansi@7.1.0", - "target": "npm:ansi-regex@6.1.0", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/helper-member-expression-to-functions", "type": "static" }, { - "source": "npm:wrap-ansi@8.1.0", - "target": "npm:ansi-styles@6.2.1", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/helper-optimise-call-expression", "type": "static" }, { - "source": "npm:wrap-ansi@8.1.0", - "target": "npm:string-width@5.1.2", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/helper-replace-supers", "type": "static" }, { - "source": "npm:wrap-ansi@8.1.0", - "target": "npm:strip-ansi@7.1.0", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", "type": "static" }, { - "source": "npm:@istanbuljs/load-nyc-config", - "target": "npm:camelcase@5.3.1", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@istanbuljs/load-nyc-config", - "target": "npm:find-up", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:semver", "type": "static" }, { - "source": "npm:@istanbuljs/load-nyc-config", - "target": "npm:get-package-type", + "source": "npm:@babel/helper-create-regexp-features-plugin", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@istanbuljs/load-nyc-config", - "target": "npm:js-yaml@3.14.1", + "source": "npm:@babel/helper-create-regexp-features-plugin", + "target": "npm:@babel/helper-annotate-as-pure", "type": "static" }, { - "source": "npm:@istanbuljs/load-nyc-config", - "target": "npm:resolve-from", + "source": "npm:@babel/helper-create-regexp-features-plugin", + "target": "npm:regexpu-core", "type": "static" }, { - "source": "npm:argparse@1.0.10", - "target": "npm:sprintf-js", + "source": "npm:@babel/helper-create-regexp-features-plugin", + "target": "npm:semver", "type": "static" }, { - "source": "npm:js-yaml@3.14.1", - "target": "npm:argparse@1.0.10", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:js-yaml@3.14.1", - "target": "npm:esprima", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:@babel/helper-compilation-targets", "type": "static" }, { - "source": "npm:@jest/console", - "target": "npm:@jest/types", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/console", - "target": "npm:@types/node", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:debug", "type": "static" }, { - "source": "npm:@jest/console", - "target": "npm:chalk", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:lodash.debounce", "type": "static" }, { - "source": "npm:@jest/console", - "target": "npm:jest-message-util", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:resolve", "type": "static" }, { - "source": "npm:@jest/console", - "target": "npm:jest-util", + "source": "npm:@babel/helper-member-expression-to-functions", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@jest/console", - "target": "npm:slash@3.0.0", + "source": "npm:@babel/helper-member-expression-to-functions", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:@jest/console", + "source": "npm:@babel/helper-module-imports", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:@jest/reporters", + "source": "npm:@babel/helper-module-imports", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:@jest/test-result", + "source": "npm:@babel/helper-module-transforms", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:@jest/transform", + "source": "npm:@babel/helper-module-transforms", + "target": "npm:@babel/helper-module-imports", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:@jest/types", + "source": "npm:@babel/helper-module-transforms", + "target": "npm:@babel/helper-validator-identifier", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:@types/node", + "source": "npm:@babel/helper-module-transforms", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:ansi-escapes", + "source": "npm:@babel/helper-optimise-call-expression", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:chalk", + "source": "npm:@babel/helper-remap-async-to-generator", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:ci-info", + "source": "npm:@babel/helper-remap-async-to-generator", + "target": "npm:@babel/helper-annotate-as-pure", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:exit", + "source": "npm:@babel/helper-remap-async-to-generator", + "target": "npm:@babel/helper-wrap-function", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:graceful-fs", + "source": "npm:@babel/helper-remap-async-to-generator", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-changed-files", + "source": "npm:@babel/helper-replace-supers", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-config", + "source": "npm:@babel/helper-replace-supers", + "target": "npm:@babel/helper-member-expression-to-functions", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-haste-map", + "source": "npm:@babel/helper-replace-supers", + "target": "npm:@babel/helper-optimise-call-expression", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-message-util", + "source": "npm:@babel/helper-replace-supers", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-regex-util", + "source": "npm:@babel/helper-skip-transparent-expression-wrappers", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-resolve", + "source": "npm:@babel/helper-skip-transparent-expression-wrappers", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-resolve-dependencies", + "source": "npm:@babel/helper-wrap-function", + "target": "npm:@babel/template", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-runner", + "source": "npm:@babel/helper-wrap-function", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-runtime", + "source": "npm:@babel/helper-wrap-function", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-snapshot", + "source": "npm:@babel/helpers", + "target": "npm:@babel/template", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-util", + "source": "npm:@babel/helpers", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-validate", + "source": "npm:@babel/parser", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-watcher", + "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:micromatch", + "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:pretty-format", + "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:slash@3.0.0", + "source": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:strip-ansi", + "source": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/create-cache-key-function", - "target": "npm:@jest/types", + "source": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/environment", - "target": "npm:@jest/fake-timers", + "source": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/environment", - "target": "npm:@jest/types", + "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/environment", - "target": "npm:@types/node", + "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/environment", - "target": "npm:jest-mock", + "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", "type": "static" }, { - "source": "npm:@jest/expect", - "target": "npm:expect", + "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "target": "npm:@babel/plugin-transform-optional-chaining", "type": "static" }, { - "source": "npm:@jest/expect", - "target": "npm:jest-snapshot", + "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/expect-utils", - "target": "npm:jest-get-type", + "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/fake-timers", - "target": "npm:@jest/types", + "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@jest/fake-timers", - "target": "npm:@sinonjs/fake-timers", + "source": "npm:@babel/plugin-proposal-decorators", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/fake-timers", - "target": "npm:@types/node", + "source": "npm:@babel/plugin-proposal-decorators", + "target": "npm:@babel/helper-create-class-features-plugin", "type": "static" }, { - "source": "npm:@jest/fake-timers", - "target": "npm:jest-message-util", + "source": "npm:@babel/plugin-proposal-decorators", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/fake-timers", - "target": "npm:jest-mock", + "source": "npm:@babel/plugin-proposal-decorators", + "target": "npm:@babel/plugin-syntax-decorators", "type": "static" }, { - "source": "npm:@jest/fake-timers", - "target": "npm:jest-util", + "source": "npm:@babel/plugin-proposal-private-property-in-object", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/globals", - "target": "npm:@jest/environment", + "source": "npm:@babel/plugin-syntax-async-generators", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/globals", - "target": "npm:@jest/expect", + "source": "npm:@babel/plugin-syntax-async-generators", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/globals", - "target": "npm:@jest/types", + "source": "npm:@babel/plugin-syntax-bigint", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/globals", - "target": "npm:jest-mock", + "source": "npm:@babel/plugin-syntax-bigint", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@bcoe/v8-coverage", + "source": "npm:@babel/plugin-syntax-class-properties", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@jest/console", + "source": "npm:@babel/plugin-syntax-class-properties", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@jest/test-result", + "source": "npm:@babel/plugin-syntax-class-static-block", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@jest/transform", + "source": "npm:@babel/plugin-syntax-class-static-block", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@jest/types", + "source": "npm:@babel/plugin-syntax-decorators", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:@babel/plugin-syntax-decorators", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@types/node", + "source": "npm:@babel/plugin-syntax-import-assertions", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:chalk", - "type": "static" + "source": "npm:@babel/plugin-syntax-import-assertions", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-import-attributes", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-import-attributes", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-import-meta", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-import-meta", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-json-strings", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-json-strings", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-jsx", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-jsx", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-logical-assignment-operators", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-logical-assignment-operators", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-nullish-coalescing-operator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-nullish-coalescing-operator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-numeric-separator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-numeric-separator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-object-rest-spread", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-object-rest-spread", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-optional-catch-binding", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-optional-catch-binding", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-optional-chaining", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-optional-chaining", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-private-property-in-object", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-private-property-in-object", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-top-level-await", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-top-level-await", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-typescript", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-typescript", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-unicode-sets-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-unicode-sets-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-unicode-sets-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-arrow-functions", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-arrow-functions", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-generator-functions", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-generator-functions", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-generator-functions", + "target": "npm:@babel/helper-remap-async-to-generator", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-generator-functions", + "target": "npm:@babel/traverse", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-to-generator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-to-generator", + "target": "npm:@babel/helper-module-imports", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-to-generator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-to-generator", + "target": "npm:@babel/helper-remap-async-to-generator", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-block-scoped-functions", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-block-scoped-functions", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-block-scoping", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-block-scoping", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-class-properties", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-class-properties", + "target": "npm:@babel/helper-create-class-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-class-properties", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-class-static-block", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-class-static-block", + "target": "npm:@babel/helper-create-class-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-class-static-block", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/helper-annotate-as-pure", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/helper-compilation-targets", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/helper-globals", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/helper-replace-supers", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/traverse", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-computed-properties", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-computed-properties", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-computed-properties", + "target": "npm:@babel/template", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-destructuring", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-destructuring", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-destructuring", + "target": "npm:@babel/traverse", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-dotall-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-dotall-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-dotall-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-duplicate-keys", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-duplicate-keys", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-dynamic-import", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-dynamic-import", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-explicit-resource-management", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-explicit-resource-management", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-explicit-resource-management", + "target": "npm:@babel/plugin-transform-destructuring", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-exponentiation-operator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-exponentiation-operator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-export-namespace-from", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-export-namespace-from", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-for-of", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-for-of", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-for-of", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-function-name", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-function-name", + "target": "npm:@babel/helper-compilation-targets", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-function-name", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-function-name", + "target": "npm:@babel/traverse", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-json-strings", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-json-strings", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-literals", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-literals", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-logical-assignment-operators", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-logical-assignment-operators", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-member-expression-literals", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-member-expression-literals", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-amd", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-amd", + "target": "npm:@babel/helper-module-transforms", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-amd", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-commonjs", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-commonjs", + "target": "npm:@babel/helper-module-transforms", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-commonjs", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-systemjs", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-systemjs", + "target": "npm:@babel/helper-module-transforms", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-systemjs", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-systemjs", + "target": "npm:@babel/helper-validator-identifier", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-systemjs", + "target": "npm:@babel/traverse", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-umd", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-umd", + "target": "npm:@babel/helper-module-transforms", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-umd", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-new-target", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-new-target", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-nullish-coalescing-operator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-nullish-coalescing-operator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-numeric-separator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-numeric-separator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/helper-compilation-targets", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/plugin-transform-destructuring", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/plugin-transform-parameters", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/traverse", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-super", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-super", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-super", + "target": "npm:@babel/helper-replace-supers", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-optional-catch-binding", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-optional-catch-binding", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-optional-chaining", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-optional-chaining", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-optional-chaining", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-parameters", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-parameters", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-methods", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-methods", + "target": "npm:@babel/helper-create-class-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-methods", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-property-in-object", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-property-in-object", + "target": "npm:@babel/helper-annotate-as-pure", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-property-in-object", + "target": "npm:@babel/helper-create-class-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-property-in-object", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-property-literals", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-property-literals", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-constant-elements", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-constant-elements", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-display-name", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-display-name", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/helper-annotate-as-pure", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/helper-module-imports", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/plugin-syntax-jsx", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/types", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx-development", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx-development", + "target": "npm:@babel/plugin-transform-react-jsx", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-pure-annotations", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-pure-annotations", + "target": "npm:@babel/helper-annotate-as-pure", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-pure-annotations", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-regenerator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-regenerator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-regexp-modifiers", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-regexp-modifiers", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-regexp-modifiers", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-reserved-words", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-reserved-words", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:@babel/helper-module-imports", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:babel-plugin-polyfill-corejs2", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:babel-plugin-polyfill-corejs3", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:babel-plugin-polyfill-regenerator", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:semver", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-shorthand-properties", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-shorthand-properties", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-spread", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-spread", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-spread", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-sticky-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-sticky-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-template-literals", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-template-literals", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typeof-symbol", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typeof-symbol", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/helper-annotate-as-pure", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/helper-create-class-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/plugin-syntax-typescript", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-escapes", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-escapes", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-property-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-property-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-property-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-sets-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-sets-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-sets-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/compat-data", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/helper-compilation-targets", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/helper-validator-option", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-proposal-private-property-in-object", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-syntax-import-assertions", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-syntax-import-attributes", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-syntax-unicode-sets-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-arrow-functions", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-async-generator-functions", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-async-to-generator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-block-scoped-functions", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-block-scoping", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-class-properties", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-class-static-block", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-classes", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-computed-properties", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-destructuring", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-dotall-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-duplicate-keys", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-dynamic-import", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-explicit-resource-management", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-exponentiation-operator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-export-namespace-from", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-for-of", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-function-name", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-json-strings", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-literals", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-logical-assignment-operators", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-member-expression-literals", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-modules-amd", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-modules-commonjs", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-modules-systemjs", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-modules-umd", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-named-capturing-groups-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-new-target", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-nullish-coalescing-operator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-numeric-separator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-object-rest-spread", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-object-super", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-optional-catch-binding", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-optional-chaining", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-parameters", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-private-methods", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-private-property-in-object", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-property-literals", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-regenerator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-regexp-modifiers", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-reserved-words", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-shorthand-properties", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-spread", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-sticky-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-template-literals", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-typeof-symbol", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-unicode-escapes", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-unicode-property-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-unicode-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-unicode-sets-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/preset-modules", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:babel-plugin-polyfill-corejs2", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:babel-plugin-polyfill-corejs3", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:babel-plugin-polyfill-regenerator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:core-js-compat", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:semver", + "type": "static" + }, + { + "source": "npm:@babel/preset-modules", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/preset-modules", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/preset-modules", + "target": "npm:@babel/types", + "type": "static" + }, + { + "source": "npm:@babel/preset-modules", + "target": "npm:esutils", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/helper-validator-option", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/plugin-transform-react-display-name", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/plugin-transform-react-jsx", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/plugin-transform-react-jsx-development", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/plugin-transform-react-pure-annotations", + "type": "static" + }, + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/helper-validator-option", + "type": "static" + }, + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/plugin-syntax-jsx", + "type": "static" + }, + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/plugin-transform-modules-commonjs", + "type": "static" + }, + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/plugin-transform-typescript", + "type": "static" + }, + { + "source": "npm:@babel/template", + "target": "npm:@babel/code-frame", + "type": "static" + }, + { + "source": "npm:@babel/template", + "target": "npm:@babel/parser", + "type": "static" + }, + { + "source": "npm:@babel/template", + "target": "npm:@babel/types", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/code-frame", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/generator", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/helper-globals", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/parser", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/template", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/types", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:debug", + "type": "static" + }, + { + "source": "npm:@babel/types", + "target": "npm:@babel/helper-string-parser", + "type": "static" + }, + { + "source": "npm:@babel/types", + "target": "npm:@babel/helper-validator-identifier", + "type": "static" + }, + { + "source": "npm:@cspotcode/source-map-support", + "target": "npm:@jridgewell/trace-mapping@0.3.9", + "type": "static" + }, + { + "source": "npm:@jridgewell/trace-mapping@0.3.9", + "target": "npm:@jridgewell/resolve-uri", + "type": "static" + }, + { + "source": "npm:@jridgewell/trace-mapping@0.3.9", + "target": "npm:@jridgewell/sourcemap-codec", + "type": "static" + }, + { + "source": "npm:@eslint-community/eslint-utils", + "target": "npm:eslint", + "type": "static" + }, + { + "source": "npm:@eslint-community/eslint-utils", + "target": "npm:eslint-visitor-keys", + "type": "static" + }, + { + "source": "npm:@eslint/config-array", + "target": "npm:@eslint/object-schema", + "type": "static" + }, + { + "source": "npm:@eslint/config-array", + "target": "npm:debug", + "type": "static" + }, + { + "source": "npm:@eslint/config-array", + "target": "npm:minimatch@3.1.2", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", + "type": "static" + }, + { + "source": "npm:@eslint/core", + "target": "npm:@types/json-schema", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:ajv@6.12.6", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:debug", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:espree", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:globals", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:ignore", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:import-fresh", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:js-yaml@4.1.0", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:minimatch@3.1.2", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:strip-json-comments", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:fast-deep-equal", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:fast-json-stable-stringify", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:json-schema-traverse@0.4.1", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:uri-js", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, + { + "source": "npm:js-yaml@4.1.0", + "target": "npm:argparse@2.0.1", + "type": "static" + }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", + "type": "static" + }, + { + "source": "npm:@eslint/plugin-kit", + "target": "npm:@eslint/core@0.15.1", + "type": "static" + }, + { + "source": "npm:@eslint/plugin-kit", + "target": "npm:levn", + "type": "static" + }, + { + "source": "npm:@eslint/core@0.15.1", + "target": "npm:@types/json-schema", + "type": "static" + }, + { + "source": "npm:@fastify/ajv-compiler", + "target": "npm:ajv", + "type": "static" + }, + { + "source": "npm:@fastify/ajv-compiler", + "target": "npm:ajv-formats", + "type": "static" + }, + { + "source": "npm:@fastify/ajv-compiler", + "target": "npm:fast-uri", + "type": "static" + }, + { + "source": "npm:@fastify/cors", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/cors", + "target": "npm:toad-cache", + "type": "static" + }, + { + "source": "npm:@fastify/fast-json-stringify-compiler", + "target": "npm:fast-json-stringify", + "type": "static" + }, + { + "source": "npm:@fastify/jwt", + "target": "npm:@fastify/error", + "type": "static" + }, + { + "source": "npm:@fastify/jwt", + "target": "npm:@lukeed/ms", + "type": "static" + }, + { + "source": "npm:@fastify/jwt", + "target": "npm:fast-jwt", + "type": "static" + }, + { + "source": "npm:@fastify/jwt", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/jwt", + "target": "npm:steed", + "type": "static" + }, + { + "source": "npm:@fastify/merge-json-schemas", + "target": "npm:dequal", + "type": "static" + }, + { + "source": "npm:@fastify/mongodb", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/mongodb", + "target": "npm:mongodb", + "type": "static" + }, + { + "source": "npm:@fastify/proxy-addr", + "target": "npm:@fastify/forwarded", + "type": "static" + }, + { + "source": "npm:@fastify/proxy-addr", + "target": "npm:ipaddr.js", + "type": "static" + }, + { + "source": "npm:@fastify/send", + "target": "npm:@lukeed/ms", + "type": "static" + }, + { + "source": "npm:@fastify/send", + "target": "npm:escape-html", + "type": "static" + }, + { + "source": "npm:@fastify/send", + "target": "npm:fast-decode-uri-component", + "type": "static" + }, + { + "source": "npm:@fastify/send", + "target": "npm:http-errors", + "type": "static" + }, + { + "source": "npm:@fastify/send", + "target": "npm:mime", + "type": "static" + }, + { + "source": "npm:@fastify/static", + "target": "npm:@fastify/accept-negotiator", + "type": "static" + }, + { + "source": "npm:@fastify/static", + "target": "npm:@fastify/send", + "type": "static" + }, + { + "source": "npm:@fastify/static", + "target": "npm:content-disposition@1.0.1", + "type": "static" + }, + { + "source": "npm:@fastify/static", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/static", + "target": "npm:fastq", + "type": "static" + }, + { + "source": "npm:@fastify/static", + "target": "npm:glob@13.0.0", + "type": "static" + }, + { + "source": "npm:glob@13.0.0", + "target": "npm:minimatch@10.1.1", + "type": "static" + }, + { + "source": "npm:glob@13.0.0", + "target": "npm:minipass", + "type": "static" + }, + { + "source": "npm:glob@13.0.0", + "target": "npm:path-scurry", + "type": "static" + }, + { + "source": "npm:minimatch@10.1.1", + "target": "npm:@isaacs/brace-expansion", + "type": "static" + }, + { + "source": "npm:@fastify/swagger", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/swagger", + "target": "npm:json-schema-resolver", + "type": "static" + }, + { + "source": "npm:@fastify/swagger", + "target": "npm:openapi-types", + "type": "static" + }, + { + "source": "npm:@fastify/swagger", + "target": "npm:rfdc", + "type": "static" + }, + { + "source": "npm:@fastify/swagger", + "target": "npm:yaml", + "type": "static" + }, + { + "source": "npm:@fastify/swagger-ui", + "target": "npm:@fastify/static", + "type": "static" + }, + { + "source": "npm:@fastify/swagger-ui", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/swagger-ui", + "target": "npm:openapi-types", + "type": "static" + }, + { + "source": "npm:@fastify/swagger-ui", + "target": "npm:rfdc", + "type": "static" + }, + { + "source": "npm:@fastify/swagger-ui", + "target": "npm:yaml", + "type": "static" + }, + { + "source": "npm:@fastify/websocket", + "target": "npm:duplexify", + "type": "static" + }, + { + "source": "npm:@fastify/websocket", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/websocket", + "target": "npm:ws", + "type": "static" + }, + { + "source": "npm:@humanfs/node", + "target": "npm:@humanfs/core", + "type": "static" + }, + { + "source": "npm:@humanfs/node", + "target": "npm:@humanwhocodes/retry@0.3.1", + "type": "static" + }, + { + "source": "npm:@humanwhocodes/config-array", + "target": "npm:@humanwhocodes/object-schema", + "type": "static" + }, + { + "source": "npm:@humanwhocodes/config-array", + "target": "npm:debug", + "type": "static" + }, + { + "source": "npm:@humanwhocodes/config-array", + "target": "npm:minimatch@3.1.2", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", + "type": "static" + }, + { + "source": "npm:@isaacs/brace-expansion", + "target": "npm:@isaacs/balanced-match", + "type": "static" + }, + { + "source": "npm:@isaacs/cliui", + "target": "npm:string-width@5.1.2", + "type": "static" + }, + { + "source": "npm:@isaacs/cliui", + "target": "npm:string-width-cjs", + "type": "static" + }, + { + "source": "npm:@isaacs/cliui", + "target": "npm:strip-ansi@7.1.0", + "type": "static" + }, + { + "source": "npm:@isaacs/cliui", + "target": "npm:strip-ansi-cjs", + "type": "static" + }, + { + "source": "npm:@isaacs/cliui", + "target": "npm:wrap-ansi@8.1.0", + "type": "static" + }, + { + "source": "npm:@isaacs/cliui", + "target": "npm:wrap-ansi-cjs", + "type": "static" + }, + { + "source": "npm:string-width@5.1.2", + "target": "npm:eastasianwidth", + "type": "static" + }, + { + "source": "npm:string-width@5.1.2", + "target": "npm:emoji-regex", + "type": "static" + }, + { + "source": "npm:string-width@5.1.2", + "target": "npm:strip-ansi@7.1.0", + "type": "static" + }, + { + "source": "npm:strip-ansi@7.1.0", + "target": "npm:ansi-regex@6.1.0", + "type": "static" + }, + { + "source": "npm:wrap-ansi@8.1.0", + "target": "npm:ansi-styles@6.2.1", + "type": "static" + }, + { + "source": "npm:wrap-ansi@8.1.0", + "target": "npm:string-width@5.1.2", + "type": "static" + }, + { + "source": "npm:wrap-ansi@8.1.0", + "target": "npm:strip-ansi@7.1.0", + "type": "static" + }, + { + "source": "npm:@istanbuljs/load-nyc-config", + "target": "npm:camelcase@5.3.1", + "type": "static" + }, + { + "source": "npm:@istanbuljs/load-nyc-config", + "target": "npm:find-up", + "type": "static" + }, + { + "source": "npm:@istanbuljs/load-nyc-config", + "target": "npm:get-package-type", + "type": "static" + }, + { + "source": "npm:@istanbuljs/load-nyc-config", + "target": "npm:js-yaml", + "type": "static" + }, + { + "source": "npm:@istanbuljs/load-nyc-config", + "target": "npm:resolve-from", + "type": "static" + }, + { + "source": "npm:@jest/console", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/console", + "target": "npm:@types/node", + "type": "static" + }, + { + "source": "npm:@jest/console", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@jest/console", + "target": "npm:jest-message-util", + "type": "static" + }, + { + "source": "npm:@jest/console", + "target": "npm:jest-util", + "type": "static" + }, + { + "source": "npm:@jest/console", + "target": "npm:slash", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:@jest/console", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:@jest/reporters", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:@jest/test-result", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:@jest/transform", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:@types/node", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:ansi-escapes", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:ci-info", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:exit", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:graceful-fs", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-changed-files", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-config", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-haste-map", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-message-util", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-regex-util", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-resolve", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-resolve-dependencies", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-runner", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-runtime", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-snapshot", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-util", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-validate", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-watcher", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:micromatch", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:pretty-format", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:slash", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:strip-ansi", + "type": "static" + }, + { + "source": "npm:@jest/create-cache-key-function", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/environment", + "target": "npm:@jest/fake-timers", + "type": "static" + }, + { + "source": "npm:@jest/environment", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/environment", + "target": "npm:@types/node", + "type": "static" + }, + { + "source": "npm:@jest/environment", + "target": "npm:jest-mock", + "type": "static" + }, + { + "source": "npm:@jest/expect", + "target": "npm:expect", + "type": "static" + }, + { + "source": "npm:@jest/expect", + "target": "npm:jest-snapshot", + "type": "static" + }, + { + "source": "npm:@jest/expect-utils", + "target": "npm:jest-get-type", + "type": "static" + }, + { + "source": "npm:@jest/fake-timers", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/fake-timers", + "target": "npm:@sinonjs/fake-timers", + "type": "static" + }, + { + "source": "npm:@jest/fake-timers", + "target": "npm:@types/node", + "type": "static" + }, + { + "source": "npm:@jest/fake-timers", + "target": "npm:jest-message-util", + "type": "static" + }, + { + "source": "npm:@jest/fake-timers", + "target": "npm:jest-mock", + "type": "static" + }, + { + "source": "npm:@jest/fake-timers", + "target": "npm:jest-util", + "type": "static" + }, + { + "source": "npm:@jest/globals", + "target": "npm:@jest/environment", + "type": "static" + }, + { + "source": "npm:@jest/globals", + "target": "npm:@jest/expect", + "type": "static" + }, + { + "source": "npm:@jest/globals", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/globals", + "target": "npm:jest-mock", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@bcoe/v8-coverage", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@jest/console", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@jest/test-result", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@jest/transform", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@jridgewell/trace-mapping", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@types/node", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:collect-v8-coverage", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:exit", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:glob", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:graceful-fs", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:istanbul-lib-coverage", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:istanbul-lib-instrument", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:istanbul-lib-report", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:istanbul-lib-source-maps", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:istanbul-reports", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:jest-message-util", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:jest-util", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:jest-worker", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:slash", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:string-length", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:strip-ansi", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:v8-to-istanbul", + "type": "static" + }, + { + "source": "npm:@jest/schemas", + "target": "npm:@sinclair/typebox", + "type": "static" + }, + { + "source": "npm:@jest/source-map", + "target": "npm:@jridgewell/trace-mapping", + "type": "static" + }, + { + "source": "npm:@jest/source-map", + "target": "npm:callsites", + "type": "static" + }, + { + "source": "npm:@jest/source-map", + "target": "npm:graceful-fs", + "type": "static" + }, + { + "source": "npm:@jest/test-result", + "target": "npm:@jest/console", + "type": "static" + }, + { + "source": "npm:@jest/test-result", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/test-result", + "target": "npm:@types/istanbul-lib-coverage", + "type": "static" + }, + { + "source": "npm:@jest/test-result", + "target": "npm:collect-v8-coverage", + "type": "static" + }, + { + "source": "npm:@jest/test-sequencer", + "target": "npm:@jest/test-result", + "type": "static" + }, + { + "source": "npm:@jest/test-sequencer", + "target": "npm:graceful-fs", + "type": "static" + }, + { + "source": "npm:@jest/test-sequencer", + "target": "npm:jest-haste-map", + "type": "static" + }, + { + "source": "npm:@jest/test-sequencer", + "target": "npm:slash", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:@jridgewell/trace-mapping", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:babel-plugin-istanbul", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:convert-source-map", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:fast-json-stable-stringify", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:graceful-fs", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:jest-haste-map", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:jest-regex-util", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:jest-util", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:micromatch", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:pirates", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:slash", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:write-file-atomic", + "type": "static" + }, + { + "source": "npm:@jest/types", + "target": "npm:@jest/schemas", + "type": "static" + }, + { + "source": "npm:@jest/types", + "target": "npm:@types/istanbul-lib-coverage", + "type": "static" + }, + { + "source": "npm:@jest/types", + "target": "npm:@types/istanbul-reports", + "type": "static" + }, + { + "source": "npm:@jest/types", + "target": "npm:@types/node", + "type": "static" + }, + { + "source": "npm:@jest/types", + "target": "npm:@types/yargs", + "type": "static" + }, + { + "source": "npm:@jest/types", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@jridgewell/gen-mapping", + "target": "npm:@jridgewell/sourcemap-codec", + "type": "static" + }, + { + "source": "npm:@jridgewell/gen-mapping", + "target": "npm:@jridgewell/trace-mapping", + "type": "static" + }, + { + "source": "npm:@jridgewell/source-map", + "target": "npm:@jridgewell/gen-mapping", + "type": "static" + }, + { + "source": "npm:@jridgewell/source-map", + "target": "npm:@jridgewell/trace-mapping", + "type": "static" + }, + { + "source": "npm:@jridgewell/trace-mapping", + "target": "npm:@jridgewell/resolve-uri", + "type": "static" + }, + { + "source": "npm:@jridgewell/trace-mapping", + "target": "npm:@jridgewell/sourcemap-codec", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:bin-check", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:bin-version-check", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:content-disposition", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:ext-name", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:file-type", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:filenamify", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:got", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:os-filter-obj", + "type": "static" + }, + { + "source": "npm:@mongodb-js/saslprep", + "target": "npm:sparse-bitfield", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-android-arm-eabi", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-android-arm64", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-darwin-arm64", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-darwin-x64", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-freebsd-x64", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-arm-gnueabihf", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-arm64-gnu", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-arm64-musl", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-ppc64-gnu", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-riscv64-gnu", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-s390x-gnu", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-x64-gnu", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-x64-musl", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-win32-arm64-msvc", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-win32-ia32-msvc", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-win32-x64-msvc", + "type": "static" + }, + { + "source": "npm:@nodelib/fs.scandir", + "target": "npm:@nodelib/fs.stat", + "type": "static" + }, + { + "source": "npm:@nodelib/fs.scandir", + "target": "npm:run-parallel", + "type": "static" + }, + { + "source": "npm:@nodelib/fs.walk", + "target": "npm:@nodelib/fs.scandir", + "type": "static" + }, + { + "source": "npm:@nodelib/fs.walk", + "target": "npm:fastq", + "type": "static" + }, + { + "source": "npm:@nrwl/devkit", + "target": "npm:@nx/devkit", + "type": "static" + }, + { + "source": "npm:@nrwl/eslint-plugin-nx", + "target": "npm:@nx/eslint-plugin", + "type": "static" + }, + { + "source": "npm:@nrwl/jest", + "target": "npm:@nx/jest", + "type": "static" + }, + { + "source": "npm:@nrwl/js", + "target": "npm:@nx/js", + "type": "static" + }, + { + "source": "npm:@nrwl/react", + "target": "npm:@nx/react", + "type": "static" + }, + { + "source": "npm:@nrwl/rollup", + "target": "npm:@nx/rollup", + "type": "static" + }, + { + "source": "npm:@nrwl/tao", + "target": "npm:nx", + "type": "static" + }, + { + "source": "npm:@nrwl/tao", + "target": "npm:tslib", + "type": "static" + }, + { + "source": "npm:@nrwl/web", + "target": "npm:@nx/web", + "type": "static" + }, + { + "source": "npm:@nrwl/webpack", + "target": "npm:@nx/webpack", + "type": "static" + }, + { + "source": "npm:@nrwl/workspace", + "target": "npm:@nx/workspace", + "type": "static" + }, + { + "source": "npm:@nx/devkit", + "target": "npm:nx", + "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:collect-v8-coverage", + "source": "npm:@nx/devkit", + "target": "npm:@nrwl/devkit", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:exit", + "source": "npm:@nx/devkit", + "target": "npm:ejs", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:glob", + "source": "npm:@nx/devkit", + "target": "npm:enquirer", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:graceful-fs", + "source": "npm:@nx/devkit", + "target": "npm:ignore", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:istanbul-lib-coverage", + "source": "npm:@nx/devkit", + "target": "npm:minimatch", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:istanbul-lib-instrument", + "source": "npm:@nx/devkit", + "target": "npm:semver@7.7.2", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:istanbul-lib-report", + "source": "npm:@nx/devkit", + "target": "npm:tmp", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:istanbul-lib-source-maps", + "source": "npm:@nx/devkit", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:istanbul-reports", + "source": "npm:@nx/devkit", + "target": "npm:yargs-parser", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:jest-message-util", + "source": "npm:@nx/eslint", + "target": "npm:@zkochan/js-yaml", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:jest-util", + "source": "npm:@nx/eslint", + "target": "npm:eslint", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:jest-worker", + "source": "npm:@nx/eslint", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:slash@3.0.0", + "source": "npm:@nx/eslint", + "target": "npm:@nx/js", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:string-length", + "source": "npm:@nx/eslint", + "target": "npm:@nx/linter", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:strip-ansi", + "source": "npm:@nx/eslint", + "target": "npm:semver@7.7.2", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:v8-to-istanbul", + "source": "npm:@nx/eslint", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@jest/schemas", - "target": "npm:@sinclair/typebox", + "source": "npm:@nx/eslint", + "target": "npm:typescript", "type": "static" }, { - "source": "npm:@jest/source-map", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:@nx/eslint-plugin", + "target": "npm:@typescript-eslint/parser", "type": "static" }, { - "source": "npm:@jest/source-map", - "target": "npm:callsites", + "source": "npm:@nx/eslint-plugin", + "target": "npm:eslint-config-prettier", "type": "static" }, { - "source": "npm:@jest/source-map", - "target": "npm:graceful-fs", + "source": "npm:@nx/eslint-plugin", + "target": "npm:@nrwl/eslint-plugin-nx", "type": "static" }, { - "source": "npm:@jest/test-result", - "target": "npm:@jest/console", + "source": "npm:@nx/eslint-plugin", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@jest/test-result", - "target": "npm:@jest/types", + "source": "npm:@nx/eslint-plugin", + "target": "npm:@nx/js", "type": "static" }, { - "source": "npm:@jest/test-result", - "target": "npm:@types/istanbul-lib-coverage", + "source": "npm:@nx/eslint-plugin", + "target": "npm:@typescript-eslint/type-utils", "type": "static" }, { - "source": "npm:@jest/test-result", - "target": "npm:collect-v8-coverage", + "source": "npm:@nx/eslint-plugin", + "target": "npm:@typescript-eslint/utils", "type": "static" }, { - "source": "npm:@jest/test-sequencer", + "source": "npm:@nx/eslint-plugin", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:confusing-browser-globals", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:jsonc-eslint-parser", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:semver@7.7.2", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:tslib", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:@jest/reporters", + "type": "static" + }, + { + "source": "npm:@nx/jest", "target": "npm:@jest/test-result", "type": "static" }, { - "source": "npm:@jest/test-sequencer", - "target": "npm:graceful-fs", + "source": "npm:@nx/jest", + "target": "npm:@nrwl/jest", "type": "static" }, { - "source": "npm:@jest/test-sequencer", - "target": "npm:jest-haste-map", + "source": "npm:@nx/jest", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@jest/test-sequencer", - "target": "npm:slash@3.0.0", + "source": "npm:@nx/jest", + "target": "npm:@nx/js", "type": "static" }, { - "source": "npm:@jest/transform", + "source": "npm:@nx/jest", + "target": "npm:@phenomnomnominal/tsquery", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:identity-obj-proxy", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:jest-config", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:jest-resolve", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:jest-util", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:minimatch", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:resolve.exports", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:tslib", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:yargs-parser", + "type": "static" + }, + { + "source": "npm:@nx/js", "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:@jest/types", + "source": "npm:@nx/js", + "target": "npm:@babel/plugin-proposal-decorators", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:@nx/js", + "target": "npm:@babel/plugin-transform-class-properties", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:babel-plugin-istanbul", + "source": "npm:@nx/js", + "target": "npm:@babel/plugin-transform-runtime", "type": "static" }, { - "source": "npm:@jest/transform", + "source": "npm:@nx/js", + "target": "npm:@babel/preset-env", + "type": "static" + }, + { + "source": "npm:@nx/js", + "target": "npm:@babel/preset-typescript", + "type": "static" + }, + { + "source": "npm:@nx/js", + "target": "npm:@babel/runtime", + "type": "static" + }, + { + "source": "npm:@nx/js", + "target": "npm:@nrwl/js", + "type": "static" + }, + { + "source": "npm:@nx/js", + "target": "npm:@nx/devkit", + "type": "static" + }, + { + "source": "npm:@nx/js", + "target": "npm:@nx/workspace", + "type": "static" + }, + { + "source": "npm:@nx/js", + "target": "npm:babel-plugin-const-enum", + "type": "static" + }, + { + "source": "npm:@nx/js", + "target": "npm:babel-plugin-macros", + "type": "static" + }, + { + "source": "npm:@nx/js", + "target": "npm:babel-plugin-transform-typescript-metadata", + "type": "static" + }, + { + "source": "npm:@nx/js", "target": "npm:chalk", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:convert-source-map", + "source": "npm:@nx/js", + "target": "npm:columnify", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:fast-json-stable-stringify", + "source": "npm:@nx/js", + "target": "npm:detect-port", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:graceful-fs", + "source": "npm:@nx/js", + "target": "npm:fast-glob", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:jest-haste-map", + "source": "npm:@nx/js", + "target": "npm:fs-extra", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:jest-regex-util", + "source": "npm:@nx/js", + "target": "npm:ignore", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:jest-util", + "source": "npm:@nx/js", + "target": "npm:js-tokens", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:micromatch", + "source": "npm:@nx/js", + "target": "npm:minimatch", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:pirates", + "source": "npm:@nx/js", + "target": "npm:npm-package-arg", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:slash@3.0.0", + "source": "npm:@nx/js", + "target": "npm:npm-run-path", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:write-file-atomic", + "source": "npm:@nx/js", + "target": "npm:ora", "type": "static" }, { - "source": "npm:@jest/types", - "target": "npm:@jest/schemas", + "source": "npm:@nx/js", + "target": "npm:semver@7.7.2", "type": "static" }, { - "source": "npm:@jest/types", - "target": "npm:@types/istanbul-lib-coverage", + "source": "npm:@nx/js", + "target": "npm:source-map-support", "type": "static" }, { - "source": "npm:@jest/types", - "target": "npm:@types/istanbul-reports", + "source": "npm:@nx/js", + "target": "npm:ts-node@10.9.1", "type": "static" }, { - "source": "npm:@jest/types", + "source": "npm:@nx/js", + "target": "npm:tsconfig-paths", + "type": "static" + }, + { + "source": "npm:@nx/js", + "target": "npm:tslib", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:@swc/core", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", "target": "npm:@types/node", "type": "static" }, { - "source": "npm:@jest/types", - "target": "npm:@types/yargs", + "source": "npm:ts-node@10.9.1", + "target": "npm:typescript", "type": "static" }, { - "source": "npm:@jest/types", + "source": "npm:ts-node@10.9.1", + "target": "npm:@cspotcode/source-map-support", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:@tsconfig/node10", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:@tsconfig/node12", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:@tsconfig/node14", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:@tsconfig/node16", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:acorn", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:acorn-walk", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:arg", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:create-require", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:diff", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:make-error", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:v8-compile-cache-lib", + "type": "static" + }, + { + "source": "npm:ts-node@10.9.1", + "target": "npm:yn", + "type": "static" + }, + { + "source": "npm:@nx/linter", + "target": "npm:@nx/eslint", + "type": "static" + }, + { + "source": "npm:@nx/react", + "target": "npm:@nrwl/react", + "type": "static" + }, + { + "source": "npm:@nx/react", + "target": "npm:@nx/devkit", + "type": "static" + }, + { + "source": "npm:@nx/react", + "target": "npm:@nx/eslint", + "type": "static" + }, + { + "source": "npm:@nx/react", + "target": "npm:@nx/js", + "type": "static" + }, + { + "source": "npm:@nx/react", + "target": "npm:@nx/web", + "type": "static" + }, + { + "source": "npm:@nx/react", + "target": "npm:@phenomnomnominal/tsquery", + "type": "static" + }, + { + "source": "npm:@nx/react", + "target": "npm:@svgr/webpack", + "type": "static" + }, + { + "source": "npm:@nx/react", "target": "npm:chalk", "type": "static" }, { - "source": "npm:@jridgewell/gen-mapping", - "target": "npm:@jridgewell/set-array", + "source": "npm:@nx/react", + "target": "npm:file-loader", "type": "static" }, { - "source": "npm:@jridgewell/gen-mapping", - "target": "npm:@jridgewell/sourcemap-codec", + "source": "npm:@nx/react", + "target": "npm:minimatch", "type": "static" }, { - "source": "npm:@jridgewell/gen-mapping", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:@nx/react", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@jridgewell/source-map", - "target": "npm:@jridgewell/gen-mapping", + "source": "npm:@nx/rollup", + "target": "npm:@nrwl/rollup", "type": "static" }, { - "source": "npm:@jridgewell/source-map", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:@nx/rollup", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@jridgewell/trace-mapping", - "target": "npm:@jridgewell/resolve-uri", + "source": "npm:@nx/rollup", + "target": "npm:@nx/js", "type": "static" }, { - "source": "npm:@jridgewell/trace-mapping", - "target": "npm:@jridgewell/sourcemap-codec", + "source": "npm:@nx/rollup", + "target": "npm:@rollup/plugin-babel", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:bin-check", + "source": "npm:@nx/rollup", + "target": "npm:@rollup/plugin-commonjs", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:bin-version-check", + "source": "npm:@nx/rollup", + "target": "npm:@rollup/plugin-image", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:content-disposition", + "source": "npm:@nx/rollup", + "target": "npm:@rollup/plugin-json", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:ext-name", + "source": "npm:@nx/rollup", + "target": "npm:@rollup/plugin-node-resolve", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:file-type", + "source": "npm:@nx/rollup", + "target": "npm:autoprefixer", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:filenamify", + "source": "npm:@nx/rollup", + "target": "npm:babel-plugin-transform-async-to-promises", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:got", + "source": "npm:@nx/rollup", + "target": "npm:chalk", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:os-filter-obj", + "source": "npm:@nx/rollup", + "target": "npm:minimatch", "type": "static" }, { - "source": "npm:@mongodb-js/saslprep", - "target": "npm:sparse-bitfield", + "source": "npm:@nx/rollup", + "target": "npm:postcss", + "type": "static" + }, + { + "source": "npm:@nx/rollup", + "target": "npm:rollup", + "type": "static" + }, + { + "source": "npm:@nx/rollup", + "target": "npm:rollup-plugin-copy", + "type": "static" + }, + { + "source": "npm:@nx/rollup", + "target": "npm:rollup-plugin-postcss", + "type": "static" + }, + { + "source": "npm:@nx/rollup", + "target": "npm:rollup-plugin-typescript2", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-android-arm-eabi", + "source": "npm:@nx/rollup", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-android-arm64", + "source": "npm:@nx/web", + "target": "npm:@nrwl/web", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-darwin-arm64", + "source": "npm:@nx/web", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-darwin-x64", + "source": "npm:@nx/web", + "target": "npm:@nx/js", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-freebsd-x64", + "source": "npm:@nx/web", + "target": "npm:chalk", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-arm-gnueabihf", + "source": "npm:@nx/web", + "target": "npm:detect-port", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-arm64-gnu", + "source": "npm:@nx/web", + "target": "npm:http-server", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-arm64-musl", + "source": "npm:@nx/web", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-ppc64-gnu", + "source": "npm:@nx/webpack", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-riscv64-gnu", + "source": "npm:@nx/webpack", + "target": "npm:@nrwl/webpack", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-s390x-gnu", + "source": "npm:@nx/webpack", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-x64-gnu", + "source": "npm:@nx/webpack", + "target": "npm:@nx/js", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-x64-musl", + "source": "npm:@nx/webpack", + "target": "npm:@phenomnomnominal/tsquery", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-win32-arm64-msvc", + "source": "npm:@nx/webpack", + "target": "npm:ajv", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-win32-ia32-msvc", + "source": "npm:@nx/webpack", + "target": "npm:autoprefixer", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-win32-x64-msvc", + "source": "npm:@nx/webpack", + "target": "npm:babel-loader", "type": "static" }, { - "source": "npm:@nodelib/fs.scandir", - "target": "npm:@nodelib/fs.stat", + "source": "npm:@nx/webpack", + "target": "npm:browserslist", "type": "static" }, { - "source": "npm:@nodelib/fs.scandir", - "target": "npm:run-parallel", + "source": "npm:@nx/webpack", + "target": "npm:chalk", "type": "static" }, { - "source": "npm:@nodelib/fs.walk", - "target": "npm:@nodelib/fs.scandir", + "source": "npm:@nx/webpack", + "target": "npm:copy-webpack-plugin", "type": "static" }, { - "source": "npm:@nodelib/fs.walk", - "target": "npm:fastq", + "source": "npm:@nx/webpack", + "target": "npm:css-loader", "type": "static" }, { - "source": "npm:@nrwl/devkit", - "target": "npm:@nx/devkit", + "source": "npm:@nx/webpack", + "target": "npm:css-minimizer-webpack-plugin", "type": "static" }, { - "source": "npm:@nrwl/eslint-plugin-nx", - "target": "npm:@nx/eslint-plugin", + "source": "npm:@nx/webpack", + "target": "npm:fork-ts-checker-webpack-plugin", "type": "static" }, { - "source": "npm:@nrwl/jest", - "target": "npm:@nx/jest", + "source": "npm:@nx/webpack", + "target": "npm:less", "type": "static" }, { - "source": "npm:@nrwl/js", - "target": "npm:@nx/js", + "source": "npm:@nx/webpack", + "target": "npm:less-loader", "type": "static" }, { - "source": "npm:@nrwl/react", - "target": "npm:@nx/react", + "source": "npm:@nx/webpack", + "target": "npm:license-webpack-plugin", "type": "static" }, { - "source": "npm:@nrwl/rollup", - "target": "npm:@nx/rollup", + "source": "npm:@nx/webpack", + "target": "npm:loader-utils", "type": "static" }, { - "source": "npm:@nrwl/tao", - "target": "npm:nx", + "source": "npm:@nx/webpack", + "target": "npm:mini-css-extract-plugin", "type": "static" }, { - "source": "npm:@nrwl/tao", - "target": "npm:tslib", + "source": "npm:@nx/webpack", + "target": "npm:parse5", "type": "static" }, { - "source": "npm:@nrwl/web", - "target": "npm:@nx/web", + "source": "npm:@nx/webpack", + "target": "npm:postcss", "type": "static" }, { - "source": "npm:@nrwl/webpack", - "target": "npm:@nx/webpack", + "source": "npm:@nx/webpack", + "target": "npm:postcss-import", "type": "static" }, { - "source": "npm:@nrwl/workspace", - "target": "npm:@nx/workspace", + "source": "npm:@nx/webpack", + "target": "npm:postcss-loader", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:nx", + "source": "npm:@nx/webpack", + "target": "npm:rxjs", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:@nrwl/devkit", + "source": "npm:@nx/webpack", + "target": "npm:sass", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:ejs", + "source": "npm:@nx/webpack", + "target": "npm:sass-loader", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:enquirer", + "source": "npm:@nx/webpack", + "target": "npm:source-map-loader", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:ignore", + "source": "npm:@nx/webpack", + "target": "npm:style-loader", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:minimatch@9.0.3", + "source": "npm:@nx/webpack", + "target": "npm:stylus", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:semver@7.7.2", + "source": "npm:@nx/webpack", + "target": "npm:stylus-loader", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:tmp", + "source": "npm:@nx/webpack", + "target": "npm:terser-webpack-plugin", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:tslib", + "source": "npm:@nx/webpack", + "target": "npm:ts-loader", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:yargs-parser", + "source": "npm:@nx/webpack", + "target": "npm:tsconfig-paths-webpack-plugin", "type": "static" }, { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", + "source": "npm:@nx/webpack", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:minimatch@9.0.3", - "target": "npm:brace-expansion@2.0.1", + "source": "npm:@nx/webpack", + "target": "npm:webpack", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:@zkochan/js-yaml", + "source": "npm:@nx/webpack", + "target": "npm:webpack-dev-server", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:eslint", + "source": "npm:@nx/webpack", + "target": "npm:webpack-node-externals", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:@nx/devkit", + "source": "npm:@nx/webpack", + "target": "npm:webpack-subresource-integrity", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:@nx/js", + "source": "npm:@nx/workspace", + "target": "npm:@nrwl/workspace", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:@nx/linter", + "source": "npm:@nx/workspace", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:semver@7.7.2", + "source": "npm:@nx/workspace", + "target": "npm:chalk", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:tslib", + "source": "npm:@nx/workspace", + "target": "npm:enquirer", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:typescript", + "source": "npm:@nx/workspace", + "target": "npm:nx", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@typescript-eslint/parser", + "source": "npm:@nx/workspace", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:eslint-config-prettier", + "source": "npm:@nx/workspace", + "target": "npm:yargs-parser", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@nrwl/eslint-plugin-nx", + "source": "npm:@parcel/watcher", + "target": "npm:detect-libc", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@nx/devkit", + "source": "npm:@parcel/watcher", + "target": "npm:is-glob", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@nx/js", + "source": "npm:@parcel/watcher", + "target": "npm:micromatch", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@typescript-eslint/type-utils", + "source": "npm:@parcel/watcher", + "target": "npm:node-addon-api", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@typescript-eslint/utils", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-android-arm64", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:chalk", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-darwin-arm64", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:confusing-browser-globals", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-darwin-x64", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:jsonc-eslint-parser", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-freebsd-x64", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:semver@7.7.2", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-arm-glibc", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:tslib", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-arm-musl", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:@jest/reporters", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-arm64-glibc", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:@jest/test-result", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-arm64-musl", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:@nrwl/jest", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-x64-glibc", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:@nx/devkit", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-x64-musl", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:@nx/js", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-win32-arm64", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:@phenomnomnominal/tsquery", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-win32-ia32", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:chalk", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-win32-x64", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:identity-obj-proxy", + "source": "npm:@phenomnomnominal/tsquery", + "target": "npm:typescript", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:jest-config", + "source": "npm:@phenomnomnominal/tsquery", + "target": "npm:esquery", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:jest-resolve", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:react-refresh", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:jest-util", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:type-fest", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:minimatch@9.0.3", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:webpack", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:resolve.exports", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:webpack-dev-server", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:tslib", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:ansi-html", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:yargs-parser", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:core-js-pure", "type": "static" }, { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:error-stack-parser", "type": "static" }, { - "source": "npm:minimatch@9.0.3", - "target": "npm:brace-expansion@2.0.1", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:html-entities", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/core", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:loader-utils", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/plugin-proposal-decorators", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:schema-utils", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/plugin-transform-class-properties", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:source-map", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/plugin-transform-runtime", + "source": "npm:@rollup/plugin-babel", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/preset-env", + "source": "npm:@rollup/plugin-babel", + "target": "npm:@types/babel__core", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/preset-typescript", + "source": "npm:@rollup/plugin-babel", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/runtime", + "source": "npm:@rollup/plugin-babel", + "target": "npm:@babel/helper-module-imports", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@nrwl/js", + "source": "npm:@rollup/plugin-babel", + "target": "npm:@rollup/pluginutils", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@nx/devkit", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@nx/workspace", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:@rollup/pluginutils", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:babel-plugin-const-enum", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:commondir", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:babel-plugin-macros", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:estree-walker", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:babel-plugin-transform-typescript-metadata", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:glob@8.1.0", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:chalk", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:is-reference", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:columnify", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:magic-string", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:detect-port", + "source": "npm:glob@8.1.0", + "target": "npm:fs.realpath", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:fast-glob", + "source": "npm:glob@8.1.0", + "target": "npm:inflight", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:fs-extra", + "source": "npm:glob@8.1.0", + "target": "npm:inherits", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:ignore", + "source": "npm:glob@8.1.0", + "target": "npm:minimatch@5.1.6", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:js-tokens", + "source": "npm:glob@8.1.0", + "target": "npm:once", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:minimatch@9.0.3", + "source": "npm:minimatch@5.1.6", + "target": "npm:brace-expansion", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:npm-package-arg", + "source": "npm:@rollup/plugin-image", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:npm-run-path", + "source": "npm:@rollup/plugin-image", + "target": "npm:@rollup/pluginutils", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:ora", + "source": "npm:@rollup/plugin-image", + "target": "npm:mini-svg-data-uri", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:semver@7.7.2", + "source": "npm:@rollup/plugin-json", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:source-map-support", + "source": "npm:@rollup/plugin-json", + "target": "npm:@rollup/pluginutils", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:ts-node@10.9.1", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:tsconfig-paths", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:@rollup/pluginutils", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:tslib", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:@types/resolve", "type": "static" }, { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:deepmerge", "type": "static" }, { - "source": "npm:minimatch@9.0.3", - "target": "npm:brace-expansion@2.0.1", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:is-module", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:@swc/core", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:resolve", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:@types/node", + "source": "npm:@rollup/pluginutils", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:typescript", + "source": "npm:@rollup/pluginutils", + "target": "npm:@types/estree", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:@cspotcode/source-map-support", + "source": "npm:@rollup/pluginutils", + "target": "npm:estree-walker", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:@tsconfig/node10", + "source": "npm:@rollup/pluginutils", + "target": "npm:picomatch", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:@tsconfig/node12", + "source": "npm:@sinonjs/commons", + "target": "npm:type-detect", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:@tsconfig/node14", + "source": "npm:@sinonjs/fake-timers", + "target": "npm:@sinonjs/commons", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:@tsconfig/node16", + "source": "npm:@smithy/abort-controller", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:acorn", + "source": "npm:@smithy/abort-controller", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:acorn-walk", + "source": "npm:@smithy/chunked-blob-reader", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:arg", + "source": "npm:@smithy/chunked-blob-reader-native", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:create-require", + "source": "npm:@smithy/chunked-blob-reader-native", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:diff", + "source": "npm:@smithy/config-resolver", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:make-error", + "source": "npm:@smithy/config-resolver", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:v8-compile-cache-lib", + "source": "npm:@smithy/config-resolver", + "target": "npm:@smithy/util-config-provider", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:yn", + "source": "npm:@smithy/config-resolver", + "target": "npm:@smithy/util-endpoints", "type": "static" }, { - "source": "npm:@nx/linter", - "target": "npm:@nx/eslint", + "source": "npm:@smithy/config-resolver", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@nrwl/react", + "source": "npm:@smithy/config-resolver", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@nx/devkit", + "source": "npm:@smithy/core", + "target": "npm:@smithy/middleware-serde", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@nx/eslint", + "source": "npm:@smithy/core", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@nx/js", + "source": "npm:@smithy/core", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@nx/web", + "source": "npm:@smithy/core", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@phenomnomnominal/tsquery", + "source": "npm:@smithy/core", + "target": "npm:@smithy/util-body-length-browser", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@svgr/webpack", + "source": "npm:@smithy/core", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:chalk", + "source": "npm:@smithy/core", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:file-loader", + "source": "npm:@smithy/core", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:minimatch@9.0.3", + "source": "npm:@smithy/core", + "target": "npm:@smithy/uuid", "type": "static" }, { - "source": "npm:@nx/react", + "source": "npm:@smithy/core", "target": "npm:tslib", "type": "static" }, { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", + "source": "npm:@smithy/credential-provider-imds", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:minimatch@9.0.3", - "target": "npm:brace-expansion@2.0.1", + "source": "npm:@smithy/credential-provider-imds", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@nrwl/rollup", + "source": "npm:@smithy/credential-provider-imds", + "target": "npm:@smithy/types", "type": "static" }, - { - "source": "npm:@nx/rollup", - "target": "npm:@nx/devkit", + { + "source": "npm:@smithy/credential-provider-imds", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@nx/js", + "source": "npm:@smithy/credential-provider-imds", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@rollup/plugin-babel", + "source": "npm:@smithy/eventstream-codec", + "target": "npm:@aws-crypto/crc32", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@rollup/plugin-commonjs", + "source": "npm:@smithy/eventstream-codec", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@rollup/plugin-image", + "source": "npm:@smithy/eventstream-codec", + "target": "npm:@smithy/util-hex-encoding", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@rollup/plugin-json", + "source": "npm:@smithy/eventstream-codec", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@rollup/plugin-node-resolve", + "source": "npm:@smithy/eventstream-serde-browser", + "target": "npm:@smithy/eventstream-serde-universal", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:autoprefixer", + "source": "npm:@smithy/eventstream-serde-browser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:babel-plugin-transform-async-to-promises", + "source": "npm:@smithy/eventstream-serde-browser", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:chalk", + "source": "npm:@smithy/eventstream-serde-config-resolver", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:minimatch@9.0.3", + "source": "npm:@smithy/eventstream-serde-config-resolver", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:postcss", + "source": "npm:@smithy/eventstream-serde-node", + "target": "npm:@smithy/eventstream-serde-universal", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:rollup", + "source": "npm:@smithy/eventstream-serde-node", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:rollup-plugin-copy", + "source": "npm:@smithy/eventstream-serde-node", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:rollup-plugin-postcss", + "source": "npm:@smithy/eventstream-serde-universal", + "target": "npm:@smithy/eventstream-codec", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:rollup-plugin-typescript2", + "source": "npm:@smithy/eventstream-serde-universal", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/rollup", + "source": "npm:@smithy/eventstream-serde-universal", "target": "npm:tslib", "type": "static" }, { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", + "source": "npm:@smithy/fetch-http-handler", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:minimatch@9.0.3", - "target": "npm:brace-expansion@2.0.1", + "source": "npm:@smithy/fetch-http-handler", + "target": "npm:@smithy/querystring-builder", "type": "static" }, { - "source": "npm:@nx/web", - "target": "npm:@nrwl/web", + "source": "npm:@smithy/fetch-http-handler", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/web", - "target": "npm:@nx/devkit", + "source": "npm:@smithy/fetch-http-handler", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@nx/web", - "target": "npm:@nx/js", + "source": "npm:@smithy/fetch-http-handler", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/web", - "target": "npm:chalk", + "source": "npm:@smithy/hash-blob-browser", + "target": "npm:@smithy/chunked-blob-reader", "type": "static" }, { - "source": "npm:@nx/web", - "target": "npm:detect-port", + "source": "npm:@smithy/hash-blob-browser", + "target": "npm:@smithy/chunked-blob-reader-native", "type": "static" }, { - "source": "npm:@nx/web", - "target": "npm:http-server", + "source": "npm:@smithy/hash-blob-browser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/web", + "source": "npm:@smithy/hash-blob-browser", "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:@babel/core", + "source": "npm:@smithy/hash-node", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:@nrwl/webpack", + "source": "npm:@smithy/hash-node", + "target": "npm:@smithy/util-buffer-from", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:@nx/devkit", + "source": "npm:@smithy/hash-node", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:@nx/js", + "source": "npm:@smithy/hash-node", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:@phenomnomnominal/tsquery", + "source": "npm:@smithy/hash-stream-node", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:ajv@8.17.1", + "source": "npm:@smithy/hash-stream-node", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:autoprefixer", + "source": "npm:@smithy/hash-stream-node", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:babel-loader", + "source": "npm:@smithy/invalid-dependency", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:browserslist", + "source": "npm:@smithy/invalid-dependency", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:chalk", + "source": "npm:@smithy/is-array-buffer", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:copy-webpack-plugin", + "source": "npm:@smithy/md5-js", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:css-loader", + "source": "npm:@smithy/md5-js", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:css-minimizer-webpack-plugin", + "source": "npm:@smithy/md5-js", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:fork-ts-checker-webpack-plugin", + "source": "npm:@smithy/middleware-content-length", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:less", + "source": "npm:@smithy/middleware-content-length", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:less-loader", + "source": "npm:@smithy/middleware-content-length", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:license-webpack-plugin", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:loader-utils", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/middleware-serde", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:mini-css-extract-plugin", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:parse5", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:postcss", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:postcss-import", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:postcss-loader", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:rxjs", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:sass", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:sass-loader", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:source-map-loader", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/service-error-classification", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:style-loader", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:stylus", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:stylus-loader", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:terser-webpack-plugin", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/util-retry", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:ts-loader", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/uuid", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:tsconfig-paths-webpack-plugin", + "source": "npm:@smithy/middleware-retry", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:tslib", + "source": "npm:@smithy/middleware-serde", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:webpack", + "source": "npm:@smithy/middleware-serde", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:webpack-dev-server", + "source": "npm:@smithy/middleware-serde", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:webpack-node-externals", + "source": "npm:@smithy/middleware-stack", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:webpack-subresource-integrity", + "source": "npm:@smithy/middleware-stack", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-deep-equal", + "source": "npm:@smithy/node-config-provider", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-uri", + "source": "npm:@smithy/node-config-provider", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:json-schema-traverse@1.0.0", + "source": "npm:@smithy/node-config-provider", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:require-from-string", + "source": "npm:@smithy/node-config-provider", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/workspace", - "target": "npm:@nrwl/workspace", + "source": "npm:@smithy/node-http-handler", + "target": "npm:@smithy/abort-controller", "type": "static" }, { - "source": "npm:@nx/workspace", - "target": "npm:@nx/devkit", + "source": "npm:@smithy/node-http-handler", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@nx/workspace", - "target": "npm:chalk", + "source": "npm:@smithy/node-http-handler", + "target": "npm:@smithy/querystring-builder", "type": "static" }, { - "source": "npm:@nx/workspace", - "target": "npm:enquirer", + "source": "npm:@smithy/node-http-handler", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/workspace", - "target": "npm:nx", + "source": "npm:@smithy/node-http-handler", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/workspace", + "source": "npm:@smithy/property-provider", + "target": "npm:@smithy/types", + "type": "static" + }, + { + "source": "npm:@smithy/property-provider", "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/workspace", - "target": "npm:yargs-parser", + "source": "npm:@smithy/protocol-http", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:detect-libc", + "source": "npm:@smithy/protocol-http", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:is-glob", + "source": "npm:@smithy/querystring-builder", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:micromatch", + "source": "npm:@smithy/querystring-builder", + "target": "npm:@smithy/util-uri-escape", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:node-addon-api", + "source": "npm:@smithy/querystring-builder", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-android-arm64", + "source": "npm:@smithy/querystring-parser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-darwin-arm64", + "source": "npm:@smithy/querystring-parser", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-darwin-x64", + "source": "npm:@smithy/service-error-classification", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-freebsd-x64", + "source": "npm:@smithy/shared-ini-file-loader", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-arm-glibc", + "source": "npm:@smithy/shared-ini-file-loader", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-arm-musl", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/is-array-buffer", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-arm64-glibc", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-arm64-musl", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-x64-glibc", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/util-hex-encoding", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-x64-musl", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-win32-arm64", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/util-uri-escape", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-win32-ia32", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-win32-x64", + "source": "npm:@smithy/signature-v4", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@phenomnomnominal/tsquery", - "target": "npm:typescript", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@phenomnomnominal/tsquery", - "target": "npm:esquery", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:react-refresh", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/middleware-stack", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:type-fest", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:webpack", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:webpack-dev-server", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:ansi-html", + "source": "npm:@smithy/smithy-client", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:core-js-pure", + "source": "npm:@smithy/types", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:error-stack-parser", + "source": "npm:@smithy/url-parser", + "target": "npm:@smithy/querystring-parser", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:html-entities", + "source": "npm:@smithy/url-parser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:loader-utils", + "source": "npm:@smithy/url-parser", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:schema-utils", + "source": "npm:@smithy/util-base64", + "target": "npm:@smithy/util-buffer-from", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:source-map", + "source": "npm:@smithy/util-base64", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@rollup/plugin-babel", - "target": "npm:@babel/core", + "source": "npm:@smithy/util-base64", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@rollup/plugin-babel", - "target": "npm:@types/babel__core", + "source": "npm:@smithy/util-body-length-browser", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@rollup/plugin-babel", - "target": "npm:rollup", + "source": "npm:@smithy/util-body-length-node", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@rollup/plugin-babel", - "target": "npm:@babel/helper-module-imports", + "source": "npm:@smithy/util-buffer-from", + "target": "npm:@smithy/is-array-buffer", "type": "static" }, { - "source": "npm:@rollup/plugin-babel", - "target": "npm:@rollup/pluginutils", + "source": "npm:@smithy/util-buffer-from", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:rollup", + "source": "npm:@smithy/util-config-provider", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:@rollup/pluginutils", + "source": "npm:@smithy/util-defaults-mode-browser", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:commondir", + "source": "npm:@smithy/util-defaults-mode-browser", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:estree-walker", + "source": "npm:@smithy/util-defaults-mode-browser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:glob@8.1.0", + "source": "npm:@smithy/util-defaults-mode-browser", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:is-reference", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/config-resolver", "type": "static" }, { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:magic-string", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/credential-provider-imds", "type": "static" }, { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:glob@8.1.0", - "target": "npm:fs.realpath", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:glob@8.1.0", - "target": "npm:inflight", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:glob@8.1.0", - "target": "npm:inherits", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:glob@8.1.0", - "target": "npm:minimatch@5.1.6", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:glob@8.1.0", - "target": "npm:once", + "source": "npm:@smithy/util-endpoints", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:minimatch@5.1.6", - "target": "npm:brace-expansion@2.0.1", + "source": "npm:@smithy/util-endpoints", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@rollup/plugin-image", - "target": "npm:rollup", + "source": "npm:@smithy/util-endpoints", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@rollup/plugin-image", - "target": "npm:@rollup/pluginutils", + "source": "npm:@smithy/util-hex-encoding", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@rollup/plugin-image", - "target": "npm:mini-svg-data-uri", + "source": "npm:@smithy/util-middleware", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@rollup/plugin-json", - "target": "npm:rollup", + "source": "npm:@smithy/util-middleware", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@rollup/plugin-json", - "target": "npm:@rollup/pluginutils", + "source": "npm:@smithy/util-retry", + "target": "npm:@smithy/service-error-classification", "type": "static" }, { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:rollup", + "source": "npm:@smithy/util-retry", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:@rollup/pluginutils", + "source": "npm:@smithy/util-retry", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:@types/resolve", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/fetch-http-handler", "type": "static" }, { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:deepmerge", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/node-http-handler", "type": "static" }, { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:is-module", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:resolve", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@rollup/pluginutils", - "target": "npm:rollup", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/util-buffer-from", "type": "static" }, { - "source": "npm:@rollup/pluginutils", - "target": "npm:@types/estree", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/util-hex-encoding", "type": "static" }, { - "source": "npm:@rollup/pluginutils", - "target": "npm:estree-walker", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@rollup/pluginutils", - "target": "npm:picomatch", + "source": "npm:@smithy/util-stream", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@sendgrid/client", - "target": "npm:@sendgrid/helpers", + "source": "npm:@smithy/util-uri-escape", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@sendgrid/client", - "target": "npm:axios", + "source": "npm:@smithy/util-utf8", + "target": "npm:@smithy/util-buffer-from", "type": "static" }, { - "source": "npm:@sendgrid/helpers", - "target": "npm:deepmerge", + "source": "npm:@smithy/util-utf8", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@sendgrid/mail", - "target": "npm:@sendgrid/client", + "source": "npm:@smithy/util-waiter", + "target": "npm:@smithy/abort-controller", "type": "static" }, { - "source": "npm:@sendgrid/mail", - "target": "npm:@sendgrid/helpers", + "source": "npm:@smithy/util-waiter", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@sinonjs/commons", - "target": "npm:type-detect", + "source": "npm:@smithy/util-waiter", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@sinonjs/fake-timers", - "target": "npm:@sinonjs/commons", + "source": "npm:@smithy/uuid", + "target": "npm:tslib", "type": "static" }, { @@ -19078,7 +23083,7 @@ }, { "source": "npm:@swc/cli", - "target": "npm:commander@8.3.0", + "target": "npm:commander", "type": "static" }, { @@ -19088,7 +23093,7 @@ }, { "source": "npm:@swc/cli", - "target": "npm:minimatch@9.0.5", + "target": "npm:minimatch", "type": "static" }, { @@ -19103,7 +23108,7 @@ }, { "source": "npm:@swc/cli", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -19111,16 +23116,6 @@ "target": "npm:source-map", "type": "static" }, - { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", - "type": "static" - }, - { - "source": "npm:minimatch@9.0.5", - "target": "npm:brace-expansion@2.0.1", - "type": "static" - }, { "source": "npm:@swc/core", "target": "npm:@swc/helpers", @@ -19281,11 +23276,6 @@ "target": "npm:@types/node", "type": "static" }, - { - "source": "npm:@types/bson", - "target": "npm:@types/node", - "type": "static" - }, { "source": "npm:@types/cacheable-request", "target": "npm:@types/http-cache-semantics", @@ -19471,19 +23461,29 @@ "target": "npm:entities@6.0.1", "type": "static" }, + { + "source": "npm:@types/jsonwebtoken", + "target": "npm:@types/ms", + "type": "static" + }, + { + "source": "npm:@types/jsonwebtoken", + "target": "npm:@types/node", + "type": "static" + }, { "source": "npm:@types/keyv", "target": "npm:@types/node", "type": "static" }, { - "source": "npm:@types/mongodb", - "target": "npm:@types/bson", + "source": "npm:@types/minimatch", + "target": "npm:minimatch", "type": "static" }, { "source": "npm:@types/mongodb", - "target": "npm:@types/node", + "target": "npm:mongodb", "type": "static" }, { @@ -19643,7 +23643,7 @@ }, { "source": "npm:@typescript-eslint/project-service", - "target": "npm:@typescript-eslint/types@8.34.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { @@ -19731,14 +23731,9 @@ "target": "npm:ts-api-utils", "type": "static" }, - { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", - "type": "static" - }, { "source": "npm:minimatch@9.0.5", - "target": "npm:brace-expansion@2.0.1", + "target": "npm:brace-expansion", "type": "static" }, { @@ -19988,7 +23983,7 @@ }, { "source": "npm:@yarnpkg/parsers", - "target": "npm:js-yaml@3.14.1", + "target": "npm:js-yaml", "type": "static" }, { @@ -19996,24 +23991,9 @@ "target": "npm:tslib", "type": "static" }, - { - "source": "npm:argparse@1.0.10", - "target": "npm:sprintf-js", - "type": "static" - }, - { - "source": "npm:js-yaml@3.14.1", - "target": "npm:argparse@1.0.10", - "type": "static" - }, - { - "source": "npm:js-yaml@3.14.1", - "target": "npm:esprima", - "type": "static" - }, { "source": "npm:@zkochan/js-yaml", - "target": "npm:argparse", + "target": "npm:argparse@2.0.1", "type": "static" }, { @@ -20041,6 +24021,11 @@ "target": "npm:acorn-walk", "type": "static" }, + { + "source": "npm:acorn-import-phases", + "target": "npm:acorn", + "type": "static" + }, { "source": "npm:acorn-jsx", "target": "npm:acorn", @@ -20063,7 +24048,7 @@ }, { "source": "npm:ajv", - "target": "npm:fast-json-stable-stringify", + "target": "npm:fast-uri", "type": "static" }, { @@ -20073,47 +24058,32 @@ }, { "source": "npm:ajv", - "target": "npm:uri-js", + "target": "npm:require-from-string", "type": "static" }, { "source": "npm:ajv-formats", - "target": "npm:ajv@8.17.1", + "target": "npm:ajv", "type": "static" }, { "source": "npm:ajv-formats", - "target": "npm:ajv@8.17.1", - "type": "static" - }, - { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-deep-equal", - "type": "static" - }, - { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-uri", - "type": "static" - }, - { - "source": "npm:ajv@8.17.1", - "target": "npm:json-schema-traverse@1.0.0", + "target": "npm:ajv", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:require-from-string", + "source": "npm:ajv-keywords", + "target": "npm:ajv", "type": "static" }, { "source": "npm:ajv-keywords", - "target": "npm:ajv", + "target": "npm:fast-deep-equal", "type": "static" }, { "source": "npm:ansi-escapes", - "target": "npm:type-fest", + "target": "npm:type-fest@0.21.3", "type": "static" }, { @@ -20131,6 +24101,11 @@ "target": "npm:picomatch@2.3.1", "type": "static" }, + { + "source": "npm:argparse", + "target": "npm:sprintf-js", + "type": "static" + }, { "source": "npm:array-buffer-byte-length", "target": "npm:call-bound", @@ -20416,56 +24391,6 @@ "target": "npm:fastq", "type": "static" }, - { - "source": "npm:aws-sdk", - "target": "npm:buffer", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:events", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:ieee754", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:jmespath", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:querystring", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:sax", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:url", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:util", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:uuid", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:xml2js", - "type": "static" - }, { "source": "npm:axios", "target": "npm:follow-redirects", @@ -20518,7 +24443,7 @@ }, { "source": "npm:babel-jest", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -20668,7 +24593,7 @@ }, { "source": "npm:cosmiconfig@6.0.0", - "target": "npm:yaml", + "target": "npm:yaml@1.10.2", "type": "static" }, { @@ -21016,11 +24941,6 @@ "target": "npm:balanced-match", "type": "static" }, - { - "source": "npm:brace-expansion", - "target": "npm:concat-map", - "type": "static" - }, { "source": "npm:braces", "target": "npm:fill-range", @@ -21056,21 +24976,6 @@ "target": "npm:node-int64", "type": "static" }, - { - "source": "npm:buffer", - "target": "npm:base64-js", - "type": "static" - }, - { - "source": "npm:buffer", - "target": "npm:ieee754", - "type": "static" - }, - { - "source": "npm:buffer", - "target": "npm:isarray", - "type": "static" - }, { "source": "npm:cacheable-request", "target": "npm:clone-response", @@ -21193,7 +25098,7 @@ }, { "source": "npm:chokidar", - "target": "npm:glob-parent", + "target": "npm:glob-parent@5.1.2", "type": "static" }, { @@ -21221,6 +25126,11 @@ "target": "npm:fsevents", "type": "static" }, + { + "source": "npm:glob-parent@5.1.2", + "target": "npm:is-glob", + "type": "static" + }, { "source": "npm:cli-cursor", "target": "npm:restore-cursor", @@ -21398,7 +25308,7 @@ }, { "source": "npm:copy-webpack-plugin", - "target": "npm:glob-parent@6.0.2", + "target": "npm:glob-parent", "type": "static" }, { @@ -21421,11 +25331,6 @@ "target": "npm:serialize-javascript", "type": "static" }, - { - "source": "npm:glob-parent@6.0.2", - "target": "npm:is-glob", - "type": "static" - }, { "source": "npm:globby@12.2.0", "target": "npm:array-union@3.0.1", @@ -21473,7 +25378,7 @@ }, { "source": "npm:cosmiconfig", - "target": "npm:js-yaml", + "target": "npm:js-yaml@4.1.0", "type": "static" }, { @@ -21486,6 +25391,11 @@ "target": "npm:path-type", "type": "static" }, + { + "source": "npm:js-yaml@4.1.0", + "target": "npm:argparse@2.0.1", + "type": "static" + }, { "source": "npm:create-jest", "target": "npm:@jest/types", @@ -22083,7 +25993,7 @@ }, { "source": "npm:dotenv-expand", - "target": "npm:dotenv", + "target": "npm:dotenv@16.6.1", "type": "static" }, { @@ -22101,6 +26011,26 @@ "target": "npm:gopd", "type": "static" }, + { + "source": "npm:duplexify", + "target": "npm:end-of-stream", + "type": "static" + }, + { + "source": "npm:duplexify", + "target": "npm:inherits", + "type": "static" + }, + { + "source": "npm:duplexify", + "target": "npm:readable-stream", + "type": "static" + }, + { + "source": "npm:duplexify", + "target": "npm:stream-shift", + "type": "static" + }, { "source": "npm:ecdsa-sig-formatter", "target": "npm:safe-buffer", @@ -22573,12 +26503,12 @@ }, { "source": "npm:eslint", - "target": "npm:@eslint/eslintrc@2.1.4", + "target": "npm:@eslint/eslintrc", "type": "static" }, { "source": "npm:eslint", - "target": "npm:@eslint/js@8.57.1", + "target": "npm:@eslint/js", "type": "static" }, { @@ -22603,7 +26533,7 @@ }, { "source": "npm:eslint", - "target": "npm:ajv", + "target": "npm:ajv@6.12.6", "type": "static" }, { @@ -22643,7 +26573,7 @@ }, { "source": "npm:eslint", - "target": "npm:espree@9.6.1", + "target": "npm:espree", "type": "static" }, { @@ -22673,12 +26603,12 @@ }, { "source": "npm:eslint", - "target": "npm:glob-parent@6.0.2", + "target": "npm:glob-parent", "type": "static" }, { "source": "npm:eslint", - "target": "npm:globals@13.24.0", + "target": "npm:globals", "type": "static" }, { @@ -22708,7 +26638,7 @@ }, { "source": "npm:eslint", - "target": "npm:js-yaml", + "target": "npm:js-yaml@4.1.0", "type": "static" }, { @@ -22728,7 +26658,7 @@ }, { "source": "npm:eslint", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -22883,7 +26813,7 @@ }, { "source": "npm:eslint-plugin-import", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -22916,6 +26846,16 @@ "target": "npm:tsconfig-paths@3.15.0", "type": "static" }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, { "source": "npm:debug@3.2.7", "target": "npm:ms", @@ -22931,6 +26871,11 @@ "target": "npm:minimist", "type": "static" }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", + "type": "static" + }, { "source": "npm:tsconfig-paths@3.15.0", "target": "npm:@types/json5", @@ -23013,7 +26958,7 @@ }, { "source": "npm:eslint-plugin-jsx-a11y", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -23031,6 +26976,21 @@ "target": "npm:string.prototype.includes", "type": "static" }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", + "type": "static" + }, { "source": "npm:eslint-plugin-lodash", "target": "npm:eslint", @@ -23123,7 +27083,7 @@ }, { "source": "npm:eslint-plugin-react", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -23171,11 +27131,26 @@ "target": "npm:eslint", "type": "static" }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, { "source": "npm:doctrine@2.1.0", "target": "npm:esutils", "type": "static" }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", + "type": "static" + }, { "source": "npm:resolve@2.0.0-next.5", "target": "npm:is-core-module", @@ -23202,63 +27177,33 @@ "type": "static" }, { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:ajv", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:debug", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:espree@9.6.1", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:globals@13.24.0", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:ignore", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:import-fresh", + "source": "npm:ajv@6.12.6", + "target": "npm:fast-deep-equal", "type": "static" }, { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:js-yaml", + "source": "npm:ajv@6.12.6", + "target": "npm:fast-json-stable-stringify", "type": "static" }, { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:minimatch", + "source": "npm:ajv@6.12.6", + "target": "npm:json-schema-traverse@0.4.1", "type": "static" }, { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:strip-json-comments", - "type": "static" - }, - { - "source": "npm:espree@9.6.1", - "target": "npm:acorn", + "source": "npm:ajv@6.12.6", + "target": "npm:uri-js", "type": "static" }, { - "source": "npm:espree@9.6.1", - "target": "npm:acorn-jsx", + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", "type": "static" }, { - "source": "npm:espree@9.6.1", - "target": "npm:eslint-visitor-keys", + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", "type": "static" }, { @@ -23272,18 +27217,18 @@ "type": "static" }, { - "source": "npm:glob-parent@6.0.2", - "target": "npm:is-glob", + "source": "npm:js-yaml@4.1.0", + "target": "npm:argparse@2.0.1", "type": "static" }, { - "source": "npm:globals@13.24.0", - "target": "npm:type-fest@0.20.2", + "source": "npm:locate-path@6.0.0", + "target": "npm:p-locate@5.0.0", "type": "static" }, { - "source": "npm:locate-path@6.0.0", - "target": "npm:p-locate@5.0.0", + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", "type": "static" }, { @@ -23303,7 +27248,7 @@ }, { "source": "npm:espree", - "target": "npm:eslint-visitor-keys@4.2.1", + "target": "npm:eslint-visitor-keys", "type": "static" }, { @@ -23613,7 +27558,7 @@ }, { "source": "npm:fast-glob", - "target": "npm:glob-parent", + "target": "npm:glob-parent@5.1.2", "type": "static" }, { @@ -23626,6 +27571,11 @@ "target": "npm:micromatch", "type": "static" }, + { + "source": "npm:glob-parent@5.1.2", + "target": "npm:is-glob", + "type": "static" + }, { "source": "npm:fast-json-stringify", "target": "npm:@fastify/merge-json-schemas", @@ -23633,7 +27583,7 @@ }, { "source": "npm:fast-json-stringify", - "target": "npm:ajv@8.17.1", + "target": "npm:ajv", "type": "static" }, { @@ -23656,26 +27606,6 @@ "target": "npm:rfdc", "type": "static" }, - { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-deep-equal", - "type": "static" - }, - { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-uri", - "type": "static" - }, - { - "source": "npm:ajv@8.17.1", - "target": "npm:json-schema-traverse@1.0.0", - "type": "static" - }, - { - "source": "npm:ajv@8.17.1", - "target": "npm:require-from-string", - "type": "static" - }, { "source": "npm:fast-jwt", "target": "npm:@lukeed/ms", @@ -23701,6 +27631,11 @@ "target": "npm:fast-decode-uri-component", "type": "static" }, + { + "source": "npm:fast-xml-parser", + "target": "npm:strnum", + "type": "static" + }, { "source": "npm:fastfall", "target": "npm:reusify", @@ -23782,18 +27717,43 @@ "type": "static" }, { - "source": "npm:fastify-mongoose-driver", - "target": "npm:fastify-plugin@1.6.1", + "source": "npm:fastify-raw-body", + "target": "npm:fastify-plugin", "type": "static" }, { - "source": "npm:fastify-mongoose-driver", - "target": "npm:mongoose", + "source": "npm:fastify-raw-body", + "target": "npm:raw-body@3.0.1", "type": "static" }, { - "source": "npm:fastify-plugin@1.6.1", - "target": "npm:semver", + "source": "npm:fastify-raw-body", + "target": "npm:secure-json-parse@2.7.0", + "type": "static" + }, + { + "source": "npm:iconv-lite@0.7.0", + "target": "npm:safer-buffer", + "type": "static" + }, + { + "source": "npm:raw-body@3.0.1", + "target": "npm:bytes", + "type": "static" + }, + { + "source": "npm:raw-body@3.0.1", + "target": "npm:http-errors", + "type": "static" + }, + { + "source": "npm:raw-body@3.0.1", + "target": "npm:iconv-lite@0.7.0", + "type": "static" + }, + { + "source": "npm:raw-body@3.0.1", + "target": "npm:unpipe", "type": "static" }, { @@ -23856,6 +27816,31 @@ "target": "npm:schema-utils@3.3.0", "type": "static" }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:fast-deep-equal", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:fast-json-stable-stringify", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:json-schema-traverse@0.4.1", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:uri-js", + "type": "static" + }, + { + "source": "npm:ajv-keywords@3.5.2", + "target": "npm:ajv@6.12.6", + "type": "static" + }, { "source": "npm:schema-utils@3.3.0", "target": "npm:@types/json-schema", @@ -23863,12 +27848,12 @@ }, { "source": "npm:schema-utils@3.3.0", - "target": "npm:ajv", + "target": "npm:ajv@6.12.6", "type": "static" }, { "source": "npm:schema-utils@3.3.0", - "target": "npm:ajv-keywords", + "target": "npm:ajv-keywords@3.5.2", "type": "static" }, { @@ -23891,14 +27876,9 @@ "target": "npm:minimatch@5.1.6", "type": "static" }, - { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", - "type": "static" - }, { "source": "npm:minimatch@5.1.6", - "target": "npm:brace-expansion@2.0.1", + "target": "npm:brace-expansion", "type": "static" }, { @@ -24083,7 +28063,7 @@ }, { "source": "npm:fork-ts-checker-webpack-plugin", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -24106,6 +28086,41 @@ "target": "npm:tapable", "type": "static" }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:fast-deep-equal", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:fast-json-stable-stringify", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:json-schema-traverse@0.4.1", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:uri-js", + "type": "static" + }, + { + "source": "npm:ajv-keywords@3.5.2", + "target": "npm:ajv@6.12.6", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, { "source": "npm:cosmiconfig@7.1.0", "target": "npm:@types/parse-json", @@ -24128,7 +28143,7 @@ }, { "source": "npm:cosmiconfig@7.1.0", - "target": "npm:yaml", + "target": "npm:yaml@1.10.2", "type": "static" }, { @@ -24146,6 +28161,11 @@ "target": "npm:universalify", "type": "static" }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", + "type": "static" + }, { "source": "npm:schema-utils@3.3.0", "target": "npm:@types/json-schema", @@ -24153,12 +28173,12 @@ }, { "source": "npm:schema-utils@3.3.0", - "target": "npm:ajv", + "target": "npm:ajv@6.12.6", "type": "static" }, { "source": "npm:schema-utils@3.3.0", - "target": "npm:ajv-keywords", + "target": "npm:ajv-keywords@3.5.2", "type": "static" }, { @@ -24188,22 +28208,7 @@ }, { "source": "npm:front-matter", - "target": "npm:js-yaml@3.14.1", - "type": "static" - }, - { - "source": "npm:argparse@1.0.10", - "target": "npm:sprintf-js", - "type": "static" - }, - { - "source": "npm:js-yaml@3.14.1", - "target": "npm:argparse@1.0.10", - "type": "static" - }, - { - "source": "npm:js-yaml@3.14.1", - "target": "npm:esprima", + "target": "npm:js-yaml", "type": "static" }, { @@ -24348,7 +28353,7 @@ }, { "source": "npm:glob", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -24366,6 +28371,26 @@ "target": "npm:is-glob", "type": "static" }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", + "type": "static" + }, + { + "source": "npm:globals", + "target": "npm:type-fest", + "type": "static" + }, { "source": "npm:globalthis", "target": "npm:define-properties", @@ -24403,7 +28428,7 @@ }, { "source": "npm:globby", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -24418,7 +28443,7 @@ }, { "source": "npm:fast-glob@3.3.3", - "target": "npm:glob-parent", + "target": "npm:glob-parent@5.1.2", "type": "static" }, { @@ -24431,6 +28456,11 @@ "target": "npm:micromatch", "type": "static" }, + { + "source": "npm:glob-parent@5.1.2", + "target": "npm:is-glob", + "type": "static" + }, { "source": "npm:got", "target": "npm:@sindresorhus/is", @@ -24693,7 +28723,7 @@ }, { "source": "npm:http-server", - "target": "npm:mime", + "target": "npm:mime@1.6.0", "type": "static" }, { @@ -24821,16 +28851,6 @@ "target": "npm:side-channel", "type": "static" }, - { - "source": "npm:is-arguments", - "target": "npm:call-bound", - "type": "static" - }, - { - "source": "npm:is-arguments", - "target": "npm:has-tostringtag", - "type": "static" - }, { "source": "npm:is-array-buffer", "target": "npm:call-bind", @@ -25142,33 +29162,38 @@ "type": "static" }, { - "source": "npm:jackspeak", - "target": "npm:@isaacs/cliui", + "source": "npm:jake", + "target": "npm:async", "type": "static" }, { - "source": "npm:jackspeak", - "target": "npm:@pkgjs/parseargs", + "source": "npm:jake", + "target": "npm:chalk", "type": "static" }, { "source": "npm:jake", - "target": "npm:async", + "target": "npm:filelist", "type": "static" }, { "source": "npm:jake", - "target": "npm:chalk", + "target": "npm:minimatch@3.1.2", "type": "static" }, { - "source": "npm:jake", - "target": "npm:filelist", + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", "type": "static" }, { - "source": "npm:jake", - "target": "npm:minimatch", + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", "type": "static" }, { @@ -25343,7 +29368,7 @@ }, { "source": "npm:jest-circus", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -25388,7 +29413,7 @@ }, { "source": "npm:cosmiconfig@7.1.0", - "target": "npm:yaml", + "target": "npm:yaml@1.10.2", "type": "static" }, { @@ -25563,7 +29588,7 @@ }, { "source": "npm:jest-config", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -25818,7 +29843,7 @@ }, { "source": "npm:jest-message-util", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -25888,7 +29913,7 @@ }, { "source": "npm:jest-resolve", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -26118,7 +30143,7 @@ }, { "source": "npm:jest-runtime", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -26356,6 +30381,11 @@ "target": "npm:argparse", "type": "static" }, + { + "source": "npm:js-yaml", + "target": "npm:esprima", + "type": "static" + }, { "source": "npm:jsdom", "target": "npm:abab", @@ -26523,7 +30553,7 @@ }, { "source": "npm:jsonc-eslint-parser", - "target": "npm:espree@9.6.1", + "target": "npm:espree", "type": "static" }, { @@ -26532,28 +30562,63 @@ "type": "static" }, { - "source": "npm:espree@9.6.1", - "target": "npm:acorn", + "source": "npm:jsonfile", + "target": "npm:universalify", "type": "static" }, { - "source": "npm:espree@9.6.1", - "target": "npm:acorn-jsx", + "source": "npm:jsonfile", + "target": "npm:graceful-fs", "type": "static" }, { - "source": "npm:espree@9.6.1", - "target": "npm:eslint-visitor-keys", + "source": "npm:jsonwebtoken", + "target": "npm:jws", "type": "static" }, { - "source": "npm:jsonfile", - "target": "npm:universalify", + "source": "npm:jsonwebtoken", + "target": "npm:lodash.includes", "type": "static" }, { - "source": "npm:jsonfile", - "target": "npm:graceful-fs", + "source": "npm:jsonwebtoken", + "target": "npm:lodash.isboolean", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.isinteger", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.isnumber", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.isplainobject", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.isstring", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.once", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:ms", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:semver@7.7.3", "type": "static" }, { @@ -26576,6 +30641,31 @@ "target": "npm:object.values", "type": "static" }, + { + "source": "npm:jwa", + "target": "npm:buffer-equal-constant-time", + "type": "static" + }, + { + "source": "npm:jwa", + "target": "npm:ecdsa-sig-formatter", + "type": "static" + }, + { + "source": "npm:jwa", + "target": "npm:safe-buffer", + "type": "static" + }, + { + "source": "npm:jws", + "target": "npm:jwa", + "type": "static" + }, + { + "source": "npm:jws", + "target": "npm:safe-buffer", + "type": "static" + }, { "source": "npm:keyv", "target": "npm:json-buffer", @@ -26633,7 +30723,7 @@ }, { "source": "npm:less", - "target": "npm:mime", + "target": "npm:mime@1.6.0", "type": "static" }, { @@ -26763,7 +30853,7 @@ }, { "source": "npm:markdown-it", - "target": "npm:argparse", + "target": "npm:argparse@2.0.1", "type": "static" }, { @@ -26808,7 +30898,7 @@ }, { "source": "npm:markdownlint-cli2", - "target": "npm:js-yaml", + "target": "npm:js-yaml@4.1.0", "type": "static" }, { @@ -26848,7 +30938,7 @@ }, { "source": "npm:fast-glob@3.3.3", - "target": "npm:glob-parent", + "target": "npm:glob-parent@5.1.2", "type": "static" }, { @@ -26861,6 +30951,11 @@ "target": "npm:micromatch", "type": "static" }, + { + "source": "npm:glob-parent@5.1.2", + "target": "npm:is-glob", + "type": "static" + }, { "source": "npm:globby@14.0.2", "target": "npm:@sindresorhus/merge-streams", @@ -26891,6 +30986,11 @@ "target": "npm:unicorn-magic", "type": "static" }, + { + "source": "npm:js-yaml@4.1.0", + "target": "npm:argparse@2.0.1", + "type": "static" + }, { "source": "npm:memfs", "target": "npm:fs-monkey", @@ -26971,196 +31071,6 @@ "target": "npm:webidl-conversions", "type": "static" }, - { - "source": "npm:mongoose", - "target": "npm:@types/bson", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:@types/mongodb", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:bson@1.1.6", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:kareem", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:mongodb@3.7.4", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:mongoose-legacy-pluralize", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:mpath", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:mquery", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:ms@2.1.2", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:optional-require", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:regexp-clone", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:safe-buffer", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:sift", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:sliced", - "type": "static" - }, - { - "source": "npm:mongoose-legacy-pluralize", - "target": "npm:mongoose", - "type": "static" - }, - { - "source": "npm:bl@2.2.1", - "target": "npm:readable-stream@2.3.8", - "type": "static" - }, - { - "source": "npm:bl@2.2.1", - "target": "npm:safe-buffer", - "type": "static" - }, - { - "source": "npm:mongodb@3.7.4", - "target": "npm:bl@2.2.1", - "type": "static" - }, - { - "source": "npm:mongodb@3.7.4", - "target": "npm:bson@1.1.6", - "type": "static" - }, - { - "source": "npm:mongodb@3.7.4", - "target": "npm:denque", - "type": "static" - }, - { - "source": "npm:mongodb@3.7.4", - "target": "npm:optional-require@1.1.8", - "type": "static" - }, - { - "source": "npm:mongodb@3.7.4", - "target": "npm:safe-buffer", - "type": "static" - }, - { - "source": "npm:mongodb@3.7.4", - "target": "npm:saslprep", - "type": "static" - }, - { - "source": "npm:optional-require@1.1.8", - "target": "npm:require-at", - "type": "static" - }, - { - "source": "npm:readable-stream@2.3.8", - "target": "npm:core-util-is", - "type": "static" - }, - { - "source": "npm:readable-stream@2.3.8", - "target": "npm:inherits", - "type": "static" - }, - { - "source": "npm:readable-stream@2.3.8", - "target": "npm:isarray", - "type": "static" - }, - { - "source": "npm:readable-stream@2.3.8", - "target": "npm:process-nextick-args", - "type": "static" - }, - { - "source": "npm:readable-stream@2.3.8", - "target": "npm:safe-buffer@5.1.2", - "type": "static" - }, - { - "source": "npm:readable-stream@2.3.8", - "target": "npm:string_decoder@1.1.1", - "type": "static" - }, - { - "source": "npm:readable-stream@2.3.8", - "target": "npm:util-deprecate", - "type": "static" - }, - { - "source": "npm:string_decoder@1.1.1", - "target": "npm:safe-buffer@5.1.2", - "type": "static" - }, - { - "source": "npm:mquery", - "target": "npm:bluebird", - "type": "static" - }, - { - "source": "npm:mquery", - "target": "npm:debug@3.1.0", - "type": "static" - }, - { - "source": "npm:mquery", - "target": "npm:regexp-clone", - "type": "static" - }, - { - "source": "npm:mquery", - "target": "npm:safe-buffer@5.1.2", - "type": "static" - }, - { - "source": "npm:mquery", - "target": "npm:sliced", - "type": "static" - }, - { - "source": "npm:debug@3.1.0", - "target": "npm:ms@2.0.0", - "type": "static" - }, { "source": "npm:multicast-dns", "target": "npm:dns-packet", @@ -27191,11 +31101,6 @@ "target": "npm:tslib", "type": "static" }, - { - "source": "npm:node-cron", - "target": "npm:uuid@8.3.2", - "type": "static" - }, { "source": "npm:nodemon", "target": "npm:chokidar", @@ -27213,7 +31118,7 @@ }, { "source": "npm:nodemon", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -27246,6 +31151,21 @@ "target": "npm:undefsafe", "type": "static" }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", + "type": "static" + }, { "source": "npm:supports-color@5.5.0", "target": "npm:has-flag@3.0.0", @@ -27393,7 +31313,7 @@ }, { "source": "npm:nx", - "target": "npm:minimatch@9.0.3", + "target": "npm:minimatch", "type": "static" }, { @@ -27511,16 +31431,6 @@ "target": "npm:@nx/nx-win32-x64-msvc", "type": "static" }, - { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", - "type": "static" - }, - { - "source": "npm:minimatch@9.0.3", - "target": "npm:brace-expansion@2.0.1", - "type": "static" - }, { "source": "npm:object.assign", "target": "npm:call-bind", @@ -27813,7 +31723,7 @@ }, { "source": "npm:path-scurry", - "target": "npm:lru-cache@10.4.3", + "target": "npm:lru-cache@11.2.4", "type": "static" }, { @@ -27823,12 +31733,12 @@ }, { "source": "npm:pino", - "target": "npm:atomic-sleep", + "target": "npm:@pinojs/redact", "type": "static" }, { "source": "npm:pino", - "target": "npm:fast-redact", + "target": "npm:atomic-sleep", "type": "static" }, { @@ -28053,7 +31963,7 @@ }, { "source": "npm:postcss-load-config", - "target": "npm:yaml", + "target": "npm:yaml@1.10.2", "type": "static" }, { @@ -28103,7 +32013,7 @@ }, { "source": "npm:cosmiconfig@7.1.0", - "target": "npm:yaml", + "target": "npm:yaml@1.10.2", "type": "static" }, { @@ -28806,11 +32716,6 @@ "target": "npm:glob@10.4.5", "type": "static" }, - { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", - "type": "static" - }, { "source": "npm:glob@10.4.5", "target": "npm:foreground-child", @@ -28818,7 +32723,7 @@ }, { "source": "npm:glob@10.4.5", - "target": "npm:jackspeak", + "target": "npm:jackspeak@3.4.3", "type": "static" }, { @@ -28838,17 +32743,37 @@ }, { "source": "npm:glob@10.4.5", - "target": "npm:path-scurry", + "target": "npm:path-scurry@1.11.1", + "type": "static" + }, + { + "source": "npm:jackspeak@3.4.3", + "target": "npm:@isaacs/cliui", + "type": "static" + }, + { + "source": "npm:jackspeak@3.4.3", + "target": "npm:@pkgjs/parseargs", "type": "static" }, { "source": "npm:minimatch@9.0.5", - "target": "npm:brace-expansion@2.0.1", + "target": "npm:brace-expansion", + "type": "static" + }, + { + "source": "npm:path-scurry@1.11.1", + "target": "npm:lru-cache@10.4.3", + "type": "static" + }, + { + "source": "npm:path-scurry@1.11.1", + "target": "npm:minipass", "type": "static" }, { "source": "npm:rollup", - "target": "npm:@types/estree@1.0.7", + "target": "npm:@types/estree", "type": "static" }, { @@ -28928,7 +32853,7 @@ }, { "source": "npm:rollup", - "target": "npm:@rollup/rollup-linux-x64-gnu@4.42.0", + "target": "npm:@rollup/rollup-linux-x64-gnu@4.45.1", "type": "static" }, { @@ -29033,7 +32958,7 @@ }, { "source": "npm:globby@10.0.1", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -29168,7 +33093,7 @@ }, { "source": "npm:cssnano@5.1.15", - "target": "npm:yaml", + "target": "npm:yaml@1.10.2", "type": "static" }, { @@ -29906,11 +33831,6 @@ "target": "npm:ret", "type": "static" }, - { - "source": "npm:saslprep", - "target": "npm:sparse-bitfield", - "type": "static" - }, { "source": "npm:sass", "target": "npm:chokidar@4.0.3", @@ -29968,7 +33888,7 @@ }, { "source": "npm:schema-utils", - "target": "npm:ajv@8.17.1", + "target": "npm:ajv", "type": "static" }, { @@ -29978,47 +33898,17 @@ }, { "source": "npm:schema-utils", - "target": "npm:ajv-keywords@5.1.0", - "type": "static" - }, - { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-deep-equal", - "type": "static" - }, - { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-uri", - "type": "static" - }, - { - "source": "npm:ajv@8.17.1", - "target": "npm:json-schema-traverse@1.0.0", - "type": "static" - }, - { - "source": "npm:ajv@8.17.1", - "target": "npm:require-from-string", + "target": "npm:ajv-keywords", "type": "static" }, { "source": "npm:ajv-formats@2.1.1", - "target": "npm:ajv@8.17.1", + "target": "npm:ajv", "type": "static" }, { "source": "npm:ajv-formats@2.1.1", - "target": "npm:ajv@8.17.1", - "type": "static" - }, - { - "source": "npm:ajv-keywords@5.1.0", - "target": "npm:ajv@8.17.1", - "type": "static" - }, - { - "source": "npm:ajv-keywords@5.1.0", - "target": "npm:fast-deep-equal", + "target": "npm:ajv", "type": "static" }, { @@ -30078,7 +33968,7 @@ }, { "source": "npm:send", - "target": "npm:mime", + "target": "npm:mime@1.6.0", "type": "static" }, { @@ -30833,7 +34723,7 @@ }, { "source": "npm:fast-glob@3.3.3", - "target": "npm:glob-parent", + "target": "npm:glob-parent@5.1.2", "type": "static" }, { @@ -30846,6 +34736,11 @@ "target": "npm:micromatch", "type": "static" }, + { + "source": "npm:glob-parent@5.1.2", + "target": "npm:is-glob", + "type": "static" + }, { "source": "npm:supports-color", "target": "npm:has-flag", @@ -31008,7 +34903,22 @@ }, { "source": "npm:test-exclude", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", "type": "static" }, { @@ -31093,27 +35003,27 @@ }, { "source": "npm:ts-jest", - "target": "npm:typescript", + "target": "npm:jest-util", "type": "static" }, { "source": "npm:ts-jest", - "target": "npm:bs-logger", + "target": "npm:typescript", "type": "static" }, { "source": "npm:ts-jest", - "target": "npm:ejs", + "target": "npm:bs-logger", "type": "static" }, { "source": "npm:ts-jest", - "target": "npm:fast-json-stable-stringify", + "target": "npm:ejs", "type": "static" }, { "source": "npm:ts-jest", - "target": "npm:jest-util", + "target": "npm:fast-json-stable-stringify", "type": "static" }, { @@ -31423,254 +35333,259 @@ }, { "source": "npm:typescript-eslint", - "target": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:@typescript-eslint/eslint-plugin@8.38.0", "type": "static" }, { "source": "npm:typescript-eslint", - "target": "npm:@typescript-eslint/parser@8.34.0", + "target": "npm:@typescript-eslint/parser@8.38.0", "type": "static" }, { "source": "npm:typescript-eslint", - "target": "npm:@typescript-eslint/utils@8.34.0", + "target": "npm:@typescript-eslint/typescript-estree@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:@typescript-eslint/parser@8.34.0", + "source": "npm:typescript-eslint", + "target": "npm:@typescript-eslint/utils@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "target": "npm:@typescript-eslint/parser@8.38.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:eslint", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:typescript", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:@eslint-community/regexpp", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:@typescript-eslint/scope-manager@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "target": "npm:@typescript-eslint/scope-manager@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:@typescript-eslint/type-utils@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "target": "npm:@typescript-eslint/type-utils@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:@typescript-eslint/utils@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "target": "npm:@typescript-eslint/utils@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "target": "npm:@typescript-eslint/visitor-keys@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:graphemer", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:ignore@7.0.5", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:natural-compare", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:ts-api-utils@2.1.0", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", "target": "npm:eslint", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", "target": "npm:typescript", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", - "target": "npm:@typescript-eslint/scope-manager@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", + "target": "npm:@typescript-eslint/scope-manager@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", - "target": "npm:@typescript-eslint/types@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", - "target": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", + "target": "npm:@typescript-eslint/typescript-estree@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", - "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", + "target": "npm:@typescript-eslint/visitor-keys@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", "target": "npm:debug", "type": "static" }, { - "source": "npm:@typescript-eslint/scope-manager@8.34.0", - "target": "npm:@typescript-eslint/types@8.34.0", + "source": "npm:@typescript-eslint/scope-manager@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/scope-manager@8.34.0", - "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "source": "npm:@typescript-eslint/scope-manager@8.38.0", + "target": "npm:@typescript-eslint/visitor-keys@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", + "source": "npm:@typescript-eslint/type-utils@8.38.0", "target": "npm:eslint", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", + "source": "npm:@typescript-eslint/type-utils@8.38.0", "target": "npm:typescript", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", - "target": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/type-utils@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", - "target": "npm:@typescript-eslint/utils@8.34.0", + "source": "npm:@typescript-eslint/type-utils@8.38.0", + "target": "npm:@typescript-eslint/typescript-estree@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", + "source": "npm:@typescript-eslint/type-utils@8.38.0", + "target": "npm:@typescript-eslint/utils@8.38.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/type-utils@8.38.0", "target": "npm:debug", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", + "source": "npm:@typescript-eslint/type-utils@8.38.0", "target": "npm:ts-api-utils@2.1.0", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:typescript", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:@typescript-eslint/project-service", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:@typescript-eslint/tsconfig-utils", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", - "target": "npm:@typescript-eslint/types@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", - "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", + "target": "npm:@typescript-eslint/visitor-keys@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:debug", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:fast-glob@3.3.3", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:is-glob", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:minimatch@9.0.5", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:semver@7.7.2", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:ts-api-utils@2.1.0", "type": "static" }, { - "source": "npm:@typescript-eslint/utils@8.34.0", + "source": "npm:@typescript-eslint/utils@8.38.0", "target": "npm:eslint", "type": "static" }, { - "source": "npm:@typescript-eslint/utils@8.34.0", + "source": "npm:@typescript-eslint/utils@8.38.0", "target": "npm:typescript", "type": "static" }, { - "source": "npm:@typescript-eslint/utils@8.34.0", + "source": "npm:@typescript-eslint/utils@8.38.0", "target": "npm:@eslint-community/eslint-utils", "type": "static" }, { - "source": "npm:@typescript-eslint/utils@8.34.0", - "target": "npm:@typescript-eslint/scope-manager@8.34.0", + "source": "npm:@typescript-eslint/utils@8.38.0", + "target": "npm:@typescript-eslint/scope-manager@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/utils@8.34.0", - "target": "npm:@typescript-eslint/types@8.34.0", + "source": "npm:@typescript-eslint/utils@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/utils@8.34.0", - "target": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/utils@8.38.0", + "target": "npm:@typescript-eslint/typescript-estree@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/visitor-keys@8.34.0", - "target": "npm:@typescript-eslint/types@8.34.0", + "source": "npm:@typescript-eslint/visitor-keys@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/visitor-keys@8.34.0", + "source": "npm:@typescript-eslint/visitor-keys@8.38.0", "target": "npm:eslint-visitor-keys@4.2.1", "type": "static" }, - { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", - "type": "static" - }, { "source": "npm:fast-glob@3.3.3", "target": "npm:@nodelib/fs.stat", @@ -31683,7 +35598,7 @@ }, { "source": "npm:fast-glob@3.3.3", - "target": "npm:glob-parent", + "target": "npm:glob-parent@5.1.2", "type": "static" }, { @@ -31696,9 +35611,14 @@ "target": "npm:micromatch", "type": "static" }, + { + "source": "npm:glob-parent@5.1.2", + "target": "npm:is-glob", + "type": "static" + }, { "source": "npm:minimatch@9.0.5", - "target": "npm:brace-expansion@2.0.1", + "target": "npm:brace-expansion", "type": "static" }, { @@ -31761,16 +35681,6 @@ "target": "npm:punycode", "type": "static" }, - { - "source": "npm:url", - "target": "npm:punycode@1.3.2", - "type": "static" - }, - { - "source": "npm:url", - "target": "npm:querystring", - "type": "static" - }, { "source": "npm:url-parse", "target": "npm:querystringify", @@ -31781,31 +35691,6 @@ "target": "npm:requires-port", "type": "static" }, - { - "source": "npm:util", - "target": "npm:inherits", - "type": "static" - }, - { - "source": "npm:util", - "target": "npm:is-arguments", - "type": "static" - }, - { - "source": "npm:util", - "target": "npm:is-generator-function", - "type": "static" - }, - { - "source": "npm:util", - "target": "npm:is-typed-array", - "type": "static" - }, - { - "source": "npm:util", - "target": "npm:which-typed-array", - "type": "static" - }, { "source": "npm:v8-to-istanbul", "target": "npm:@jridgewell/trace-mapping", @@ -31886,6 +35771,11 @@ "target": "npm:acorn", "type": "static" }, + { + "source": "npm:webpack", + "target": "npm:acorn-import-phases", + "type": "static" + }, { "source": "npm:webpack", "target": "npm:browserslist", @@ -32486,16 +36376,6 @@ "target": "npm:signal-exit", "type": "static" }, - { - "source": "npm:xml2js", - "target": "npm:sax", - "type": "static" - }, - { - "source": "npm:xml2js", - "target": "npm:xmlbuilder", - "type": "static" - }, { "source": "npm:yargs", "target": "npm:cliui", @@ -32537,8 +36417,83 @@ "type": "static" }, { - "source": "npm:@types/node@22.6.1", - "target": "npm:undici-types", + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:ajv@6.12.6", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:debug", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:espree@10.4.0", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:globals@14.0.0", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:ignore", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:import-fresh", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:js-yaml@4.1.0", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:minimatch@3.1.2", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:strip-json-comments", + "type": "static" + }, + { + "source": "npm:@fastify/cors@10.1.0", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/cors@10.1.0", + "target": "npm:mnemonist", + "type": "static" + }, + { + "source": "npm:@fastify/jwt@9.1.0", + "target": "npm:@fastify/error", + "type": "static" + }, + { + "source": "npm:@fastify/jwt@9.1.0", + "target": "npm:@lukeed/ms", + "type": "static" + }, + { + "source": "npm:@fastify/jwt@9.1.0", + "target": "npm:fast-jwt@5.0.6", + "type": "static" + }, + { + "source": "npm:@fastify/jwt@9.1.0", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/jwt@9.1.0", + "target": "npm:steed", "type": "static" }, { @@ -32636,6 +36591,26 @@ "target": "npm:debug", "type": "static" }, + { + "source": "npm:@typescript-eslint/project-service@8.34.0", + "target": "npm:typescript@5.8.3", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/project-service@8.34.0", + "target": "npm:@typescript-eslint/tsconfig-utils@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/project-service@8.34.0", + "target": "npm:@typescript-eslint/types@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/project-service@8.34.0", + "target": "npm:debug", + "type": "static" + }, { "source": "npm:@typescript-eslint/scope-manager@8.34.0", "target": "npm:@typescript-eslint/types@8.34.0", @@ -32646,6 +36621,11 @@ "target": "npm:@typescript-eslint/visitor-keys@8.34.0", "type": "static" }, + { + "source": "npm:@typescript-eslint/tsconfig-utils@8.34.0", + "target": "npm:typescript@5.8.3", + "type": "static" + }, { "source": "npm:@typescript-eslint/type-utils@8.34.0", "target": "npm:eslint@9.28.0", @@ -32683,12 +36663,12 @@ }, { "source": "npm:@typescript-eslint/typescript-estree@8.34.0", - "target": "npm:@typescript-eslint/project-service", + "target": "npm:@typescript-eslint/project-service@8.34.0", "type": "static" }, { "source": "npm:@typescript-eslint/typescript-estree@8.34.0", - "target": "npm:@typescript-eslint/tsconfig-utils", + "target": "npm:@typescript-eslint/tsconfig-utils@8.34.0", "type": "static" }, { @@ -32733,7 +36713,7 @@ }, { "source": "npm:minimatch@9.0.5", - "target": "npm:brace-expansion@2.0.1", + "target": "npm:brace-expansion", "type": "static" }, { @@ -32777,8 +36757,23 @@ "type": "static" }, { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", + "source": "npm:ajv@6.12.6", + "target": "npm:fast-deep-equal", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:fast-json-stable-stringify", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:json-schema-traverse@0.4.1", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:uri-js", "type": "static" }, { @@ -32808,12 +36803,12 @@ }, { "source": "npm:eslint@9.28.0", - "target": "npm:@eslint/eslintrc", + "target": "npm:@eslint/eslintrc@3.3.1", "type": "static" }, { "source": "npm:eslint@9.28.0", - "target": "npm:@eslint/js", + "target": "npm:@eslint/js@9.28.0", "type": "static" }, { @@ -32848,7 +36843,7 @@ }, { "source": "npm:eslint@9.28.0", - "target": "npm:ajv", + "target": "npm:ajv@6.12.6", "type": "static" }, { @@ -32883,7 +36878,7 @@ }, { "source": "npm:eslint@9.28.0", - "target": "npm:espree", + "target": "npm:espree@10.4.0", "type": "static" }, { @@ -32913,7 +36908,7 @@ }, { "source": "npm:eslint@9.28.0", - "target": "npm:glob-parent@6.0.2", + "target": "npm:glob-parent", "type": "static" }, { @@ -32943,7 +36938,7 @@ }, { "source": "npm:eslint@9.28.0", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -32967,8 +36962,18 @@ "type": "static" }, { - "source": "npm:glob-parent@6.0.2", - "target": "npm:is-glob", + "source": "npm:espree@10.4.0", + "target": "npm:acorn", + "type": "static" + }, + { + "source": "npm:espree@10.4.0", + "target": "npm:acorn-jsx", + "type": "static" + }, + { + "source": "npm:espree@10.4.0", + "target": "npm:eslint-visitor-keys@4.2.1", "type": "static" }, { @@ -32983,7 +36988,7 @@ }, { "source": "npm:fast-glob@3.3.3", - "target": "npm:glob-parent", + "target": "npm:glob-parent@5.1.2", "type": "static" }, { @@ -32996,6 +37001,31 @@ "target": "npm:micromatch", "type": "static" }, + { + "source": "npm:glob-parent@5.1.2", + "target": "npm:is-glob", + "type": "static" + }, + { + "source": "npm:fast-jwt@5.0.6", + "target": "npm:@lukeed/ms", + "type": "static" + }, + { + "source": "npm:fast-jwt@5.0.6", + "target": "npm:asn1.js", + "type": "static" + }, + { + "source": "npm:fast-jwt@5.0.6", + "target": "npm:ecdsa-sig-formatter", + "type": "static" + }, + { + "source": "npm:fast-jwt@5.0.6", + "target": "npm:mnemonist", + "type": "static" + }, { "source": "npm:file-entry-cache@8.0.0", "target": "npm:flat-cache@4.0.1", @@ -33021,11 +37051,36 @@ "target": "npm:keyv", "type": "static" }, + { + "source": "npm:js-yaml@4.1.0", + "target": "npm:argparse@2.0.1", + "type": "static" + }, { "source": "npm:locate-path@6.0.0", "target": "npm:p-locate@5.0.0", "type": "static" }, + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + }, + { + "source": "npm:node-cron@3.0.3", + "target": "npm:uuid@8.3.2", + "type": "static" + }, { "source": "npm:p-locate@5.0.0", "target": "npm:p-limit", diff --git a/.nx/workspace-data/project-graph.json b/.nx/workspace-data/project-graph.json index 3a1ee2d..d3f1d14 100644 --- a/.nx/workspace-data/project-graph.json +++ b/.nx/workspace-data/project-graph.json @@ -102,6 +102,197 @@ "tags": [] } }, + "flowerbase-client": { + "name": "flowerbase-client", + "type": "lib", + "data": { + "root": "packages/flowerbase-client", + "targets": { + "lint": { + "cache": true, + "options": { + "cwd": "packages/flowerbase-client", + "command": "eslint ." + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + }, + "executor": "nx:run-commands", + "configurations": {} + }, + "test": { + "executor": "nx:run-script", + "options": { + "script": "test" + }, + "metadata": { + "technologies": [ + "jest" + ], + "description": "Run Jest Tests", + "help": { + "command": "npx jest --help", + "example": { + "options": { + "coverage": true + } + } + }, + "scriptContent": "npx jest", + "runCommand": "npm run test" + }, + "configurations": {} + }, + "build": { + "executor": "nx:run-script", + "options": { + "script": "build" + }, + "metadata": { + "scriptContent": "rm -rf dist/ && tsc", + "runCommand": "npm run build" + }, + "configurations": {} + } + }, + "sourceRoot": "packages/flowerbase-client/src", + "name": "flowerbase-client", + "tags": [ + "npm:private", + "flowerbase", + "client" + ], + "metadata": { + "targetGroups": { + "NPM Scripts": [ + "test", + "build" + ] + }, + "description": "Realm-compatible client for Flowerbase" + }, + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "projectType": "library", + "implicitDependencies": [] + } + }, + "mongo-server-migration-tool": { + "name": "mongo-server-migration-tool", + "type": "lib", + "data": { + "root": "packages/users-exporter", + "targets": { + "lint": { + "cache": true, + "options": { + "cwd": "packages/users-exporter", + "command": "eslint ." + }, + "inputs": [ + "default", + "^default", + "{workspaceRoot}/.eslintrc", + "{projectRoot}/.eslintrc", + "{workspaceRoot}/tools/eslint-rules/**/*", + { + "externalDependencies": [ + "eslint" + ] + } + ], + "outputs": [ + "{options.outputFile}" + ], + "metadata": { + "technologies": [ + "eslint" + ], + "description": "Runs ESLint on project", + "help": { + "command": "npx eslint --help", + "example": { + "options": { + "max-warnings": 0 + } + } + } + }, + "executor": "nx:run-commands", + "configurations": {} + }, + "start": { + "executor": "nx:run-script", + "options": { + "script": "start" + }, + "metadata": { + "scriptContent": "nodemon index.js", + "runCommand": "npm run start" + }, + "configurations": {} + }, + "test": { + "executor": "nx:run-script", + "options": { + "script": "test" + }, + "metadata": { + "scriptContent": "echo \"Error: no test specified\" && exit 1", + "runCommand": "npm run test" + }, + "configurations": {} + }, + "nx-release-publish": { + "dependsOn": [ + "^nx-release-publish" + ], + "executor": "@nx/js:release-publish", + "options": {}, + "configurations": {} + } + }, + "sourceRoot": "packages/users-exporter", + "name": "mongo-server-migration-tool", + "tags": [ + "npm:public" + ], + "metadata": { + "targetGroups": { + "NPM Scripts": [ + "start", + "test" + ] + }, + "description": "" + }, + "implicitDependencies": [] + } + }, "flowerbase": { "name": "flowerbase", "type": "lib", @@ -318,13 +509,589 @@ "hash": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==" } }, + "npm:@aws-crypto/crc32": { + "type": "npm", + "name": "npm:@aws-crypto/crc32", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/crc32", + "hash": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==" + } + }, + "npm:@aws-crypto/crc32c": { + "type": "npm", + "name": "npm:@aws-crypto/crc32c", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/crc32c", + "hash": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==" + } + }, + "npm:@aws-crypto/sha1-browser": { + "type": "npm", + "name": "npm:@aws-crypto/sha1-browser", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/sha1-browser", + "hash": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==" + } + }, + "npm:@smithy/is-array-buffer@2.2.0": { + "type": "npm", + "name": "npm:@smithy/is-array-buffer@2.2.0", + "data": { + "version": "2.2.0", + "packageName": "@smithy/is-array-buffer", + "hash": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==" + } + }, + "npm:@smithy/is-array-buffer": { + "type": "npm", + "name": "npm:@smithy/is-array-buffer", + "data": { + "version": "4.2.0", + "packageName": "@smithy/is-array-buffer", + "hash": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==" + } + }, + "npm:@smithy/util-buffer-from@2.2.0": { + "type": "npm", + "name": "npm:@smithy/util-buffer-from@2.2.0", + "data": { + "version": "2.2.0", + "packageName": "@smithy/util-buffer-from", + "hash": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==" + } + }, + "npm:@smithy/util-buffer-from": { + "type": "npm", + "name": "npm:@smithy/util-buffer-from", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-buffer-from", + "hash": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==" + } + }, + "npm:@smithy/util-utf8@2.3.0": { + "type": "npm", + "name": "npm:@smithy/util-utf8@2.3.0", + "data": { + "version": "2.3.0", + "packageName": "@smithy/util-utf8", + "hash": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==" + } + }, + "npm:@smithy/util-utf8": { + "type": "npm", + "name": "npm:@smithy/util-utf8", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-utf8", + "hash": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==" + } + }, + "npm:@aws-crypto/sha256-browser": { + "type": "npm", + "name": "npm:@aws-crypto/sha256-browser", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/sha256-browser", + "hash": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==" + } + }, + "npm:@aws-crypto/sha256-js": { + "type": "npm", + "name": "npm:@aws-crypto/sha256-js", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/sha256-js", + "hash": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==" + } + }, + "npm:@aws-crypto/supports-web-crypto": { + "type": "npm", + "name": "npm:@aws-crypto/supports-web-crypto", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/supports-web-crypto", + "hash": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==" + } + }, + "npm:@aws-crypto/util": { + "type": "npm", + "name": "npm:@aws-crypto/util", + "data": { + "version": "5.2.0", + "packageName": "@aws-crypto/util", + "hash": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==" + } + }, + "npm:@aws-sdk/client-lambda": { + "type": "npm", + "name": "npm:@aws-sdk/client-lambda", + "data": { + "version": "3.974.0", + "packageName": "@aws-sdk/client-lambda", + "hash": "sha512-/8CtFqvX4GrmwdSKKQkEH1IEiqNQCpZQKzaHGYXthA8Cfjg/nyJ/M1/2c/4El5R8eiZbzzHPGhUPPFdfGMB9jQ==" + } + }, + "npm:@aws-sdk/client-s3": { + "type": "npm", + "name": "npm:@aws-sdk/client-s3", + "data": { + "version": "3.974.0", + "packageName": "@aws-sdk/client-s3", + "hash": "sha512-X+vpXNJ8cU8Iw1FtDgDHxo9z6RxlXfcTtpdGnKws4rk+tCYKSAor/DG6BRMzbh4E5xAA7DiU1Ny3BTrRRSt/Yg==" + } + }, + "npm:@aws-sdk/client-sso": { + "type": "npm", + "name": "npm:@aws-sdk/client-sso", + "data": { + "version": "3.974.0", + "packageName": "@aws-sdk/client-sso", + "hash": "sha512-ci+GiM0c4ULo4D79UMcY06LcOLcfvUfiyt8PzNY0vbt5O8BfCPYf4QomwVgkNcLLCYmroO4ge2Yy1EsLUlcD6g==" + } + }, + "npm:@aws-sdk/core": { + "type": "npm", + "name": "npm:@aws-sdk/core", + "data": { + "version": "3.973.0", + "packageName": "@aws-sdk/core", + "hash": "sha512-qy3Fmt8z4PRInM3ZqJmHihQ2tfCdj/MzbGaZpuHjYjgl1/Gcar4Pyp/zzHXh9hGEb61WNbWgsJcDUhnGIiX1TA==" + } + }, + "npm:@aws-sdk/core@3.972.0": { + "type": "npm", + "name": "npm:@aws-sdk/core@3.972.0", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/core", + "hash": "sha512-nEeUW2M9F+xdIaD98F5MBcQ4ITtykj3yKbgFZ6J0JtL3bq+Z90szQ6Yy8H/BLPYXTs3V4n9ifnBo8cprRDiE6A==" + } + }, + "npm:@aws-sdk/crc64-nvme": { + "type": "npm", + "name": "npm:@aws-sdk/crc64-nvme", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/crc64-nvme", + "hash": "sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw==" + } + }, + "npm:@aws-sdk/credential-provider-env": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-env", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-env", + "hash": "sha512-/etNHqnx96phy/SjI0HRC588o4vKH5F0xfkZ13yAATV7aNrb+5gYGNE6ePWafP+FuZ3HkULSSlJFj0AxgrAqYw==" + } + }, + "npm:@aws-sdk/credential-provider-http": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-http", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-http", + "hash": "sha512-AeopObGW5lpWbDRZ+t4EAtS7wdfSrHPLeFts7jaBzgIaCCD7TL7jAyAB9Y5bCLOPF+17+GL54djCCsjePljUAw==" + } + }, + "npm:@aws-sdk/credential-provider-ini": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-ini", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-ini", + "hash": "sha512-OdbJA3v+XlNDsrYzNPRUwr8l7gw1r/nR8l4r96MDzSBDU8WEo8T6C06SvwaXR8SpzsjO3sq5KMP86wXWg7Rj4g==" + } + }, + "npm:@aws-sdk/credential-provider-login": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-login", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-login", + "hash": "sha512-CccqDGL6ZrF3/EFWZefvKW7QwwRdxlHUO8NVBKNVcNq6womrPDvqB6xc9icACtE0XB0a7PLoSTkAg8bQVkTO2w==" + } + }, + "npm:@aws-sdk/credential-provider-node": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-node", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-node", + "hash": "sha512-DwXPk9GfuU/xG9tmCyXFVkCr6X3W8ZCoL5Ptb0pbltEx1/LCcg7T+PBqDlPiiinNCD6ilIoMJDWsnJ8ikzZA7Q==" + } + }, + "npm:@aws-sdk/credential-provider-process": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-process", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-process", + "hash": "sha512-bi47Zigu3692SJwdBvo8y1dEwE6B61stCwCFnuRWJVTfiM84B+VTSCV661CSWJmIZzmcy7J5J3kWyxL02iHj0w==" + } + }, + "npm:@aws-sdk/credential-provider-sso": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-sso", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-sso", + "hash": "sha512-dLZVNhM7wSgVUFsgVYgI5hb5Z/9PUkT46pk/SHrSmUqfx6YDvoV4YcPtaiRqviPpEGGiRtdQMEadyOKIRqulUQ==" + } + }, + "npm:@aws-sdk/credential-provider-web-identity": { + "type": "npm", + "name": "npm:@aws-sdk/credential-provider-web-identity", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/credential-provider-web-identity", + "hash": "sha512-YMDeYgi0u687Ay0dAq/pFPKuijrlKTgsaB/UATbxCs/FzZfMiG4If5ksywHmmW7MiYUF8VVv+uou3TczvLrN4w==" + } + }, + "npm:@aws-sdk/middleware-bucket-endpoint": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-bucket-endpoint", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-bucket-endpoint", + "hash": "sha512-YVvoitBdE8WOpHqIXvv49efT73F4bJ99XH2bi3Dn3mx7WngI4RwHwn/zF5i0q1Wdi5frGSCNF3vuh+pY817//w==" + } + }, + "npm:@aws-sdk/middleware-expect-continue": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-expect-continue", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-expect-continue", + "hash": "sha512-6lfl2/J/kutzw/RLu1kjbahsz4vrGPysrdxWaw8fkjLYG+6M6AswocIAZFS/LgAVi/IWRwPTx9YC0/NH2wDrSw==" + } + }, + "npm:@aws-sdk/middleware-flexible-checksums": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-flexible-checksums", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-flexible-checksums", + "hash": "sha512-kjVVREpqeUkYQsXr78AcsJbEUlxGH7+H6yS7zkjrnu6HyEVxbdSndkKX6VpKneFOihjCAhIXlk4wf3butDHkNQ==" + } + }, + "npm:@aws-sdk/middleware-host-header": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-host-header", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-host-header", + "hash": "sha512-/R82lXLPmZ9JaUGSUdKtBp2k/5xQxvBT3zZWyKiBOhyulFotlfvdlrO8TnqstBimsl4lYEYySDL+W6ldFh6ALg==" + } + }, + "npm:@aws-sdk/middleware-location-constraint": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-location-constraint", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-location-constraint", + "hash": "sha512-YisPaCbvBk9gY5aUI8jDMDKXsLZ9Fet0WYj1MviK8tZYMgxBIYHM6l3O/OHaAIujojZvamd9F3haYYYWp5/V3w==" + } + }, + "npm:@aws-sdk/middleware-logger": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-logger", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-logger", + "hash": "sha512-JGgFl6cHg9G2FHu4lyFIzmFN8KESBiRr84gLC3Aeni0Gt1nKm+KxWLBuha/RPcXxJygGXCcMM4AykkIwxor8RA==" + } + }, + "npm:@aws-sdk/middleware-recursion-detection": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-recursion-detection", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-recursion-detection", + "hash": "sha512-taGzNRe8vPHjnliqXIHp9kBgIemLE/xCaRTMH1NH0cncHeaPcjxtnCroAAM9aOlPuKvBe2CpZESyvM1+D8oI7Q==" + } + }, + "npm:@aws-sdk/middleware-sdk-s3": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-sdk-s3", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-sdk-s3", + "hash": "sha512-q/hK0ZNf/aafFRv2wIlDM3p+izi5cXwktVNvRvW646A0MvVZmT4/vwadv/jPA9AORFbnpyf/0luxiMz181f9yg==" + } + }, + "npm:@aws-sdk/middleware-sdk-s3@3.972.0": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/middleware-sdk-s3", + "hash": "sha512-0bcKFXWx+NZ7tIlOo7KjQ+O2rydiHdIQahrq+fN6k9Osky29v17guy68urUKfhTobR6iY6KvxkroFWaFtTgS5w==" + } + }, + "npm:@aws-sdk/middleware-ssec": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-ssec", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-ssec", + "hash": "sha512-fLtRTPd/MxJT2drJKft2GVGKm35PiNEeQ1Dvz1vc/WhhgAteYrp4f1SfSgjgLaYWGMExESJL4bt8Dxqp6tVsog==" + } + }, + "npm:@aws-sdk/middleware-user-agent": { + "type": "npm", + "name": "npm:@aws-sdk/middleware-user-agent", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/middleware-user-agent", + "hash": "sha512-6SVg4pY/9Oq9MLzO48xuM3lsOb8Rxg55qprEtFRpkUmuvKij31f5SQHEGxuiZ4RqIKrfjr2WMuIgXvqJ0eJsPA==" + } + }, + "npm:@aws-sdk/nested-clients": { + "type": "npm", + "name": "npm:@aws-sdk/nested-clients", + "data": { + "version": "3.974.0", + "packageName": "@aws-sdk/nested-clients", + "hash": "sha512-k3dwdo/vOiHMJc9gMnkPl1BA5aQfTrZbz+8fiDkWrPagqAioZgmo5oiaOaeX0grObfJQKDtcpPFR4iWf8cgl8Q==" + } + }, + "npm:@aws-sdk/region-config-resolver": { + "type": "npm", + "name": "npm:@aws-sdk/region-config-resolver", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/region-config-resolver", + "hash": "sha512-voIY8RORpxLAEgEkYaTFnkaIuRwVBEc+RjVZYcSSllPV+ZEKAacai6kNhJeE3D70Le+JCfvRb52tng/AVHY+jQ==" + } + }, + "npm:@aws-sdk/s3-request-presigner": { + "type": "npm", + "name": "npm:@aws-sdk/s3-request-presigner", + "data": { + "version": "3.975.0", + "packageName": "@aws-sdk/s3-request-presigner", + "hash": "sha512-rqDktHVSB7Ah7XXqr6BWMqDhGXEccp0h1EivaOGED73JjeG/S7taoywJPqi7YkalRb3Ka+LRc7wVoN9wSa4KQA==" + } + }, + "npm:@aws-sdk/signature-v4-multi-region": { + "type": "npm", + "name": "npm:@aws-sdk/signature-v4-multi-region", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/signature-v4-multi-region", + "hash": "sha512-2udiRijmjpN81Pvajje4TsjbXDZNP6K9bYUanBYH8hXa/tZG5qfGCySD+TyX0sgDxCQmEDMg3LaQdfjNHBDEgQ==" + } + }, + "npm:@aws-sdk/types@3.972.0": { + "type": "npm", + "name": "npm:@aws-sdk/types@3.972.0", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/types", + "hash": "sha512-U7xBIbLSetONxb2bNzHyDgND3oKGoIfmknrEVnoEU4GUSs+0augUOIn9DIWGUO2ETcRFdsRUnmx9KhPT9Ojbug==" + } + }, + "npm:@aws-sdk/types": { + "type": "npm", + "name": "npm:@aws-sdk/types", + "data": { + "version": "3.973.1", + "packageName": "@aws-sdk/types", + "hash": "sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg==" + } + }, + "npm:@aws-sdk/util-arn-parser@3.972.0": { + "type": "npm", + "name": "npm:@aws-sdk/util-arn-parser@3.972.0", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/util-arn-parser", + "hash": "sha512-RM5Mmo/KJ593iMSrALlHEOcc9YOIyOsDmS5x2NLOMdEmzv1o00fcpAkCQ02IGu1eFneBFT7uX0Mpag0HI+Cz2g==" + } + }, + "npm:@aws-sdk/util-arn-parser": { + "type": "npm", + "name": "npm:@aws-sdk/util-arn-parser", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/util-arn-parser", + "hash": "sha512-XnNit6H9PPHhqUXW/usjX6JeJ6Pm8ZNqivTjmNjgWHeOfVpblUc/MTic02UmCNR0jJLPjQ3mBKiMen0tnkNQjQ==" + } + }, + "npm:@aws-sdk/xml-builder@3.972.0": { + "type": "npm", + "name": "npm:@aws-sdk/xml-builder@3.972.0", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/xml-builder", + "hash": "sha512-POaGMcXnozzqBUyJM3HLUZ9GR6OKJWPGJEmhtTnxZXt8B6JcJ/6K3xRJ5H/j8oovVLz8Wg6vFxAHv8lvuASxMg==" + } + }, + "npm:@aws-sdk/xml-builder": { + "type": "npm", + "name": "npm:@aws-sdk/xml-builder", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/xml-builder", + "hash": "sha512-6zZGlPOqn7Xb+25MAXGb1JhgvaC5HjZj6GzszuVrnEgbhvzBRFGKYemuHBV4bho+dtqeYKPgaZUv7/e80hIGNg==" + } + }, + "npm:@aws-sdk/token-providers": { + "type": "npm", + "name": "npm:@aws-sdk/token-providers", + "data": { + "version": "3.974.0", + "packageName": "@aws-sdk/token-providers", + "hash": "sha512-cBykL0LiccKIgNhGWvQRTPvsBLPZxnmJU3pYxG538jpFX8lQtrCy1L7mmIHNEdxIdIGEPgAEHF8/JQxgBToqUQ==" + } + }, + "npm:@aws-sdk/util-endpoints": { + "type": "npm", + "name": "npm:@aws-sdk/util-endpoints", + "data": { + "version": "3.972.0", + "packageName": "@aws-sdk/util-endpoints", + "hash": "sha512-6JHsl1V/a1ZW8D8AFfd4R52fwZPnZ5H4U6DS8m/bWT8qad72NvbOFAC7U2cDtFs2TShqUO3TEiX/EJibtY3ijg==" + } + }, + "npm:@aws-sdk/util-format-url": { + "type": "npm", + "name": "npm:@aws-sdk/util-format-url", + "data": { + "version": "3.972.2", + "packageName": "@aws-sdk/util-format-url", + "hash": "sha512-RCd8eur5wzDLgFBvbBhoFQ1bw1wxHJiN88MQ82IiJBs6OGXTWaf0oFgLbK06qJvnVUqL13t3jEnlYPHPNdgBWw==" + } + }, + "npm:@aws-sdk/util-locate-window": { + "type": "npm", + "name": "npm:@aws-sdk/util-locate-window", + "data": { + "version": "3.965.3", + "packageName": "@aws-sdk/util-locate-window", + "hash": "sha512-FNUqAjlKAGA7GM05kywE99q8wiPHPZqrzhq3wXRga6PRD6A0kzT85Pb0AzYBVTBRpSrKyyr6M92Y6bnSBVp2BA==" + } + }, + "npm:@aws-sdk/util-user-agent-browser": { + "type": "npm", + "name": "npm:@aws-sdk/util-user-agent-browser", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/util-user-agent-browser", + "hash": "sha512-IgF55NFmJX8d9Wql9M0nEpk2eYbuD8G4781FN4/fFgwTXBn86DvlZJuRWDCMcMqZymnBVX7HW9r+3r9ylqfW0w==" + } + }, + "npm:@aws-sdk/util-user-agent-node": { + "type": "npm", + "name": "npm:@aws-sdk/util-user-agent-node", + "data": { + "version": "3.972.1", + "packageName": "@aws-sdk/util-user-agent-node", + "hash": "sha512-oIs4JFcADzoZ0c915R83XvK2HltWupxNsXUIuZse2rgk7b97zTpkxaqXiH0h9ylh31qtgo/t8hp4tIqcsMrEbQ==" + } + }, + "npm:@aws/lambda-invoke-store": { + "type": "npm", + "name": "npm:@aws/lambda-invoke-store", + "data": { + "version": "0.2.3", + "packageName": "@aws/lambda-invoke-store", + "hash": "sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==" + } + }, "npm:@babel/cli": { "type": "npm", "name": "npm:@babel/cli", "data": { - "version": "7.27.2", + "version": "7.28.0", "packageName": "@babel/cli", - "hash": "sha512-cfd7DnGlhH6OIyuPSSj3vcfIdnbXukhAyKY8NaZrFadC7pXyL9mOL5WgjcptiEJLi5k3j8aYvLIVCzezrWTaiA==" + "hash": "sha512-CYrZG7FagtE8ReKDBfItxnrEBf2khq2eTMnPuqO8UVN0wzhp1eMX1wfda8b1a32l2aqYLwRRIOGNovm8FVzmMw==" + } + }, + "npm:commander@6.2.1": { + "type": "npm", + "name": "npm:commander@6.2.1", + "data": { + "version": "6.2.1", + "packageName": "commander", + "hash": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + } + }, + "npm:commander": { + "type": "npm", + "name": "npm:commander", + "data": { + "version": "8.3.0", + "packageName": "commander", + "hash": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + } + }, + "npm:commander@7.2.0": { + "type": "npm", + "name": "npm:commander@7.2.0", + "data": { + "version": "7.2.0", + "packageName": "commander", + "hash": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + } + }, + "npm:commander@2.20.3": { + "type": "npm", + "name": "npm:commander@2.20.3", + "data": { + "version": "2.20.3", + "packageName": "commander", + "hash": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + }, + "npm:commander@10.0.1": { + "type": "npm", + "name": "npm:commander@10.0.1", + "data": { + "version": "10.0.1", + "packageName": "commander", + "hash": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==" + } + }, + "npm:slash@2.0.0": { + "type": "npm", + "name": "npm:slash@2.0.0", + "data": { + "version": "2.0.0", + "packageName": "slash", + "hash": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + } + }, + "npm:slash@4.0.0": { + "type": "npm", + "name": "npm:slash@4.0.0", + "data": { + "version": "4.0.0", + "packageName": "slash", + "hash": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + } + }, + "npm:slash@5.1.0": { + "type": "npm", + "name": "npm:slash@5.1.0", + "data": { + "version": "5.1.0", + "packageName": "slash", + "hash": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==" + } + }, + "npm:slash": { + "type": "npm", + "name": "npm:slash", + "data": { + "version": "3.0.0", + "packageName": "slash", + "hash": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" } }, "npm:@babel/code-frame": { @@ -340,27 +1107,27 @@ "type": "npm", "name": "npm:@babel/compat-data", "data": { - "version": "7.27.5", + "version": "7.28.0", "packageName": "@babel/compat-data", - "hash": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==" + "hash": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==" } }, "npm:@babel/core": { "type": "npm", "name": "npm:@babel/core", "data": { - "version": "7.27.4", + "version": "7.28.0", "packageName": "@babel/core", - "hash": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==" + "hash": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==" } }, "npm:@babel/generator": { "type": "npm", "name": "npm:@babel/generator", "data": { - "version": "7.27.5", + "version": "7.28.0", "packageName": "@babel/generator", - "hash": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==" + "hash": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==" } }, "npm:@babel/helper-annotate-as-pure": { @@ -403,9 +1170,18 @@ "type": "npm", "name": "npm:@babel/helper-define-polyfill-provider", "data": { - "version": "0.6.4", + "version": "0.6.5", "packageName": "@babel/helper-define-polyfill-provider", - "hash": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==" + "hash": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==" + } + }, + "npm:@babel/helper-globals": { + "type": "npm", + "name": "npm:@babel/helper-globals", + "data": { + "version": "7.28.0", + "packageName": "@babel/helper-globals", + "hash": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==" } }, "npm:@babel/helper-member-expression-to-functions": { @@ -529,9 +1305,9 @@ "type": "npm", "name": "npm:@babel/parser", "data": { - "version": "7.27.5", + "version": "7.28.0", "packageName": "@babel/parser", - "hash": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==" + "hash": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==" } }, "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key": { @@ -583,9 +1359,9 @@ "type": "npm", "name": "npm:@babel/plugin-proposal-decorators", "data": { - "version": "7.27.1", + "version": "7.28.0", "packageName": "@babel/plugin-proposal-decorators", - "hash": "sha512-DTxe4LBPrtFdsWzgpmbBKevg3e9PBy+dXRt19kSbucbZvL2uqtdqwwpluL1jfxYE0wIDTFp1nTy/q6gNLsxXrg==" + "hash": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==" } }, "npm:@babel/plugin-proposal-private-property-in-object": { @@ -790,9 +1566,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-async-generator-functions", "data": { - "version": "7.27.1", + "version": "7.28.0", "packageName": "@babel/plugin-transform-async-generator-functions", - "hash": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==" + "hash": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==" } }, "npm:@babel/plugin-transform-async-to-generator": { @@ -817,9 +1593,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-block-scoping", "data": { - "version": "7.27.5", + "version": "7.28.0", "packageName": "@babel/plugin-transform-block-scoping", - "hash": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==" + "hash": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==" } }, "npm:@babel/plugin-transform-class-properties": { @@ -844,72 +1620,36 @@ "type": "npm", "name": "npm:@babel/plugin-transform-classes", "data": { - "version": "7.27.1", + "version": "7.28.0", "packageName": "@babel/plugin-transform-classes", - "hash": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==" + "hash": "sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==" } }, - "npm:globals@11.12.0": { + "npm:@babel/plugin-transform-computed-properties": { "type": "npm", - "name": "npm:globals@11.12.0", + "name": "npm:@babel/plugin-transform-computed-properties", "data": { - "version": "11.12.0", - "packageName": "globals", - "hash": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "version": "7.27.1", + "packageName": "@babel/plugin-transform-computed-properties", + "hash": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==" } }, - "npm:globals@14.0.0": { + "npm:@babel/plugin-transform-destructuring": { "type": "npm", - "name": "npm:globals@14.0.0", + "name": "npm:@babel/plugin-transform-destructuring", "data": { - "version": "14.0.0", - "packageName": "globals", - "hash": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==" + "version": "7.28.0", + "packageName": "@babel/plugin-transform-destructuring", + "hash": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==" } }, - "npm:globals@13.24.0": { + "npm:@babel/plugin-transform-dotall-regex": { "type": "npm", - "name": "npm:globals@13.24.0", + "name": "npm:@babel/plugin-transform-dotall-regex", "data": { - "version": "13.24.0", - "packageName": "globals", - "hash": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==" - } - }, - "npm:globals": { - "type": "npm", - "name": "npm:globals", - "data": { - "version": "15.15.0", - "packageName": "globals", - "hash": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==" - } - }, - "npm:@babel/plugin-transform-computed-properties": { - "type": "npm", - "name": "npm:@babel/plugin-transform-computed-properties", - "data": { - "version": "7.27.1", - "packageName": "@babel/plugin-transform-computed-properties", - "hash": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==" - } - }, - "npm:@babel/plugin-transform-destructuring": { - "type": "npm", - "name": "npm:@babel/plugin-transform-destructuring", - "data": { - "version": "7.27.3", - "packageName": "@babel/plugin-transform-destructuring", - "hash": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==" - } - }, - "npm:@babel/plugin-transform-dotall-regex": { - "type": "npm", - "name": "npm:@babel/plugin-transform-dotall-regex", - "data": { - "version": "7.27.1", - "packageName": "@babel/plugin-transform-dotall-regex", - "hash": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==" + "version": "7.27.1", + "packageName": "@babel/plugin-transform-dotall-regex", + "hash": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==" } }, "npm:@babel/plugin-transform-duplicate-keys": { @@ -939,6 +1679,15 @@ "hash": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==" } }, + "npm:@babel/plugin-transform-explicit-resource-management": { + "type": "npm", + "name": "npm:@babel/plugin-transform-explicit-resource-management", + "data": { + "version": "7.28.0", + "packageName": "@babel/plugin-transform-explicit-resource-management", + "hash": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==" + } + }, "npm:@babel/plugin-transform-exponentiation-operator": { "type": "npm", "name": "npm:@babel/plugin-transform-exponentiation-operator", @@ -1087,9 +1836,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-object-rest-spread", "data": { - "version": "7.27.3", + "version": "7.28.0", "packageName": "@babel/plugin-transform-object-rest-spread", - "hash": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==" + "hash": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==" } }, "npm:@babel/plugin-transform-object-super": { @@ -1123,9 +1872,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-parameters", "data": { - "version": "7.27.1", + "version": "7.27.7", "packageName": "@babel/plugin-transform-parameters", - "hash": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==" + "hash": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==" } }, "npm:@babel/plugin-transform-private-methods": { @@ -1168,9 +1917,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-react-display-name", "data": { - "version": "7.27.1", + "version": "7.28.0", "packageName": "@babel/plugin-transform-react-display-name", - "hash": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==" + "hash": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==" } }, "npm:@babel/plugin-transform-react-jsx": { @@ -1204,9 +1953,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-regenerator", "data": { - "version": "7.27.5", + "version": "7.28.1", "packageName": "@babel/plugin-transform-regenerator", - "hash": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==" + "hash": "sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==" } }, "npm:@babel/plugin-transform-regexp-modifiers": { @@ -1231,9 +1980,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-runtime", "data": { - "version": "7.27.4", + "version": "7.28.0", "packageName": "@babel/plugin-transform-runtime", - "hash": "sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==" + "hash": "sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA==" } }, "npm:@babel/plugin-transform-shorthand-properties": { @@ -1285,9 +2034,9 @@ "type": "npm", "name": "npm:@babel/plugin-transform-typescript", "data": { - "version": "7.27.1", + "version": "7.28.0", "packageName": "@babel/plugin-transform-typescript", - "hash": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==" + "hash": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==" } }, "npm:@babel/plugin-transform-unicode-escapes": { @@ -1330,9 +2079,9 @@ "type": "npm", "name": "npm:@babel/preset-env", "data": { - "version": "7.27.2", + "version": "7.28.0", "packageName": "@babel/preset-env", - "hash": "sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==" + "hash": "sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==" } }, "npm:@babel/preset-modules": { @@ -1384,18 +2133,18 @@ "type": "npm", "name": "npm:@babel/traverse", "data": { - "version": "7.27.4", + "version": "7.28.0", "packageName": "@babel/traverse", - "hash": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==" + "hash": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==" } }, "npm:@babel/types": { "type": "npm", "name": "npm:@babel/types", "data": { - "version": "7.27.6", + "version": "7.28.1", "packageName": "@babel/types", - "hash": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==" + "hash": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==" } }, "npm:@bcoe/v8-coverage": { @@ -1429,9 +2178,9 @@ "type": "npm", "name": "npm:@jridgewell/trace-mapping", "data": { - "version": "0.3.25", + "version": "0.3.29", "packageName": "@jridgewell/trace-mapping", - "hash": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==" + "hash": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==" } }, "npm:@discoveryjs/json-ext": { @@ -1465,18 +2214,81 @@ "type": "npm", "name": "npm:@eslint/config-array", "data": { - "version": "0.20.0", + "version": "0.20.1", "packageName": "@eslint/config-array", - "hash": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==" + "hash": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==" + } + }, + "npm:brace-expansion@1.1.12": { + "type": "npm", + "name": "npm:brace-expansion@1.1.12", + "data": { + "version": "1.1.12", + "packageName": "brace-expansion", + "hash": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==" + } + }, + "npm:brace-expansion": { + "type": "npm", + "name": "npm:brace-expansion", + "data": { + "version": "2.0.2", + "packageName": "brace-expansion", + "hash": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==" + } + }, + "npm:minimatch@3.1.2": { + "type": "npm", + "name": "npm:minimatch@3.1.2", + "data": { + "version": "3.1.2", + "packageName": "minimatch", + "hash": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" + } + }, + "npm:minimatch@10.1.1": { + "type": "npm", + "name": "npm:minimatch@10.1.1", + "data": { + "version": "10.1.1", + "packageName": "minimatch", + "hash": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==" + } + }, + "npm:minimatch@5.1.6": { + "type": "npm", + "name": "npm:minimatch@5.1.6", + "data": { + "version": "5.1.6", + "packageName": "minimatch", + "hash": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==" + } + }, + "npm:minimatch@9.0.5": { + "type": "npm", + "name": "npm:minimatch@9.0.5", + "data": { + "version": "9.0.5", + "packageName": "minimatch", + "hash": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==" + } + }, + "npm:minimatch": { + "type": "npm", + "name": "npm:minimatch", + "data": { + "version": "9.0.3", + "packageName": "minimatch", + "hash": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==" } }, "npm:@eslint/config-helpers": { "type": "npm", "name": "npm:@eslint/config-helpers", "data": { - "version": "0.2.2", + "version": "0.2.3", "packageName": "@eslint/config-helpers", - "hash": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==" + "hash": "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==" } }, "npm:@eslint/core": { @@ -1488,40 +2300,130 @@ "hash": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==" } }, + "npm:@eslint/core@0.15.1": { + "type": "npm", + "name": "npm:@eslint/core@0.15.1", + "data": { + "version": "0.15.1", + "packageName": "@eslint/core", + "hash": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==" + } + }, "npm:@eslint/eslintrc": { "type": "npm", "name": "npm:@eslint/eslintrc", + "data": { + "version": "2.1.4", + "packageName": "@eslint/eslintrc", + "hash": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==" + } + }, + "npm:@eslint/eslintrc@3.3.1": { + "type": "npm", + "name": "npm:@eslint/eslintrc@3.3.1", "data": { "version": "3.3.1", "packageName": "@eslint/eslintrc", "hash": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==" } }, - "npm:@eslint/eslintrc@2.1.4": { + "npm:ajv@6.12.6": { "type": "npm", - "name": "npm:@eslint/eslintrc@2.1.4", + "name": "npm:ajv@6.12.6", "data": { - "version": "2.1.4", - "packageName": "@eslint/eslintrc", - "hash": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==" + "version": "6.12.6", + "packageName": "ajv", + "hash": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" + } + }, + "npm:ajv": { + "type": "npm", + "name": "npm:ajv", + "data": { + "version": "8.17.1", + "packageName": "ajv", + "hash": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==" + } + }, + "npm:argparse@2.0.1": { + "type": "npm", + "name": "npm:argparse@2.0.1", + "data": { + "version": "2.0.1", + "packageName": "argparse", + "hash": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + } + }, + "npm:argparse": { + "type": "npm", + "name": "npm:argparse", + "data": { + "version": "1.0.10", + "packageName": "argparse", + "hash": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + } + }, + "npm:js-yaml@4.1.0": { + "type": "npm", + "name": "npm:js-yaml@4.1.0", + "data": { + "version": "4.1.0", + "packageName": "js-yaml", + "hash": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" + } + }, + "npm:js-yaml": { + "type": "npm", + "name": "npm:js-yaml", + "data": { + "version": "3.14.1", + "packageName": "js-yaml", + "hash": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" + } + }, + "npm:json-schema-traverse@0.4.1": { + "type": "npm", + "name": "npm:json-schema-traverse@0.4.1", + "data": { + "version": "0.4.1", + "packageName": "json-schema-traverse", + "hash": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + } + }, + "npm:json-schema-traverse": { + "type": "npm", + "name": "npm:json-schema-traverse", + "data": { + "version": "1.0.0", + "packageName": "json-schema-traverse", + "hash": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" } }, "npm:@eslint/js": { "type": "npm", "name": "npm:@eslint/js", "data": { - "version": "9.28.0", + "version": "8.57.1", "packageName": "@eslint/js", - "hash": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==" + "hash": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==" } }, - "npm:@eslint/js@8.57.1": { + "npm:@eslint/js@9.31.0": { "type": "npm", - "name": "npm:@eslint/js@8.57.1", + "name": "npm:@eslint/js@9.31.0", "data": { - "version": "8.57.1", + "version": "9.31.0", "packageName": "@eslint/js", - "hash": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==" + "hash": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==" + } + }, + "npm:@eslint/js@9.28.0": { + "type": "npm", + "name": "npm:@eslint/js@9.28.0", + "data": { + "version": "9.28.0", + "packageName": "@eslint/js", + "hash": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==" } }, "npm:@eslint/object-schema": { @@ -1537,9 +2439,9 @@ "type": "npm", "name": "npm:@eslint/plugin-kit", "data": { - "version": "0.3.1", + "version": "0.3.4", "packageName": "@eslint/plugin-kit", - "hash": "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==" + "hash": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==" } }, "npm:@fastify/accept-negotiator": { @@ -1560,45 +2462,18 @@ "hash": "sha512-Rkiu/8wIjpsf46Rr+Fitd3HRP+VsxUFDDeag0hs9L0ksfnwx2g7SPQQTFL0E8Qv+rfXzQOxBJnjUB9ITUDjfWQ==" } }, - "npm:ajv@8.17.1": { - "type": "npm", - "name": "npm:ajv@8.17.1", - "data": { - "version": "8.17.1", - "packageName": "ajv", - "hash": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==" - } - }, - "npm:ajv": { - "type": "npm", - "name": "npm:ajv", - "data": { - "version": "6.12.6", - "packageName": "ajv", - "hash": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" - } - }, - "npm:json-schema-traverse@1.0.0": { - "type": "npm", - "name": "npm:json-schema-traverse@1.0.0", - "data": { - "version": "1.0.0", - "packageName": "json-schema-traverse", - "hash": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - } - }, - "npm:json-schema-traverse": { + "npm:@fastify/cors": { "type": "npm", - "name": "npm:json-schema-traverse", + "name": "npm:@fastify/cors", "data": { - "version": "0.4.1", - "packageName": "json-schema-traverse", - "hash": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "11.2.0", + "packageName": "@fastify/cors", + "hash": "sha512-LbLHBuSAdGdSFZYTLVA3+Ch2t+sA6nq3Ejc6XLAKiQ6ViS2qFnvicpj0htsx03FyYeLs04HfRNBsz/a8SvbcUw==" } }, - "npm:@fastify/cors": { + "npm:@fastify/cors@10.1.0": { "type": "npm", - "name": "npm:@fastify/cors", + "name": "npm:@fastify/cors@10.1.0", "data": { "version": "10.1.0", "packageName": "@fastify/cors", @@ -1635,6 +2510,15 @@ "npm:@fastify/jwt": { "type": "npm", "name": "npm:@fastify/jwt", + "data": { + "version": "10.0.0", + "packageName": "@fastify/jwt", + "hash": "sha512-2Qka3NiyNNcsfejMUvyzot1T4UYIzzcbkFGDdVyrl344fRZ/WkD6VFXOoXhxe2Pzf3LpJNkoSxUM4Ru4DVgkYA==" + } + }, + "npm:@fastify/jwt@9.1.0": { + "type": "npm", + "name": "npm:@fastify/jwt@9.1.0", "data": { "version": "9.1.0", "packageName": "@fastify/jwt", @@ -1677,40 +2561,40 @@ "hash": "sha512-TMYeQLCBSy2TOFmV95hQWkiTYgC/SEx7vMdV+wnZVX4tt8VBLKzmH8vV9OzJehV0+XBfg+WxPMt5wp+JBUKsVw==" } }, - "npm:mime@3.0.0": { + "npm:@fastify/static": { "type": "npm", - "name": "npm:mime@3.0.0", + "name": "npm:@fastify/static", "data": { - "version": "3.0.0", - "packageName": "mime", - "hash": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" + "version": "9.0.0", + "packageName": "@fastify/static", + "hash": "sha512-r64H8Woe/vfilg5RTy7lwWlE8ZZcTrc3kebYFMEUBrMqlydhQyoiExQXdYAy2REVpST/G35+stAM8WYp1WGmMA==" } }, - "npm:mime": { + "npm:content-disposition@1.0.1": { "type": "npm", - "name": "npm:mime", + "name": "npm:content-disposition@1.0.1", "data": { - "version": "1.6.0", - "packageName": "mime", - "hash": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "version": "1.0.1", + "packageName": "content-disposition", + "hash": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==" } }, - "npm:@fastify/static": { + "npm:content-disposition": { "type": "npm", - "name": "npm:@fastify/static", + "name": "npm:content-disposition", "data": { - "version": "8.2.0", - "packageName": "@fastify/static", - "hash": "sha512-PejC/DtT7p1yo3p+W7LiUtLMsV8fEvxAK15sozHy9t8kwo5r0uLYmhV/inURmGz1SkHZFz/8CNtHLPyhKcx4SQ==" + "version": "0.5.4", + "packageName": "content-disposition", + "hash": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==" } }, - "npm:glob@11.0.3": { + "npm:glob@13.0.0": { "type": "npm", - "name": "npm:glob@11.0.3", + "name": "npm:glob@13.0.0", "data": { - "version": "11.0.3", + "version": "13.0.0", "packageName": "glob", - "hash": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==" + "hash": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==" } }, "npm:glob@8.1.0": { @@ -1740,157 +2624,31 @@ "hash": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==" } }, - "npm:jackspeak@4.1.1": { - "type": "npm", - "name": "npm:jackspeak@4.1.1", - "data": { - "version": "4.1.1", - "packageName": "jackspeak", - "hash": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==" - } - }, - "npm:jackspeak": { - "type": "npm", - "name": "npm:jackspeak", - "data": { - "version": "3.4.3", - "packageName": "jackspeak", - "hash": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==" - } - }, - "npm:lru-cache@11.1.0": { - "type": "npm", - "name": "npm:lru-cache@11.1.0", - "data": { - "version": "11.1.0", - "packageName": "lru-cache", - "hash": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==" - } - }, - "npm:lru-cache@4.1.5": { - "type": "npm", - "name": "npm:lru-cache@4.1.5", - "data": { - "version": "4.1.5", - "packageName": "lru-cache", - "hash": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==" - } - }, - "npm:lru-cache@10.4.3": { - "type": "npm", - "name": "npm:lru-cache@10.4.3", - "data": { - "version": "10.4.3", - "packageName": "lru-cache", - "hash": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" - } - }, - "npm:lru-cache": { - "type": "npm", - "name": "npm:lru-cache", - "data": { - "version": "5.1.1", - "packageName": "lru-cache", - "hash": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" - } - }, - "npm:minimatch@10.0.3": { - "type": "npm", - "name": "npm:minimatch@10.0.3", - "data": { - "version": "10.0.3", - "packageName": "minimatch", - "hash": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==" - } - }, - "npm:minimatch@9.0.3": { - "type": "npm", - "name": "npm:minimatch@9.0.3", - "data": { - "version": "9.0.3", - "packageName": "minimatch", - "hash": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==" - } - }, - "npm:minimatch@5.1.6": { - "type": "npm", - "name": "npm:minimatch@5.1.6", - "data": { - "version": "5.1.6", - "packageName": "minimatch", - "hash": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==" - } - }, - "npm:minimatch@9.0.5": { - "type": "npm", - "name": "npm:minimatch@9.0.5", - "data": { - "version": "9.0.5", - "packageName": "minimatch", - "hash": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==" - } - }, - "npm:minimatch": { - "type": "npm", - "name": "npm:minimatch", - "data": { - "version": "3.1.2", - "packageName": "minimatch", - "hash": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" - } - }, - "npm:path-scurry@2.0.0": { - "type": "npm", - "name": "npm:path-scurry@2.0.0", - "data": { - "version": "2.0.0", - "packageName": "path-scurry", - "hash": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==" - } - }, - "npm:path-scurry": { - "type": "npm", - "name": "npm:path-scurry", - "data": { - "version": "1.11.1", - "packageName": "path-scurry", - "hash": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==" - } - }, "npm:@fastify/swagger": { "type": "npm", "name": "npm:@fastify/swagger", "data": { - "version": "9.5.1", + "version": "9.6.1", "packageName": "@fastify/swagger", - "hash": "sha512-EGjYLA7vDmCPK7XViAYMF6y4+K3XUy5soVTVxsyXolNe/Svb4nFQxvtuQvvoQb2Gzc9pxiF3+ZQN/iZDHhKtTg==" + "hash": "sha512-fKlpJqFMWoi4H3EdUkDaMteEYRCfQMEkK0HJJ0eaf4aRlKd8cbq0pVkOfXDXmtvMTXYcnx3E+l023eFDBsA1HA==" } }, "npm:@fastify/swagger-ui": { "type": "npm", "name": "npm:@fastify/swagger-ui", "data": { - "version": "5.2.3", + "version": "5.2.4", "packageName": "@fastify/swagger-ui", - "hash": "sha512-e7ivEJi9EpFcxTONqICx4llbpB2jmlI+LI1NQ/mR7QGQnyDOqZybPK572zJtcdHZW4YyYTBHcP3a03f1pOh0SA==" - } - }, - "npm:yaml@2.8.0": { - "type": "npm", - "name": "npm:yaml@2.8.0", - "data": { - "version": "2.8.0", - "packageName": "yaml", - "hash": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==" + "hash": "sha512-Maw8OYPUDxlOzKQd3VMv7T/fmjf2h6BWR3XHkhk3dD3rIfzO7C/UPnzGuTpOGMqw1HCUnctADBbeTNAzAwzUqA==" } }, - "npm:yaml": { + "npm:@fastify/websocket": { "type": "npm", - "name": "npm:yaml", + "name": "npm:@fastify/websocket", "data": { - "version": "1.10.2", - "packageName": "yaml", - "hash": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "version": "11.2.0", + "packageName": "@fastify/websocket", + "hash": "sha512-3HrDPbAG1CzUCqnslgJxppvzaAZffieOVbLp1DAy1huCSynUWPifSvfdEDUR8HlJLp3sp1A36uOM2tJogADS8w==" } }, "npm:@humanfs/core": { @@ -2091,24 +2849,6 @@ "hash": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==" } }, - "npm:argparse@1.0.10": { - "type": "npm", - "name": "npm:argparse@1.0.10", - "data": { - "version": "1.0.10", - "packageName": "argparse", - "hash": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" - } - }, - "npm:argparse": { - "type": "npm", - "name": "npm:argparse", - "data": { - "version": "2.0.1", - "packageName": "argparse", - "hash": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - } - }, "npm:camelcase@5.3.1": { "type": "npm", "name": "npm:camelcase@5.3.1", @@ -2127,24 +2867,6 @@ "hash": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" } }, - "npm:js-yaml@3.14.1": { - "type": "npm", - "name": "npm:js-yaml@3.14.1", - "data": { - "version": "3.14.1", - "packageName": "js-yaml", - "hash": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" - } - }, - "npm:js-yaml": { - "type": "npm", - "name": "npm:js-yaml", - "data": { - "version": "4.1.0", - "packageName": "js-yaml", - "hash": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" - } - }, "npm:@istanbuljs/schema": { "type": "npm", "name": "npm:@istanbuljs/schema", @@ -2163,42 +2885,6 @@ "hash": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==" } }, - "npm:slash@3.0.0": { - "type": "npm", - "name": "npm:slash@3.0.0", - "data": { - "version": "3.0.0", - "packageName": "slash", - "hash": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - } - }, - "npm:slash@4.0.0": { - "type": "npm", - "name": "npm:slash@4.0.0", - "data": { - "version": "4.0.0", - "packageName": "slash", - "hash": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" - } - }, - "npm:slash@5.1.0": { - "type": "npm", - "name": "npm:slash@5.1.0", - "data": { - "version": "5.1.0", - "packageName": "slash", - "hash": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==" - } - }, - "npm:slash": { - "type": "npm", - "name": "npm:slash", - "data": { - "version": "2.0.0", - "packageName": "slash", - "hash": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - } - }, "npm:@jest/core": { "type": "npm", "name": "npm:@jest/core", @@ -2329,9 +3015,9 @@ "type": "npm", "name": "npm:@jridgewell/gen-mapping", "data": { - "version": "0.3.8", + "version": "0.3.12", "packageName": "@jridgewell/gen-mapping", - "hash": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==" + "hash": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==" } }, "npm:@jridgewell/resolve-uri": { @@ -2343,31 +3029,22 @@ "hash": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" } }, - "npm:@jridgewell/set-array": { - "type": "npm", - "name": "npm:@jridgewell/set-array", - "data": { - "version": "1.2.1", - "packageName": "@jridgewell/set-array", - "hash": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" - } - }, "npm:@jridgewell/source-map": { "type": "npm", "name": "npm:@jridgewell/source-map", "data": { - "version": "0.3.6", + "version": "0.3.10", "packageName": "@jridgewell/source-map", - "hash": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==" + "hash": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==" } }, "npm:@jridgewell/sourcemap-codec": { "type": "npm", "name": "npm:@jridgewell/sourcemap-codec", "data": { - "version": "1.5.0", + "version": "1.5.4", "packageName": "@jridgewell/sourcemap-codec", - "hash": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + "hash": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" } }, "npm:@leichtgewicht/ip-codec": { @@ -2401,162 +3078,162 @@ "type": "npm", "name": "npm:@mongodb-js/saslprep", "data": { - "version": "1.2.2", + "version": "1.3.0", "packageName": "@mongodb-js/saslprep", - "hash": "sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==" + "hash": "sha512-zlayKCsIjYb7/IdfqxorK5+xUMyi4vOKcFy10wKJYc63NSdKI8mNME+uJqfatkPmOSMMUiojrL58IePKBm3gvQ==" } }, "npm:@napi-rs/nice": { "type": "npm", "name": "npm:@napi-rs/nice", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice", - "hash": "sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==" + "hash": "sha512-Sqih1YARrmMoHlXGgI9JrrgkzxcaaEso0AH+Y7j8NHonUs+xe4iDsgC3IBIDNdzEewbNpccNN6hip+b5vmyRLw==" } }, "npm:@napi-rs/nice-android-arm-eabi": { "type": "npm", "name": "npm:@napi-rs/nice-android-arm-eabi", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-android-arm-eabi", - "hash": "sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==" + "hash": "sha512-OZFMYUkih4g6HCKTjqJHhMUlgvPiDuSLZPbPBWHLjKmFTv74COzRlq/gwHtmEVaR39mJQ6ZyttDl2HNMUbLVoA==" } }, "npm:@napi-rs/nice-android-arm64": { "type": "npm", "name": "npm:@napi-rs/nice-android-arm64", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-android-arm64", - "hash": "sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==" + "hash": "sha512-k8u7cjeA64vQWXZcRrPbmwjH8K09CBnNaPnI9L1D5N6iMPL3XYQzLcN6WwQonfcqCDv5OCY3IqX89goPTV4KMw==" } }, "npm:@napi-rs/nice-darwin-arm64": { "type": "npm", "name": "npm:@napi-rs/nice-darwin-arm64", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-darwin-arm64", - "hash": "sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==" + "hash": "sha512-GsLdQvUcuVzoyzmtjsThnpaVEizAqH5yPHgnsBmq3JdVoVZHELFo7PuJEdfOH1DOHi2mPwB9sCJEstAYf3XCJA==" } }, "npm:@napi-rs/nice-darwin-x64": { "type": "npm", "name": "npm:@napi-rs/nice-darwin-x64", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-darwin-x64", - "hash": "sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==" + "hash": "sha512-1y3gyT3e5zUY5SxRl3QDtJiWVsbkmhtUHIYwdWWIQ3Ia+byd/IHIEpqAxOGW1nhhnIKfTCuxBadHQb+yZASVoA==" } }, "npm:@napi-rs/nice-freebsd-x64": { "type": "npm", "name": "npm:@napi-rs/nice-freebsd-x64", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-freebsd-x64", - "hash": "sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==" + "hash": "sha512-06oXzESPRdXUuzS8n2hGwhM2HACnDfl3bfUaSqLGImM8TA33pzDXgGL0e3If8CcFWT98aHows5Lk7xnqYNGFeA==" } }, "npm:@napi-rs/nice-linux-arm-gnueabihf": { "type": "npm", "name": "npm:@napi-rs/nice-linux-arm-gnueabihf", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-arm-gnueabihf", - "hash": "sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==" + "hash": "sha512-CgklZ6g8WL4+EgVVkxkEvvsi2DSLf9QIloxWO0fvQyQBp6VguUSX3eHLeRpqwW8cRm2Hv/Q1+PduNk7VK37VZw==" } }, "npm:@napi-rs/nice-linux-arm64-gnu": { "type": "npm", "name": "npm:@napi-rs/nice-linux-arm64-gnu", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-arm64-gnu", - "hash": "sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==" + "hash": "sha512-wdAJ7lgjhAlsANUCv0zi6msRwq+D4KDgU+GCCHssSxWmAERZa2KZXO0H2xdmoJ/0i03i6YfK/sWaZgUAyuW2oQ==" } }, "npm:@napi-rs/nice-linux-arm64-musl": { "type": "npm", "name": "npm:@napi-rs/nice-linux-arm64-musl", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-arm64-musl", - "hash": "sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==" + "hash": "sha512-4b1KYG+sriufhFrpUS9uNOEYYJqSfcbnwGx6uGX7JjrH8tELG90cOpCawz5THNIwlS3DhLgnCOcn0+4p6z26QA==" } }, "npm:@napi-rs/nice-linux-ppc64-gnu": { "type": "npm", "name": "npm:@napi-rs/nice-linux-ppc64-gnu", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-ppc64-gnu", - "hash": "sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==" + "hash": "sha512-iaf3vMRgr23oe1PUaKpxaH3DS0IMN0+N9iEiWVwYPm/U15vZFYdqVegGfN2PzrZLUl5lc8ZxbmEKDfuqslhAMA==" } }, "npm:@napi-rs/nice-linux-riscv64-gnu": { "type": "npm", "name": "npm:@napi-rs/nice-linux-riscv64-gnu", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-riscv64-gnu", - "hash": "sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==" + "hash": "sha512-UXoREY6Yw6rHrGuTwQgBxpfjK34t6mTjibE9/cXbefL9AuUCJ9gEgwNKZiONuR5QGswChqo9cnthjdKkYyAdDg==" } }, "npm:@napi-rs/nice-linux-s390x-gnu": { "type": "npm", "name": "npm:@napi-rs/nice-linux-s390x-gnu", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-s390x-gnu", - "hash": "sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==" + "hash": "sha512-eFbgYCRPmsqbYPAlLYU5hYTNbogmIDUvknilehHsFhCH1+0/kN87lP+XaLT0Yeq4V/rpwChSd9vlz4muzFArtw==" } }, "npm:@napi-rs/nice-linux-x64-gnu": { "type": "npm", "name": "npm:@napi-rs/nice-linux-x64-gnu", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-x64-gnu", - "hash": "sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==" + "hash": "sha512-4T3E6uTCwWT6IPnwuPcWVz3oHxvEp/qbrCxZhsgzwTUBEwu78EGNXGdHfKJQt3soth89MLqZJw+Zzvnhrsg1mQ==" } }, "npm:@napi-rs/nice-linux-x64-musl": { "type": "npm", "name": "npm:@napi-rs/nice-linux-x64-musl", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-linux-x64-musl", - "hash": "sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==" + "hash": "sha512-NtbBkAeyBPLvCBkWtwkKXkNSn677eaT0cX3tygq+2qVv71TmHgX4gkX6o9BXjlPzdgPGwrUudavCYPT9tzkEqQ==" } }, "npm:@napi-rs/nice-win32-arm64-msvc": { "type": "npm", "name": "npm:@napi-rs/nice-win32-arm64-msvc", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-win32-arm64-msvc", - "hash": "sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==" + "hash": "sha512-vubOe3i+YtSJGEk/++73y+TIxbuVHi+W8ZzrRm2eETCjCRwNlgbfToQZ85dSA+4iBB/NJRGNp+O4hfdbbttZWA==" } }, "npm:@napi-rs/nice-win32-ia32-msvc": { "type": "npm", "name": "npm:@napi-rs/nice-win32-ia32-msvc", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-win32-ia32-msvc", - "hash": "sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==" + "hash": "sha512-BMOVrUDZeg1RNRKVlh4eyLv5djAAVLiSddfpuuQ47EFjBcklg0NUeKMFKNrKQR4UnSn4HAiACLD7YK7koskwmg==" } }, "npm:@napi-rs/nice-win32-x64-msvc": { "type": "npm", "name": "npm:@napi-rs/nice-win32-x64-msvc", "data": { - "version": "1.0.1", + "version": "1.0.4", "packageName": "@napi-rs/nice-win32-x64-msvc", - "hash": "sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==" + "hash": "sha512-kCNk6HcRZquhw/whwh4rHsdPyOSCQCgnVDVik+Y9cuSVTDy3frpiCJTScJqPPS872h4JgZKkr/+CwcwttNEo9Q==" } }, "npm:@nicolo-ribaudo/chokidar-2": { @@ -2694,24 +3371,6 @@ "hash": "sha512-vOUes8e8guFmbcpUcppUlx120Y52ovY46ZnKogOjnw5q7LN12Fvn68A2wBF8SYmyiYmPd56YtUV7A6LuS8Wd3w==" } }, - "npm:brace-expansion@2.0.1": { - "type": "npm", - "name": "npm:brace-expansion@2.0.1", - "data": { - "version": "2.0.1", - "packageName": "brace-expansion", - "hash": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==" - } - }, - "npm:brace-expansion": { - "type": "npm", - "name": "npm:brace-expansion", - "data": { - "version": "1.1.11", - "packageName": "brace-expansion", - "hash": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" - } - }, "npm:semver@7.7.2": { "type": "npm", "name": "npm:semver@7.7.2", @@ -2721,6 +3380,15 @@ "hash": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==" } }, + "npm:semver@7.7.3": { + "type": "npm", + "name": "npm:semver@7.7.3", + "data": { + "version": "7.7.3", + "packageName": "semver", + "hash": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==" + } + }, "npm:semver@5.7.2": { "type": "npm", "name": "npm:semver@5.7.2", @@ -3072,6 +3740,15 @@ "hash": "sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==" } }, + "npm:@pinojs/redact": { + "type": "npm", + "name": "npm:@pinojs/redact", + "data": { + "version": "0.4.0", + "packageName": "@pinojs/redact", + "hash": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==" + } + }, "npm:@pkgjs/parseargs": { "type": "npm", "name": "npm:@pkgjs/parseargs", @@ -3085,18 +3762,18 @@ "type": "npm", "name": "npm:@pkgr/core", "data": { - "version": "0.2.7", + "version": "0.2.9", "packageName": "@pkgr/core", - "hash": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==" + "hash": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==" } }, "npm:@pmmmwh/react-refresh-webpack-plugin": { "type": "npm", "name": "npm:@pmmmwh/react-refresh-webpack-plugin", "data": { - "version": "0.5.16", + "version": "0.5.17", "packageName": "@pmmmwh/react-refresh-webpack-plugin", - "hash": "sha512-kLQc9xz6QIqd2oIYyXRUiAp79kGpFBm3fEM9ahfG1HI0WI5gdZ2OVHWdmZYnwODt7ISck+QuQ6sBPrtvUBML7Q==" + "hash": "sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ==" } }, "npm:@rollup/plugin-babel": { @@ -3148,9 +3825,9 @@ "type": "npm", "name": "npm:@rollup/pluginutils", "data": { - "version": "5.1.4", + "version": "5.2.0", "packageName": "@rollup/pluginutils", - "hash": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==" + "hash": "sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==" } }, "npm:@rollup/pluginutils@4.2.1": { @@ -3166,135 +3843,135 @@ "type": "npm", "name": "npm:@rollup/rollup-android-arm-eabi", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-android-arm-eabi", - "hash": "sha512-gldmAyS9hpj+H6LpRNlcjQWbuKUtb94lodB9uCz71Jm+7BxK1VIOo7y62tZZwxhA7j1ylv/yQz080L5WkS+LoQ==" + "hash": "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==" } }, "npm:@rollup/rollup-android-arm64": { "type": "npm", "name": "npm:@rollup/rollup-android-arm64", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-android-arm64", - "hash": "sha512-bpRipfTgmGFdCZDFLRvIkSNO1/3RGS74aWkJJTFJBH7h3MRV4UijkaEUeOMbi9wxtxYmtAbVcnMtHTPBhLEkaw==" + "hash": "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==" } }, "npm:@rollup/rollup-darwin-arm64": { "type": "npm", "name": "npm:@rollup/rollup-darwin-arm64", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-darwin-arm64", - "hash": "sha512-JxHtA081izPBVCHLKnl6GEA0w3920mlJPLh89NojpU2GsBSB6ypu4erFg/Wx1qbpUbepn0jY4dVWMGZM8gplgA==" + "hash": "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==" } }, "npm:@rollup/rollup-darwin-x64": { "type": "npm", "name": "npm:@rollup/rollup-darwin-x64", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-darwin-x64", - "hash": "sha512-rv5UZaWVIJTDMyQ3dCEK+m0SAn6G7H3PRc2AZmExvbDvtaDc+qXkei0knQWcI3+c9tEs7iL/4I4pTQoPbNL2SA==" + "hash": "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==" } }, "npm:@rollup/rollup-freebsd-arm64": { "type": "npm", "name": "npm:@rollup/rollup-freebsd-arm64", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-freebsd-arm64", - "hash": "sha512-fJcN4uSGPWdpVmvLuMtALUFwCHgb2XiQjuECkHT3lWLZhSQ3MBQ9pq+WoWeJq2PrNxr9rPM1Qx+IjyGj8/c6zQ==" + "hash": "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==" } }, "npm:@rollup/rollup-freebsd-x64": { "type": "npm", "name": "npm:@rollup/rollup-freebsd-x64", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-freebsd-x64", - "hash": "sha512-CziHfyzpp8hJpCVE/ZdTizw58gr+m7Y2Xq5VOuCSrZR++th2xWAz4Nqk52MoIIrV3JHtVBhbBsJcAxs6NammOQ==" + "hash": "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==" } }, "npm:@rollup/rollup-linux-arm-gnueabihf": { "type": "npm", "name": "npm:@rollup/rollup-linux-arm-gnueabihf", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-arm-gnueabihf", - "hash": "sha512-UsQD5fyLWm2Fe5CDM7VPYAo+UC7+2Px4Y+N3AcPh/LdZu23YcuGPegQly++XEVaC8XUTFVPscl5y5Cl1twEI4A==" + "hash": "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==" } }, "npm:@rollup/rollup-linux-arm-musleabihf": { "type": "npm", "name": "npm:@rollup/rollup-linux-arm-musleabihf", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-arm-musleabihf", - "hash": "sha512-/i8NIrlgc/+4n1lnoWl1zgH7Uo0XK5xK3EDqVTf38KvyYgCU/Rm04+o1VvvzJZnVS5/cWSd07owkzcVasgfIkQ==" + "hash": "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==" } }, "npm:@rollup/rollup-linux-arm64-gnu": { "type": "npm", "name": "npm:@rollup/rollup-linux-arm64-gnu", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-arm64-gnu", - "hash": "sha512-eoujJFOvoIBjZEi9hJnXAbWg+Vo1Ov8n/0IKZZcPZ7JhBzxh2A+2NFyeMZIRkY9iwBvSjloKgcvnjTbGKHE44Q==" + "hash": "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==" } }, "npm:@rollup/rollup-linux-arm64-musl": { "type": "npm", "name": "npm:@rollup/rollup-linux-arm64-musl", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-arm64-musl", - "hash": "sha512-/3NrcOWFSR7RQUQIuZQChLND36aTU9IYE4j+TB40VU78S+RA0IiqHR30oSh6P1S9f9/wVOenHQnacs/Byb824g==" + "hash": "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==" } }, "npm:@rollup/rollup-linux-loongarch64-gnu": { "type": "npm", "name": "npm:@rollup/rollup-linux-loongarch64-gnu", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-loongarch64-gnu", - "hash": "sha512-O8AplvIeavK5ABmZlKBq9/STdZlnQo7Sle0LLhVA7QT+CiGpNVe197/t8Aph9bhJqbDVGCHpY2i7QyfEDDStDg==" + "hash": "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==" } }, "npm:@rollup/rollup-linux-powerpc64le-gnu": { "type": "npm", "name": "npm:@rollup/rollup-linux-powerpc64le-gnu", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-powerpc64le-gnu", - "hash": "sha512-6Qb66tbKVN7VyQrekhEzbHRxXXFFD8QKiFAwX5v9Xt6FiJ3BnCVBuyBxa2fkFGqxOCSGGYNejxd8ht+q5SnmtA==" + "hash": "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==" } }, "npm:@rollup/rollup-linux-riscv64-gnu": { "type": "npm", "name": "npm:@rollup/rollup-linux-riscv64-gnu", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-riscv64-gnu", - "hash": "sha512-KQETDSEBamQFvg/d8jajtRwLNBlGc3aKpaGiP/LvEbnmVUKlFta1vqJqTrvPtsYsfbE/DLg5CC9zyXRX3fnBiA==" + "hash": "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==" } }, "npm:@rollup/rollup-linux-riscv64-musl": { "type": "npm", "name": "npm:@rollup/rollup-linux-riscv64-musl", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-riscv64-musl", - "hash": "sha512-qMvnyjcU37sCo/tuC+JqeDKSuukGAd+pVlRl/oyDbkvPJ3awk6G6ua7tyum02O3lI+fio+eM5wsVd66X0jQtxw==" + "hash": "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==" } }, "npm:@rollup/rollup-linux-s390x-gnu": { "type": "npm", "name": "npm:@rollup/rollup-linux-s390x-gnu", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-s390x-gnu", - "hash": "sha512-I2Y1ZUgTgU2RLddUHXTIgyrdOwljjkmcZ/VilvaEumtS3Fkuhbw4p4hgHc39Ypwvo2o7sBFNl2MquNvGCa55Iw==" + "hash": "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==" } }, "npm:@rollup/rollup-linux-x64-gnu": { @@ -3306,49 +3983,49 @@ "hash": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==" } }, - "npm:@rollup/rollup-linux-x64-gnu@4.42.0": { + "npm:@rollup/rollup-linux-x64-gnu@4.45.1": { "type": "npm", - "name": "npm:@rollup/rollup-linux-x64-gnu@4.42.0", + "name": "npm:@rollup/rollup-linux-x64-gnu@4.45.1", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-x64-gnu", - "hash": "sha512-Gfm6cV6mj3hCUY8TqWa63DB8Mx3NADoFwiJrMpoZ1uESbK8FQV3LXkhfry+8bOniq9pqY1OdsjFWNsSbfjPugw==" + "hash": "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==" } }, "npm:@rollup/rollup-linux-x64-musl": { "type": "npm", "name": "npm:@rollup/rollup-linux-x64-musl", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-linux-x64-musl", - "hash": "sha512-g86PF8YZ9GRqkdi0VoGlcDUb4rYtQKyTD1IVtxxN4Hpe7YqLBShA7oHMKU6oKTCi3uxwW4VkIGnOaH/El8de3w==" + "hash": "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==" } }, "npm:@rollup/rollup-win32-arm64-msvc": { "type": "npm", "name": "npm:@rollup/rollup-win32-arm64-msvc", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-win32-arm64-msvc", - "hash": "sha512-+axkdyDGSp6hjyzQ5m1pgcvQScfHnMCcsXkx8pTgy/6qBmWVhtRVlgxjWwDp67wEXXUr0x+vD6tp5W4x6V7u1A==" + "hash": "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==" } }, "npm:@rollup/rollup-win32-ia32-msvc": { "type": "npm", "name": "npm:@rollup/rollup-win32-ia32-msvc", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-win32-ia32-msvc", - "hash": "sha512-F+5J9pelstXKwRSDq92J0TEBXn2nfUrQGg+HK1+Tk7VOL09e0gBqUHugZv7SW4MGrYj41oNCUe3IKCDGVlis2g==" + "hash": "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==" } }, "npm:@rollup/rollup-win32-x64-msvc": { "type": "npm", "name": "npm:@rollup/rollup-win32-x64-msvc", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "@rollup/rollup-win32-x64-msvc", - "hash": "sha512-LpHiJRwkaVz/LqjHjK8LCi8osq7elmpwujwbXKNW88bM8eeGxavJIKKjkjpMHAh/2xfnrt1ZSnhTv41WYUHYmA==" + "hash": "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==" } }, "npm:@rtsao/scc": { @@ -3360,33 +4037,6 @@ "hash": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==" } }, - "npm:@sendgrid/client": { - "type": "npm", - "name": "npm:@sendgrid/client", - "data": { - "version": "8.1.5", - "packageName": "@sendgrid/client", - "hash": "sha512-Jqt8aAuGIpWGa15ZorTWI46q9gbaIdQFA21HIPQQl60rCjzAko75l3D1z7EyjFrNr4MfQ0StusivWh8Rjh10Cg==" - } - }, - "npm:@sendgrid/helpers": { - "type": "npm", - "name": "npm:@sendgrid/helpers", - "data": { - "version": "8.0.0", - "packageName": "@sendgrid/helpers", - "hash": "sha512-Ze7WuW2Xzy5GT5WRx+yEv89fsg/pgy3T1E3FS0QEx0/VvRmigMZ5qyVGhJz4SxomegDkzXv/i0aFPpHKN8qdAA==" - } - }, - "npm:@sendgrid/mail": { - "type": "npm", - "name": "npm:@sendgrid/mail", - "data": { - "version": "8.1.5", - "packageName": "@sendgrid/mail", - "hash": "sha512-W+YuMnkVs4+HA/bgfto4VHKcPKLc7NiZ50/NH2pzO6UHCCFuq8/GNB98YJlLEr/ESDyzAaDr7lVE7hoBwFTT3Q==" - } - }, "npm:@sinclair/typebox": { "type": "npm", "name": "npm:@sinclair/typebox", @@ -3432,6 +4082,438 @@ "hash": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==" } }, + "npm:@smithy/abort-controller": { + "type": "npm", + "name": "npm:@smithy/abort-controller", + "data": { + "version": "4.2.8", + "packageName": "@smithy/abort-controller", + "hash": "sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw==" + } + }, + "npm:@smithy/chunked-blob-reader": { + "type": "npm", + "name": "npm:@smithy/chunked-blob-reader", + "data": { + "version": "5.2.0", + "packageName": "@smithy/chunked-blob-reader", + "hash": "sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==" + } + }, + "npm:@smithy/chunked-blob-reader-native": { + "type": "npm", + "name": "npm:@smithy/chunked-blob-reader-native", + "data": { + "version": "4.2.1", + "packageName": "@smithy/chunked-blob-reader-native", + "hash": "sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==" + } + }, + "npm:@smithy/config-resolver": { + "type": "npm", + "name": "npm:@smithy/config-resolver", + "data": { + "version": "4.4.6", + "packageName": "@smithy/config-resolver", + "hash": "sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==" + } + }, + "npm:@smithy/core": { + "type": "npm", + "name": "npm:@smithy/core", + "data": { + "version": "3.21.1", + "packageName": "@smithy/core", + "hash": "sha512-NUH8R4O6FkN8HKMojzbGg/5pNjsfTjlMmeFclyPfPaXXUrbr5TzhWgbf7t92wfrpCHRgpjyz7ffASIS3wX28aA==" + } + }, + "npm:@smithy/credential-provider-imds": { + "type": "npm", + "name": "npm:@smithy/credential-provider-imds", + "data": { + "version": "4.2.8", + "packageName": "@smithy/credential-provider-imds", + "hash": "sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw==" + } + }, + "npm:@smithy/eventstream-codec": { + "type": "npm", + "name": "npm:@smithy/eventstream-codec", + "data": { + "version": "4.2.8", + "packageName": "@smithy/eventstream-codec", + "hash": "sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw==" + } + }, + "npm:@smithy/eventstream-serde-browser": { + "type": "npm", + "name": "npm:@smithy/eventstream-serde-browser", + "data": { + "version": "4.2.8", + "packageName": "@smithy/eventstream-serde-browser", + "hash": "sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw==" + } + }, + "npm:@smithy/eventstream-serde-config-resolver": { + "type": "npm", + "name": "npm:@smithy/eventstream-serde-config-resolver", + "data": { + "version": "4.3.8", + "packageName": "@smithy/eventstream-serde-config-resolver", + "hash": "sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ==" + } + }, + "npm:@smithy/eventstream-serde-node": { + "type": "npm", + "name": "npm:@smithy/eventstream-serde-node", + "data": { + "version": "4.2.8", + "packageName": "@smithy/eventstream-serde-node", + "hash": "sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A==" + } + }, + "npm:@smithy/eventstream-serde-universal": { + "type": "npm", + "name": "npm:@smithy/eventstream-serde-universal", + "data": { + "version": "4.2.8", + "packageName": "@smithy/eventstream-serde-universal", + "hash": "sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ==" + } + }, + "npm:@smithy/fetch-http-handler": { + "type": "npm", + "name": "npm:@smithy/fetch-http-handler", + "data": { + "version": "5.3.9", + "packageName": "@smithy/fetch-http-handler", + "hash": "sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA==" + } + }, + "npm:@smithy/hash-blob-browser": { + "type": "npm", + "name": "npm:@smithy/hash-blob-browser", + "data": { + "version": "4.2.9", + "packageName": "@smithy/hash-blob-browser", + "hash": "sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg==" + } + }, + "npm:@smithy/hash-node": { + "type": "npm", + "name": "npm:@smithy/hash-node", + "data": { + "version": "4.2.8", + "packageName": "@smithy/hash-node", + "hash": "sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA==" + } + }, + "npm:@smithy/hash-stream-node": { + "type": "npm", + "name": "npm:@smithy/hash-stream-node", + "data": { + "version": "4.2.8", + "packageName": "@smithy/hash-stream-node", + "hash": "sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w==" + } + }, + "npm:@smithy/invalid-dependency": { + "type": "npm", + "name": "npm:@smithy/invalid-dependency", + "data": { + "version": "4.2.8", + "packageName": "@smithy/invalid-dependency", + "hash": "sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ==" + } + }, + "npm:@smithy/md5-js": { + "type": "npm", + "name": "npm:@smithy/md5-js", + "data": { + "version": "4.2.8", + "packageName": "@smithy/md5-js", + "hash": "sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ==" + } + }, + "npm:@smithy/middleware-content-length": { + "type": "npm", + "name": "npm:@smithy/middleware-content-length", + "data": { + "version": "4.2.8", + "packageName": "@smithy/middleware-content-length", + "hash": "sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A==" + } + }, + "npm:@smithy/middleware-endpoint": { + "type": "npm", + "name": "npm:@smithy/middleware-endpoint", + "data": { + "version": "4.4.11", + "packageName": "@smithy/middleware-endpoint", + "hash": "sha512-/WqsrycweGGfb9sSzME4CrsuayjJF6BueBmkKlcbeU5q18OhxRrvvKlmfw3tpDsK5ilx2XUJvoukwxHB0nHs/Q==" + } + }, + "npm:@smithy/middleware-retry": { + "type": "npm", + "name": "npm:@smithy/middleware-retry", + "data": { + "version": "4.4.27", + "packageName": "@smithy/middleware-retry", + "hash": "sha512-xFUYCGRVsfgiN5EjsJJSzih9+yjStgMTCLANPlf0LVQkPDYCe0hz97qbdTZosFOiYlGBlHYityGRxrQ/hxhfVQ==" + } + }, + "npm:@smithy/middleware-serde": { + "type": "npm", + "name": "npm:@smithy/middleware-serde", + "data": { + "version": "4.2.9", + "packageName": "@smithy/middleware-serde", + "hash": "sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ==" + } + }, + "npm:@smithy/middleware-stack": { + "type": "npm", + "name": "npm:@smithy/middleware-stack", + "data": { + "version": "4.2.8", + "packageName": "@smithy/middleware-stack", + "hash": "sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA==" + } + }, + "npm:@smithy/node-config-provider": { + "type": "npm", + "name": "npm:@smithy/node-config-provider", + "data": { + "version": "4.3.8", + "packageName": "@smithy/node-config-provider", + "hash": "sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg==" + } + }, + "npm:@smithy/node-http-handler": { + "type": "npm", + "name": "npm:@smithy/node-http-handler", + "data": { + "version": "4.4.8", + "packageName": "@smithy/node-http-handler", + "hash": "sha512-q9u+MSbJVIJ1QmJ4+1u+cERXkrhuILCBDsJUBAW1MPE6sFonbCNaegFuwW9ll8kh5UdyY3jOkoOGlc7BesoLpg==" + } + }, + "npm:@smithy/property-provider": { + "type": "npm", + "name": "npm:@smithy/property-provider", + "data": { + "version": "4.2.8", + "packageName": "@smithy/property-provider", + "hash": "sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w==" + } + }, + "npm:@smithy/protocol-http": { + "type": "npm", + "name": "npm:@smithy/protocol-http", + "data": { + "version": "5.3.8", + "packageName": "@smithy/protocol-http", + "hash": "sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ==" + } + }, + "npm:@smithy/querystring-builder": { + "type": "npm", + "name": "npm:@smithy/querystring-builder", + "data": { + "version": "4.2.8", + "packageName": "@smithy/querystring-builder", + "hash": "sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw==" + } + }, + "npm:@smithy/querystring-parser": { + "type": "npm", + "name": "npm:@smithy/querystring-parser", + "data": { + "version": "4.2.8", + "packageName": "@smithy/querystring-parser", + "hash": "sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA==" + } + }, + "npm:@smithy/service-error-classification": { + "type": "npm", + "name": "npm:@smithy/service-error-classification", + "data": { + "version": "4.2.8", + "packageName": "@smithy/service-error-classification", + "hash": "sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ==" + } + }, + "npm:@smithy/shared-ini-file-loader": { + "type": "npm", + "name": "npm:@smithy/shared-ini-file-loader", + "data": { + "version": "4.4.3", + "packageName": "@smithy/shared-ini-file-loader", + "hash": "sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg==" + } + }, + "npm:@smithy/signature-v4": { + "type": "npm", + "name": "npm:@smithy/signature-v4", + "data": { + "version": "5.3.8", + "packageName": "@smithy/signature-v4", + "hash": "sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg==" + } + }, + "npm:@smithy/smithy-client": { + "type": "npm", + "name": "npm:@smithy/smithy-client", + "data": { + "version": "4.10.12", + "packageName": "@smithy/smithy-client", + "hash": "sha512-VKO/HKoQ5OrSHW6AJUmEnUKeXI1/5LfCwO9cwyao7CmLvGnZeM1i36Lyful3LK1XU7HwTVieTqO1y2C/6t3qtA==" + } + }, + "npm:@smithy/types": { + "type": "npm", + "name": "npm:@smithy/types", + "data": { + "version": "4.12.0", + "packageName": "@smithy/types", + "hash": "sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw==" + } + }, + "npm:@smithy/url-parser": { + "type": "npm", + "name": "npm:@smithy/url-parser", + "data": { + "version": "4.2.8", + "packageName": "@smithy/url-parser", + "hash": "sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA==" + } + }, + "npm:@smithy/util-base64": { + "type": "npm", + "name": "npm:@smithy/util-base64", + "data": { + "version": "4.3.0", + "packageName": "@smithy/util-base64", + "hash": "sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==" + } + }, + "npm:@smithy/util-body-length-browser": { + "type": "npm", + "name": "npm:@smithy/util-body-length-browser", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-body-length-browser", + "hash": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==" + } + }, + "npm:@smithy/util-body-length-node": { + "type": "npm", + "name": "npm:@smithy/util-body-length-node", + "data": { + "version": "4.2.1", + "packageName": "@smithy/util-body-length-node", + "hash": "sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==" + } + }, + "npm:@smithy/util-config-provider": { + "type": "npm", + "name": "npm:@smithy/util-config-provider", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-config-provider", + "hash": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==" + } + }, + "npm:@smithy/util-defaults-mode-browser": { + "type": "npm", + "name": "npm:@smithy/util-defaults-mode-browser", + "data": { + "version": "4.3.26", + "packageName": "@smithy/util-defaults-mode-browser", + "hash": "sha512-vva0dzYUTgn7DdE0uaha10uEdAgmdLnNFowKFjpMm6p2R0XDk5FHPX3CBJLzWQkQXuEprsb0hGz9YwbicNWhjw==" + } + }, + "npm:@smithy/util-defaults-mode-node": { + "type": "npm", + "name": "npm:@smithy/util-defaults-mode-node", + "data": { + "version": "4.2.29", + "packageName": "@smithy/util-defaults-mode-node", + "hash": "sha512-c6D7IUBsZt/aNnTBHMTf+OVh+h/JcxUUgfTcIJaWRe6zhOum1X+pNKSZtZ+7fbOn5I99XVFtmrnXKv8yHHErTQ==" + } + }, + "npm:@smithy/util-endpoints": { + "type": "npm", + "name": "npm:@smithy/util-endpoints", + "data": { + "version": "3.2.8", + "packageName": "@smithy/util-endpoints", + "hash": "sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw==" + } + }, + "npm:@smithy/util-hex-encoding": { + "type": "npm", + "name": "npm:@smithy/util-hex-encoding", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-hex-encoding", + "hash": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==" + } + }, + "npm:@smithy/util-middleware": { + "type": "npm", + "name": "npm:@smithy/util-middleware", + "data": { + "version": "4.2.8", + "packageName": "@smithy/util-middleware", + "hash": "sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A==" + } + }, + "npm:@smithy/util-retry": { + "type": "npm", + "name": "npm:@smithy/util-retry", + "data": { + "version": "4.2.8", + "packageName": "@smithy/util-retry", + "hash": "sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg==" + } + }, + "npm:@smithy/util-stream": { + "type": "npm", + "name": "npm:@smithy/util-stream", + "data": { + "version": "4.5.10", + "packageName": "@smithy/util-stream", + "hash": "sha512-jbqemy51UFSZSp2y0ZmRfckmrzuKww95zT9BYMmuJ8v3altGcqjwoV1tzpOwuHaKrwQrCjIzOib499ymr2f98g==" + } + }, + "npm:@smithy/util-uri-escape": { + "type": "npm", + "name": "npm:@smithy/util-uri-escape", + "data": { + "version": "4.2.0", + "packageName": "@smithy/util-uri-escape", + "hash": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==" + } + }, + "npm:@smithy/util-waiter": { + "type": "npm", + "name": "npm:@smithy/util-waiter", + "data": { + "version": "4.2.8", + "packageName": "@smithy/util-waiter", + "hash": "sha512-n+lahlMWk+aejGuax7DPWtqav8HYnWxQwR+LCG2BgCUmaGcTe9qZCFsmw8TMg9iG75HOwhrJCX9TCJRLH+Yzqg==" + } + }, + "npm:@smithy/uuid": { + "type": "npm", + "name": "npm:@smithy/uuid", + "data": { + "version": "1.1.0", + "packageName": "@smithy/uuid", + "hash": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==" + } + }, "npm:@svgr/babel-plugin-add-jsx-attribute": { "type": "npm", "name": "npm:@svgr/babel-plugin-add-jsx-attribute", @@ -3598,9 +4680,9 @@ "type": "npm", "name": "npm:source-map", "data": { - "version": "0.7.4", + "version": "0.7.6", "packageName": "source-map", - "hash": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + "hash": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==" } }, "npm:source-map-support@0.5.21": { @@ -3639,51 +4721,6 @@ "hash": "sha512-0vGqD6FSW67PaZUZABkA+ADKsX7OUY/PwNEz1SbQdCvVk/e4Z36Gwh7mFVBQH9RIsMonTyhV1RHkwkGnEfR3zQ==" } }, - "npm:commander@8.3.0": { - "type": "npm", - "name": "npm:commander@8.3.0", - "data": { - "version": "8.3.0", - "packageName": "commander", - "hash": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - } - }, - "npm:commander": { - "type": "npm", - "name": "npm:commander", - "data": { - "version": "6.2.1", - "packageName": "commander", - "hash": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" - } - }, - "npm:commander@7.2.0": { - "type": "npm", - "name": "npm:commander@7.2.0", - "data": { - "version": "7.2.0", - "packageName": "commander", - "hash": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - } - }, - "npm:commander@2.20.3": { - "type": "npm", - "name": "npm:commander@2.20.3", - "data": { - "version": "2.20.3", - "packageName": "commander", - "hash": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - } - }, - "npm:commander@10.0.1": { - "type": "npm", - "name": "npm:commander@10.0.1", - "data": { - "version": "10.0.1", - "packageName": "commander", - "hash": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==" - } - }, "npm:@swc/core": { "type": "npm", "name": "npm:@swc/core", @@ -3814,9 +4851,9 @@ "type": "npm", "name": "npm:@swc/types", "data": { - "version": "0.1.22", + "version": "0.1.23", "packageName": "@swc/types", - "hash": "sha512-D13mY/ZA4PPEFSy6acki9eBT/3WgjMoRqNcdpIvjaYLQ44Xk5BdaL7UkDxAh6Z9UOe7tCCp67BVmZCojYp9owg==" + "hash": "sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==" } }, "npm:@szmarczak/http-timer": { @@ -3945,15 +4982,6 @@ "hash": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==" } }, - "npm:@types/bson": { - "type": "npm", - "name": "npm:@types/bson", - "data": { - "version": "4.0.5", - "packageName": "@types/bson", - "hash": "sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg==" - } - }, "npm:@types/cacheable-request": { "type": "npm", "name": "npm:@types/cacheable-request", @@ -4017,15 +5045,6 @@ "hash": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" } }, - "npm:@types/estree@1.0.7": { - "type": "npm", - "name": "npm:@types/estree@1.0.7", - "data": { - "version": "1.0.7", - "packageName": "@types/estree", - "hash": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" - } - }, "npm:@types/express": { "type": "npm", "name": "npm:@types/express", @@ -4039,9 +5058,9 @@ "type": "npm", "name": "npm:@types/express-serve-static-core", "data": { - "version": "5.0.6", + "version": "5.0.7", "packageName": "@types/express-serve-static-core", - "hash": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==" + "hash": "sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==" } }, "npm:@types/express-serve-static-core@4.19.6": { @@ -4215,6 +5234,15 @@ "hash": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" } }, + "npm:@types/jsonwebtoken": { + "type": "npm", + "name": "npm:@types/jsonwebtoken", + "data": { + "version": "9.0.10", + "packageName": "@types/jsonwebtoken", + "hash": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==" + } + }, "npm:@types/keyv": { "type": "npm", "name": "npm:@types/keyv", @@ -4228,9 +5256,9 @@ "type": "npm", "name": "npm:@types/lodash", "data": { - "version": "4.17.17", + "version": "4.17.20", "packageName": "@types/lodash", - "hash": "sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==" + "hash": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==" } }, "npm:@types/mime": { @@ -4246,18 +5274,27 @@ "type": "npm", "name": "npm:@types/minimatch", "data": { - "version": "5.1.2", + "version": "6.0.0", "packageName": "@types/minimatch", - "hash": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" + "hash": "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==" } }, "npm:@types/mongodb": { "type": "npm", "name": "npm:@types/mongodb", "data": { - "version": "3.6.20", + "version": "4.0.7", "packageName": "@types/mongodb", - "hash": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==" + "hash": "sha512-lPUYPpzA43baXqnd36cZ9xxorprybxXDzteVKCPAdp14ppHtFJHnXYvNpmBvtMUTb5fKXVv6sVbzo1LHkWhJlw==" + } + }, + "npm:@types/ms": { + "type": "npm", + "name": "npm:@types/ms", + "data": { + "version": "2.1.0", + "packageName": "@types/ms", + "hash": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" } }, "npm:@types/node": { @@ -4275,7 +5312,7 @@ "data": { "version": "22.6.1", "packageName": "@types/node", - "hash": "sha512-V48tCfcKb/e6cVUigLAaJDAILdMP0fUW6BidkPK4GpGjXcfbnoHasCZDwz3N3yVt5we2RHm4XTQCpv0KJz9zqw==" + "hash": "11330948847435156743" } }, "npm:@types/node-cron": { @@ -4291,9 +5328,9 @@ "type": "npm", "name": "npm:@types/node-forge", "data": { - "version": "1.3.11", + "version": "1.3.13", "packageName": "@types/node-forge", - "hash": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==" + "hash": "sha512-zePQJSW5QkwSHKRApqWCVKeKoSOt4xvEnLENZPjyvm9Ezdf/EyDeJM7jqLzOwjVICQQzvLZ63T55MKdJB5H6ww==" } }, "npm:@types/parse-json": { @@ -4458,13 +5495,22 @@ "hash": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==" } }, + "npm:@typescript-eslint/eslint-plugin@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/eslint-plugin", + "hash": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==" + } + }, "npm:@typescript-eslint/eslint-plugin@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/eslint-plugin@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/eslint-plugin", - "hash": "sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==" + "hash": "5154269998615099408" } }, "npm:@typescript-eslint/parser": { @@ -4476,31 +5522,49 @@ "hash": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==" } }, + "npm:@typescript-eslint/parser@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/parser@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/parser", + "hash": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==" + } + }, "npm:@typescript-eslint/parser@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/parser@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/parser", - "hash": "sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==" + "hash": "2528793030655814064" } }, "npm:@typescript-eslint/project-service": { "type": "npm", "name": "npm:@typescript-eslint/project-service", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/project-service", + "hash": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==" + } + }, + "npm:@typescript-eslint/project-service@8.34.0": { + "type": "npm", + "name": "npm:@typescript-eslint/project-service@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/project-service", "hash": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==" } }, - "npm:@typescript-eslint/types@8.34.0": { + "npm:@typescript-eslint/types@8.38.0": { "type": "npm", - "name": "npm:@typescript-eslint/types@8.34.0", + "name": "npm:@typescript-eslint/types@8.38.0", "data": { - "version": "8.34.0", + "version": "8.38.0", "packageName": "@typescript-eslint/types", - "hash": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==" + "hash": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==" } }, "npm:@typescript-eslint/types": { @@ -4512,6 +5576,15 @@ "hash": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==" } }, + "npm:@typescript-eslint/types@8.34.0": { + "type": "npm", + "name": "npm:@typescript-eslint/types@8.34.0", + "data": { + "version": "8.34.0", + "packageName": "@typescript-eslint/types", + "hash": "1304243825666539567" + } + }, "npm:@typescript-eslint/scope-manager": { "type": "npm", "name": "npm:@typescript-eslint/scope-manager", @@ -4521,18 +5594,36 @@ "hash": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==" } }, + "npm:@typescript-eslint/scope-manager@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/scope-manager@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/scope-manager", + "hash": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==" + } + }, "npm:@typescript-eslint/scope-manager@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/scope-manager@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/scope-manager", - "hash": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==" + "hash": "13839688833242731393" } }, "npm:@typescript-eslint/tsconfig-utils": { "type": "npm", "name": "npm:@typescript-eslint/tsconfig-utils", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/tsconfig-utils", + "hash": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==" + } + }, + "npm:@typescript-eslint/tsconfig-utils@8.34.0": { + "type": "npm", + "name": "npm:@typescript-eslint/tsconfig-utils@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/tsconfig-utils", @@ -4548,13 +5639,22 @@ "hash": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==" } }, + "npm:@typescript-eslint/type-utils@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/type-utils@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/type-utils", + "hash": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==" + } + }, "npm:@typescript-eslint/type-utils@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/type-utils@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/type-utils", - "hash": "sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==" + "hash": "16977224433903519836" } }, "npm:@typescript-eslint/typescript-estree": { @@ -4566,13 +5666,22 @@ "hash": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==" } }, + "npm:@typescript-eslint/typescript-estree@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/typescript-estree@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/typescript-estree", + "hash": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==" + } + }, "npm:@typescript-eslint/typescript-estree@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/typescript-estree@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/typescript-estree", - "hash": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==" + "hash": "7847620451363138215" } }, "npm:@typescript-eslint/utils": { @@ -4584,13 +5693,22 @@ "hash": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==" } }, + "npm:@typescript-eslint/utils@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/utils@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/utils", + "hash": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==" + } + }, "npm:@typescript-eslint/utils@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/utils@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/utils", - "hash": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==" + "hash": "16006777985047460075" } }, "npm:@typescript-eslint/visitor-keys": { @@ -4602,13 +5720,22 @@ "hash": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==" } }, + "npm:@typescript-eslint/visitor-keys@8.38.0": { + "type": "npm", + "name": "npm:@typescript-eslint/visitor-keys@8.38.0", + "data": { + "version": "8.38.0", + "packageName": "@typescript-eslint/visitor-keys", + "hash": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==" + } + }, "npm:@typescript-eslint/visitor-keys@8.34.0": { "type": "npm", "name": "npm:@typescript-eslint/visitor-keys@8.34.0", "data": { "version": "8.34.0", "packageName": "@typescript-eslint/visitor-keys", - "hash": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==" + "hash": "9659487471867788105" } }, "npm:@ungap/structured-clone": { @@ -4899,6 +6026,15 @@ "hash": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==" } }, + "npm:acorn-import-phases": { + "type": "npm", + "name": "npm:acorn-import-phases", + "data": { + "version": "1.0.4", + "packageName": "acorn-import-phases", + "hash": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==" + } + }, "npm:acorn-jsx": { "type": "npm", "name": "npm:acorn-jsx", @@ -4957,18 +6093,18 @@ "type": "npm", "name": "npm:ajv-keywords", "data": { - "version": "3.5.2", + "version": "5.1.0", "packageName": "ajv-keywords", - "hash": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + "hash": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==" } }, - "npm:ajv-keywords@5.1.0": { + "npm:ajv-keywords@3.5.2": { "type": "npm", - "name": "npm:ajv-keywords@5.1.0", + "name": "npm:ajv-keywords@3.5.2", "data": { - "version": "5.1.0", + "version": "3.5.2", "packageName": "ajv-keywords", - "hash": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==" + "hash": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" } }, "npm:ansi-colors": { @@ -4989,6 +6125,33 @@ "hash": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==" } }, + "npm:type-fest@0.21.3": { + "type": "npm", + "name": "npm:type-fest@0.21.3", + "data": { + "version": "0.21.3", + "packageName": "type-fest", + "hash": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + } + }, + "npm:type-fest@4.41.0": { + "type": "npm", + "name": "npm:type-fest@4.41.0", + "data": { + "version": "4.41.0", + "packageName": "type-fest", + "hash": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==" + } + }, + "npm:type-fest": { + "type": "npm", + "name": "npm:type-fest", + "data": { + "version": "0.20.2", + "packageName": "type-fest", + "hash": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + } + }, "npm:ansi-html": { "type": "npm", "name": "npm:ansi-html", @@ -5029,9 +6192,9 @@ "type": "npm", "name": "npm:picomatch", "data": { - "version": "4.0.2", + "version": "4.0.3", "packageName": "picomatch", - "hash": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==" + "hash": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==" } }, "npm:arch": { @@ -5241,15 +6404,6 @@ "hash": "sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==" } }, - "npm:aws-sdk": { - "type": "npm", - "name": "npm:aws-sdk", - "data": { - "version": "2.1692.0", - "packageName": "aws-sdk", - "hash": "sha512-x511uiJ/57FIsbgUe5csJ13k3uzu25uWQE+XqfBis/sB0SFoiElJWXRkgEAUh0U6n40eT3ay5Ue4oPkRMu1LYw==" - } - }, "npm:axe-core": { "type": "npm", "name": "npm:axe-core", @@ -5263,9 +6417,9 @@ "type": "npm", "name": "npm:axios", "data": { - "version": "1.9.0", + "version": "1.11.0", "packageName": "axios", - "hash": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==" + "hash": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==" } }, "npm:axobject-query": { @@ -5385,31 +6539,49 @@ "hash": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==" } }, + "npm:yaml@1.10.2": { + "type": "npm", + "name": "npm:yaml@1.10.2", + "data": { + "version": "1.10.2", + "packageName": "yaml", + "hash": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + } + }, + "npm:yaml": { + "type": "npm", + "name": "npm:yaml", + "data": { + "version": "2.8.0", + "packageName": "yaml", + "hash": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==" + } + }, "npm:babel-plugin-polyfill-corejs2": { "type": "npm", "name": "npm:babel-plugin-polyfill-corejs2", "data": { - "version": "0.4.13", + "version": "0.4.14", "packageName": "babel-plugin-polyfill-corejs2", - "hash": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==" + "hash": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==" } }, "npm:babel-plugin-polyfill-corejs3": { "type": "npm", "name": "npm:babel-plugin-polyfill-corejs3", "data": { - "version": "0.11.1", + "version": "0.13.0", "packageName": "babel-plugin-polyfill-corejs3", - "hash": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==" + "hash": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==" } }, "npm:babel-plugin-polyfill-regenerator": { "type": "npm", "name": "npm:babel-plugin-polyfill-regenerator", "data": { - "version": "0.6.4", + "version": "0.6.5", "packageName": "babel-plugin-polyfill-regenerator", - "hash": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==" + "hash": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==" } }, "npm:babel-plugin-transform-async-to-promises": { @@ -5619,15 +6791,6 @@ "hash": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==" } }, - "npm:bl@2.2.1": { - "type": "npm", - "name": "npm:bl@2.2.1", - "data": { - "version": "2.2.1", - "packageName": "bl", - "hash": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==" - } - }, "npm:buffer@5.7.1": { "type": "npm", "name": "npm:buffer@5.7.1", @@ -5637,15 +6800,6 @@ "hash": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==" } }, - "npm:buffer": { - "type": "npm", - "name": "npm:buffer", - "data": { - "version": "4.9.2", - "packageName": "buffer", - "hash": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==" - } - }, "npm:buffer@6.0.3": { "type": "npm", "name": "npm:buffer@6.0.3", @@ -5655,15 +6809,6 @@ "hash": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" } }, - "npm:bluebird": { - "type": "npm", - "name": "npm:bluebird", - "data": { - "version": "3.5.1", - "packageName": "bluebird", - "hash": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" - } - }, "npm:bn.js": { "type": "npm", "name": "npm:bn.js", @@ -5709,15 +6854,6 @@ "hash": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" } }, - "npm:debug@3.1.0": { - "type": "npm", - "name": "npm:debug@3.1.0", - "data": { - "version": "3.1.0", - "packageName": "debug", - "hash": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" - } - }, "npm:iconv-lite@0.4.24": { "type": "npm", "name": "npm:iconv-lite@0.4.24", @@ -5727,6 +6863,15 @@ "hash": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" } }, + "npm:iconv-lite@0.7.0": { + "type": "npm", + "name": "npm:iconv-lite@0.7.0", + "data": { + "version": "0.7.0", + "packageName": "iconv-lite", + "hash": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==" + } + }, "npm:iconv-lite": { "type": "npm", "name": "npm:iconv-lite", @@ -5745,15 +6890,6 @@ "hash": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } }, - "npm:ms@2.1.2": { - "type": "npm", - "name": "npm:ms@2.1.2", - "data": { - "version": "2.1.2", - "packageName": "ms", - "hash": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - }, "npm:ms": { "type": "npm", "name": "npm:ms", @@ -5799,6 +6935,15 @@ "hash": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" } }, + "npm:bowser": { + "type": "npm", + "name": "npm:bowser", + "data": { + "version": "2.13.1", + "packageName": "bowser", + "hash": "sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==" + } + }, "npm:braces": { "type": "npm", "name": "npm:braces", @@ -5812,9 +6957,9 @@ "type": "npm", "name": "npm:browserslist", "data": { - "version": "4.25.0", + "version": "4.25.1", "packageName": "browserslist", - "hash": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==" + "hash": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==" } }, "npm:bs-logger": { @@ -5844,13 +6989,13 @@ "hash": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==" } }, - "npm:bson@1.1.6": { + "npm:buffer-equal-constant-time": { "type": "npm", - "name": "npm:bson@1.1.6", + "name": "npm:buffer-equal-constant-time", "data": { - "version": "1.1.6", - "packageName": "bson", - "hash": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" + "version": "1.0.1", + "packageName": "buffer-equal-constant-time", + "hash": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" } }, "npm:buffer-from": { @@ -5938,9 +7083,9 @@ "type": "npm", "name": "npm:caniuse-lite", "data": { - "version": "1.0.30001721", + "version": "1.0.30001727", "packageName": "caniuse-lite", - "hash": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==" + "hash": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==" } }, "npm:chalk": { @@ -5979,6 +7124,24 @@ "hash": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==" } }, + "npm:glob-parent@5.1.2": { + "type": "npm", + "name": "npm:glob-parent@5.1.2", + "data": { + "version": "5.1.2", + "packageName": "glob-parent", + "hash": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + } + }, + "npm:glob-parent": { + "type": "npm", + "name": "npm:glob-parent", + "data": { + "version": "6.0.2", + "packageName": "glob-parent", + "hash": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" + } + }, "npm:chrome-trace-event": { "type": "npm", "name": "npm:chrome-trace-event", @@ -6190,9 +7353,9 @@ "type": "npm", "name": "npm:compression", "data": { - "version": "1.8.0", + "version": "1.8.1", "packageName": "compression", - "hash": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==" + "hash": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==" } }, "npm:concat-map": { @@ -6217,9 +7380,9 @@ "type": "npm", "name": "npm:concurrently", "data": { - "version": "9.1.2", + "version": "9.2.0", "packageName": "concurrently", - "hash": "sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==" + "hash": "sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==" } }, "npm:supports-color@8.1.1": { @@ -6267,15 +7430,6 @@ "hash": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==" } }, - "npm:content-disposition": { - "type": "npm", - "name": "npm:content-disposition", - "data": { - "version": "0.5.4", - "packageName": "content-disposition", - "hash": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==" - } - }, "npm:content-type": { "type": "npm", "name": "npm:content-type", @@ -6339,24 +7493,6 @@ "hash": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==" } }, - "npm:glob-parent@6.0.2": { - "type": "npm", - "name": "npm:glob-parent@6.0.2", - "data": { - "version": "6.0.2", - "packageName": "glob-parent", - "hash": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" - } - }, - "npm:glob-parent": { - "type": "npm", - "name": "npm:glob-parent", - "data": { - "version": "5.1.2", - "packageName": "glob-parent", - "hash": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" - } - }, "npm:globby@12.2.0": { "type": "npm", "name": "npm:globby@12.2.0", @@ -6397,18 +7533,18 @@ "type": "npm", "name": "npm:core-js-compat", "data": { - "version": "3.43.0", + "version": "3.44.0", "packageName": "core-js-compat", - "hash": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==" + "hash": "sha512-JepmAj2zfl6ogy34qfWtcE7nHKAJnKsQFRn++scjVS2bZFllwptzw61BZcZFYBPpUznLfAvh0LGhxKppk04ClA==" } }, "npm:core-js-pure": { "type": "npm", "name": "npm:core-js-pure", "data": { - "version": "3.43.0", + "version": "3.44.0", "packageName": "core-js-pure", - "hash": "sha512-i/AgxU2+A+BbJdMxh3v7/vxi2SbFqxiFmg6VsDwYB4jkucrd1BZNA9a9gphC0fYMG5IBSgQcbQnk865VCLe7xA==" + "hash": "sha512-gvMQAGB4dfVUxpYD0k3Fq8J+n5bB6Ytl15lqlZrOIXFzxOhtPaObfkQGHtMRdyjIf7z2IeNULwi1jEwyS+ltKQ==" } }, "npm:core-util-is": { @@ -6505,9 +7641,9 @@ "type": "npm", "name": "npm:css-select", "data": { - "version": "5.1.0", + "version": "5.2.2", "packageName": "css-select", - "hash": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==" + "hash": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==" } }, "npm:css-select@4.3.0": { @@ -6550,9 +7686,9 @@ "type": "npm", "name": "npm:css-what", "data": { - "version": "6.1.0", + "version": "6.2.2", "packageName": "css-what", - "hash": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + "hash": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==" } }, "npm:cssesc": { @@ -6739,9 +7875,9 @@ "type": "npm", "name": "npm:decimal.js", "data": { - "version": "10.5.0", + "version": "10.6.0", "packageName": "decimal.js", - "hash": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==" + "hash": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==" } }, "npm:decompress-response": { @@ -6852,15 +7988,6 @@ "hash": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" } }, - "npm:denque": { - "type": "npm", - "name": "npm:denque", - "data": { - "version": "1.5.1", - "packageName": "denque", - "hash": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" - } - }, "npm:depd": { "type": "npm", "name": "npm:depd", @@ -7072,9 +8199,18 @@ "type": "npm", "name": "npm:dotenv", "data": { - "version": "16.5.0", + "version": "17.2.3", + "packageName": "dotenv", + "hash": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==" + } + }, + "npm:dotenv@16.6.1": { + "type": "npm", + "name": "npm:dotenv@16.6.1", + "data": { + "version": "16.6.1", "packageName": "dotenv", - "hash": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==" + "hash": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==" } }, "npm:dotenv@16.4.7": { @@ -7113,6 +8249,15 @@ "hash": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" } }, + "npm:duplexify": { + "type": "npm", + "name": "npm:duplexify", + "data": { + "version": "4.1.3", + "packageName": "duplexify", + "hash": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==" + } + }, "npm:eastasianwidth": { "type": "npm", "name": "npm:eastasianwidth", @@ -7153,9 +8298,9 @@ "type": "npm", "name": "npm:electron-to-chromium", "data": { - "version": "1.5.166", + "version": "1.5.190", "packageName": "electron-to-chromium", - "hash": "sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==" + "hash": "sha512-k4McmnB2091YIsdCgkS0fMVMPOJgxl93ltFzaryXqwip1AaxeDqKCGLxkXODDA5Ab/D+tV5EL5+aTx76RvLRxw==" } }, "npm:emittery": { @@ -7216,18 +8361,18 @@ "type": "npm", "name": "npm:end-of-stream", "data": { - "version": "1.4.4", + "version": "1.4.5", "packageName": "end-of-stream", - "hash": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" + "hash": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==" } }, "npm:enhanced-resolve": { "type": "npm", "name": "npm:enhanced-resolve", "data": { - "version": "5.18.1", + "version": "5.18.2", "packageName": "enhanced-resolve", - "hash": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==" + "hash": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==" } }, "npm:enquirer": { @@ -7434,16 +8579,16 @@ "data": { "version": "9.28.0", "packageName": "eslint", - "hash": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==" + "hash": "3993069672115803897" } }, "npm:eslint-config-prettier": { "type": "npm", "name": "npm:eslint-config-prettier", "data": { - "version": "9.1.0", + "version": "9.1.2", "packageName": "eslint-config-prettier", - "hash": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==" + "hash": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==" } }, "npm:eslint-import-resolver-node": { @@ -7459,9 +8604,9 @@ "type": "npm", "name": "npm:eslint-module-utils", "data": { - "version": "2.12.0", + "version": "2.12.1", "packageName": "eslint-module-utils", - "hash": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==" + "hash": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==" } }, "npm:eslint-plugin-eslint-comments": { @@ -7477,18 +8622,18 @@ "type": "npm", "name": "npm:eslint-plugin-eslint-plugin", "data": { - "version": "6.4.0", + "version": "6.5.0", "packageName": "eslint-plugin-eslint-plugin", - "hash": "sha512-X94/hr7DnckX68wE6Qqeo3DsZndZSclfoewjwD249yG5z2EAOl3UGUohLIgOpmbUjcFv6AlfW3wxBnOiWkS1Iw==" + "hash": "sha512-DT8YpcXDtMBcBZN39JlkHGurHKU8eYFLavTrnowQLeNwqe/diRUsllsftgD/7dZ2/ItabNLLF2/EYapE1H+G7Q==" } }, "npm:eslint-plugin-import": { "type": "npm", "name": "npm:eslint-plugin-import", "data": { - "version": "2.31.0", + "version": "2.32.0", "packageName": "eslint-plugin-import", - "hash": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==" + "hash": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==" } }, "npm:json5@1.0.2": { @@ -7567,9 +8712,9 @@ "type": "npm", "name": "npm:eslint-plugin-prettier", "data": { - "version": "5.4.1", + "version": "5.5.3", "packageName": "eslint-plugin-prettier", - "hash": "sha512-9dF+KuU/Ilkq27A8idRP7N2DH8iUR6qXcjF3FR2wETY21PZdBrIjwCau8oboyGj9b7etWmTGEeM8e7oOed6ZWg==" + "hash": "sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==" } }, "npm:eslint-plugin-react": { @@ -7632,7 +8777,7 @@ "data": { "version": "8.4.0", "packageName": "eslint-scope", - "hash": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==" + "hash": "2542004802398266375" } }, "npm:eslint-visitor-keys": { @@ -7653,24 +8798,6 @@ "hash": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==" } }, - "npm:espree@9.6.1": { - "type": "npm", - "name": "npm:espree@9.6.1", - "data": { - "version": "9.6.1", - "packageName": "espree", - "hash": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==" - } - }, - "npm:espree": { - "type": "npm", - "name": "npm:espree", - "data": { - "version": "10.4.0", - "packageName": "espree", - "hash": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==" - } - }, "npm:find-up@5.0.0": { "type": "npm", "name": "npm:find-up@5.0.0", @@ -7752,31 +8879,22 @@ "hash": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==" } }, - "npm:type-fest@0.20.2": { - "type": "npm", - "name": "npm:type-fest@0.20.2", - "data": { - "version": "0.20.2", - "packageName": "type-fest", - "hash": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - } - }, - "npm:type-fest@4.41.0": { + "npm:espree": { "type": "npm", - "name": "npm:type-fest@4.41.0", + "name": "npm:espree", "data": { - "version": "4.41.0", - "packageName": "type-fest", - "hash": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==" + "version": "9.6.1", + "packageName": "espree", + "hash": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==" } }, - "npm:type-fest": { + "npm:espree@10.4.0": { "type": "npm", - "name": "npm:type-fest", + "name": "npm:espree@10.4.0", "data": { - "version": "0.21.3", - "packageName": "type-fest", - "hash": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "version": "10.4.0", + "packageName": "espree", + "hash": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==" } }, "npm:esprima": { @@ -7878,22 +8996,40 @@ "hash": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" } }, - "npm:events": { + "npm:lru-cache@4.1.5": { "type": "npm", - "name": "npm:events", + "name": "npm:lru-cache@4.1.5", "data": { - "version": "1.1.1", - "packageName": "events", - "hash": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==" + "version": "4.1.5", + "packageName": "lru-cache", + "hash": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==" } }, - "npm:events@3.3.0": { + "npm:lru-cache@10.4.3": { "type": "npm", - "name": "npm:events@3.3.0", + "name": "npm:lru-cache@10.4.3", "data": { - "version": "3.3.0", - "packageName": "events", - "hash": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + "version": "10.4.3", + "packageName": "lru-cache", + "hash": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + } + }, + "npm:lru-cache": { + "type": "npm", + "name": "npm:lru-cache", + "data": { + "version": "5.1.1", + "packageName": "lru-cache", + "hash": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" + } + }, + "npm:lru-cache@11.2.4": { + "type": "npm", + "name": "npm:lru-cache@11.2.4", + "data": { + "version": "11.2.4", + "packageName": "lru-cache", + "hash": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==" } }, "npm:npm-run-path@2.0.2": { @@ -8124,6 +9260,15 @@ "npm:fast-jwt": { "type": "npm", "name": "npm:fast-jwt", + "data": { + "version": "6.1.0", + "packageName": "fast-jwt", + "hash": "sha512-cGK/TXlud8INL49Iv7yRtZy0PHzNJId1shfqNCqdF0gOlWiy+1FPgjxX+ZHp/CYxFYDaoNnxeYEGzcXSkahUEQ==" + } + }, + "npm:fast-jwt@5.0.6": { + "type": "npm", + "name": "npm:fast-jwt@5.0.6", "data": { "version": "5.0.6", "packageName": "fast-jwt", @@ -8148,15 +9293,6 @@ "hash": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==" } }, - "npm:fast-redact": { - "type": "npm", - "name": "npm:fast-redact", - "data": { - "version": "3.5.0", - "packageName": "fast-redact", - "hash": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==" - } - }, "npm:fast-uri": { "type": "npm", "name": "npm:fast-uri", @@ -8166,6 +9302,15 @@ "hash": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==" } }, + "npm:fast-xml-parser": { + "type": "npm", + "name": "npm:fast-xml-parser", + "data": { + "version": "5.2.5", + "packageName": "fast-xml-parser", + "hash": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==" + } + }, "npm:fastest-levenshtein": { "type": "npm", "name": "npm:fastest-levenshtein", @@ -8188,36 +9333,63 @@ "type": "npm", "name": "npm:fastify", "data": { - "version": "5.3.3", + "version": "5.6.2", "packageName": "fastify", - "hash": "sha512-nCBiBCw9q6jPx+JJNVgO8JVnTXeUyrGcyTKPQikRkA/PanrFcOIo4R+ZnLeOLPZPGgzjomqfVarzE0kYx7qWiQ==" + "hash": "sha512-dPugdGnsvYkBlENLhCgX8yhyGCsCPrpA8lFWbTNU428l+YOnLgYHR69hzV8HWPC79n536EqzqQtvhtdaCE0dKg==" } }, - "npm:fastify-mongoose-driver": { + "npm:fastify-plugin": { "type": "npm", - "name": "npm:fastify-mongoose-driver", + "name": "npm:fastify-plugin", "data": { - "version": "3.2.0", - "packageName": "fastify-mongoose-driver", - "hash": "sha512-O18y5DUrqMjlqZ3IEHV6/HQelx+kuaVYo1T7iMEJwtqhSD3gHeS5mOOWrdsEzB7WvjyspGgbFXMKihODQUQSJQ==" + "version": "5.0.1", + "packageName": "fastify-plugin", + "hash": "sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==" } }, - "npm:fastify-plugin@1.6.1": { + "npm:fastify-raw-body": { "type": "npm", - "name": "npm:fastify-plugin@1.6.1", + "name": "npm:fastify-raw-body", "data": { - "version": "1.6.1", - "packageName": "fastify-plugin", - "hash": "sha512-APBcb27s+MjaBIerFirYmBLatoPCgmHZM6XP0K+nDL9k0yX8NJPWDY1RAC3bh6z+AB5ULS2j31BUfLMT3uaZ4A==" + "version": "5.0.0", + "packageName": "fastify-raw-body", + "hash": "sha512-2qfoaQ3BQDhZ1gtbkKZd6n0kKxJISJGM6u/skD9ljdWItAscjXrtZ1lnjr7PavmXX9j4EyCPmBDiIsLn07d5vA==" } }, - "npm:fastify-plugin": { + "npm:raw-body@3.0.1": { "type": "npm", - "name": "npm:fastify-plugin", + "name": "npm:raw-body@3.0.1", "data": { - "version": "5.0.1", - "packageName": "fastify-plugin", - "hash": "sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==" + "version": "3.0.1", + "packageName": "raw-body", + "hash": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==" + } + }, + "npm:raw-body": { + "type": "npm", + "name": "npm:raw-body", + "data": { + "version": "2.5.2", + "packageName": "raw-body", + "hash": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==" + } + }, + "npm:secure-json-parse@2.7.0": { + "type": "npm", + "name": "npm:secure-json-parse@2.7.0", + "data": { + "version": "2.7.0", + "packageName": "secure-json-parse", + "hash": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" + } + }, + "npm:secure-json-parse": { + "type": "npm", + "name": "npm:secure-json-parse", + "data": { + "version": "4.0.0", + "packageName": "secure-json-parse", + "hash": "sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==" } }, "npm:fastparallel": { @@ -8289,7 +9461,7 @@ "data": { "version": "8.0.0", "packageName": "file-entry-cache", - "hash": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==" + "hash": "16256128166423601800" } }, "npm:file-loader": { @@ -8433,7 +9605,7 @@ "data": { "version": "4.0.1", "packageName": "flat-cache", - "hash": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==" + "hash": "404706785609825744" } }, "npm:rimraf@3.0.2": { @@ -8548,9 +9720,9 @@ "type": "npm", "name": "npm:form-data", "data": { - "version": "4.0.3", + "version": "4.0.4", "packageName": "form-data", - "hash": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==" + "hash": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==" } }, "npm:forwarded": { @@ -8602,9 +9774,9 @@ "type": "npm", "name": "npm:fs-monkey", "data": { - "version": "1.0.6", + "version": "1.1.0", "packageName": "fs-monkey", - "hash": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" + "hash": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==" } }, "npm:fs-readdir-recursive": { @@ -8751,6 +9923,33 @@ "hash": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" } }, + "npm:globals": { + "type": "npm", + "name": "npm:globals", + "data": { + "version": "13.24.0", + "packageName": "globals", + "hash": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==" + } + }, + "npm:globals@14.0.0": { + "type": "npm", + "name": "npm:globals@14.0.0", + "data": { + "version": "14.0.0", + "packageName": "globals", + "hash": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==" + } + }, + "npm:globals@15.15.0": { + "type": "npm", + "name": "npm:globals@15.15.0", + "data": { + "version": "15.15.0", + "packageName": "globals", + "hash": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==" + } + }, "npm:globalthis": { "type": "npm", "name": "npm:globalthis", @@ -9084,6 +10283,24 @@ "hash": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==" } }, + "npm:mime@1.6.0": { + "type": "npm", + "name": "npm:mime@1.6.0", + "data": { + "version": "1.6.0", + "packageName": "mime", + "hash": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + } + }, + "npm:mime": { + "type": "npm", + "name": "npm:mime", + "data": { + "version": "3.0.0", + "packageName": "mime", + "hash": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" + } + }, "npm:http2-wrapper": { "type": "npm", "name": "npm:http2-wrapper", @@ -9196,9 +10413,9 @@ "type": "npm", "name": "npm:immutable", "data": { - "version": "5.1.2", + "version": "5.1.3", "packageName": "immutable", - "hash": "sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==" + "hash": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==" } }, "npm:import-cwd": { @@ -9345,15 +10562,6 @@ "hash": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" } }, - "npm:is-arguments": { - "type": "npm", - "name": "npm:is-arguments", - "data": { - "version": "1.2.0", - "packageName": "is-arguments", - "hash": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==" - } - }, "npm:is-array-buffer": { "type": "npm", "name": "npm:is-array-buffer", @@ -10092,15 +11300,6 @@ "hash": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==" } }, - "npm:jmespath": { - "type": "npm", - "name": "npm:jmespath", - "data": { - "version": "0.16.0", - "packageName": "jmespath", - "hash": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" - } - }, "npm:js-tokens": { "type": "npm", "name": "npm:js-tokens", @@ -10227,6 +11426,15 @@ "hash": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==" } }, + "npm:jsonwebtoken": { + "type": "npm", + "name": "npm:jsonwebtoken", + "data": { + "version": "9.0.3", + "packageName": "jsonwebtoken", + "hash": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==" + } + }, "npm:jsx-ast-utils": { "type": "npm", "name": "npm:jsx-ast-utils", @@ -10236,13 +11444,22 @@ "hash": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==" } }, - "npm:kareem": { + "npm:jwa": { "type": "npm", - "name": "npm:kareem", + "name": "npm:jwa", "data": { - "version": "2.3.2", - "packageName": "kareem", - "hash": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" + "version": "2.0.1", + "packageName": "jwa", + "hash": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==" + } + }, + "npm:jws": { + "type": "npm", + "name": "npm:jws", + "data": { + "version": "4.0.1", + "packageName": "jws", + "hash": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==" } }, "npm:keyv": { @@ -10461,6 +11678,60 @@ "hash": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" } }, + "npm:lodash.includes": { + "type": "npm", + "name": "npm:lodash.includes", + "data": { + "version": "4.3.0", + "packageName": "lodash.includes", + "hash": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + } + }, + "npm:lodash.isboolean": { + "type": "npm", + "name": "npm:lodash.isboolean", + "data": { + "version": "3.0.3", + "packageName": "lodash.isboolean", + "hash": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + } + }, + "npm:lodash.isinteger": { + "type": "npm", + "name": "npm:lodash.isinteger", + "data": { + "version": "4.0.4", + "packageName": "lodash.isinteger", + "hash": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + } + }, + "npm:lodash.isnumber": { + "type": "npm", + "name": "npm:lodash.isnumber", + "data": { + "version": "3.0.3", + "packageName": "lodash.isnumber", + "hash": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + } + }, + "npm:lodash.isplainobject": { + "type": "npm", + "name": "npm:lodash.isplainobject", + "data": { + "version": "4.0.6", + "packageName": "lodash.isplainobject", + "hash": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + } + }, + "npm:lodash.isstring": { + "type": "npm", + "name": "npm:lodash.isstring", + "data": { + "version": "4.0.1", + "packageName": "lodash.isstring", + "hash": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + } + }, "npm:lodash.memoize": { "type": "npm", "name": "npm:lodash.memoize", @@ -10479,6 +11750,15 @@ "hash": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" } }, + "npm:lodash.once": { + "type": "npm", + "name": "npm:lodash.once", + "data": { + "version": "4.1.1", + "packageName": "lodash.once", + "hash": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + } + }, "npm:lodash.uniq": { "type": "npm", "name": "npm:lodash.uniq", @@ -10825,18 +12105,9 @@ "type": "npm", "name": "npm:mongodb", "data": { - "version": "6.17.0", + "version": "6.21.0", "packageName": "mongodb", - "hash": "sha512-neerUzg/8U26cgruLysKEjJvoNSXhyID3RvzvdcpsIi2COYM3FS3o9nlH7fxFtefTb942dX3W9i37oPfCVj4wA==" - } - }, - "npm:mongodb@3.7.4": { - "type": "npm", - "name": "npm:mongodb@3.7.4", - "data": { - "version": "3.7.4", - "packageName": "mongodb", - "hash": "sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==" + "hash": "sha512-URyb/VXMjJ4da46OeSXg+puO39XH9DeQpWCslifrRn9JWugy0D+DvvBvkm2WxmHe61O/H19JM66p1z7RHVkZ6A==" } }, "npm:mongodb-connection-string-url": { @@ -10884,60 +12155,6 @@ "hash": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==" } }, - "npm:mongoose": { - "type": "npm", - "name": "npm:mongoose", - "data": { - "version": "5.13.23", - "packageName": "mongoose", - "hash": "sha512-Q5bo1yYOcH2wbBPP4tGmcY5VKsFkQcjUDh66YjrbneAFB3vNKQwLvteRFLuLiU17rA5SDl3UMcMJLD9VS8ng2Q==" - } - }, - "npm:mongoose-legacy-pluralize": { - "type": "npm", - "name": "npm:mongoose-legacy-pluralize", - "data": { - "version": "1.0.2", - "packageName": "mongoose-legacy-pluralize", - "hash": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" - } - }, - "npm:optional-require@1.1.8": { - "type": "npm", - "name": "npm:optional-require@1.1.8", - "data": { - "version": "1.1.8", - "packageName": "optional-require", - "hash": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==" - } - }, - "npm:optional-require": { - "type": "npm", - "name": "npm:optional-require", - "data": { - "version": "1.0.3", - "packageName": "optional-require", - "hash": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==" - } - }, - "npm:mpath": { - "type": "npm", - "name": "npm:mpath", - "data": { - "version": "0.8.4", - "packageName": "mpath", - "hash": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==" - } - }, - "npm:mquery": { - "type": "npm", - "name": "npm:mquery", - "data": { - "version": "3.2.5", - "packageName": "mquery", - "hash": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==" - } - }, "npm:multicast-dns": { "type": "npm", "name": "npm:multicast-dns", @@ -10983,15 +12200,6 @@ "hash": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" } }, - "npm:sax": { - "type": "npm", - "name": "npm:sax", - "data": { - "version": "1.2.1", - "packageName": "sax", - "hash": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==" - } - }, "npm:sax@1.2.4": { "type": "npm", "name": "npm:sax@1.2.4", @@ -11041,27 +12249,18 @@ "type": "npm", "name": "npm:node-cron", "data": { - "version": "3.0.3", + "version": "4.2.1", "packageName": "node-cron", - "hash": "sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==" - } - }, - "npm:uuid@8.3.2": { - "type": "npm", - "name": "npm:uuid@8.3.2", - "data": { - "version": "8.3.2", - "packageName": "uuid", - "hash": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "hash": "sha512-lgimEHPE/QDgFlywTd8yTR61ptugX3Qer29efeyWw2rv259HtGBNn1vZVmp8lB9uo9wC0t/AT4iGqXxia+CJFg==" } }, - "npm:uuid": { + "npm:node-cron@3.0.3": { "type": "npm", - "name": "npm:uuid", + "name": "npm:node-cron@3.0.3", "data": { - "version": "8.0.0", - "packageName": "uuid", - "hash": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==" + "version": "3.0.3", + "packageName": "node-cron", + "hash": "sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==" } }, "npm:node-forge": { @@ -11284,9 +12483,9 @@ "type": "npm", "name": "npm:on-headers", "data": { - "version": "1.0.2", + "version": "1.1.0", "packageName": "on-headers", - "hash": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + "hash": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==" } }, "npm:once": { @@ -11532,6 +12731,24 @@ "hash": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" } }, + "npm:path-scurry": { + "type": "npm", + "name": "npm:path-scurry", + "data": { + "version": "2.0.1", + "packageName": "path-scurry", + "hash": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==" + } + }, + "npm:path-scurry@1.11.1": { + "type": "npm", + "name": "npm:path-scurry@1.11.1", + "data": { + "version": "1.11.1", + "packageName": "path-scurry", + "hash": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==" + } + }, "npm:path-to-regexp": { "type": "npm", "name": "npm:path-to-regexp", @@ -11563,18 +12780,18 @@ "type": "npm", "name": "npm:pino", "data": { - "version": "9.7.0", + "version": "10.1.1", "packageName": "pino", - "hash": "sha512-vnMCM6xZTb1WDmLvtG2lE/2p+t9hDEIvTWJsu6FejkE62vB7gDhvzrpFR4Cw2to+9JNQxVnkAKVPA1KPB98vWg==" + "hash": "sha512-3qqVfpJtRQUCAOs4rTOEwLH6mwJJ/CSAlbis8fKOiMzTtXh0HN/VLsn3UWVTJ7U8DsWmxeNon2IpGb+wORXH4g==" } }, "npm:pino-abstract-transport": { "type": "npm", "name": "npm:pino-abstract-transport", "data": { - "version": "2.0.0", + "version": "3.0.0", "packageName": "pino-abstract-transport", - "hash": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==" + "hash": "sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==" } }, "npm:pino-std-serializers": { @@ -11644,9 +12861,9 @@ "type": "npm", "name": "npm:postcss", "data": { - "version": "8.5.4", + "version": "8.5.6", "packageName": "postcss", - "hash": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==" + "hash": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==" } }, "npm:postcss-calc": { @@ -12247,9 +13464,9 @@ "type": "npm", "name": "npm:prettier", "data": { - "version": "3.5.3", + "version": "3.6.2", "packageName": "prettier", - "hash": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==" + "hash": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==" } }, "npm:prettier-linter-helpers": { @@ -12400,9 +13617,9 @@ "type": "npm", "name": "npm:pump", "data": { - "version": "3.0.2", + "version": "3.0.3", "packageName": "pump", - "hash": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==" + "hash": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==" } }, "npm:punycode": { @@ -12414,15 +13631,6 @@ "hash": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" } }, - "npm:punycode@1.3.2": { - "type": "npm", - "name": "npm:punycode@1.3.2", - "data": { - "version": "1.3.2", - "packageName": "punycode", - "hash": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" - } - }, "npm:punycode.js": { "type": "npm", "name": "npm:punycode.js", @@ -12441,15 +13649,6 @@ "hash": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==" } }, - "npm:querystring": { - "type": "npm", - "name": "npm:querystring", - "data": { - "version": "0.2.0", - "packageName": "querystring", - "hash": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==" - } - }, "npm:querystringify": { "type": "npm", "name": "npm:querystringify", @@ -12504,22 +13703,13 @@ "hash": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" } }, - "npm:raw-body": { - "type": "npm", - "name": "npm:raw-body", - "data": { - "version": "2.5.2", - "packageName": "raw-body", - "hash": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==" - } - }, "npm:react-refresh": { "type": "npm", "name": "npm:react-refresh", "data": { - "version": "0.17.0", + "version": "0.18.0", "packageName": "react-refresh", - "hash": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==" + "hash": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==" } }, "npm:read-cache": { @@ -12540,6 +13730,15 @@ "hash": "sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw==" } }, + "npm:events@3.3.0": { + "type": "npm", + "name": "npm:events@3.3.0", + "data": { + "version": "3.3.0", + "packageName": "events", + "hash": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + } + }, "npm:readdirp": { "type": "npm", "name": "npm:readdirp", @@ -12603,15 +13802,6 @@ "hash": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==" } }, - "npm:regexp-clone": { - "type": "npm", - "name": "npm:regexp-clone", - "data": { - "version": "1.0.0", - "packageName": "regexp-clone", - "hash": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" - } - }, "npm:regexp.prototype.flags": { "type": "npm", "name": "npm:regexp.prototype.flags", @@ -12648,15 +13838,6 @@ "hash": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==" } }, - "npm:require-at": { - "type": "npm", - "name": "npm:require-at", - "data": { - "version": "1.0.6", - "packageName": "require-at", - "hash": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==" - } - }, "npm:require-directory": { "type": "npm", "name": "npm:require-directory", @@ -12756,13 +13937,22 @@ "hash": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" } }, + "npm:jackspeak@3.4.3": { + "type": "npm", + "name": "npm:jackspeak@3.4.3", + "data": { + "version": "3.4.3", + "packageName": "jackspeak", + "hash": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==" + } + }, "npm:rollup": { "type": "npm", "name": "npm:rollup", "data": { - "version": "4.42.0", + "version": "4.45.1", "packageName": "rollup", - "hash": "sha512-LW+Vse3BJPyGJGAJt1j8pWDKPd73QM8cRXYK1IxOBgL2AGLu7Xd2YOW0M2sLUBCkF5MshXXtMApyEAEzMVMsnw==" + "hash": "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==" } }, "npm:rollup-plugin-copy": { @@ -12945,15 +14135,6 @@ "hash": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" } }, - "npm:saslprep": { - "type": "npm", - "name": "npm:saslprep", - "data": { - "version": "1.0.3", - "packageName": "saslprep", - "hash": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==" - } - }, "npm:sass": { "type": "npm", "name": "npm:sass", @@ -12990,15 +14171,6 @@ "hash": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==" } }, - "npm:secure-json-parse": { - "type": "npm", - "name": "npm:secure-json-parse", - "data": { - "version": "4.0.0", - "packageName": "secure-json-parse", - "hash": "sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==" - } - }, "npm:select-hose": { "type": "npm", "name": "npm:select-hose", @@ -13156,9 +14328,9 @@ "type": "npm", "name": "npm:shell-quote", "data": { - "version": "1.8.2", + "version": "1.8.3", "packageName": "shell-quote", - "hash": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==" + "hash": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==" } }, "npm:side-channel": { @@ -13197,15 +14369,6 @@ "hash": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==" } }, - "npm:sift": { - "type": "npm", - "name": "npm:sift", - "data": { - "version": "13.5.2", - "packageName": "sift", - "hash": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" - } - }, "npm:simple-update-notifier": { "type": "npm", "name": "npm:simple-update-notifier", @@ -13224,15 +14387,6 @@ "hash": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" } }, - "npm:sliced": { - "type": "npm", - "name": "npm:sliced", - "data": { - "version": "1.0.1", - "packageName": "sliced", - "hash": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" - } - }, "npm:snake-case": { "type": "npm", "name": "npm:snake-case", @@ -13251,6 +14405,15 @@ "hash": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==" } }, + "npm:uuid@8.3.2": { + "type": "npm", + "name": "npm:uuid@8.3.2", + "data": { + "version": "8.3.2", + "packageName": "uuid", + "hash": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + }, "npm:sonic-boom": { "type": "npm", "name": "npm:sonic-boom", @@ -13386,6 +14549,15 @@ "hash": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==" } }, + "npm:stream-shift": { + "type": "npm", + "name": "npm:stream-shift", + "data": { + "version": "1.0.3", + "packageName": "stream-shift", + "hash": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + } + }, "npm:string-hash": { "type": "npm", "name": "npm:string-hash", @@ -13512,6 +14684,15 @@ "hash": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==" } }, + "npm:strnum": { + "type": "npm", + "name": "npm:strnum", + "data": { + "version": "2.1.2", + "packageName": "strnum", + "hash": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==" + } + }, "npm:strong-log-transformer": { "type": "npm", "name": "npm:strong-log-transformer", @@ -13597,9 +14778,9 @@ "type": "npm", "name": "npm:synckit", "data": { - "version": "0.11.8", + "version": "0.11.11", "packageName": "synckit", - "hash": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==" + "hash": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==" } }, "npm:tapable": { @@ -13624,9 +14805,9 @@ "type": "npm", "name": "npm:terser", "data": { - "version": "5.42.0", + "version": "5.43.1", "packageName": "terser", - "hash": "sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==" + "hash": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==" } }, "npm:terser-webpack-plugin": { @@ -13660,9 +14841,9 @@ "type": "npm", "name": "npm:thread-stream", "data": { - "version": "3.1.0", + "version": "4.0.0", "packageName": "thread-stream", - "hash": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==" + "hash": "sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==" } }, "npm:through": { @@ -13795,9 +14976,9 @@ "type": "npm", "name": "npm:ts-jest", "data": { - "version": "29.3.4", + "version": "29.4.0", "packageName": "ts-jest", - "hash": "sha512-Iqbrm8IXOmV+ggWHOTEbjwyCf2xZlUMv5npExksXohL+tk8va4Fjhb+X2+Rt9NBmgO7bJ8WpnMLOwih/DnMlFA==" + "hash": "sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==" } }, "npm:ts-loader": { @@ -13914,16 +15095,16 @@ "data": { "version": "5.8.3", "packageName": "typescript", - "hash": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==" + "hash": "11120043928876084114" } }, "npm:typescript-eslint": { "type": "npm", "name": "npm:typescript-eslint", "data": { - "version": "8.34.0", + "version": "8.38.0", "packageName": "typescript-eslint", - "hash": "sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==" + "hash": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==" } }, "npm:uc.micro": { @@ -13957,18 +15138,9 @@ "type": "npm", "name": "npm:undici", "data": { - "version": "7.10.0", + "version": "7.18.2", "packageName": "undici", - "hash": "sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==" - } - }, - "npm:undici-types": { - "type": "npm", - "name": "npm:undici-types", - "data": { - "version": "6.19.8", - "packageName": "undici-types", - "hash": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + "hash": "sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==" } }, "npm:unicode-canonical-property-names-ecmascript": { @@ -14052,15 +15224,6 @@ "hash": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" } }, - "npm:url": { - "type": "npm", - "name": "npm:url", - "data": { - "version": "0.10.3", - "packageName": "url", - "hash": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==" - } - }, "npm:url-join": { "type": "npm", "name": "npm:url-join", @@ -14079,15 +15242,6 @@ "hash": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==" } }, - "npm:util": { - "type": "npm", - "name": "npm:util", - "data": { - "version": "0.12.5", - "packageName": "util", - "hash": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==" - } - }, "npm:util-deprecate": { "type": "npm", "name": "npm:util-deprecate", @@ -14200,9 +15354,9 @@ "type": "npm", "name": "npm:webpack", "data": { - "version": "5.99.9", + "version": "5.100.2", "packageName": "webpack", - "hash": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==" + "hash": "sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw==" } }, "npm:webpack-cli": { @@ -14254,9 +15408,9 @@ "type": "npm", "name": "npm:webpack-sources", "data": { - "version": "3.3.2", + "version": "3.3.3", "packageName": "webpack-sources", - "hash": "sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==" + "hash": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==" } }, "npm:webpack-subresource-integrity": { @@ -14389,9 +15543,9 @@ "type": "npm", "name": "npm:ws", "data": { - "version": "8.18.2", + "version": "8.18.3", "packageName": "ws", - "hash": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==" + "hash": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==" } }, "npm:xml-name-validator": { @@ -14403,24 +15557,6 @@ "hash": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==" } }, - "npm:xml2js": { - "type": "npm", - "name": "npm:xml2js", - "data": { - "version": "0.6.2", - "packageName": "xml2js", - "hash": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==" - } - }, - "npm:xmlbuilder": { - "type": "npm", - "name": "npm:xmlbuilder", - "data": { - "version": "11.0.1", - "packageName": "xmlbuilder", - "hash": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - } - }, "npm:xmlchars": { "type": "npm", "name": "npm:xmlchars", @@ -14481,7 +15617,7 @@ "data": { "version": "1.2.9", "packageName": "@eslint/compat", - "hash": "sha512-gCdSY54n7k+driCadyMNv8JSPzYLeDVM/ikZRtvtROBpRdFSkS8W9A82MqsaY7lZuwL0wiapgD0NT1xT0hyJsA==" + "hash": "6936902268944395473" } } }, @@ -14511,6 +15647,11 @@ "source": "frontend", "target": "npm:typescript@5.8.3", "type": "static" + }, + { + "source": "frontend", + "target": "flowerbase-client", + "type": "static" } ], "backend": [ @@ -14540,6 +15681,35 @@ "type": "static" } ], + "flowerbase-client": [ + { + "source": "flowerbase-client", + "target": "npm:bson", + "type": "static" + } + ], + "mongo-server-migration-tool": [ + { + "source": "mongo-server-migration-tool", + "target": "npm:body-parser", + "type": "static" + }, + { + "source": "mongo-server-migration-tool", + "target": "npm:express", + "type": "static" + }, + { + "source": "mongo-server-migration-tool", + "target": "npm:ejs", + "type": "static" + }, + { + "source": "mongo-server-migration-tool", + "target": "npm:nodemon", + "type": "static" + } + ], "flowerbase": [ { "source": "flowerbase", @@ -14563,12 +15733,12 @@ }, { "source": "flowerbase", - "target": "npm:@eslint/eslintrc", + "target": "npm:@eslint/eslintrc@3.3.1", "type": "static" }, { "source": "flowerbase", - "target": "npm:@eslint/js", + "target": "npm:@eslint/js@9.31.0", "type": "static" }, { @@ -14581,6 +15751,11 @@ "target": "npm:@types/jest", "type": "static" }, + { + "source": "flowerbase", + "target": "npm:@types/jsonwebtoken", + "type": "static" + }, { "source": "flowerbase", "target": "npm:@types/lodash", @@ -14638,7 +15813,7 @@ }, { "source": "flowerbase", - "target": "npm:globals", + "target": "npm:globals@15.15.0", "type": "static" }, { @@ -14673,12 +15848,27 @@ }, { "source": "flowerbase", - "target": "npm:@fastify/cors", + "target": "npm:@aws-sdk/client-lambda", + "type": "static" + }, + { + "source": "flowerbase", + "target": "npm:@aws-sdk/client-s3", + "type": "static" + }, + { + "source": "flowerbase", + "target": "npm:@aws-sdk/s3-request-presigner", + "type": "static" + }, + { + "source": "flowerbase", + "target": "npm:@fastify/cors@10.1.0", "type": "static" }, { "source": "flowerbase", - "target": "npm:@fastify/jwt", + "target": "npm:@fastify/jwt@9.1.0", "type": "static" }, { @@ -14708,37 +15898,37 @@ }, { "source": "flowerbase", - "target": "npm:@sendgrid/mail", + "target": "npm:@fastify/websocket", "type": "static" }, { "source": "flowerbase", - "target": "npm:aws-sdk", + "target": "npm:bson", "type": "static" }, { "source": "flowerbase", - "target": "npm:bson", + "target": "npm:dotenv@16.6.1", "type": "static" }, { "source": "flowerbase", - "target": "npm:dotenv", + "target": "npm:fastify", "type": "static" }, { "source": "flowerbase", - "target": "npm:fastify", + "target": "npm:fastify-plugin", "type": "static" }, { "source": "flowerbase", - "target": "npm:fastify-mongoose-driver", + "target": "npm:fastify-raw-body", "type": "static" }, { "source": "flowerbase", - "target": "npm:fastify-plugin", + "target": "npm:jsonwebtoken", "type": "static" }, { @@ -14748,7 +15938,7 @@ }, { "source": "flowerbase", - "target": "npm:node-cron", + "target": "npm:node-cron@3.0.3", "type": "static" }, { @@ -14770,6 +15960,11 @@ "source": "flowerbase", "target": "npm:mongodb", "type": "static" + }, + { + "source": "flowerbase", + "target": "npm:light-my-request", + "type": "static" } ], "flowerbase-demo": [ @@ -14791,4935 +15986,8168 @@ "type": "static" } ], - "npm:@babel/cli": [ + "npm:@aws-crypto/crc32": [ { - "source": "npm:@babel/cli", - "target": "npm:@babel/core", + "source": "npm:@aws-crypto/crc32", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:@aws-crypto/crc32", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:commander", + "source": "npm:@aws-crypto/crc32", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@aws-crypto/crc32c": [ + { + "source": "npm:@aws-crypto/crc32c", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:convert-source-map", + "source": "npm:@aws-crypto/crc32c", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:fs-readdir-recursive", + "source": "npm:@aws-crypto/crc32c", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@aws-crypto/sha1-browser": [ + { + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:@aws-crypto/supports-web-crypto", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:glob", + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:make-dir", + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:slash", + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:@aws-sdk/util-locate-window", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:@nicolo-ribaudo/chokidar-2", + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:@smithy/util-utf8@2.3.0", "type": "static" }, { - "source": "npm:@babel/cli", - "target": "npm:chokidar", + "source": "npm:@aws-crypto/sha1-browser", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/code-frame": [ + "npm:@smithy/is-array-buffer@2.2.0": [ { - "source": "npm:@babel/code-frame", - "target": "npm:@babel/helper-validator-identifier", + "source": "npm:@smithy/is-array-buffer@2.2.0", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/util-buffer-from@2.2.0": [ { - "source": "npm:@babel/code-frame", - "target": "npm:js-tokens", + "source": "npm:@smithy/util-buffer-from@2.2.0", + "target": "npm:@smithy/is-array-buffer@2.2.0", "type": "static" }, { - "source": "npm:@babel/code-frame", - "target": "npm:picocolors", + "source": "npm:@smithy/util-buffer-from@2.2.0", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/core": [ + "npm:@smithy/util-utf8@2.3.0": [ { - "source": "npm:@babel/core", - "target": "npm:@ampproject/remapping", + "source": "npm:@smithy/util-utf8@2.3.0", + "target": "npm:@smithy/util-buffer-from@2.2.0", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/code-frame", + "source": "npm:@smithy/util-utf8@2.3.0", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@aws-crypto/sha256-browser": [ { - "source": "npm:@babel/core", - "target": "npm:@babel/generator", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@aws-crypto/sha256-js", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@aws-crypto/supports-web-crypto", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/helper-module-transforms", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/helpers", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/parser", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@aws-sdk/util-locate-window", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/template", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:@smithy/util-utf8@2.3.0", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:@babel/traverse", + "source": "npm:@aws-crypto/sha256-browser", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@aws-crypto/sha256-js": [ { - "source": "npm:@babel/core", - "target": "npm:@babel/types", + "source": "npm:@aws-crypto/sha256-js", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:convert-source-map", + "source": "npm:@aws-crypto/sha256-js", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:debug", + "source": "npm:@aws-crypto/sha256-js", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@aws-crypto/supports-web-crypto": [ { - "source": "npm:@babel/core", - "target": "npm:gensync", + "source": "npm:@aws-crypto/supports-web-crypto", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@aws-crypto/util": [ + { + "source": "npm:@aws-crypto/util", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:json5", + "source": "npm:@aws-crypto/util", + "target": "npm:@smithy/util-utf8@2.3.0", "type": "static" }, { - "source": "npm:@babel/core", - "target": "npm:semver", + "source": "npm:@aws-crypto/util", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/generator": [ + "npm:@aws-sdk/client-lambda": [ { - "source": "npm:@babel/generator", - "target": "npm:@babel/parser", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-crypto/sha256-browser", "type": "static" }, { - "source": "npm:@babel/generator", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-crypto/sha256-js", "type": "static" }, { - "source": "npm:@babel/generator", - "target": "npm:@jridgewell/gen-mapping", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/generator", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/credential-provider-node", "type": "static" }, { - "source": "npm:@babel/generator", - "target": "npm:jsesc", - "type": "static" - } - ], - "npm:@babel/helper-annotate-as-pure": [ - { - "source": "npm:@babel/helper-annotate-as-pure", - "target": "npm:@babel/types", - "type": "static" - } - ], - "npm:@babel/helper-compilation-targets": [ - { - "source": "npm:@babel/helper-compilation-targets", - "target": "npm:@babel/compat-data", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/middleware-host-header", "type": "static" }, { - "source": "npm:@babel/helper-compilation-targets", - "target": "npm:@babel/helper-validator-option", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/middleware-logger", "type": "static" }, { - "source": "npm:@babel/helper-compilation-targets", - "target": "npm:browserslist", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/middleware-recursion-detection", "type": "static" }, { - "source": "npm:@babel/helper-compilation-targets", - "target": "npm:lru-cache", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/middleware-user-agent", "type": "static" }, { - "source": "npm:@babel/helper-compilation-targets", - "target": "npm:semver", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/region-config-resolver", "type": "static" - } - ], - "npm:@babel/helper-create-class-features-plugin": [ + }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/util-endpoints", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/helper-member-expression-to-functions", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/util-user-agent-browser", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/helper-optimise-call-expression", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@aws-sdk/util-user-agent-node", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/helper-replace-supers", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/config-resolver", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/eventstream-serde-browser", "type": "static" }, { - "source": "npm:@babel/helper-create-class-features-plugin", - "target": "npm:semver", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/eventstream-serde-config-resolver", "type": "static" - } - ], - "npm:@babel/helper-create-regexp-features-plugin": [ + }, { - "source": "npm:@babel/helper-create-regexp-features-plugin", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/eventstream-serde-node", "type": "static" }, { - "source": "npm:@babel/helper-create-regexp-features-plugin", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/fetch-http-handler", "type": "static" }, { - "source": "npm:@babel/helper-create-regexp-features-plugin", - "target": "npm:regexpu-core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/hash-node", "type": "static" }, { - "source": "npm:@babel/helper-create-regexp-features-plugin", - "target": "npm:semver", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/invalid-dependency", "type": "static" - } - ], - "npm:@babel/helper-define-polyfill-provider": [ + }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/middleware-content-length", "type": "static" }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/middleware-retry", "type": "static" }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:debug", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/middleware-serde", "type": "static" }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:lodash.debounce", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/middleware-stack", "type": "static" }, { - "source": "npm:@babel/helper-define-polyfill-provider", - "target": "npm:resolve", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/node-config-provider", "type": "static" - } - ], - "npm:@babel/helper-member-expression-to-functions": [ + }, { - "source": "npm:@babel/helper-member-expression-to-functions", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/node-http-handler", "type": "static" }, { - "source": "npm:@babel/helper-member-expression-to-functions", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/protocol-http", "type": "static" - } - ], - "npm:@babel/helper-module-imports": [ + }, { - "source": "npm:@babel/helper-module-imports", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/helper-module-imports", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/types", "type": "static" - } - ], - "npm:@babel/helper-module-transforms": [ + }, { - "source": "npm:@babel/helper-module-transforms", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:@babel/helper-module-transforms", - "target": "npm:@babel/helper-module-imports", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/helper-module-transforms", - "target": "npm:@babel/helper-validator-identifier", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-body-length-browser", "type": "static" }, { - "source": "npm:@babel/helper-module-transforms", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-body-length-node", "type": "static" - } - ], - "npm:@babel/helper-optimise-call-expression": [ + }, { - "source": "npm:@babel/helper-optimise-call-expression", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-defaults-mode-browser", "type": "static" - } - ], - "npm:@babel/helper-remap-async-to-generator": [ + }, { - "source": "npm:@babel/helper-remap-async-to-generator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-defaults-mode-node", "type": "static" }, { - "source": "npm:@babel/helper-remap-async-to-generator", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-endpoints", "type": "static" }, { - "source": "npm:@babel/helper-remap-async-to-generator", - "target": "npm:@babel/helper-wrap-function", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/helper-remap-async-to-generator", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-retry", "type": "static" - } - ], - "npm:@babel/helper-replace-supers": [ + }, { - "source": "npm:@babel/helper-replace-supers", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@babel/helper-replace-supers", - "target": "npm:@babel/helper-member-expression-to-functions", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/helper-replace-supers", - "target": "npm:@babel/helper-optimise-call-expression", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:@smithy/util-waiter", "type": "static" }, { - "source": "npm:@babel/helper-replace-supers", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-lambda", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/helper-skip-transparent-expression-wrappers": [ + "npm:@aws-sdk/client-s3": [ { - "source": "npm:@babel/helper-skip-transparent-expression-wrappers", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-crypto/sha1-browser", "type": "static" }, { - "source": "npm:@babel/helper-skip-transparent-expression-wrappers", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-crypto/sha256-browser", "type": "static" - } - ], - "npm:@babel/helper-wrap-function": [ + }, { - "source": "npm:@babel/helper-wrap-function", - "target": "npm:@babel/template", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-crypto/sha256-js", "type": "static" }, { - "source": "npm:@babel/helper-wrap-function", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/helper-wrap-function", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/credential-provider-node", "type": "static" - } - ], - "npm:@babel/helpers": [ + }, { - "source": "npm:@babel/helpers", - "target": "npm:@babel/template", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-bucket-endpoint", "type": "static" }, { - "source": "npm:@babel/helpers", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-expect-continue", "type": "static" - } - ], - "npm:@babel/parser": [ + }, { - "source": "npm:@babel/parser", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-flexible-checksums", "type": "static" - } - ], - "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key": [ + }, { - "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-host-header", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-location-constraint", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-logger", "type": "static" - } - ], - "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope": [ + }, { - "source": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-recursion-detection", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-sdk-s3", "type": "static" - } - ], - "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": [ + }, { - "source": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-ssec", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/middleware-user-agent", "type": "static" - } - ], - "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": [ + }, { - "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/region-config-resolver", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/signature-v4-multi-region", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", - "target": "npm:@babel/plugin-transform-optional-chaining", - "type": "static" - } - ], - "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": [ - { - "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/util-endpoints", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/util-user-agent-browser", "type": "static" }, { - "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", - "target": "npm:@babel/traverse", - "type": "static" - } - ], - "npm:@babel/plugin-proposal-decorators": [ - { - "source": "npm:@babel/plugin-proposal-decorators", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@aws-sdk/util-user-agent-node", "type": "static" }, { - "source": "npm:@babel/plugin-proposal-decorators", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/config-resolver", "type": "static" }, { - "source": "npm:@babel/plugin-proposal-decorators", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/plugin-proposal-decorators", - "target": "npm:@babel/plugin-syntax-decorators", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/eventstream-serde-browser", "type": "static" - } - ], - "npm:@babel/plugin-proposal-private-property-in-object": [ + }, { - "source": "npm:@babel/plugin-proposal-private-property-in-object", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/eventstream-serde-config-resolver", "type": "static" - } - ], - "npm:@babel/plugin-syntax-async-generators": [ + }, { - "source": "npm:@babel/plugin-syntax-async-generators", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/eventstream-serde-node", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-async-generators", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/fetch-http-handler", "type": "static" - } - ], - "npm:@babel/plugin-syntax-bigint": [ + }, { - "source": "npm:@babel/plugin-syntax-bigint", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/hash-blob-browser", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-bigint", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/hash-node", "type": "static" - } - ], - "npm:@babel/plugin-syntax-class-properties": [ + }, { - "source": "npm:@babel/plugin-syntax-class-properties", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/hash-stream-node", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-class-properties", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/invalid-dependency", "type": "static" - } - ], - "npm:@babel/plugin-syntax-class-static-block": [ + }, { - "source": "npm:@babel/plugin-syntax-class-static-block", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/md5-js", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-class-static-block", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/middleware-content-length", "type": "static" - } - ], - "npm:@babel/plugin-syntax-decorators": [ + }, { - "source": "npm:@babel/plugin-syntax-decorators", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-decorators", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/middleware-retry", "type": "static" - } - ], - "npm:@babel/plugin-syntax-import-assertions": [ + }, { - "source": "npm:@babel/plugin-syntax-import-assertions", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/middleware-serde", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-import-assertions", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/middleware-stack", "type": "static" - } - ], - "npm:@babel/plugin-syntax-import-attributes": [ + }, { - "source": "npm:@babel/plugin-syntax-import-attributes", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-import-attributes", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/node-http-handler", "type": "static" - } - ], - "npm:@babel/plugin-syntax-import-meta": [ + }, { - "source": "npm:@babel/plugin-syntax-import-meta", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-import-meta", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/smithy-client", "type": "static" - } - ], - "npm:@babel/plugin-syntax-json-strings": [ + }, { - "source": "npm:@babel/plugin-syntax-json-strings", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-json-strings", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/url-parser", "type": "static" - } - ], - "npm:@babel/plugin-syntax-jsx": [ + }, { - "source": "npm:@babel/plugin-syntax-jsx", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-jsx", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-body-length-browser", "type": "static" - } - ], - "npm:@babel/plugin-syntax-logical-assignment-operators": [ + }, { - "source": "npm:@babel/plugin-syntax-logical-assignment-operators", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-body-length-node", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-logical-assignment-operators", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-defaults-mode-browser", "type": "static" - } - ], - "npm:@babel/plugin-syntax-nullish-coalescing-operator": [ + }, { - "source": "npm:@babel/plugin-syntax-nullish-coalescing-operator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-defaults-mode-node", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-nullish-coalescing-operator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-endpoints", "type": "static" - } - ], - "npm:@babel/plugin-syntax-numeric-separator": [ + }, { - "source": "npm:@babel/plugin-syntax-numeric-separator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-numeric-separator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-retry", "type": "static" - } - ], - "npm:@babel/plugin-syntax-object-rest-spread": [ + }, { - "source": "npm:@babel/plugin-syntax-object-rest-spread", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-object-rest-spread", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-utf8", "type": "static" - } - ], - "npm:@babel/plugin-syntax-optional-catch-binding": [ + }, { - "source": "npm:@babel/plugin-syntax-optional-catch-binding", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:@smithy/util-waiter", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-optional-catch-binding", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-s3", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-syntax-optional-chaining": [ + "npm:@aws-sdk/client-sso": [ { - "source": "npm:@babel/plugin-syntax-optional-chaining", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-crypto/sha256-browser", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-optional-chaining", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-crypto/sha256-js", "type": "static" - } - ], - "npm:@babel/plugin-syntax-private-property-in-object": [ + }, { - "source": "npm:@babel/plugin-syntax-private-property-in-object", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-private-property-in-object", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/middleware-host-header", "type": "static" - } - ], - "npm:@babel/plugin-syntax-top-level-await": [ + }, { - "source": "npm:@babel/plugin-syntax-top-level-await", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/middleware-logger", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-top-level-await", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/middleware-recursion-detection", "type": "static" - } - ], - "npm:@babel/plugin-syntax-typescript": [ + }, { - "source": "npm:@babel/plugin-syntax-typescript", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/middleware-user-agent", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-typescript", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/region-config-resolver", "type": "static" - } - ], - "npm:@babel/plugin-syntax-unicode-sets-regex": [ + }, { - "source": "npm:@babel/plugin-syntax-unicode-sets-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-unicode-sets-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/util-endpoints", "type": "static" }, { - "source": "npm:@babel/plugin-syntax-unicode-sets-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/util-user-agent-browser", "type": "static" - } - ], - "npm:@babel/plugin-transform-arrow-functions": [ + }, { - "source": "npm:@babel/plugin-transform-arrow-functions", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@aws-sdk/util-user-agent-node", "type": "static" }, { - "source": "npm:@babel/plugin-transform-arrow-functions", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/config-resolver", "type": "static" - } - ], - "npm:@babel/plugin-transform-async-generator-functions": [ + }, { - "source": "npm:@babel/plugin-transform-async-generator-functions", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-generator-functions", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/fetch-http-handler", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-generator-functions", - "target": "npm:@babel/helper-remap-async-to-generator", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/hash-node", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-generator-functions", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/invalid-dependency", "type": "static" - } - ], - "npm:@babel/plugin-transform-async-to-generator": [ + }, { - "source": "npm:@babel/plugin-transform-async-to-generator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/middleware-content-length", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-to-generator", - "target": "npm:@babel/helper-module-imports", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-to-generator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/middleware-retry", "type": "static" }, { - "source": "npm:@babel/plugin-transform-async-to-generator", - "target": "npm:@babel/helper-remap-async-to-generator", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/middleware-serde", "type": "static" - } - ], - "npm:@babel/plugin-transform-block-scoped-functions": [ + }, { - "source": "npm:@babel/plugin-transform-block-scoped-functions", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/middleware-stack", "type": "static" }, { - "source": "npm:@babel/plugin-transform-block-scoped-functions", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/node-config-provider", "type": "static" - } - ], - "npm:@babel/plugin-transform-block-scoping": [ + }, { - "source": "npm:@babel/plugin-transform-block-scoping", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/node-http-handler", "type": "static" }, { - "source": "npm:@babel/plugin-transform-block-scoping", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/protocol-http", "type": "static" - } - ], - "npm:@babel/plugin-transform-class-properties": [ + }, { - "source": "npm:@babel/plugin-transform-class-properties", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/plugin-transform-class-properties", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-class-properties", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/url-parser", "type": "static" - } - ], - "npm:@babel/plugin-transform-class-static-block": [ + }, { - "source": "npm:@babel/plugin-transform-class-static-block", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/plugin-transform-class-static-block", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-body-length-browser", "type": "static" }, { - "source": "npm:@babel/plugin-transform-class-static-block", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-body-length-node", "type": "static" - } - ], - "npm:@babel/plugin-transform-classes": [ + }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-defaults-mode-browser", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-defaults-mode-node", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-endpoints", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/helper-replace-supers", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-retry", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/plugin-transform-classes", - "target": "npm:globals@11.12.0", + "source": "npm:@aws-sdk/client-sso", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-computed-properties": [ + "npm:@aws-sdk/core": [ { - "source": "npm:@babel/plugin-transform-computed-properties", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-computed-properties", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core", + "target": "npm:@aws-sdk/xml-builder", "type": "static" }, { - "source": "npm:@babel/plugin-transform-computed-properties", - "target": "npm:@babel/template", - "type": "static" - } - ], - "npm:@babel/plugin-transform-destructuring": [ - { - "source": "npm:@babel/plugin-transform-destructuring", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-destructuring", - "target": "npm:@babel/helper-plugin-utils", - "type": "static" - } - ], - "npm:@babel/plugin-transform-dotall-regex": [ - { - "source": "npm:@babel/plugin-transform-dotall-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-dotall-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-dotall-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/protocol-http", "type": "static" - } - ], - "npm:@babel/plugin-transform-duplicate-keys": [ + }, { - "source": "npm:@babel/plugin-transform-duplicate-keys", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/signature-v4", "type": "static" }, { - "source": "npm:@babel/plugin-transform-duplicate-keys", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/smithy-client", "type": "static" - } - ], - "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex": [ + }, { - "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/util-middleware", "type": "static" - } - ], - "npm:@babel/plugin-transform-dynamic-import": [ + }, { - "source": "npm:@babel/plugin-transform-dynamic-import", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/plugin-transform-dynamic-import", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-exponentiation-operator": [ + "npm:@aws-sdk/crc64-nvme": [ { - "source": "npm:@babel/plugin-transform-exponentiation-operator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/crc64-nvme", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-exponentiation-operator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/crc64-nvme", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-export-namespace-from": [ + "npm:@aws-sdk/credential-provider-env": [ { - "source": "npm:@babel/plugin-transform-export-namespace-from", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-env", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-export-namespace-from", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-env", + "target": "npm:@aws-sdk/types", "type": "static" - } - ], - "npm:@babel/plugin-transform-for-of": [ + }, { - "source": "npm:@babel/plugin-transform-for-of", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-env", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-for-of", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-env", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-for-of", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "source": "npm:@aws-sdk/credential-provider-env", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-function-name": [ + "npm:@aws-sdk/credential-provider-http": [ { - "source": "npm:@babel/plugin-transform-function-name", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-function-name", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-function-name", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/fetch-http-handler", "type": "static" }, { - "source": "npm:@babel/plugin-transform-function-name", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/node-http-handler", "type": "static" - } - ], - "npm:@babel/plugin-transform-json-strings": [ + }, { - "source": "npm:@babel/plugin-transform-json-strings", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-json-strings", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/protocol-http", "type": "static" - } - ], - "npm:@babel/plugin-transform-literals": [ + }, { - "source": "npm:@babel/plugin-transform-literals", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/plugin-transform-literals", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/types", "type": "static" - } - ], - "npm:@babel/plugin-transform-logical-assignment-operators": [ + }, { - "source": "npm:@babel/plugin-transform-logical-assignment-operators", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@babel/plugin-transform-logical-assignment-operators", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-http", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-member-expression-literals": [ + "npm:@aws-sdk/credential-provider-ini": [ { - "source": "npm:@babel/plugin-transform-member-expression-literals", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-member-expression-literals", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-env", "type": "static" - } - ], - "npm:@babel/plugin-transform-modules-amd": [ + }, { - "source": "npm:@babel/plugin-transform-modules-amd", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-amd", - "target": "npm:@babel/helper-module-transforms", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-login", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-amd", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-process", "type": "static" - } - ], - "npm:@babel/plugin-transform-modules-commonjs": [ + }, { - "source": "npm:@babel/plugin-transform-modules-commonjs", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-sso", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-commonjs", - "target": "npm:@babel/helper-module-transforms", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/credential-provider-web-identity", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-commonjs", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/nested-clients", "type": "static" - } - ], - "npm:@babel/plugin-transform-modules-systemjs": [ + }, { - "source": "npm:@babel/plugin-transform-modules-systemjs", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-systemjs", - "target": "npm:@babel/helper-module-transforms", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@smithy/credential-provider-imds", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-systemjs", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-systemjs", - "target": "npm:@babel/helper-validator-identifier", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-systemjs", - "target": "npm:@babel/traverse", + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:@smithy/types", + "type": "static" + }, + { + "source": "npm:@aws-sdk/credential-provider-ini", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-modules-umd": [ + "npm:@aws-sdk/credential-provider-login": [ { - "source": "npm:@babel/plugin-transform-modules-umd", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-umd", - "target": "npm:@babel/helper-module-transforms", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@aws-sdk/nested-clients", "type": "static" }, { - "source": "npm:@babel/plugin-transform-modules-umd", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@aws-sdk/types", "type": "static" - } - ], - "npm:@babel/plugin-transform-named-capturing-groups-regex": [ + }, { - "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" - } - ], - "npm:@babel/plugin-transform-new-target": [ + }, { - "source": "npm:@babel/plugin-transform-new-target", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-new-target", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-login", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-nullish-coalescing-operator": [ + "npm:@aws-sdk/credential-provider-node": [ { - "source": "npm:@babel/plugin-transform-nullish-coalescing-operator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-env", "type": "static" }, { - "source": "npm:@babel/plugin-transform-nullish-coalescing-operator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-http", "type": "static" - } - ], - "npm:@babel/plugin-transform-numeric-separator": [ + }, { - "source": "npm:@babel/plugin-transform-numeric-separator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-ini", "type": "static" }, { - "source": "npm:@babel/plugin-transform-numeric-separator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-process", "type": "static" - } - ], - "npm:@babel/plugin-transform-object-rest-spread": [ + }, { - "source": "npm:@babel/plugin-transform-object-rest-spread", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-sso", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-rest-spread", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/credential-provider-web-identity", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-rest-spread", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-rest-spread", - "target": "npm:@babel/plugin-transform-destructuring", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@smithy/credential-provider-imds", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-rest-spread", - "target": "npm:@babel/plugin-transform-parameters", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@smithy/property-provider", "type": "static" - } - ], - "npm:@babel/plugin-transform-object-super": [ + }, { - "source": "npm:@babel/plugin-transform-object-super", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-super", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-object-super", - "target": "npm:@babel/helper-replace-supers", + "source": "npm:@aws-sdk/credential-provider-node", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-optional-catch-binding": [ + "npm:@aws-sdk/credential-provider-process": [ { - "source": "npm:@babel/plugin-transform-optional-catch-binding", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-optional-catch-binding", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:@aws-sdk/types", "type": "static" - } - ], - "npm:@babel/plugin-transform-optional-chaining": [ + }, { - "source": "npm:@babel/plugin-transform-optional-chaining", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-optional-chaining", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/plugin-transform-optional-chaining", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", - "type": "static" - } - ], - "npm:@babel/plugin-transform-parameters": [ - { - "source": "npm:@babel/plugin-transform-parameters", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-parameters", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-process", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-private-methods": [ + "npm:@aws-sdk/credential-provider-sso": [ { - "source": "npm:@babel/plugin-transform-private-methods", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@aws-sdk/client-sso", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-methods", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-methods", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@aws-sdk/token-providers", "type": "static" - } - ], - "npm:@babel/plugin-transform-private-property-in-object": [ + }, { - "source": "npm:@babel/plugin-transform-private-property-in-object", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-property-in-object", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-property-in-object", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/plugin-transform-private-property-in-object", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:@smithy/types", + "type": "static" + }, + { + "source": "npm:@aws-sdk/credential-provider-sso", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-property-literals": [ + "npm:@aws-sdk/credential-provider-web-identity": [ { - "source": "npm:@babel/plugin-transform-property-literals", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-property-literals", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@aws-sdk/nested-clients", "type": "static" - } - ], - "npm:@babel/plugin-transform-react-constant-elements": [ + }, { - "source": "npm:@babel/plugin-transform-react-constant-elements", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-constant-elements", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@smithy/property-provider", "type": "static" - } - ], - "npm:@babel/plugin-transform-react-display-name": [ + }, { - "source": "npm:@babel/plugin-transform-react-display-name", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-display-name", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:@smithy/types", + "type": "static" + }, + { + "source": "npm:@aws-sdk/credential-provider-web-identity", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-react-jsx": [ + "npm:@aws-sdk/middleware-bucket-endpoint": [ { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@aws-sdk/util-arn-parser", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/helper-module-imports", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/plugin-syntax-jsx", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx", - "target": "npm:@babel/types", - "type": "static" - } - ], - "npm:@babel/plugin-transform-react-jsx-development": [ - { - "source": "npm:@babel/plugin-transform-react-jsx-development", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:@smithy/util-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-jsx-development", - "target": "npm:@babel/plugin-transform-react-jsx", + "source": "npm:@aws-sdk/middleware-bucket-endpoint", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-react-pure-annotations": [ + "npm:@aws-sdk/middleware-expect-continue": [ { - "source": "npm:@babel/plugin-transform-react-pure-annotations", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-expect-continue", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-pure-annotations", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/middleware-expect-continue", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-react-pure-annotations", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-expect-continue", + "target": "npm:@smithy/types", + "type": "static" + }, + { + "source": "npm:@aws-sdk/middleware-expect-continue", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-regenerator": [ + "npm:@aws-sdk/middleware-flexible-checksums": [ { - "source": "npm:@babel/plugin-transform-regenerator", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-crypto/crc32", "type": "static" }, { - "source": "npm:@babel/plugin-transform-regenerator", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-crypto/crc32c", "type": "static" - } - ], - "npm:@babel/plugin-transform-regexp-modifiers": [ + }, { - "source": "npm:@babel/plugin-transform-regexp-modifiers", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-crypto/util", "type": "static" }, { - "source": "npm:@babel/plugin-transform-regexp-modifiers", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-regexp-modifiers", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-sdk/crc64-nvme", "type": "static" - } - ], - "npm:@babel/plugin-transform-reserved-words": [ + }, { - "source": "npm:@babel/plugin-transform-reserved-words", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-reserved-words", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/is-array-buffer", "type": "static" - } - ], - "npm:@babel/plugin-transform-runtime": [ + }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:@babel/helper-module-imports", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:babel-plugin-polyfill-corejs2", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:babel-plugin-polyfill-corejs3", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:babel-plugin-polyfill-regenerator", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/plugin-transform-runtime", - "target": "npm:semver", + "source": "npm:@aws-sdk/middleware-flexible-checksums", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-shorthand-properties": [ + "npm:@aws-sdk/middleware-host-header": [ { - "source": "npm:@babel/plugin-transform-shorthand-properties", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-host-header", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-shorthand-properties", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-host-header", + "target": "npm:@smithy/protocol-http", + "type": "static" + }, + { + "source": "npm:@aws-sdk/middleware-host-header", + "target": "npm:@smithy/types", + "type": "static" + }, + { + "source": "npm:@aws-sdk/middleware-host-header", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-spread": [ + "npm:@aws-sdk/middleware-location-constraint": [ { - "source": "npm:@babel/plugin-transform-spread", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-location-constraint", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-spread", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-location-constraint", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-spread", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "source": "npm:@aws-sdk/middleware-location-constraint", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-sticky-regex": [ + "npm:@aws-sdk/middleware-logger": [ { - "source": "npm:@babel/plugin-transform-sticky-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-logger", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-sticky-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-logger", + "target": "npm:@smithy/types", + "type": "static" + }, + { + "source": "npm:@aws-sdk/middleware-logger", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-template-literals": [ + "npm:@aws-sdk/middleware-recursion-detection": [ { - "source": "npm:@babel/plugin-transform-template-literals", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-recursion-detection", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-template-literals", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-recursion-detection", + "target": "npm:@aws/lambda-invoke-store", "type": "static" - } - ], - "npm:@babel/plugin-transform-typeof-symbol": [ + }, { - "source": "npm:@babel/plugin-transform-typeof-symbol", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-recursion-detection", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typeof-symbol", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-recursion-detection", + "target": "npm:@smithy/types", + "type": "static" + }, + { + "source": "npm:@aws-sdk/middleware-recursion-detection", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-typescript": [ + "npm:@aws-sdk/middleware-sdk-s3": [ { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/helper-annotate-as-pure", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/helper-create-class-features-plugin", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@aws-sdk/util-arn-parser", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-typescript", - "target": "npm:@babel/plugin-syntax-typescript", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/protocol-http", "type": "static" - } - ], - "npm:@babel/plugin-transform-unicode-escapes": [ + }, { - "source": "npm:@babel/plugin-transform-unicode-escapes", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/signature-v4", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-escapes", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/smithy-client", "type": "static" - } - ], - "npm:@babel/plugin-transform-unicode-property-regex": [ + }, { - "source": "npm:@babel/plugin-transform-unicode-property-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-property-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/util-config-provider", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-property-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/util-middleware", "type": "static" - } - ], - "npm:@babel/plugin-transform-unicode-regex": [ + }, { - "source": "npm:@babel/plugin-transform-unicode-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-sdk-s3", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/plugin-transform-unicode-sets-regex": [ + "npm:@aws-sdk/middleware-ssec": [ { - "source": "npm:@babel/plugin-transform-unicode-sets-regex", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-ssec", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-sets-regex", - "target": "npm:@babel/helper-create-regexp-features-plugin", + "source": "npm:@aws-sdk/middleware-ssec", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/plugin-transform-unicode-sets-regex", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-ssec", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/preset-env": [ + "npm:@aws-sdk/middleware-user-agent": [ { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/compat-data", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/helper-compilation-targets", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@aws-sdk/util-endpoints", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/helper-validator-option", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", + "source": "npm:@aws-sdk/middleware-user-agent", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@aws-sdk/nested-clients": [ { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-crypto/sha256-browser", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-crypto/sha256-js", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-proposal-private-property-in-object", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/middleware-host-header", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-syntax-import-assertions", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/middleware-logger", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-syntax-import-attributes", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/middleware-recursion-detection", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-syntax-unicode-sets-regex", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/middleware-user-agent", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-arrow-functions", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/region-config-resolver", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-async-generator-functions", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-async-to-generator", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/util-endpoints", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-block-scoped-functions", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/util-user-agent-browser", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-block-scoping", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@aws-sdk/util-user-agent-node", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-class-properties", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/config-resolver", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-class-static-block", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-classes", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/fetch-http-handler", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-computed-properties", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/hash-node", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-destructuring", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/invalid-dependency", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-dotall-regex", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/middleware-content-length", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-duplicate-keys", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/middleware-retry", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-dynamic-import", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/middleware-serde", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-exponentiation-operator", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/middleware-stack", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-export-namespace-from", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-for-of", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/node-http-handler", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-function-name", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-json-strings", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-literals", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-logical-assignment-operators", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-member-expression-literals", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-modules-amd", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-body-length-browser", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-modules-commonjs", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-body-length-node", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-modules-systemjs", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-defaults-mode-browser", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-modules-umd", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-defaults-mode-node", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-named-capturing-groups-regex", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-endpoints", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-new-target", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-nullish-coalescing-operator", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-retry", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-numeric-separator", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-object-rest-spread", + "source": "npm:@aws-sdk/nested-clients", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@aws-sdk/region-config-resolver": [ { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-object-super", + "source": "npm:@aws-sdk/region-config-resolver", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-optional-catch-binding", + "source": "npm:@aws-sdk/region-config-resolver", + "target": "npm:@smithy/config-resolver", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-optional-chaining", + "source": "npm:@aws-sdk/region-config-resolver", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-parameters", + "source": "npm:@aws-sdk/region-config-resolver", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-private-methods", + "source": "npm:@aws-sdk/region-config-resolver", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@aws-sdk/s3-request-presigner": [ + { + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@aws-sdk/signature-v4-multi-region", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-private-property-in-object", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-property-literals", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@aws-sdk/util-format-url", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-regenerator", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-regexp-modifiers", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-reserved-words", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-shorthand-properties", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-spread", + "source": "npm:@aws-sdk/s3-request-presigner", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@aws-sdk/signature-v4-multi-region": [ + { + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-sticky-regex", + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:@aws-sdk/types@3.972.0", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-template-literals", + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-typeof-symbol", + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:@smithy/signature-v4", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-unicode-escapes", + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-unicode-property-regex", + "source": "npm:@aws-sdk/signature-v4-multi-region", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@aws-sdk/core@3.972.0": [ + { + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@aws-sdk/types@3.972.0", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-unicode-regex", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@aws-sdk/xml-builder@3.972.0", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/plugin-transform-unicode-sets-regex", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:@babel/preset-modules", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:babel-plugin-polyfill-corejs2", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:babel-plugin-polyfill-corejs3", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:babel-plugin-polyfill-regenerator", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/signature-v4", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:core-js-compat", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/preset-env", - "target": "npm:semver", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/types", "type": "static" - } - ], - "npm:@babel/preset-modules": [ + }, { - "source": "npm:@babel/preset-modules", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@babel/preset-modules", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/preset-modules", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@babel/preset-modules", - "target": "npm:esutils", + "source": "npm:@aws-sdk/core@3.972.0", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/preset-react": [ + "npm:@aws-sdk/middleware-sdk-s3@3.972.0": [ { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@aws-sdk/core@3.972.0", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@aws-sdk/types@3.972.0", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/helper-validator-option", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@aws-sdk/util-arn-parser@3.972.0", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/plugin-transform-react-display-name", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/plugin-transform-react-jsx", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/plugin-transform-react-jsx-development", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@babel/preset-react", - "target": "npm:@babel/plugin-transform-react-pure-annotations", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/signature-v4", "type": "static" - } - ], - "npm:@babel/preset-typescript": [ + }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/core", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/helper-plugin-utils", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/helper-validator-option", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/util-config-provider", "type": "static" }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/plugin-syntax-jsx", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/plugin-transform-modules-commonjs", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@babel/preset-typescript", - "target": "npm:@babel/plugin-transform-typescript", + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:@smithy/util-utf8", + "type": "static" + }, + { + "source": "npm:@aws-sdk/middleware-sdk-s3@3.972.0", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/template": [ + "npm:@aws-sdk/types@3.972.0": [ { - "source": "npm:@babel/template", - "target": "npm:@babel/code-frame", + "source": "npm:@aws-sdk/types@3.972.0", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/template", - "target": "npm:@babel/parser", + "source": "npm:@aws-sdk/types@3.972.0", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@aws-sdk/util-arn-parser@3.972.0": [ + { + "source": "npm:@aws-sdk/util-arn-parser@3.972.0", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@aws-sdk/xml-builder@3.972.0": [ + { + "source": "npm:@aws-sdk/xml-builder@3.972.0", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/template", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/xml-builder@3.972.0", + "target": "npm:fast-xml-parser", + "type": "static" + }, + { + "source": "npm:@aws-sdk/xml-builder@3.972.0", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/traverse": [ + "npm:@aws-sdk/token-providers": [ { - "source": "npm:@babel/traverse", - "target": "npm:@babel/code-frame", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@aws-sdk/core", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:@babel/generator", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@aws-sdk/nested-clients", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:@babel/parser", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:@babel/template", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:@babel/types", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:debug", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/traverse", - "target": "npm:globals@11.12.0", + "source": "npm:@aws-sdk/token-providers", + "target": "npm:tslib", "type": "static" } ], - "npm:@babel/types": [ + "npm:@aws-sdk/types": [ { - "source": "npm:@babel/types", - "target": "npm:@babel/helper-string-parser", + "source": "npm:@aws-sdk/types", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@babel/types", - "target": "npm:@babel/helper-validator-identifier", + "source": "npm:@aws-sdk/types", + "target": "npm:tslib", "type": "static" } ], - "npm:@cspotcode/source-map-support": [ + "npm:@aws-sdk/util-arn-parser": [ { - "source": "npm:@cspotcode/source-map-support", - "target": "npm:@jridgewell/trace-mapping@0.3.9", + "source": "npm:@aws-sdk/util-arn-parser", + "target": "npm:tslib", "type": "static" } ], - "npm:@jridgewell/trace-mapping@0.3.9": [ + "npm:@aws-sdk/util-endpoints": [ { - "source": "npm:@jridgewell/trace-mapping@0.3.9", - "target": "npm:@jridgewell/resolve-uri", + "source": "npm:@aws-sdk/util-endpoints", + "target": "npm:@aws-sdk/types@3.972.0", "type": "static" }, { - "source": "npm:@jridgewell/trace-mapping@0.3.9", - "target": "npm:@jridgewell/sourcemap-codec", + "source": "npm:@aws-sdk/util-endpoints", + "target": "npm:@smithy/types", "type": "static" - } - ], - "npm:@eslint-community/eslint-utils": [ + }, { - "source": "npm:@eslint-community/eslint-utils", - "target": "npm:eslint", + "source": "npm:@aws-sdk/util-endpoints", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:@eslint-community/eslint-utils", - "target": "npm:eslint-visitor-keys", + "source": "npm:@aws-sdk/util-endpoints", + "target": "npm:@smithy/util-endpoints", + "type": "static" + }, + { + "source": "npm:@aws-sdk/util-endpoints", + "target": "npm:tslib", "type": "static" } ], - "npm:@eslint/config-array": [ + "npm:@aws-sdk/util-format-url": [ { - "source": "npm:@eslint/config-array", - "target": "npm:@eslint/object-schema", + "source": "npm:@aws-sdk/util-format-url", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@eslint/config-array", - "target": "npm:debug", + "source": "npm:@aws-sdk/util-format-url", + "target": "npm:@smithy/querystring-builder", "type": "static" }, { - "source": "npm:@eslint/config-array", - "target": "npm:minimatch", + "source": "npm:@aws-sdk/util-format-url", + "target": "npm:@smithy/types", "type": "static" - } - ], - "npm:@eslint/core": [ + }, { - "source": "npm:@eslint/core", - "target": "npm:@types/json-schema", + "source": "npm:@aws-sdk/util-format-url", + "target": "npm:tslib", "type": "static" } ], - "npm:@eslint/eslintrc": [ + "npm:@aws-sdk/util-locate-window": [ { - "source": "npm:@eslint/eslintrc", - "target": "npm:ajv", + "source": "npm:@aws-sdk/util-locate-window", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@aws-sdk/util-user-agent-browser": [ { - "source": "npm:@eslint/eslintrc", - "target": "npm:debug", + "source": "npm:@aws-sdk/util-user-agent-browser", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:espree", + "source": "npm:@aws-sdk/util-user-agent-browser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:globals@14.0.0", + "source": "npm:@aws-sdk/util-user-agent-browser", + "target": "npm:bowser", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:ignore", + "source": "npm:@aws-sdk/util-user-agent-browser", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@aws-sdk/util-user-agent-node": [ { - "source": "npm:@eslint/eslintrc", - "target": "npm:import-fresh", + "source": "npm:@aws-sdk/util-user-agent-node", + "target": "npm:@aws-sdk/middleware-user-agent", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:js-yaml", + "source": "npm:@aws-sdk/util-user-agent-node", + "target": "npm:@aws-sdk/types", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:minimatch", + "source": "npm:@aws-sdk/util-user-agent-node", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@eslint/eslintrc", - "target": "npm:strip-json-comments", - "type": "static" - } - ], - "npm:@eslint/plugin-kit": [ - { - "source": "npm:@eslint/plugin-kit", - "target": "npm:@eslint/core", + "source": "npm:@aws-sdk/util-user-agent-node", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@eslint/plugin-kit", - "target": "npm:levn", + "source": "npm:@aws-sdk/util-user-agent-node", + "target": "npm:tslib", "type": "static" } ], - "npm:@fastify/ajv-compiler": [ + "npm:@aws-sdk/xml-builder": [ { - "source": "npm:@fastify/ajv-compiler", - "target": "npm:ajv@8.17.1", + "source": "npm:@aws-sdk/xml-builder", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@fastify/ajv-compiler", - "target": "npm:ajv-formats", + "source": "npm:@aws-sdk/xml-builder", + "target": "npm:fast-xml-parser", "type": "static" }, { - "source": "npm:@fastify/ajv-compiler", - "target": "npm:fast-uri", + "source": "npm:@aws-sdk/xml-builder", + "target": "npm:tslib", "type": "static" } ], - "npm:ajv@8.17.1": [ + "npm:@babel/cli": [ { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-deep-equal", + "source": "npm:@babel/cli", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:fast-uri", + "source": "npm:@babel/cli", + "target": "npm:@jridgewell/trace-mapping", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:json-schema-traverse@1.0.0", + "source": "npm:@babel/cli", + "target": "npm:commander@6.2.1", "type": "static" }, { - "source": "npm:ajv@8.17.1", - "target": "npm:require-from-string", - "type": "static" - } - ], - "npm:@fastify/cors": [ - { - "source": "npm:@fastify/cors", - "target": "npm:fastify-plugin", + "source": "npm:@babel/cli", + "target": "npm:convert-source-map", "type": "static" }, { - "source": "npm:@fastify/cors", - "target": "npm:mnemonist", - "type": "static" - } - ], - "npm:@fastify/fast-json-stringify-compiler": [ - { - "source": "npm:@fastify/fast-json-stringify-compiler", - "target": "npm:fast-json-stringify", + "source": "npm:@babel/cli", + "target": "npm:fs-readdir-recursive", "type": "static" - } - ], - "npm:@fastify/jwt": [ + }, { - "source": "npm:@fastify/jwt", - "target": "npm:@fastify/error", + "source": "npm:@babel/cli", + "target": "npm:glob", "type": "static" }, { - "source": "npm:@fastify/jwt", - "target": "npm:@lukeed/ms", + "source": "npm:@babel/cli", + "target": "npm:make-dir", "type": "static" }, { - "source": "npm:@fastify/jwt", - "target": "npm:fast-jwt", + "source": "npm:@babel/cli", + "target": "npm:slash@2.0.0", "type": "static" }, { - "source": "npm:@fastify/jwt", - "target": "npm:fastify-plugin", + "source": "npm:@babel/cli", + "target": "npm:@nicolo-ribaudo/chokidar-2", "type": "static" }, { - "source": "npm:@fastify/jwt", - "target": "npm:steed", + "source": "npm:@babel/cli", + "target": "npm:chokidar", "type": "static" } ], - "npm:@fastify/merge-json-schemas": [ + "npm:@babel/code-frame": [ { - "source": "npm:@fastify/merge-json-schemas", - "target": "npm:dequal", + "source": "npm:@babel/code-frame", + "target": "npm:@babel/helper-validator-identifier", "type": "static" - } - ], - "npm:@fastify/mongodb": [ + }, { - "source": "npm:@fastify/mongodb", - "target": "npm:fastify-plugin", + "source": "npm:@babel/code-frame", + "target": "npm:js-tokens", "type": "static" }, { - "source": "npm:@fastify/mongodb", - "target": "npm:mongodb", + "source": "npm:@babel/code-frame", + "target": "npm:picocolors", "type": "static" } ], - "npm:@fastify/proxy-addr": [ + "npm:@babel/core": [ { - "source": "npm:@fastify/proxy-addr", - "target": "npm:@fastify/forwarded", + "source": "npm:@babel/core", + "target": "npm:@ampproject/remapping", "type": "static" }, { - "source": "npm:@fastify/proxy-addr", - "target": "npm:ipaddr.js", - "type": "static" - } - ], - "npm:@fastify/send": [ - { - "source": "npm:@fastify/send", - "target": "npm:@lukeed/ms", + "source": "npm:@babel/core", + "target": "npm:@babel/code-frame", "type": "static" }, { - "source": "npm:@fastify/send", - "target": "npm:escape-html", + "source": "npm:@babel/core", + "target": "npm:@babel/generator", "type": "static" }, { - "source": "npm:@fastify/send", - "target": "npm:fast-decode-uri-component", + "source": "npm:@babel/core", + "target": "npm:@babel/helper-compilation-targets", "type": "static" }, { - "source": "npm:@fastify/send", - "target": "npm:http-errors", + "source": "npm:@babel/core", + "target": "npm:@babel/helper-module-transforms", "type": "static" }, { - "source": "npm:@fastify/send", - "target": "npm:mime@3.0.0", + "source": "npm:@babel/core", + "target": "npm:@babel/helpers", "type": "static" - } - ], - "npm:@fastify/static": [ + }, { - "source": "npm:@fastify/static", - "target": "npm:@fastify/accept-negotiator", + "source": "npm:@babel/core", + "target": "npm:@babel/parser", "type": "static" }, { - "source": "npm:@fastify/static", - "target": "npm:@fastify/send", + "source": "npm:@babel/core", + "target": "npm:@babel/template", "type": "static" }, { - "source": "npm:@fastify/static", - "target": "npm:content-disposition", + "source": "npm:@babel/core", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@fastify/static", - "target": "npm:fastify-plugin", + "source": "npm:@babel/core", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:@fastify/static", - "target": "npm:fastq", + "source": "npm:@babel/core", + "target": "npm:convert-source-map", "type": "static" }, { - "source": "npm:@fastify/static", - "target": "npm:glob@11.0.3", + "source": "npm:@babel/core", + "target": "npm:debug", "type": "static" - } - ], - "npm:glob@11.0.3": [ + }, { - "source": "npm:glob@11.0.3", - "target": "npm:foreground-child", + "source": "npm:@babel/core", + "target": "npm:gensync", "type": "static" }, { - "source": "npm:glob@11.0.3", - "target": "npm:jackspeak@4.1.1", + "source": "npm:@babel/core", + "target": "npm:json5", "type": "static" }, { - "source": "npm:glob@11.0.3", - "target": "npm:minimatch@10.0.3", + "source": "npm:@babel/core", + "target": "npm:semver", "type": "static" - }, + } + ], + "npm:@babel/generator": [ { - "source": "npm:glob@11.0.3", - "target": "npm:minipass", + "source": "npm:@babel/generator", + "target": "npm:@babel/parser", "type": "static" }, { - "source": "npm:glob@11.0.3", - "target": "npm:package-json-from-dist", + "source": "npm:@babel/generator", + "target": "npm:@babel/types", "type": "static" }, { - "source": "npm:glob@11.0.3", - "target": "npm:path-scurry@2.0.0", + "source": "npm:@babel/generator", + "target": "npm:@jridgewell/gen-mapping", "type": "static" - } - ], - "npm:jackspeak@4.1.1": [ + }, { - "source": "npm:jackspeak@4.1.1", - "target": "npm:@isaacs/cliui", + "source": "npm:@babel/generator", + "target": "npm:@jridgewell/trace-mapping", "type": "static" - } - ], - "npm:minimatch@10.0.3": [ + }, { - "source": "npm:minimatch@10.0.3", - "target": "npm:@isaacs/brace-expansion", + "source": "npm:@babel/generator", + "target": "npm:jsesc", "type": "static" } ], - "npm:path-scurry@2.0.0": [ - { - "source": "npm:path-scurry@2.0.0", - "target": "npm:lru-cache@11.1.0", - "type": "static" - }, + "npm:@babel/helper-annotate-as-pure": [ { - "source": "npm:path-scurry@2.0.0", - "target": "npm:minipass", + "source": "npm:@babel/helper-annotate-as-pure", + "target": "npm:@babel/types", "type": "static" } ], - "npm:@fastify/swagger": [ + "npm:@babel/helper-compilation-targets": [ { - "source": "npm:@fastify/swagger", - "target": "npm:fastify-plugin", + "source": "npm:@babel/helper-compilation-targets", + "target": "npm:@babel/compat-data", "type": "static" }, { - "source": "npm:@fastify/swagger", - "target": "npm:json-schema-resolver", + "source": "npm:@babel/helper-compilation-targets", + "target": "npm:@babel/helper-validator-option", "type": "static" }, { - "source": "npm:@fastify/swagger", - "target": "npm:openapi-types", + "source": "npm:@babel/helper-compilation-targets", + "target": "npm:browserslist", "type": "static" }, { - "source": "npm:@fastify/swagger", - "target": "npm:rfdc", + "source": "npm:@babel/helper-compilation-targets", + "target": "npm:lru-cache", "type": "static" }, { - "source": "npm:@fastify/swagger", - "target": "npm:yaml@2.8.0", + "source": "npm:@babel/helper-compilation-targets", + "target": "npm:semver", "type": "static" } ], - "npm:@fastify/swagger-ui": [ + "npm:@babel/helper-create-class-features-plugin": [ { - "source": "npm:@fastify/swagger-ui", - "target": "npm:@fastify/static", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@fastify/swagger-ui", - "target": "npm:fastify-plugin", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/helper-annotate-as-pure", "type": "static" }, { - "source": "npm:@fastify/swagger-ui", - "target": "npm:openapi-types", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/helper-member-expression-to-functions", "type": "static" }, { - "source": "npm:@fastify/swagger-ui", - "target": "npm:rfdc", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/helper-optimise-call-expression", "type": "static" }, { - "source": "npm:@fastify/swagger-ui", - "target": "npm:yaml@2.8.0", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/helper-replace-supers", "type": "static" - } - ], - "npm:@humanfs/node": [ + }, { - "source": "npm:@humanfs/node", - "target": "npm:@humanfs/core", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", "type": "static" }, { - "source": "npm:@humanfs/node", - "target": "npm:@humanwhocodes/retry@0.3.1", + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:@babel/traverse", + "type": "static" + }, + { + "source": "npm:@babel/helper-create-class-features-plugin", + "target": "npm:semver", "type": "static" } ], - "npm:@humanwhocodes/config-array": [ + "npm:@babel/helper-create-regexp-features-plugin": [ { - "source": "npm:@humanwhocodes/config-array", - "target": "npm:@humanwhocodes/object-schema", + "source": "npm:@babel/helper-create-regexp-features-plugin", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@humanwhocodes/config-array", - "target": "npm:debug", + "source": "npm:@babel/helper-create-regexp-features-plugin", + "target": "npm:@babel/helper-annotate-as-pure", "type": "static" }, { - "source": "npm:@humanwhocodes/config-array", - "target": "npm:minimatch", + "source": "npm:@babel/helper-create-regexp-features-plugin", + "target": "npm:regexpu-core", "type": "static" - } - ], - "npm:@isaacs/brace-expansion": [ + }, { - "source": "npm:@isaacs/brace-expansion", - "target": "npm:@isaacs/balanced-match", + "source": "npm:@babel/helper-create-regexp-features-plugin", + "target": "npm:semver", "type": "static" } ], - "npm:@isaacs/cliui": [ + "npm:@babel/helper-define-polyfill-provider": [ { - "source": "npm:@isaacs/cliui", - "target": "npm:string-width@5.1.2", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@isaacs/cliui", - "target": "npm:string-width-cjs", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:@babel/helper-compilation-targets", "type": "static" }, { - "source": "npm:@isaacs/cliui", - "target": "npm:strip-ansi@7.1.0", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@isaacs/cliui", - "target": "npm:strip-ansi-cjs", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:debug", "type": "static" }, { - "source": "npm:@isaacs/cliui", - "target": "npm:wrap-ansi@8.1.0", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:lodash.debounce", "type": "static" }, { - "source": "npm:@isaacs/cliui", - "target": "npm:wrap-ansi-cjs", + "source": "npm:@babel/helper-define-polyfill-provider", + "target": "npm:resolve", "type": "static" } ], - "npm:string-width@5.1.2": [ + "npm:@babel/helper-member-expression-to-functions": [ { - "source": "npm:string-width@5.1.2", - "target": "npm:eastasianwidth", + "source": "npm:@babel/helper-member-expression-to-functions", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:string-width@5.1.2", - "target": "npm:emoji-regex", + "source": "npm:@babel/helper-member-expression-to-functions", + "target": "npm:@babel/types", + "type": "static" + } + ], + "npm:@babel/helper-module-imports": [ + { + "source": "npm:@babel/helper-module-imports", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:string-width@5.1.2", - "target": "npm:strip-ansi@7.1.0", + "source": "npm:@babel/helper-module-imports", + "target": "npm:@babel/types", "type": "static" } ], - "npm:strip-ansi@7.1.0": [ + "npm:@babel/helper-module-transforms": [ { - "source": "npm:strip-ansi@7.1.0", - "target": "npm:ansi-regex@6.1.0", + "source": "npm:@babel/helper-module-transforms", + "target": "npm:@babel/core", "type": "static" - } - ], - "npm:wrap-ansi@8.1.0": [ + }, { - "source": "npm:wrap-ansi@8.1.0", - "target": "npm:ansi-styles@6.2.1", + "source": "npm:@babel/helper-module-transforms", + "target": "npm:@babel/helper-module-imports", "type": "static" }, { - "source": "npm:wrap-ansi@8.1.0", - "target": "npm:string-width@5.1.2", + "source": "npm:@babel/helper-module-transforms", + "target": "npm:@babel/helper-validator-identifier", "type": "static" }, { - "source": "npm:wrap-ansi@8.1.0", - "target": "npm:strip-ansi@7.1.0", + "source": "npm:@babel/helper-module-transforms", + "target": "npm:@babel/traverse", "type": "static" } ], - "npm:@istanbuljs/load-nyc-config": [ + "npm:@babel/helper-optimise-call-expression": [ { - "source": "npm:@istanbuljs/load-nyc-config", - "target": "npm:camelcase@5.3.1", + "source": "npm:@babel/helper-optimise-call-expression", + "target": "npm:@babel/types", "type": "static" - }, + } + ], + "npm:@babel/helper-remap-async-to-generator": [ { - "source": "npm:@istanbuljs/load-nyc-config", - "target": "npm:find-up", + "source": "npm:@babel/helper-remap-async-to-generator", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@istanbuljs/load-nyc-config", - "target": "npm:get-package-type", + "source": "npm:@babel/helper-remap-async-to-generator", + "target": "npm:@babel/helper-annotate-as-pure", "type": "static" }, { - "source": "npm:@istanbuljs/load-nyc-config", - "target": "npm:js-yaml@3.14.1", + "source": "npm:@babel/helper-remap-async-to-generator", + "target": "npm:@babel/helper-wrap-function", "type": "static" }, { - "source": "npm:@istanbuljs/load-nyc-config", - "target": "npm:resolve-from", + "source": "npm:@babel/helper-remap-async-to-generator", + "target": "npm:@babel/traverse", "type": "static" } ], - "npm:argparse@1.0.10": [ + "npm:@babel/helper-replace-supers": [ { - "source": "npm:argparse@1.0.10", - "target": "npm:sprintf-js", + "source": "npm:@babel/helper-replace-supers", + "target": "npm:@babel/core", "type": "static" - } - ], - "npm:js-yaml@3.14.1": [ + }, { - "source": "npm:js-yaml@3.14.1", - "target": "npm:argparse@1.0.10", + "source": "npm:@babel/helper-replace-supers", + "target": "npm:@babel/helper-member-expression-to-functions", "type": "static" }, { - "source": "npm:js-yaml@3.14.1", - "target": "npm:esprima", + "source": "npm:@babel/helper-replace-supers", + "target": "npm:@babel/helper-optimise-call-expression", + "type": "static" + }, + { + "source": "npm:@babel/helper-replace-supers", + "target": "npm:@babel/traverse", "type": "static" } ], - "npm:@jest/console": [ + "npm:@babel/helper-skip-transparent-expression-wrappers": [ { - "source": "npm:@jest/console", - "target": "npm:@jest/types", + "source": "npm:@babel/helper-skip-transparent-expression-wrappers", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@jest/console", - "target": "npm:@types/node", + "source": "npm:@babel/helper-skip-transparent-expression-wrappers", + "target": "npm:@babel/types", "type": "static" - }, + } + ], + "npm:@babel/helper-wrap-function": [ { - "source": "npm:@jest/console", - "target": "npm:chalk", + "source": "npm:@babel/helper-wrap-function", + "target": "npm:@babel/template", "type": "static" }, { - "source": "npm:@jest/console", - "target": "npm:jest-message-util", + "source": "npm:@babel/helper-wrap-function", + "target": "npm:@babel/traverse", "type": "static" }, { - "source": "npm:@jest/console", - "target": "npm:jest-util", + "source": "npm:@babel/helper-wrap-function", + "target": "npm:@babel/types", + "type": "static" + } + ], + "npm:@babel/helpers": [ + { + "source": "npm:@babel/helpers", + "target": "npm:@babel/template", "type": "static" }, { - "source": "npm:@jest/console", - "target": "npm:slash@3.0.0", + "source": "npm:@babel/helpers", + "target": "npm:@babel/types", "type": "static" } ], - "npm:@jest/core": [ + "npm:@babel/parser": [ { - "source": "npm:@jest/core", - "target": "npm:@jest/console", + "source": "npm:@babel/parser", + "target": "npm:@babel/types", "type": "static" - }, + } + ], + "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key": [ { - "source": "npm:@jest/core", - "target": "npm:@jest/reporters", + "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:@jest/test-result", + "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:@jest/transform", + "source": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", + "target": "npm:@babel/traverse", "type": "static" - }, + } + ], + "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope": [ { - "source": "npm:@jest/core", - "target": "npm:@jest/types", + "source": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:@types/node", + "source": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", + "target": "npm:@babel/helper-plugin-utils", "type": "static" - }, + } + ], + "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": [ { - "source": "npm:@jest/core", - "target": "npm:ansi-escapes", + "source": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:chalk", + "source": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", + "target": "npm:@babel/helper-plugin-utils", "type": "static" - }, + } + ], + "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": [ { - "source": "npm:@jest/core", - "target": "npm:ci-info", + "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:exit", + "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "target": "npm:@babel/helper-plugin-utils", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:graceful-fs", + "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", "type": "static" }, { - "source": "npm:@jest/core", + "source": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "target": "npm:@babel/plugin-transform-optional-chaining", + "type": "static" + } + ], + "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": [ + { + "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", + "target": "npm:@babel/traverse", + "type": "static" + } + ], + "npm:@babel/plugin-proposal-decorators": [ + { + "source": "npm:@babel/plugin-proposal-decorators", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-proposal-decorators", + "target": "npm:@babel/helper-create-class-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-proposal-decorators", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-proposal-decorators", + "target": "npm:@babel/plugin-syntax-decorators", + "type": "static" + } + ], + "npm:@babel/plugin-proposal-private-property-in-object": [ + { + "source": "npm:@babel/plugin-proposal-private-property-in-object", + "target": "npm:@babel/core", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-async-generators": [ + { + "source": "npm:@babel/plugin-syntax-async-generators", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-async-generators", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-bigint": [ + { + "source": "npm:@babel/plugin-syntax-bigint", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-bigint", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-class-properties": [ + { + "source": "npm:@babel/plugin-syntax-class-properties", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-class-properties", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-class-static-block": [ + { + "source": "npm:@babel/plugin-syntax-class-static-block", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-class-static-block", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-decorators": [ + { + "source": "npm:@babel/plugin-syntax-decorators", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-decorators", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-import-assertions": [ + { + "source": "npm:@babel/plugin-syntax-import-assertions", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-import-assertions", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-import-attributes": [ + { + "source": "npm:@babel/plugin-syntax-import-attributes", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-import-attributes", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-import-meta": [ + { + "source": "npm:@babel/plugin-syntax-import-meta", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-import-meta", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-json-strings": [ + { + "source": "npm:@babel/plugin-syntax-json-strings", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-json-strings", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-jsx": [ + { + "source": "npm:@babel/plugin-syntax-jsx", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-jsx", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-logical-assignment-operators": [ + { + "source": "npm:@babel/plugin-syntax-logical-assignment-operators", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-logical-assignment-operators", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-nullish-coalescing-operator": [ + { + "source": "npm:@babel/plugin-syntax-nullish-coalescing-operator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-nullish-coalescing-operator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-numeric-separator": [ + { + "source": "npm:@babel/plugin-syntax-numeric-separator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-numeric-separator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-object-rest-spread": [ + { + "source": "npm:@babel/plugin-syntax-object-rest-spread", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-object-rest-spread", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-optional-catch-binding": [ + { + "source": "npm:@babel/plugin-syntax-optional-catch-binding", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-optional-catch-binding", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-optional-chaining": [ + { + "source": "npm:@babel/plugin-syntax-optional-chaining", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-optional-chaining", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-private-property-in-object": [ + { + "source": "npm:@babel/plugin-syntax-private-property-in-object", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-private-property-in-object", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-top-level-await": [ + { + "source": "npm:@babel/plugin-syntax-top-level-await", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-top-level-await", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-typescript": [ + { + "source": "npm:@babel/plugin-syntax-typescript", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-typescript", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-syntax-unicode-sets-regex": [ + { + "source": "npm:@babel/plugin-syntax-unicode-sets-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-unicode-sets-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-syntax-unicode-sets-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-arrow-functions": [ + { + "source": "npm:@babel/plugin-transform-arrow-functions", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-arrow-functions", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-async-generator-functions": [ + { + "source": "npm:@babel/plugin-transform-async-generator-functions", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-generator-functions", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-generator-functions", + "target": "npm:@babel/helper-remap-async-to-generator", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-generator-functions", + "target": "npm:@babel/traverse", + "type": "static" + } + ], + "npm:@babel/plugin-transform-async-to-generator": [ + { + "source": "npm:@babel/plugin-transform-async-to-generator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-to-generator", + "target": "npm:@babel/helper-module-imports", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-to-generator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-async-to-generator", + "target": "npm:@babel/helper-remap-async-to-generator", + "type": "static" + } + ], + "npm:@babel/plugin-transform-block-scoped-functions": [ + { + "source": "npm:@babel/plugin-transform-block-scoped-functions", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-block-scoped-functions", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-block-scoping": [ + { + "source": "npm:@babel/plugin-transform-block-scoping", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-block-scoping", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-class-properties": [ + { + "source": "npm:@babel/plugin-transform-class-properties", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-class-properties", + "target": "npm:@babel/helper-create-class-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-class-properties", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-class-static-block": [ + { + "source": "npm:@babel/plugin-transform-class-static-block", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-class-static-block", + "target": "npm:@babel/helper-create-class-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-class-static-block", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-classes": [ + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/helper-annotate-as-pure", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/helper-compilation-targets", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/helper-globals", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/helper-replace-supers", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-classes", + "target": "npm:@babel/traverse", + "type": "static" + } + ], + "npm:@babel/plugin-transform-computed-properties": [ + { + "source": "npm:@babel/plugin-transform-computed-properties", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-computed-properties", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-computed-properties", + "target": "npm:@babel/template", + "type": "static" + } + ], + "npm:@babel/plugin-transform-destructuring": [ + { + "source": "npm:@babel/plugin-transform-destructuring", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-destructuring", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-destructuring", + "target": "npm:@babel/traverse", + "type": "static" + } + ], + "npm:@babel/plugin-transform-dotall-regex": [ + { + "source": "npm:@babel/plugin-transform-dotall-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-dotall-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-dotall-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-duplicate-keys": [ + { + "source": "npm:@babel/plugin-transform-duplicate-keys", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-duplicate-keys", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex": [ + { + "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-dynamic-import": [ + { + "source": "npm:@babel/plugin-transform-dynamic-import", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-dynamic-import", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-explicit-resource-management": [ + { + "source": "npm:@babel/plugin-transform-explicit-resource-management", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-explicit-resource-management", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-explicit-resource-management", + "target": "npm:@babel/plugin-transform-destructuring", + "type": "static" + } + ], + "npm:@babel/plugin-transform-exponentiation-operator": [ + { + "source": "npm:@babel/plugin-transform-exponentiation-operator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-exponentiation-operator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-export-namespace-from": [ + { + "source": "npm:@babel/plugin-transform-export-namespace-from", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-export-namespace-from", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-for-of": [ + { + "source": "npm:@babel/plugin-transform-for-of", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-for-of", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-for-of", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "type": "static" + } + ], + "npm:@babel/plugin-transform-function-name": [ + { + "source": "npm:@babel/plugin-transform-function-name", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-function-name", + "target": "npm:@babel/helper-compilation-targets", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-function-name", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-function-name", + "target": "npm:@babel/traverse", + "type": "static" + } + ], + "npm:@babel/plugin-transform-json-strings": [ + { + "source": "npm:@babel/plugin-transform-json-strings", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-json-strings", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-literals": [ + { + "source": "npm:@babel/plugin-transform-literals", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-literals", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-logical-assignment-operators": [ + { + "source": "npm:@babel/plugin-transform-logical-assignment-operators", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-logical-assignment-operators", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-member-expression-literals": [ + { + "source": "npm:@babel/plugin-transform-member-expression-literals", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-member-expression-literals", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-modules-amd": [ + { + "source": "npm:@babel/plugin-transform-modules-amd", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-amd", + "target": "npm:@babel/helper-module-transforms", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-amd", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-modules-commonjs": [ + { + "source": "npm:@babel/plugin-transform-modules-commonjs", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-commonjs", + "target": "npm:@babel/helper-module-transforms", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-commonjs", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-modules-systemjs": [ + { + "source": "npm:@babel/plugin-transform-modules-systemjs", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-systemjs", + "target": "npm:@babel/helper-module-transforms", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-systemjs", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-systemjs", + "target": "npm:@babel/helper-validator-identifier", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-systemjs", + "target": "npm:@babel/traverse", + "type": "static" + } + ], + "npm:@babel/plugin-transform-modules-umd": [ + { + "source": "npm:@babel/plugin-transform-modules-umd", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-umd", + "target": "npm:@babel/helper-module-transforms", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-modules-umd", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-named-capturing-groups-regex": [ + { + "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-named-capturing-groups-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-new-target": [ + { + "source": "npm:@babel/plugin-transform-new-target", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-new-target", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-nullish-coalescing-operator": [ + { + "source": "npm:@babel/plugin-transform-nullish-coalescing-operator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-nullish-coalescing-operator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-numeric-separator": [ + { + "source": "npm:@babel/plugin-transform-numeric-separator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-numeric-separator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-object-rest-spread": [ + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/helper-compilation-targets", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/plugin-transform-destructuring", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/plugin-transform-parameters", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-rest-spread", + "target": "npm:@babel/traverse", + "type": "static" + } + ], + "npm:@babel/plugin-transform-object-super": [ + { + "source": "npm:@babel/plugin-transform-object-super", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-super", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-object-super", + "target": "npm:@babel/helper-replace-supers", + "type": "static" + } + ], + "npm:@babel/plugin-transform-optional-catch-binding": [ + { + "source": "npm:@babel/plugin-transform-optional-catch-binding", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-optional-catch-binding", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-optional-chaining": [ + { + "source": "npm:@babel/plugin-transform-optional-chaining", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-optional-chaining", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-optional-chaining", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "type": "static" + } + ], + "npm:@babel/plugin-transform-parameters": [ + { + "source": "npm:@babel/plugin-transform-parameters", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-parameters", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-private-methods": [ + { + "source": "npm:@babel/plugin-transform-private-methods", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-methods", + "target": "npm:@babel/helper-create-class-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-methods", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-private-property-in-object": [ + { + "source": "npm:@babel/plugin-transform-private-property-in-object", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-property-in-object", + "target": "npm:@babel/helper-annotate-as-pure", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-property-in-object", + "target": "npm:@babel/helper-create-class-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-private-property-in-object", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-property-literals": [ + { + "source": "npm:@babel/plugin-transform-property-literals", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-property-literals", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-react-constant-elements": [ + { + "source": "npm:@babel/plugin-transform-react-constant-elements", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-constant-elements", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-react-display-name": [ + { + "source": "npm:@babel/plugin-transform-react-display-name", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-display-name", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-react-jsx": [ + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/helper-annotate-as-pure", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/helper-module-imports", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/plugin-syntax-jsx", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx", + "target": "npm:@babel/types", + "type": "static" + } + ], + "npm:@babel/plugin-transform-react-jsx-development": [ + { + "source": "npm:@babel/plugin-transform-react-jsx-development", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-jsx-development", + "target": "npm:@babel/plugin-transform-react-jsx", + "type": "static" + } + ], + "npm:@babel/plugin-transform-react-pure-annotations": [ + { + "source": "npm:@babel/plugin-transform-react-pure-annotations", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-pure-annotations", + "target": "npm:@babel/helper-annotate-as-pure", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-react-pure-annotations", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-regenerator": [ + { + "source": "npm:@babel/plugin-transform-regenerator", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-regenerator", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-regexp-modifiers": [ + { + "source": "npm:@babel/plugin-transform-regexp-modifiers", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-regexp-modifiers", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-regexp-modifiers", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-reserved-words": [ + { + "source": "npm:@babel/plugin-transform-reserved-words", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-reserved-words", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-runtime": [ + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:@babel/helper-module-imports", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:babel-plugin-polyfill-corejs2", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:babel-plugin-polyfill-corejs3", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:babel-plugin-polyfill-regenerator", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-runtime", + "target": "npm:semver", + "type": "static" + } + ], + "npm:@babel/plugin-transform-shorthand-properties": [ + { + "source": "npm:@babel/plugin-transform-shorthand-properties", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-shorthand-properties", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-spread": [ + { + "source": "npm:@babel/plugin-transform-spread", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-spread", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-spread", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "type": "static" + } + ], + "npm:@babel/plugin-transform-sticky-regex": [ + { + "source": "npm:@babel/plugin-transform-sticky-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-sticky-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-template-literals": [ + { + "source": "npm:@babel/plugin-transform-template-literals", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-template-literals", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-typeof-symbol": [ + { + "source": "npm:@babel/plugin-transform-typeof-symbol", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typeof-symbol", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-typescript": [ + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/helper-annotate-as-pure", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/helper-create-class-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/helper-skip-transparent-expression-wrappers", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-typescript", + "target": "npm:@babel/plugin-syntax-typescript", + "type": "static" + } + ], + "npm:@babel/plugin-transform-unicode-escapes": [ + { + "source": "npm:@babel/plugin-transform-unicode-escapes", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-escapes", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-unicode-property-regex": [ + { + "source": "npm:@babel/plugin-transform-unicode-property-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-property-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-property-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-unicode-regex": [ + { + "source": "npm:@babel/plugin-transform-unicode-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/plugin-transform-unicode-sets-regex": [ + { + "source": "npm:@babel/plugin-transform-unicode-sets-regex", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-sets-regex", + "target": "npm:@babel/helper-create-regexp-features-plugin", + "type": "static" + }, + { + "source": "npm:@babel/plugin-transform-unicode-sets-regex", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + } + ], + "npm:@babel/preset-env": [ + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/compat-data", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/helper-compilation-targets", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/helper-validator-option", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-bugfix-firefox-class-in-computed-class-key", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-bugfix-safari-class-field-initializer-scope", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-proposal-private-property-in-object", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-syntax-import-assertions", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-syntax-import-attributes", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-syntax-unicode-sets-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-arrow-functions", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-async-generator-functions", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-async-to-generator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-block-scoped-functions", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-block-scoping", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-class-properties", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-class-static-block", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-classes", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-computed-properties", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-destructuring", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-dotall-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-duplicate-keys", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-duplicate-named-capturing-groups-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-dynamic-import", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-explicit-resource-management", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-exponentiation-operator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-export-namespace-from", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-for-of", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-function-name", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-json-strings", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-literals", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-logical-assignment-operators", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-member-expression-literals", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-modules-amd", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-modules-commonjs", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-modules-systemjs", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-modules-umd", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-named-capturing-groups-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-new-target", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-nullish-coalescing-operator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-numeric-separator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-object-rest-spread", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-object-super", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-optional-catch-binding", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-optional-chaining", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-parameters", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-private-methods", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-private-property-in-object", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-property-literals", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-regenerator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-regexp-modifiers", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-reserved-words", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-shorthand-properties", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-spread", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-sticky-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-template-literals", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-typeof-symbol", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-unicode-escapes", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-unicode-property-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-unicode-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/plugin-transform-unicode-sets-regex", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:@babel/preset-modules", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:babel-plugin-polyfill-corejs2", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:babel-plugin-polyfill-corejs3", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:babel-plugin-polyfill-regenerator", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:core-js-compat", + "type": "static" + }, + { + "source": "npm:@babel/preset-env", + "target": "npm:semver", + "type": "static" + } + ], + "npm:@babel/preset-modules": [ + { + "source": "npm:@babel/preset-modules", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/preset-modules", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/preset-modules", + "target": "npm:@babel/types", + "type": "static" + }, + { + "source": "npm:@babel/preset-modules", + "target": "npm:esutils", + "type": "static" + } + ], + "npm:@babel/preset-react": [ + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/helper-validator-option", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/plugin-transform-react-display-name", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/plugin-transform-react-jsx", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/plugin-transform-react-jsx-development", + "type": "static" + }, + { + "source": "npm:@babel/preset-react", + "target": "npm:@babel/plugin-transform-react-pure-annotations", + "type": "static" + } + ], + "npm:@babel/preset-typescript": [ + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/helper-plugin-utils", + "type": "static" + }, + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/helper-validator-option", + "type": "static" + }, + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/plugin-syntax-jsx", + "type": "static" + }, + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/plugin-transform-modules-commonjs", + "type": "static" + }, + { + "source": "npm:@babel/preset-typescript", + "target": "npm:@babel/plugin-transform-typescript", + "type": "static" + } + ], + "npm:@babel/template": [ + { + "source": "npm:@babel/template", + "target": "npm:@babel/code-frame", + "type": "static" + }, + { + "source": "npm:@babel/template", + "target": "npm:@babel/parser", + "type": "static" + }, + { + "source": "npm:@babel/template", + "target": "npm:@babel/types", + "type": "static" + } + ], + "npm:@babel/traverse": [ + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/code-frame", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/generator", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/helper-globals", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/parser", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/template", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:@babel/types", + "type": "static" + }, + { + "source": "npm:@babel/traverse", + "target": "npm:debug", + "type": "static" + } + ], + "npm:@babel/types": [ + { + "source": "npm:@babel/types", + "target": "npm:@babel/helper-string-parser", + "type": "static" + }, + { + "source": "npm:@babel/types", + "target": "npm:@babel/helper-validator-identifier", + "type": "static" + } + ], + "npm:@cspotcode/source-map-support": [ + { + "source": "npm:@cspotcode/source-map-support", + "target": "npm:@jridgewell/trace-mapping@0.3.9", + "type": "static" + } + ], + "npm:@jridgewell/trace-mapping@0.3.9": [ + { + "source": "npm:@jridgewell/trace-mapping@0.3.9", + "target": "npm:@jridgewell/resolve-uri", + "type": "static" + }, + { + "source": "npm:@jridgewell/trace-mapping@0.3.9", + "target": "npm:@jridgewell/sourcemap-codec", + "type": "static" + } + ], + "npm:@eslint-community/eslint-utils": [ + { + "source": "npm:@eslint-community/eslint-utils", + "target": "npm:eslint", + "type": "static" + }, + { + "source": "npm:@eslint-community/eslint-utils", + "target": "npm:eslint-visitor-keys", + "type": "static" + } + ], + "npm:@eslint/config-array": [ + { + "source": "npm:@eslint/config-array", + "target": "npm:@eslint/object-schema", + "type": "static" + }, + { + "source": "npm:@eslint/config-array", + "target": "npm:debug", + "type": "static" + }, + { + "source": "npm:@eslint/config-array", + "target": "npm:minimatch@3.1.2", + "type": "static" + } + ], + "npm:brace-expansion@1.1.12": [ + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:balanced-match", + "type": "static" + }, + { + "source": "npm:brace-expansion@1.1.12", + "target": "npm:concat-map", + "type": "static" + } + ], + "npm:minimatch@3.1.2": [ + { + "source": "npm:minimatch@3.1.2", + "target": "npm:brace-expansion@1.1.12", + "type": "static" + } + ], + "npm:@eslint/core": [ + { + "source": "npm:@eslint/core", + "target": "npm:@types/json-schema", + "type": "static" + } + ], + "npm:@eslint/eslintrc": [ + { + "source": "npm:@eslint/eslintrc", + "target": "npm:ajv@6.12.6", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:debug", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:espree", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:globals", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:ignore", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:import-fresh", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:js-yaml@4.1.0", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:minimatch@3.1.2", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc", + "target": "npm:strip-json-comments", + "type": "static" + } + ], + "npm:ajv@6.12.6": [ + { + "source": "npm:ajv@6.12.6", + "target": "npm:fast-deep-equal", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:fast-json-stable-stringify", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:json-schema-traverse@0.4.1", + "type": "static" + }, + { + "source": "npm:ajv@6.12.6", + "target": "npm:uri-js", + "type": "static" + } + ], + "npm:js-yaml@4.1.0": [ + { + "source": "npm:js-yaml@4.1.0", + "target": "npm:argparse@2.0.1", + "type": "static" + } + ], + "npm:@eslint/plugin-kit": [ + { + "source": "npm:@eslint/plugin-kit", + "target": "npm:@eslint/core@0.15.1", + "type": "static" + }, + { + "source": "npm:@eslint/plugin-kit", + "target": "npm:levn", + "type": "static" + } + ], + "npm:@eslint/core@0.15.1": [ + { + "source": "npm:@eslint/core@0.15.1", + "target": "npm:@types/json-schema", + "type": "static" + } + ], + "npm:@fastify/ajv-compiler": [ + { + "source": "npm:@fastify/ajv-compiler", + "target": "npm:ajv", + "type": "static" + }, + { + "source": "npm:@fastify/ajv-compiler", + "target": "npm:ajv-formats", + "type": "static" + }, + { + "source": "npm:@fastify/ajv-compiler", + "target": "npm:fast-uri", + "type": "static" + } + ], + "npm:@fastify/cors": [ + { + "source": "npm:@fastify/cors", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/cors", + "target": "npm:toad-cache", + "type": "static" + } + ], + "npm:@fastify/fast-json-stringify-compiler": [ + { + "source": "npm:@fastify/fast-json-stringify-compiler", + "target": "npm:fast-json-stringify", + "type": "static" + } + ], + "npm:@fastify/jwt": [ + { + "source": "npm:@fastify/jwt", + "target": "npm:@fastify/error", + "type": "static" + }, + { + "source": "npm:@fastify/jwt", + "target": "npm:@lukeed/ms", + "type": "static" + }, + { + "source": "npm:@fastify/jwt", + "target": "npm:fast-jwt", + "type": "static" + }, + { + "source": "npm:@fastify/jwt", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/jwt", + "target": "npm:steed", + "type": "static" + } + ], + "npm:@fastify/merge-json-schemas": [ + { + "source": "npm:@fastify/merge-json-schemas", + "target": "npm:dequal", + "type": "static" + } + ], + "npm:@fastify/mongodb": [ + { + "source": "npm:@fastify/mongodb", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/mongodb", + "target": "npm:mongodb", + "type": "static" + } + ], + "npm:@fastify/proxy-addr": [ + { + "source": "npm:@fastify/proxy-addr", + "target": "npm:@fastify/forwarded", + "type": "static" + }, + { + "source": "npm:@fastify/proxy-addr", + "target": "npm:ipaddr.js", + "type": "static" + } + ], + "npm:@fastify/send": [ + { + "source": "npm:@fastify/send", + "target": "npm:@lukeed/ms", + "type": "static" + }, + { + "source": "npm:@fastify/send", + "target": "npm:escape-html", + "type": "static" + }, + { + "source": "npm:@fastify/send", + "target": "npm:fast-decode-uri-component", + "type": "static" + }, + { + "source": "npm:@fastify/send", + "target": "npm:http-errors", + "type": "static" + }, + { + "source": "npm:@fastify/send", + "target": "npm:mime", + "type": "static" + } + ], + "npm:@fastify/static": [ + { + "source": "npm:@fastify/static", + "target": "npm:@fastify/accept-negotiator", + "type": "static" + }, + { + "source": "npm:@fastify/static", + "target": "npm:@fastify/send", + "type": "static" + }, + { + "source": "npm:@fastify/static", + "target": "npm:content-disposition@1.0.1", + "type": "static" + }, + { + "source": "npm:@fastify/static", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/static", + "target": "npm:fastq", + "type": "static" + }, + { + "source": "npm:@fastify/static", + "target": "npm:glob@13.0.0", + "type": "static" + } + ], + "npm:glob@13.0.0": [ + { + "source": "npm:glob@13.0.0", + "target": "npm:minimatch@10.1.1", + "type": "static" + }, + { + "source": "npm:glob@13.0.0", + "target": "npm:minipass", + "type": "static" + }, + { + "source": "npm:glob@13.0.0", + "target": "npm:path-scurry", + "type": "static" + } + ], + "npm:minimatch@10.1.1": [ + { + "source": "npm:minimatch@10.1.1", + "target": "npm:@isaacs/brace-expansion", + "type": "static" + } + ], + "npm:@fastify/swagger": [ + { + "source": "npm:@fastify/swagger", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/swagger", + "target": "npm:json-schema-resolver", + "type": "static" + }, + { + "source": "npm:@fastify/swagger", + "target": "npm:openapi-types", + "type": "static" + }, + { + "source": "npm:@fastify/swagger", + "target": "npm:rfdc", + "type": "static" + }, + { + "source": "npm:@fastify/swagger", + "target": "npm:yaml", + "type": "static" + } + ], + "npm:@fastify/swagger-ui": [ + { + "source": "npm:@fastify/swagger-ui", + "target": "npm:@fastify/static", + "type": "static" + }, + { + "source": "npm:@fastify/swagger-ui", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/swagger-ui", + "target": "npm:openapi-types", + "type": "static" + }, + { + "source": "npm:@fastify/swagger-ui", + "target": "npm:rfdc", + "type": "static" + }, + { + "source": "npm:@fastify/swagger-ui", + "target": "npm:yaml", + "type": "static" + } + ], + "npm:@fastify/websocket": [ + { + "source": "npm:@fastify/websocket", + "target": "npm:duplexify", + "type": "static" + }, + { + "source": "npm:@fastify/websocket", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/websocket", + "target": "npm:ws", + "type": "static" + } + ], + "npm:@humanfs/node": [ + { + "source": "npm:@humanfs/node", + "target": "npm:@humanfs/core", + "type": "static" + }, + { + "source": "npm:@humanfs/node", + "target": "npm:@humanwhocodes/retry@0.3.1", + "type": "static" + } + ], + "npm:@humanwhocodes/config-array": [ + { + "source": "npm:@humanwhocodes/config-array", + "target": "npm:@humanwhocodes/object-schema", + "type": "static" + }, + { + "source": "npm:@humanwhocodes/config-array", + "target": "npm:debug", + "type": "static" + }, + { + "source": "npm:@humanwhocodes/config-array", + "target": "npm:minimatch@3.1.2", + "type": "static" + } + ], + "npm:@isaacs/brace-expansion": [ + { + "source": "npm:@isaacs/brace-expansion", + "target": "npm:@isaacs/balanced-match", + "type": "static" + } + ], + "npm:@isaacs/cliui": [ + { + "source": "npm:@isaacs/cliui", + "target": "npm:string-width@5.1.2", + "type": "static" + }, + { + "source": "npm:@isaacs/cliui", + "target": "npm:string-width-cjs", + "type": "static" + }, + { + "source": "npm:@isaacs/cliui", + "target": "npm:strip-ansi@7.1.0", + "type": "static" + }, + { + "source": "npm:@isaacs/cliui", + "target": "npm:strip-ansi-cjs", + "type": "static" + }, + { + "source": "npm:@isaacs/cliui", + "target": "npm:wrap-ansi@8.1.0", + "type": "static" + }, + { + "source": "npm:@isaacs/cliui", + "target": "npm:wrap-ansi-cjs", + "type": "static" + } + ], + "npm:string-width@5.1.2": [ + { + "source": "npm:string-width@5.1.2", + "target": "npm:eastasianwidth", + "type": "static" + }, + { + "source": "npm:string-width@5.1.2", + "target": "npm:emoji-regex", + "type": "static" + }, + { + "source": "npm:string-width@5.1.2", + "target": "npm:strip-ansi@7.1.0", + "type": "static" + } + ], + "npm:strip-ansi@7.1.0": [ + { + "source": "npm:strip-ansi@7.1.0", + "target": "npm:ansi-regex@6.1.0", + "type": "static" + } + ], + "npm:wrap-ansi@8.1.0": [ + { + "source": "npm:wrap-ansi@8.1.0", + "target": "npm:ansi-styles@6.2.1", + "type": "static" + }, + { + "source": "npm:wrap-ansi@8.1.0", + "target": "npm:string-width@5.1.2", + "type": "static" + }, + { + "source": "npm:wrap-ansi@8.1.0", + "target": "npm:strip-ansi@7.1.0", + "type": "static" + } + ], + "npm:@istanbuljs/load-nyc-config": [ + { + "source": "npm:@istanbuljs/load-nyc-config", + "target": "npm:camelcase@5.3.1", + "type": "static" + }, + { + "source": "npm:@istanbuljs/load-nyc-config", + "target": "npm:find-up", + "type": "static" + }, + { + "source": "npm:@istanbuljs/load-nyc-config", + "target": "npm:get-package-type", + "type": "static" + }, + { + "source": "npm:@istanbuljs/load-nyc-config", + "target": "npm:js-yaml", + "type": "static" + }, + { + "source": "npm:@istanbuljs/load-nyc-config", + "target": "npm:resolve-from", + "type": "static" + } + ], + "npm:@jest/console": [ + { + "source": "npm:@jest/console", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/console", + "target": "npm:@types/node", + "type": "static" + }, + { + "source": "npm:@jest/console", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@jest/console", + "target": "npm:jest-message-util", + "type": "static" + }, + { + "source": "npm:@jest/console", + "target": "npm:jest-util", + "type": "static" + }, + { + "source": "npm:@jest/console", + "target": "npm:slash", + "type": "static" + } + ], + "npm:@jest/core": [ + { + "source": "npm:@jest/core", + "target": "npm:@jest/console", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:@jest/reporters", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:@jest/test-result", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:@jest/transform", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:@types/node", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:ansi-escapes", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:ci-info", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:exit", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:graceful-fs", + "type": "static" + }, + { + "source": "npm:@jest/core", "target": "npm:jest-changed-files", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-config", + "source": "npm:@jest/core", + "target": "npm:jest-config", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-haste-map", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-message-util", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-regex-util", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-resolve", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-resolve-dependencies", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-runner", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-runtime", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-snapshot", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-util", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-validate", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:jest-watcher", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:micromatch", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:pretty-format", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:slash", + "type": "static" + }, + { + "source": "npm:@jest/core", + "target": "npm:strip-ansi", + "type": "static" + } + ], + "npm:@jest/create-cache-key-function": [ + { + "source": "npm:@jest/create-cache-key-function", + "target": "npm:@jest/types", + "type": "static" + } + ], + "npm:@jest/environment": [ + { + "source": "npm:@jest/environment", + "target": "npm:@jest/fake-timers", + "type": "static" + }, + { + "source": "npm:@jest/environment", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/environment", + "target": "npm:@types/node", + "type": "static" + }, + { + "source": "npm:@jest/environment", + "target": "npm:jest-mock", + "type": "static" + } + ], + "npm:@jest/expect": [ + { + "source": "npm:@jest/expect", + "target": "npm:expect", + "type": "static" + }, + { + "source": "npm:@jest/expect", + "target": "npm:jest-snapshot", + "type": "static" + } + ], + "npm:@jest/expect-utils": [ + { + "source": "npm:@jest/expect-utils", + "target": "npm:jest-get-type", + "type": "static" + } + ], + "npm:@jest/fake-timers": [ + { + "source": "npm:@jest/fake-timers", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/fake-timers", + "target": "npm:@sinonjs/fake-timers", + "type": "static" + }, + { + "source": "npm:@jest/fake-timers", + "target": "npm:@types/node", + "type": "static" + }, + { + "source": "npm:@jest/fake-timers", + "target": "npm:jest-message-util", + "type": "static" + }, + { + "source": "npm:@jest/fake-timers", + "target": "npm:jest-mock", + "type": "static" + }, + { + "source": "npm:@jest/fake-timers", + "target": "npm:jest-util", + "type": "static" + } + ], + "npm:@jest/globals": [ + { + "source": "npm:@jest/globals", + "target": "npm:@jest/environment", + "type": "static" + }, + { + "source": "npm:@jest/globals", + "target": "npm:@jest/expect", + "type": "static" + }, + { + "source": "npm:@jest/globals", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/globals", + "target": "npm:jest-mock", + "type": "static" + } + ], + "npm:@jest/reporters": [ + { + "source": "npm:@jest/reporters", + "target": "npm:@bcoe/v8-coverage", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@jest/console", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@jest/test-result", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@jest/transform", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@jridgewell/trace-mapping", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:@types/node", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:collect-v8-coverage", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:exit", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:glob", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:graceful-fs", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:istanbul-lib-coverage", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:istanbul-lib-instrument", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:istanbul-lib-report", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:istanbul-lib-source-maps", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:istanbul-reports", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:jest-message-util", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:jest-util", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:jest-worker", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:slash", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:string-length", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:strip-ansi", + "type": "static" + }, + { + "source": "npm:@jest/reporters", + "target": "npm:v8-to-istanbul", + "type": "static" + } + ], + "npm:@jest/schemas": [ + { + "source": "npm:@jest/schemas", + "target": "npm:@sinclair/typebox", + "type": "static" + } + ], + "npm:@jest/source-map": [ + { + "source": "npm:@jest/source-map", + "target": "npm:@jridgewell/trace-mapping", + "type": "static" + }, + { + "source": "npm:@jest/source-map", + "target": "npm:callsites", + "type": "static" + }, + { + "source": "npm:@jest/source-map", + "target": "npm:graceful-fs", + "type": "static" + } + ], + "npm:@jest/test-result": [ + { + "source": "npm:@jest/test-result", + "target": "npm:@jest/console", + "type": "static" + }, + { + "source": "npm:@jest/test-result", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/test-result", + "target": "npm:@types/istanbul-lib-coverage", + "type": "static" + }, + { + "source": "npm:@jest/test-result", + "target": "npm:collect-v8-coverage", + "type": "static" + } + ], + "npm:@jest/test-sequencer": [ + { + "source": "npm:@jest/test-sequencer", + "target": "npm:@jest/test-result", + "type": "static" + }, + { + "source": "npm:@jest/test-sequencer", + "target": "npm:graceful-fs", + "type": "static" + }, + { + "source": "npm:@jest/test-sequencer", + "target": "npm:jest-haste-map", + "type": "static" + }, + { + "source": "npm:@jest/test-sequencer", + "target": "npm:slash", + "type": "static" + } + ], + "npm:@jest/transform": [ + { + "source": "npm:@jest/transform", + "target": "npm:@babel/core", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:@jest/types", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:@jridgewell/trace-mapping", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:babel-plugin-istanbul", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:convert-source-map", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:fast-json-stable-stringify", + "type": "static" + }, + { + "source": "npm:@jest/transform", + "target": "npm:graceful-fs", "type": "static" }, { - "source": "npm:@jest/core", + "source": "npm:@jest/transform", "target": "npm:jest-haste-map", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-message-util", + "source": "npm:@jest/transform", + "target": "npm:jest-regex-util", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-regex-util", + "source": "npm:@jest/transform", + "target": "npm:jest-util", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-resolve", + "source": "npm:@jest/transform", + "target": "npm:micromatch", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-resolve-dependencies", + "source": "npm:@jest/transform", + "target": "npm:pirates", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-runner", + "source": "npm:@jest/transform", + "target": "npm:slash", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-runtime", + "source": "npm:@jest/transform", + "target": "npm:write-file-atomic", + "type": "static" + } + ], + "npm:@jest/types": [ + { + "source": "npm:@jest/types", + "target": "npm:@jest/schemas", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-snapshot", + "source": "npm:@jest/types", + "target": "npm:@types/istanbul-lib-coverage", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-util", + "source": "npm:@jest/types", + "target": "npm:@types/istanbul-reports", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-validate", + "source": "npm:@jest/types", + "target": "npm:@types/node", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:jest-watcher", + "source": "npm:@jest/types", + "target": "npm:@types/yargs", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:micromatch", + "source": "npm:@jest/types", + "target": "npm:chalk", + "type": "static" + } + ], + "npm:@jridgewell/gen-mapping": [ + { + "source": "npm:@jridgewell/gen-mapping", + "target": "npm:@jridgewell/sourcemap-codec", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:pretty-format", + "source": "npm:@jridgewell/gen-mapping", + "target": "npm:@jridgewell/trace-mapping", + "type": "static" + } + ], + "npm:@jridgewell/source-map": [ + { + "source": "npm:@jridgewell/source-map", + "target": "npm:@jridgewell/gen-mapping", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:slash@3.0.0", + "source": "npm:@jridgewell/source-map", + "target": "npm:@jridgewell/trace-mapping", + "type": "static" + } + ], + "npm:@jridgewell/trace-mapping": [ + { + "source": "npm:@jridgewell/trace-mapping", + "target": "npm:@jridgewell/resolve-uri", "type": "static" }, { - "source": "npm:@jest/core", - "target": "npm:strip-ansi", + "source": "npm:@jridgewell/trace-mapping", + "target": "npm:@jridgewell/sourcemap-codec", "type": "static" } ], - "npm:@jest/create-cache-key-function": [ + "npm:@mole-inc/bin-wrapper": [ { - "source": "npm:@jest/create-cache-key-function", - "target": "npm:@jest/types", + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:bin-check", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:bin-version-check", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:content-disposition", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:ext-name", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:file-type", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:filenamify", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:got", + "type": "static" + }, + { + "source": "npm:@mole-inc/bin-wrapper", + "target": "npm:os-filter-obj", "type": "static" } ], - "npm:@jest/environment": [ + "npm:@mongodb-js/saslprep": [ { - "source": "npm:@jest/environment", - "target": "npm:@jest/fake-timers", + "source": "npm:@mongodb-js/saslprep", + "target": "npm:sparse-bitfield", + "type": "static" + } + ], + "npm:@napi-rs/nice": [ + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-android-arm-eabi", "type": "static" }, { - "source": "npm:@jest/environment", - "target": "npm:@jest/types", + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-android-arm64", "type": "static" }, { - "source": "npm:@jest/environment", - "target": "npm:@types/node", + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-darwin-arm64", "type": "static" }, { - "source": "npm:@jest/environment", - "target": "npm:jest-mock", + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-darwin-x64", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-freebsd-x64", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-arm-gnueabihf", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-arm64-gnu", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-arm64-musl", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-ppc64-gnu", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-riscv64-gnu", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-s390x-gnu", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-x64-gnu", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-linux-x64-musl", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-win32-arm64-msvc", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-win32-ia32-msvc", + "type": "static" + }, + { + "source": "npm:@napi-rs/nice", + "target": "npm:@napi-rs/nice-win32-x64-msvc", "type": "static" } ], - "npm:@jest/expect": [ + "npm:@nodelib/fs.scandir": [ { - "source": "npm:@jest/expect", - "target": "npm:expect", + "source": "npm:@nodelib/fs.scandir", + "target": "npm:@nodelib/fs.stat", "type": "static" }, { - "source": "npm:@jest/expect", - "target": "npm:jest-snapshot", + "source": "npm:@nodelib/fs.scandir", + "target": "npm:run-parallel", "type": "static" } ], - "npm:@jest/expect-utils": [ + "npm:@nodelib/fs.walk": [ { - "source": "npm:@jest/expect-utils", - "target": "npm:jest-get-type", + "source": "npm:@nodelib/fs.walk", + "target": "npm:@nodelib/fs.scandir", + "type": "static" + }, + { + "source": "npm:@nodelib/fs.walk", + "target": "npm:fastq", "type": "static" } ], - "npm:@jest/fake-timers": [ + "npm:@nrwl/devkit": [ + { + "source": "npm:@nrwl/devkit", + "target": "npm:@nx/devkit", + "type": "static" + } + ], + "npm:@nrwl/eslint-plugin-nx": [ + { + "source": "npm:@nrwl/eslint-plugin-nx", + "target": "npm:@nx/eslint-plugin", + "type": "static" + } + ], + "npm:@nrwl/jest": [ + { + "source": "npm:@nrwl/jest", + "target": "npm:@nx/jest", + "type": "static" + } + ], + "npm:@nrwl/js": [ + { + "source": "npm:@nrwl/js", + "target": "npm:@nx/js", + "type": "static" + } + ], + "npm:@nrwl/react": [ + { + "source": "npm:@nrwl/react", + "target": "npm:@nx/react", + "type": "static" + } + ], + "npm:@nrwl/rollup": [ + { + "source": "npm:@nrwl/rollup", + "target": "npm:@nx/rollup", + "type": "static" + } + ], + "npm:@nrwl/tao": [ + { + "source": "npm:@nrwl/tao", + "target": "npm:nx", + "type": "static" + }, + { + "source": "npm:@nrwl/tao", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@nrwl/web": [ + { + "source": "npm:@nrwl/web", + "target": "npm:@nx/web", + "type": "static" + } + ], + "npm:@nrwl/webpack": [ + { + "source": "npm:@nrwl/webpack", + "target": "npm:@nx/webpack", + "type": "static" + } + ], + "npm:@nrwl/workspace": [ + { + "source": "npm:@nrwl/workspace", + "target": "npm:@nx/workspace", + "type": "static" + } + ], + "npm:@nx/devkit": [ + { + "source": "npm:@nx/devkit", + "target": "npm:nx", + "type": "static" + }, + { + "source": "npm:@nx/devkit", + "target": "npm:@nrwl/devkit", + "type": "static" + }, + { + "source": "npm:@nx/devkit", + "target": "npm:ejs", + "type": "static" + }, + { + "source": "npm:@nx/devkit", + "target": "npm:enquirer", + "type": "static" + }, + { + "source": "npm:@nx/devkit", + "target": "npm:ignore", + "type": "static" + }, + { + "source": "npm:@nx/devkit", + "target": "npm:minimatch", + "type": "static" + }, + { + "source": "npm:@nx/devkit", + "target": "npm:semver@7.7.2", + "type": "static" + }, + { + "source": "npm:@nx/devkit", + "target": "npm:tmp", + "type": "static" + }, + { + "source": "npm:@nx/devkit", + "target": "npm:tslib", + "type": "static" + }, + { + "source": "npm:@nx/devkit", + "target": "npm:yargs-parser", + "type": "static" + } + ], + "npm:@nx/eslint": [ + { + "source": "npm:@nx/eslint", + "target": "npm:@zkochan/js-yaml", + "type": "static" + }, + { + "source": "npm:@nx/eslint", + "target": "npm:eslint", + "type": "static" + }, + { + "source": "npm:@nx/eslint", + "target": "npm:@nx/devkit", + "type": "static" + }, + { + "source": "npm:@nx/eslint", + "target": "npm:@nx/js", + "type": "static" + }, + { + "source": "npm:@nx/eslint", + "target": "npm:@nx/linter", + "type": "static" + }, + { + "source": "npm:@nx/eslint", + "target": "npm:semver@7.7.2", + "type": "static" + }, + { + "source": "npm:@nx/eslint", + "target": "npm:tslib", + "type": "static" + }, + { + "source": "npm:@nx/eslint", + "target": "npm:typescript", + "type": "static" + } + ], + "npm:@nx/eslint-plugin": [ + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:@typescript-eslint/parser", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:eslint-config-prettier", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:@nrwl/eslint-plugin-nx", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:@nx/devkit", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:@nx/js", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:@typescript-eslint/type-utils", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:@typescript-eslint/utils", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:confusing-browser-globals", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:jsonc-eslint-parser", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:semver@7.7.2", + "type": "static" + }, + { + "source": "npm:@nx/eslint-plugin", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@nx/jest": [ + { + "source": "npm:@nx/jest", + "target": "npm:@jest/reporters", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:@jest/test-result", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:@nrwl/jest", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:@nx/devkit", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:@nx/js", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:@phenomnomnominal/tsquery", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:chalk", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:identity-obj-proxy", + "type": "static" + }, + { + "source": "npm:@nx/jest", + "target": "npm:jest-config", + "type": "static" + }, { - "source": "npm:@jest/fake-timers", - "target": "npm:@jest/types", + "source": "npm:@nx/jest", + "target": "npm:jest-resolve", "type": "static" }, { - "source": "npm:@jest/fake-timers", - "target": "npm:@sinonjs/fake-timers", + "source": "npm:@nx/jest", + "target": "npm:jest-util", "type": "static" }, { - "source": "npm:@jest/fake-timers", - "target": "npm:@types/node", + "source": "npm:@nx/jest", + "target": "npm:minimatch", "type": "static" }, { - "source": "npm:@jest/fake-timers", - "target": "npm:jest-message-util", + "source": "npm:@nx/jest", + "target": "npm:resolve.exports", "type": "static" }, { - "source": "npm:@jest/fake-timers", - "target": "npm:jest-mock", + "source": "npm:@nx/jest", + "target": "npm:tslib", "type": "static" }, { - "source": "npm:@jest/fake-timers", - "target": "npm:jest-util", + "source": "npm:@nx/jest", + "target": "npm:yargs-parser", "type": "static" } ], - "npm:@jest/globals": [ + "npm:@nx/js": [ { - "source": "npm:@jest/globals", - "target": "npm:@jest/environment", + "source": "npm:@nx/js", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@jest/globals", - "target": "npm:@jest/expect", + "source": "npm:@nx/js", + "target": "npm:@babel/plugin-proposal-decorators", "type": "static" }, { - "source": "npm:@jest/globals", - "target": "npm:@jest/types", + "source": "npm:@nx/js", + "target": "npm:@babel/plugin-transform-class-properties", "type": "static" }, { - "source": "npm:@jest/globals", - "target": "npm:jest-mock", + "source": "npm:@nx/js", + "target": "npm:@babel/plugin-transform-runtime", "type": "static" - } - ], - "npm:@jest/reporters": [ + }, { - "source": "npm:@jest/reporters", - "target": "npm:@bcoe/v8-coverage", + "source": "npm:@nx/js", + "target": "npm:@babel/preset-env", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@jest/console", + "source": "npm:@nx/js", + "target": "npm:@babel/preset-typescript", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@jest/test-result", + "source": "npm:@nx/js", + "target": "npm:@babel/runtime", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@jest/transform", + "source": "npm:@nx/js", + "target": "npm:@nrwl/js", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@jest/types", + "source": "npm:@nx/js", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:@nx/js", + "target": "npm:@nx/workspace", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:@types/node", + "source": "npm:@nx/js", + "target": "npm:babel-plugin-const-enum", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:chalk", + "source": "npm:@nx/js", + "target": "npm:babel-plugin-macros", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:collect-v8-coverage", + "source": "npm:@nx/js", + "target": "npm:babel-plugin-transform-typescript-metadata", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:exit", + "source": "npm:@nx/js", + "target": "npm:chalk", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:glob", + "source": "npm:@nx/js", + "target": "npm:columnify", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:graceful-fs", + "source": "npm:@nx/js", + "target": "npm:detect-port", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:istanbul-lib-coverage", + "source": "npm:@nx/js", + "target": "npm:fast-glob", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:istanbul-lib-instrument", + "source": "npm:@nx/js", + "target": "npm:fs-extra", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:istanbul-lib-report", + "source": "npm:@nx/js", + "target": "npm:ignore", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:istanbul-lib-source-maps", + "source": "npm:@nx/js", + "target": "npm:js-tokens", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:istanbul-reports", + "source": "npm:@nx/js", + "target": "npm:minimatch", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:jest-message-util", + "source": "npm:@nx/js", + "target": "npm:npm-package-arg", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:jest-util", + "source": "npm:@nx/js", + "target": "npm:npm-run-path", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:jest-worker", + "source": "npm:@nx/js", + "target": "npm:ora", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:slash@3.0.0", + "source": "npm:@nx/js", + "target": "npm:semver@7.7.2", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:string-length", + "source": "npm:@nx/js", + "target": "npm:source-map-support", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:strip-ansi", + "source": "npm:@nx/js", + "target": "npm:ts-node@10.9.1", "type": "static" }, { - "source": "npm:@jest/reporters", - "target": "npm:v8-to-istanbul", + "source": "npm:@nx/js", + "target": "npm:tsconfig-paths", "type": "static" - } - ], - "npm:@jest/schemas": [ + }, { - "source": "npm:@jest/schemas", - "target": "npm:@sinclair/typebox", + "source": "npm:@nx/js", + "target": "npm:tslib", "type": "static" } ], - "npm:@jest/source-map": [ + "npm:ts-node@10.9.1": [ { - "source": "npm:@jest/source-map", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:ts-node@10.9.1", + "target": "npm:@swc/core", "type": "static" }, { - "source": "npm:@jest/source-map", - "target": "npm:callsites", + "source": "npm:ts-node@10.9.1", + "target": "npm:@types/node", "type": "static" }, { - "source": "npm:@jest/source-map", - "target": "npm:graceful-fs", + "source": "npm:ts-node@10.9.1", + "target": "npm:typescript", "type": "static" - } - ], - "npm:@jest/test-result": [ + }, { - "source": "npm:@jest/test-result", - "target": "npm:@jest/console", + "source": "npm:ts-node@10.9.1", + "target": "npm:@cspotcode/source-map-support", "type": "static" }, { - "source": "npm:@jest/test-result", - "target": "npm:@jest/types", + "source": "npm:ts-node@10.9.1", + "target": "npm:@tsconfig/node10", "type": "static" }, { - "source": "npm:@jest/test-result", - "target": "npm:@types/istanbul-lib-coverage", + "source": "npm:ts-node@10.9.1", + "target": "npm:@tsconfig/node12", "type": "static" }, { - "source": "npm:@jest/test-result", - "target": "npm:collect-v8-coverage", + "source": "npm:ts-node@10.9.1", + "target": "npm:@tsconfig/node14", "type": "static" - } - ], - "npm:@jest/test-sequencer": [ + }, { - "source": "npm:@jest/test-sequencer", - "target": "npm:@jest/test-result", + "source": "npm:ts-node@10.9.1", + "target": "npm:@tsconfig/node16", "type": "static" }, { - "source": "npm:@jest/test-sequencer", - "target": "npm:graceful-fs", + "source": "npm:ts-node@10.9.1", + "target": "npm:acorn", "type": "static" }, { - "source": "npm:@jest/test-sequencer", - "target": "npm:jest-haste-map", + "source": "npm:ts-node@10.9.1", + "target": "npm:acorn-walk", "type": "static" }, { - "source": "npm:@jest/test-sequencer", - "target": "npm:slash@3.0.0", + "source": "npm:ts-node@10.9.1", + "target": "npm:arg", "type": "static" - } - ], - "npm:@jest/transform": [ + }, { - "source": "npm:@jest/transform", - "target": "npm:@babel/core", + "source": "npm:ts-node@10.9.1", + "target": "npm:create-require", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:@jest/types", + "source": "npm:ts-node@10.9.1", + "target": "npm:diff", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:@jridgewell/trace-mapping", + "source": "npm:ts-node@10.9.1", + "target": "npm:make-error", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:babel-plugin-istanbul", + "source": "npm:ts-node@10.9.1", + "target": "npm:v8-compile-cache-lib", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:chalk", + "source": "npm:ts-node@10.9.1", + "target": "npm:yn", + "type": "static" + } + ], + "npm:@nx/linter": [ + { + "source": "npm:@nx/linter", + "target": "npm:@nx/eslint", + "type": "static" + } + ], + "npm:@nx/react": [ + { + "source": "npm:@nx/react", + "target": "npm:@nrwl/react", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:convert-source-map", + "source": "npm:@nx/react", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:fast-json-stable-stringify", + "source": "npm:@nx/react", + "target": "npm:@nx/eslint", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:graceful-fs", + "source": "npm:@nx/react", + "target": "npm:@nx/js", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:jest-haste-map", + "source": "npm:@nx/react", + "target": "npm:@nx/web", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:jest-regex-util", + "source": "npm:@nx/react", + "target": "npm:@phenomnomnominal/tsquery", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:jest-util", + "source": "npm:@nx/react", + "target": "npm:@svgr/webpack", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:micromatch", + "source": "npm:@nx/react", + "target": "npm:chalk", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:pirates", + "source": "npm:@nx/react", + "target": "npm:file-loader", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:slash@3.0.0", + "source": "npm:@nx/react", + "target": "npm:minimatch", "type": "static" }, { - "source": "npm:@jest/transform", - "target": "npm:write-file-atomic", + "source": "npm:@nx/react", + "target": "npm:tslib", "type": "static" } ], - "npm:@jest/types": [ + "npm:@nx/rollup": [ { - "source": "npm:@jest/types", - "target": "npm:@jest/schemas", + "source": "npm:@nx/rollup", + "target": "npm:@nrwl/rollup", "type": "static" }, { - "source": "npm:@jest/types", - "target": "npm:@types/istanbul-lib-coverage", + "source": "npm:@nx/rollup", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@jest/types", - "target": "npm:@types/istanbul-reports", + "source": "npm:@nx/rollup", + "target": "npm:@nx/js", "type": "static" }, { - "source": "npm:@jest/types", - "target": "npm:@types/node", + "source": "npm:@nx/rollup", + "target": "npm:@rollup/plugin-babel", "type": "static" }, { - "source": "npm:@jest/types", - "target": "npm:@types/yargs", + "source": "npm:@nx/rollup", + "target": "npm:@rollup/plugin-commonjs", "type": "static" }, { - "source": "npm:@jest/types", - "target": "npm:chalk", - "type": "static" - } - ], - "npm:@jridgewell/gen-mapping": [ - { - "source": "npm:@jridgewell/gen-mapping", - "target": "npm:@jridgewell/set-array", + "source": "npm:@nx/rollup", + "target": "npm:@rollup/plugin-image", "type": "static" }, { - "source": "npm:@jridgewell/gen-mapping", - "target": "npm:@jridgewell/sourcemap-codec", + "source": "npm:@nx/rollup", + "target": "npm:@rollup/plugin-json", "type": "static" }, { - "source": "npm:@jridgewell/gen-mapping", - "target": "npm:@jridgewell/trace-mapping", - "type": "static" - } - ], - "npm:@jridgewell/source-map": [ - { - "source": "npm:@jridgewell/source-map", - "target": "npm:@jridgewell/gen-mapping", + "source": "npm:@nx/rollup", + "target": "npm:@rollup/plugin-node-resolve", "type": "static" }, { - "source": "npm:@jridgewell/source-map", - "target": "npm:@jridgewell/trace-mapping", - "type": "static" - } - ], - "npm:@jridgewell/trace-mapping": [ - { - "source": "npm:@jridgewell/trace-mapping", - "target": "npm:@jridgewell/resolve-uri", + "source": "npm:@nx/rollup", + "target": "npm:autoprefixer", "type": "static" }, { - "source": "npm:@jridgewell/trace-mapping", - "target": "npm:@jridgewell/sourcemap-codec", + "source": "npm:@nx/rollup", + "target": "npm:babel-plugin-transform-async-to-promises", "type": "static" - } - ], - "npm:@mole-inc/bin-wrapper": [ + }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:bin-check", + "source": "npm:@nx/rollup", + "target": "npm:chalk", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:bin-version-check", + "source": "npm:@nx/rollup", + "target": "npm:minimatch", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:content-disposition", + "source": "npm:@nx/rollup", + "target": "npm:postcss", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:ext-name", + "source": "npm:@nx/rollup", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:file-type", + "source": "npm:@nx/rollup", + "target": "npm:rollup-plugin-copy", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:filenamify", + "source": "npm:@nx/rollup", + "target": "npm:rollup-plugin-postcss", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:got", + "source": "npm:@nx/rollup", + "target": "npm:rollup-plugin-typescript2", "type": "static" }, { - "source": "npm:@mole-inc/bin-wrapper", - "target": "npm:os-filter-obj", + "source": "npm:@nx/rollup", + "target": "npm:tslib", "type": "static" } ], - "npm:@mongodb-js/saslprep": [ + "npm:@nx/web": [ { - "source": "npm:@mongodb-js/saslprep", - "target": "npm:sparse-bitfield", + "source": "npm:@nx/web", + "target": "npm:@nrwl/web", "type": "static" - } - ], - "npm:@napi-rs/nice": [ + }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-android-arm-eabi", + "source": "npm:@nx/web", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-android-arm64", + "source": "npm:@nx/web", + "target": "npm:@nx/js", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-darwin-arm64", + "source": "npm:@nx/web", + "target": "npm:chalk", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-darwin-x64", + "source": "npm:@nx/web", + "target": "npm:detect-port", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-freebsd-x64", + "source": "npm:@nx/web", + "target": "npm:http-server", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-arm-gnueabihf", + "source": "npm:@nx/web", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@nx/webpack": [ { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-arm64-gnu", + "source": "npm:@nx/webpack", + "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-arm64-musl", + "source": "npm:@nx/webpack", + "target": "npm:@nrwl/webpack", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-ppc64-gnu", + "source": "npm:@nx/webpack", + "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-riscv64-gnu", + "source": "npm:@nx/webpack", + "target": "npm:@nx/js", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-s390x-gnu", + "source": "npm:@nx/webpack", + "target": "npm:@phenomnomnominal/tsquery", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-x64-gnu", + "source": "npm:@nx/webpack", + "target": "npm:ajv", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-linux-x64-musl", + "source": "npm:@nx/webpack", + "target": "npm:autoprefixer", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-win32-arm64-msvc", + "source": "npm:@nx/webpack", + "target": "npm:babel-loader", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-win32-ia32-msvc", + "source": "npm:@nx/webpack", + "target": "npm:browserslist", "type": "static" }, { - "source": "npm:@napi-rs/nice", - "target": "npm:@napi-rs/nice-win32-x64-msvc", + "source": "npm:@nx/webpack", + "target": "npm:chalk", "type": "static" - } - ], - "npm:@nodelib/fs.scandir": [ + }, { - "source": "npm:@nodelib/fs.scandir", - "target": "npm:@nodelib/fs.stat", + "source": "npm:@nx/webpack", + "target": "npm:copy-webpack-plugin", "type": "static" }, { - "source": "npm:@nodelib/fs.scandir", - "target": "npm:run-parallel", + "source": "npm:@nx/webpack", + "target": "npm:css-loader", "type": "static" - } - ], - "npm:@nodelib/fs.walk": [ + }, { - "source": "npm:@nodelib/fs.walk", - "target": "npm:@nodelib/fs.scandir", + "source": "npm:@nx/webpack", + "target": "npm:css-minimizer-webpack-plugin", "type": "static" }, { - "source": "npm:@nodelib/fs.walk", - "target": "npm:fastq", + "source": "npm:@nx/webpack", + "target": "npm:fork-ts-checker-webpack-plugin", "type": "static" - } - ], - "npm:@nrwl/devkit": [ + }, { - "source": "npm:@nrwl/devkit", - "target": "npm:@nx/devkit", + "source": "npm:@nx/webpack", + "target": "npm:less", "type": "static" - } - ], - "npm:@nrwl/eslint-plugin-nx": [ + }, { - "source": "npm:@nrwl/eslint-plugin-nx", - "target": "npm:@nx/eslint-plugin", + "source": "npm:@nx/webpack", + "target": "npm:less-loader", "type": "static" - } - ], - "npm:@nrwl/jest": [ + }, { - "source": "npm:@nrwl/jest", - "target": "npm:@nx/jest", + "source": "npm:@nx/webpack", + "target": "npm:license-webpack-plugin", "type": "static" - } - ], - "npm:@nrwl/js": [ + }, { - "source": "npm:@nrwl/js", - "target": "npm:@nx/js", + "source": "npm:@nx/webpack", + "target": "npm:loader-utils", "type": "static" - } - ], - "npm:@nrwl/react": [ + }, { - "source": "npm:@nrwl/react", - "target": "npm:@nx/react", + "source": "npm:@nx/webpack", + "target": "npm:mini-css-extract-plugin", "type": "static" - } - ], - "npm:@nrwl/rollup": [ + }, { - "source": "npm:@nrwl/rollup", - "target": "npm:@nx/rollup", + "source": "npm:@nx/webpack", + "target": "npm:parse5", "type": "static" - } - ], - "npm:@nrwl/tao": [ + }, { - "source": "npm:@nrwl/tao", - "target": "npm:nx", + "source": "npm:@nx/webpack", + "target": "npm:postcss", "type": "static" }, { - "source": "npm:@nrwl/tao", - "target": "npm:tslib", + "source": "npm:@nx/webpack", + "target": "npm:postcss-import", "type": "static" - } - ], - "npm:@nrwl/web": [ + }, { - "source": "npm:@nrwl/web", - "target": "npm:@nx/web", + "source": "npm:@nx/webpack", + "target": "npm:postcss-loader", "type": "static" - } - ], - "npm:@nrwl/webpack": [ + }, { - "source": "npm:@nrwl/webpack", - "target": "npm:@nx/webpack", + "source": "npm:@nx/webpack", + "target": "npm:rxjs", "type": "static" - } - ], - "npm:@nrwl/workspace": [ + }, { - "source": "npm:@nrwl/workspace", - "target": "npm:@nx/workspace", + "source": "npm:@nx/webpack", + "target": "npm:sass", "type": "static" - } - ], - "npm:@nx/devkit": [ + }, { - "source": "npm:@nx/devkit", - "target": "npm:nx", + "source": "npm:@nx/webpack", + "target": "npm:sass-loader", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:@nrwl/devkit", + "source": "npm:@nx/webpack", + "target": "npm:source-map-loader", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:ejs", + "source": "npm:@nx/webpack", + "target": "npm:style-loader", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:enquirer", + "source": "npm:@nx/webpack", + "target": "npm:stylus", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:ignore", + "source": "npm:@nx/webpack", + "target": "npm:stylus-loader", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:minimatch@9.0.3", + "source": "npm:@nx/webpack", + "target": "npm:terser-webpack-plugin", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:semver@7.7.2", + "source": "npm:@nx/webpack", + "target": "npm:ts-loader", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:tmp", + "source": "npm:@nx/webpack", + "target": "npm:tsconfig-paths-webpack-plugin", "type": "static" }, { - "source": "npm:@nx/devkit", + "source": "npm:@nx/webpack", "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/devkit", - "target": "npm:yargs-parser", + "source": "npm:@nx/webpack", + "target": "npm:webpack", "type": "static" - } - ], - "npm:brace-expansion@2.0.1": [ + }, { - "source": "npm:brace-expansion@2.0.1", - "target": "npm:balanced-match", + "source": "npm:@nx/webpack", + "target": "npm:webpack-dev-server", "type": "static" - } - ], - "npm:minimatch@9.0.3": [ + }, { - "source": "npm:minimatch@9.0.3", - "target": "npm:brace-expansion@2.0.1", + "source": "npm:@nx/webpack", + "target": "npm:webpack-node-externals", "type": "static" - } - ], - "npm:@nx/eslint": [ + }, { - "source": "npm:@nx/eslint", - "target": "npm:@zkochan/js-yaml", + "source": "npm:@nx/webpack", + "target": "npm:webpack-subresource-integrity", "type": "static" - }, + } + ], + "npm:@nx/workspace": [ { - "source": "npm:@nx/eslint", - "target": "npm:eslint", + "source": "npm:@nx/workspace", + "target": "npm:@nrwl/workspace", "type": "static" }, { - "source": "npm:@nx/eslint", + "source": "npm:@nx/workspace", "target": "npm:@nx/devkit", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:@nx/js", + "source": "npm:@nx/workspace", + "target": "npm:chalk", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:@nx/linter", + "source": "npm:@nx/workspace", + "target": "npm:enquirer", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:semver@7.7.2", + "source": "npm:@nx/workspace", + "target": "npm:nx", "type": "static" }, { - "source": "npm:@nx/eslint", + "source": "npm:@nx/workspace", "target": "npm:tslib", "type": "static" }, { - "source": "npm:@nx/eslint", - "target": "npm:typescript", + "source": "npm:@nx/workspace", + "target": "npm:yargs-parser", "type": "static" } ], - "npm:@nx/eslint-plugin": [ + "npm:@parcel/watcher": [ { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@typescript-eslint/parser", + "source": "npm:@parcel/watcher", + "target": "npm:detect-libc", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:eslint-config-prettier", + "source": "npm:@parcel/watcher", + "target": "npm:is-glob", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@nrwl/eslint-plugin-nx", + "source": "npm:@parcel/watcher", + "target": "npm:micromatch", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@nx/devkit", + "source": "npm:@parcel/watcher", + "target": "npm:node-addon-api", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@nx/js", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-android-arm64", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@typescript-eslint/type-utils", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-darwin-arm64", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:@typescript-eslint/utils", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-darwin-x64", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:chalk", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-freebsd-x64", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:confusing-browser-globals", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-arm-glibc", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:jsonc-eslint-parser", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-arm-musl", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:semver@7.7.2", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-arm64-glibc", "type": "static" }, { - "source": "npm:@nx/eslint-plugin", - "target": "npm:tslib", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-arm64-musl", "type": "static" - } - ], - "npm:@nx/jest": [ + }, { - "source": "npm:@nx/jest", - "target": "npm:@jest/reporters", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-x64-glibc", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:@jest/test-result", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-linux-x64-musl", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:@nrwl/jest", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-win32-arm64", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:@nx/devkit", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-win32-ia32", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:@nx/js", + "source": "npm:@parcel/watcher", + "target": "npm:@parcel/watcher-win32-x64", + "type": "static" + } + ], + "npm:@phenomnomnominal/tsquery": [ + { + "source": "npm:@phenomnomnominal/tsquery", + "target": "npm:typescript", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:@phenomnomnominal/tsquery", + "source": "npm:@phenomnomnominal/tsquery", + "target": "npm:esquery", + "type": "static" + } + ], + "npm:@pmmmwh/react-refresh-webpack-plugin": [ + { + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:react-refresh", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:chalk", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:type-fest", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:identity-obj-proxy", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:webpack", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:jest-config", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:webpack-dev-server", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:jest-resolve", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:ansi-html", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:jest-util", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:core-js-pure", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:minimatch@9.0.3", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:error-stack-parser", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:resolve.exports", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:html-entities", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:tslib", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:loader-utils", "type": "static" }, { - "source": "npm:@nx/jest", - "target": "npm:yargs-parser", + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:schema-utils", + "type": "static" + }, + { + "source": "npm:@pmmmwh/react-refresh-webpack-plugin", + "target": "npm:source-map", "type": "static" } ], - "npm:@nx/js": [ + "npm:@rollup/plugin-babel": [ { - "source": "npm:@nx/js", + "source": "npm:@rollup/plugin-babel", "target": "npm:@babel/core", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/plugin-proposal-decorators", + "source": "npm:@rollup/plugin-babel", + "target": "npm:@types/babel__core", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/plugin-transform-class-properties", + "source": "npm:@rollup/plugin-babel", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/plugin-transform-runtime", + "source": "npm:@rollup/plugin-babel", + "target": "npm:@babel/helper-module-imports", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/preset-env", + "source": "npm:@rollup/plugin-babel", + "target": "npm:@rollup/pluginutils", "type": "static" - }, + } + ], + "npm:@rollup/plugin-commonjs": [ { - "source": "npm:@nx/js", - "target": "npm:@babel/preset-typescript", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@babel/runtime", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:@rollup/pluginutils", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@nrwl/js", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:commondir", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@nx/devkit", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:estree-walker", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:@nx/workspace", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:glob@8.1.0", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:babel-plugin-const-enum", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:is-reference", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:babel-plugin-macros", + "source": "npm:@rollup/plugin-commonjs", + "target": "npm:magic-string", "type": "static" - }, + } + ], + "npm:glob@8.1.0": [ { - "source": "npm:@nx/js", - "target": "npm:babel-plugin-transform-typescript-metadata", + "source": "npm:glob@8.1.0", + "target": "npm:fs.realpath", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:chalk", + "source": "npm:glob@8.1.0", + "target": "npm:inflight", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:columnify", + "source": "npm:glob@8.1.0", + "target": "npm:inherits", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:detect-port", + "source": "npm:glob@8.1.0", + "target": "npm:minimatch@5.1.6", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:fast-glob", + "source": "npm:glob@8.1.0", + "target": "npm:once", "type": "static" - }, + } + ], + "npm:minimatch@5.1.6": [ { - "source": "npm:@nx/js", - "target": "npm:fs-extra", + "source": "npm:minimatch@5.1.6", + "target": "npm:brace-expansion", "type": "static" - }, + } + ], + "npm:@rollup/plugin-image": [ { - "source": "npm:@nx/js", - "target": "npm:ignore", + "source": "npm:@rollup/plugin-image", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:js-tokens", + "source": "npm:@rollup/plugin-image", + "target": "npm:@rollup/pluginutils", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:minimatch@9.0.3", + "source": "npm:@rollup/plugin-image", + "target": "npm:mini-svg-data-uri", "type": "static" - }, + } + ], + "npm:@rollup/plugin-json": [ { - "source": "npm:@nx/js", - "target": "npm:npm-package-arg", + "source": "npm:@rollup/plugin-json", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:npm-run-path", + "source": "npm:@rollup/plugin-json", + "target": "npm:@rollup/pluginutils", "type": "static" - }, + } + ], + "npm:@rollup/plugin-node-resolve": [ { - "source": "npm:@nx/js", - "target": "npm:ora", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:semver@7.7.2", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:@rollup/pluginutils", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:source-map-support", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:@types/resolve", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:ts-node@10.9.1", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:deepmerge", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:tsconfig-paths", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:is-module", "type": "static" }, { - "source": "npm:@nx/js", - "target": "npm:tslib", + "source": "npm:@rollup/plugin-node-resolve", + "target": "npm:resolve", "type": "static" } ], - "npm:ts-node@10.9.1": [ + "npm:@rollup/pluginutils": [ { - "source": "npm:ts-node@10.9.1", - "target": "npm:@swc/core", + "source": "npm:@rollup/pluginutils", + "target": "npm:rollup", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:@types/node", + "source": "npm:@rollup/pluginutils", + "target": "npm:@types/estree", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:typescript", + "source": "npm:@rollup/pluginutils", + "target": "npm:estree-walker", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:@cspotcode/source-map-support", + "source": "npm:@rollup/pluginutils", + "target": "npm:picomatch", "type": "static" - }, + } + ], + "npm:@sinonjs/commons": [ { - "source": "npm:ts-node@10.9.1", - "target": "npm:@tsconfig/node10", + "source": "npm:@sinonjs/commons", + "target": "npm:type-detect", "type": "static" - }, + } + ], + "npm:@sinonjs/fake-timers": [ { - "source": "npm:ts-node@10.9.1", - "target": "npm:@tsconfig/node12", + "source": "npm:@sinonjs/fake-timers", + "target": "npm:@sinonjs/commons", "type": "static" - }, + } + ], + "npm:@smithy/abort-controller": [ { - "source": "npm:ts-node@10.9.1", - "target": "npm:@tsconfig/node14", + "source": "npm:@smithy/abort-controller", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:@tsconfig/node16", + "source": "npm:@smithy/abort-controller", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/chunked-blob-reader": [ { - "source": "npm:ts-node@10.9.1", - "target": "npm:acorn", + "source": "npm:@smithy/chunked-blob-reader", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/chunked-blob-reader-native": [ { - "source": "npm:ts-node@10.9.1", - "target": "npm:acorn-walk", + "source": "npm:@smithy/chunked-blob-reader-native", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:arg", + "source": "npm:@smithy/chunked-blob-reader-native", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@smithy/config-resolver": [ + { + "source": "npm:@smithy/config-resolver", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:create-require", + "source": "npm:@smithy/config-resolver", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:diff", + "source": "npm:@smithy/config-resolver", + "target": "npm:@smithy/util-config-provider", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:make-error", + "source": "npm:@smithy/config-resolver", + "target": "npm:@smithy/util-endpoints", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:v8-compile-cache-lib", + "source": "npm:@smithy/config-resolver", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:ts-node@10.9.1", - "target": "npm:yn", + "source": "npm:@smithy/config-resolver", + "target": "npm:tslib", "type": "static" } ], - "npm:@nx/linter": [ + "npm:@smithy/core": [ { - "source": "npm:@nx/linter", - "target": "npm:@nx/eslint", + "source": "npm:@smithy/core", + "target": "npm:@smithy/middleware-serde", "type": "static" - } - ], - "npm:@nx/react": [ + }, { - "source": "npm:@nx/react", - "target": "npm:@nrwl/react", + "source": "npm:@smithy/core", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@nx/devkit", + "source": "npm:@smithy/core", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@nx/eslint", + "source": "npm:@smithy/core", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@nx/js", + "source": "npm:@smithy/core", + "target": "npm:@smithy/util-body-length-browser", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@nx/web", + "source": "npm:@smithy/core", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:@phenomnomnominal/tsquery", + "source": "npm:@smithy/core", + "target": "npm:@smithy/util-stream", + "type": "static" + }, + { + "source": "npm:@smithy/core", + "target": "npm:@smithy/util-utf8", + "type": "static" + }, + { + "source": "npm:@smithy/core", + "target": "npm:@smithy/uuid", + "type": "static" + }, + { + "source": "npm:@smithy/core", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/credential-provider-imds": [ { - "source": "npm:@nx/react", - "target": "npm:@svgr/webpack", + "source": "npm:@smithy/credential-provider-imds", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:chalk", + "source": "npm:@smithy/credential-provider-imds", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:file-loader", + "source": "npm:@smithy/credential-provider-imds", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/react", - "target": "npm:minimatch@9.0.3", + "source": "npm:@smithy/credential-provider-imds", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:@nx/react", + "source": "npm:@smithy/credential-provider-imds", "target": "npm:tslib", "type": "static" } ], - "npm:@nx/rollup": [ + "npm:@smithy/eventstream-codec": [ { - "source": "npm:@nx/rollup", - "target": "npm:@nrwl/rollup", + "source": "npm:@smithy/eventstream-codec", + "target": "npm:@aws-crypto/crc32", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@nx/devkit", + "source": "npm:@smithy/eventstream-codec", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@nx/js", + "source": "npm:@smithy/eventstream-codec", + "target": "npm:@smithy/util-hex-encoding", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@rollup/plugin-babel", + "source": "npm:@smithy/eventstream-codec", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/eventstream-serde-browser": [ { - "source": "npm:@nx/rollup", - "target": "npm:@rollup/plugin-commonjs", + "source": "npm:@smithy/eventstream-serde-browser", + "target": "npm:@smithy/eventstream-serde-universal", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@rollup/plugin-image", + "source": "npm:@smithy/eventstream-serde-browser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:@rollup/plugin-json", + "source": "npm:@smithy/eventstream-serde-browser", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/eventstream-serde-config-resolver": [ { - "source": "npm:@nx/rollup", - "target": "npm:@rollup/plugin-node-resolve", + "source": "npm:@smithy/eventstream-serde-config-resolver", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:autoprefixer", + "source": "npm:@smithy/eventstream-serde-config-resolver", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/eventstream-serde-node": [ { - "source": "npm:@nx/rollup", - "target": "npm:babel-plugin-transform-async-to-promises", + "source": "npm:@smithy/eventstream-serde-node", + "target": "npm:@smithy/eventstream-serde-universal", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:chalk", + "source": "npm:@smithy/eventstream-serde-node", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:minimatch@9.0.3", + "source": "npm:@smithy/eventstream-serde-node", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@smithy/eventstream-serde-universal": [ + { + "source": "npm:@smithy/eventstream-serde-universal", + "target": "npm:@smithy/eventstream-codec", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:postcss", + "source": "npm:@smithy/eventstream-serde-universal", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:rollup", + "source": "npm:@smithy/eventstream-serde-universal", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@smithy/fetch-http-handler": [ + { + "source": "npm:@smithy/fetch-http-handler", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:rollup-plugin-copy", + "source": "npm:@smithy/fetch-http-handler", + "target": "npm:@smithy/querystring-builder", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:rollup-plugin-postcss", + "source": "npm:@smithy/fetch-http-handler", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/rollup", - "target": "npm:rollup-plugin-typescript2", + "source": "npm:@smithy/fetch-http-handler", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@nx/rollup", + "source": "npm:@smithy/fetch-http-handler", "target": "npm:tslib", "type": "static" } ], - "npm:@nx/web": [ + "npm:@smithy/hash-blob-browser": [ { - "source": "npm:@nx/web", - "target": "npm:@nrwl/web", + "source": "npm:@smithy/hash-blob-browser", + "target": "npm:@smithy/chunked-blob-reader", "type": "static" }, { - "source": "npm:@nx/web", - "target": "npm:@nx/devkit", + "source": "npm:@smithy/hash-blob-browser", + "target": "npm:@smithy/chunked-blob-reader-native", "type": "static" }, { - "source": "npm:@nx/web", - "target": "npm:@nx/js", + "source": "npm:@smithy/hash-blob-browser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/web", - "target": "npm:chalk", + "source": "npm:@smithy/hash-blob-browser", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@smithy/hash-node": [ + { + "source": "npm:@smithy/hash-node", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/web", - "target": "npm:detect-port", + "source": "npm:@smithy/hash-node", + "target": "npm:@smithy/util-buffer-from", "type": "static" }, { - "source": "npm:@nx/web", - "target": "npm:http-server", + "source": "npm:@smithy/hash-node", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@nx/web", + "source": "npm:@smithy/hash-node", "target": "npm:tslib", "type": "static" } ], - "npm:@nx/webpack": [ + "npm:@smithy/hash-stream-node": [ { - "source": "npm:@nx/webpack", - "target": "npm:@babel/core", + "source": "npm:@smithy/hash-stream-node", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:@nrwl/webpack", + "source": "npm:@smithy/hash-stream-node", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:@nx/devkit", + "source": "npm:@smithy/hash-stream-node", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/invalid-dependency": [ { - "source": "npm:@nx/webpack", - "target": "npm:@nx/js", + "source": "npm:@smithy/invalid-dependency", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:@phenomnomnominal/tsquery", + "source": "npm:@smithy/invalid-dependency", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/is-array-buffer": [ { - "source": "npm:@nx/webpack", - "target": "npm:ajv@8.17.1", + "source": "npm:@smithy/is-array-buffer", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/md5-js": [ { - "source": "npm:@nx/webpack", - "target": "npm:autoprefixer", + "source": "npm:@smithy/md5-js", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:babel-loader", + "source": "npm:@smithy/md5-js", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:browserslist", + "source": "npm:@smithy/md5-js", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/middleware-content-length": [ { - "source": "npm:@nx/webpack", - "target": "npm:chalk", + "source": "npm:@smithy/middleware-content-length", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:copy-webpack-plugin", + "source": "npm:@smithy/middleware-content-length", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:css-loader", + "source": "npm:@smithy/middleware-content-length", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/middleware-endpoint": [ { - "source": "npm:@nx/webpack", - "target": "npm:css-minimizer-webpack-plugin", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:fork-ts-checker-webpack-plugin", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/middleware-serde", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:less", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:less-loader", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:license-webpack-plugin", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:loader-utils", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/url-parser", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:mini-css-extract-plugin", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:parse5", + "source": "npm:@smithy/middleware-endpoint", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/middleware-retry": [ { - "source": "npm:@nx/webpack", - "target": "npm:postcss", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:postcss-import", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:postcss-loader", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/service-error-classification", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:rxjs", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:sass", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:sass-loader", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:source-map-loader", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/util-retry", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:style-loader", + "source": "npm:@smithy/middleware-retry", + "target": "npm:@smithy/uuid", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:stylus", + "source": "npm:@smithy/middleware-retry", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/middleware-serde": [ { - "source": "npm:@nx/webpack", - "target": "npm:stylus-loader", + "source": "npm:@smithy/middleware-serde", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:terser-webpack-plugin", + "source": "npm:@smithy/middleware-serde", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:ts-loader", + "source": "npm:@smithy/middleware-serde", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/middleware-stack": [ { - "source": "npm:@nx/webpack", - "target": "npm:tsconfig-paths-webpack-plugin", + "source": "npm:@smithy/middleware-stack", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", + "source": "npm:@smithy/middleware-stack", "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/node-config-provider": [ { - "source": "npm:@nx/webpack", - "target": "npm:webpack", + "source": "npm:@smithy/node-config-provider", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:webpack-dev-server", + "source": "npm:@smithy/node-config-provider", + "target": "npm:@smithy/shared-ini-file-loader", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:webpack-node-externals", + "source": "npm:@smithy/node-config-provider", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/webpack", - "target": "npm:webpack-subresource-integrity", + "source": "npm:@smithy/node-config-provider", + "target": "npm:tslib", "type": "static" } ], - "npm:@nx/workspace": [ + "npm:@smithy/node-http-handler": [ { - "source": "npm:@nx/workspace", - "target": "npm:@nrwl/workspace", + "source": "npm:@smithy/node-http-handler", + "target": "npm:@smithy/abort-controller", "type": "static" }, { - "source": "npm:@nx/workspace", - "target": "npm:@nx/devkit", + "source": "npm:@smithy/node-http-handler", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@nx/workspace", - "target": "npm:chalk", + "source": "npm:@smithy/node-http-handler", + "target": "npm:@smithy/querystring-builder", "type": "static" }, { - "source": "npm:@nx/workspace", - "target": "npm:enquirer", + "source": "npm:@smithy/node-http-handler", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/workspace", - "target": "npm:nx", + "source": "npm:@smithy/node-http-handler", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/property-provider": [ { - "source": "npm:@nx/workspace", - "target": "npm:tslib", + "source": "npm:@smithy/property-provider", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@nx/workspace", - "target": "npm:yargs-parser", + "source": "npm:@smithy/property-provider", + "target": "npm:tslib", "type": "static" } ], - "npm:@parcel/watcher": [ + "npm:@smithy/protocol-http": [ { - "source": "npm:@parcel/watcher", - "target": "npm:detect-libc", + "source": "npm:@smithy/protocol-http", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:is-glob", + "source": "npm:@smithy/protocol-http", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/querystring-builder": [ { - "source": "npm:@parcel/watcher", - "target": "npm:micromatch", + "source": "npm:@smithy/querystring-builder", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:node-addon-api", + "source": "npm:@smithy/querystring-builder", + "target": "npm:@smithy/util-uri-escape", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-android-arm64", + "source": "npm:@smithy/querystring-builder", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/querystring-parser": [ { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-darwin-arm64", + "source": "npm:@smithy/querystring-parser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-darwin-x64", + "source": "npm:@smithy/querystring-parser", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/service-error-classification": [ { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-freebsd-x64", + "source": "npm:@smithy/service-error-classification", + "target": "npm:@smithy/types", "type": "static" - }, + } + ], + "npm:@smithy/shared-ini-file-loader": [ { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-arm-glibc", + "source": "npm:@smithy/shared-ini-file-loader", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-arm-musl", + "source": "npm:@smithy/shared-ini-file-loader", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/signature-v4": [ { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-arm64-glibc", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/is-array-buffer", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-arm64-musl", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-x64-glibc", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-linux-x64-musl", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/util-hex-encoding", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-win32-arm64", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/util-middleware", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-win32-ia32", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/util-uri-escape", "type": "static" }, { - "source": "npm:@parcel/watcher", - "target": "npm:@parcel/watcher-win32-x64", - "type": "static" - } - ], - "npm:@phenomnomnominal/tsquery": [ - { - "source": "npm:@phenomnomnominal/tsquery", - "target": "npm:typescript", + "source": "npm:@smithy/signature-v4", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@phenomnomnominal/tsquery", - "target": "npm:esquery", + "source": "npm:@smithy/signature-v4", + "target": "npm:tslib", "type": "static" } ], - "npm:@pmmmwh/react-refresh-webpack-plugin": [ + "npm:@smithy/smithy-client": [ { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:react-refresh", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/core", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:type-fest", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/middleware-endpoint", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:webpack", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/middleware-stack", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:webpack-dev-server", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/protocol-http", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:ansi-html", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:core-js-pure", + "source": "npm:@smithy/smithy-client", + "target": "npm:@smithy/util-stream", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:error-stack-parser", + "source": "npm:@smithy/smithy-client", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/types": [ { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:html-entities", + "source": "npm:@smithy/types", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/url-parser": [ { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:loader-utils", + "source": "npm:@smithy/url-parser", + "target": "npm:@smithy/querystring-parser", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:schema-utils", + "source": "npm:@smithy/url-parser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@pmmmwh/react-refresh-webpack-plugin", - "target": "npm:source-map", + "source": "npm:@smithy/url-parser", + "target": "npm:tslib", "type": "static" } ], - "npm:@rollup/plugin-babel": [ + "npm:@smithy/util-base64": [ { - "source": "npm:@rollup/plugin-babel", - "target": "npm:@babel/core", + "source": "npm:@smithy/util-base64", + "target": "npm:@smithy/util-buffer-from", "type": "static" }, { - "source": "npm:@rollup/plugin-babel", - "target": "npm:@types/babel__core", + "source": "npm:@smithy/util-base64", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@rollup/plugin-babel", - "target": "npm:rollup", + "source": "npm:@smithy/util-base64", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/util-body-length-browser": [ { - "source": "npm:@rollup/plugin-babel", - "target": "npm:@babel/helper-module-imports", + "source": "npm:@smithy/util-body-length-browser", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/util-body-length-node": [ { - "source": "npm:@rollup/plugin-babel", - "target": "npm:@rollup/pluginutils", + "source": "npm:@smithy/util-body-length-node", + "target": "npm:tslib", "type": "static" } ], - "npm:@rollup/plugin-commonjs": [ + "npm:@smithy/util-buffer-from": [ { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:rollup", + "source": "npm:@smithy/util-buffer-from", + "target": "npm:@smithy/is-array-buffer", "type": "static" }, { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:@rollup/pluginutils", + "source": "npm:@smithy/util-buffer-from", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/util-config-provider": [ { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:commondir", + "source": "npm:@smithy/util-config-provider", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/util-defaults-mode-browser": [ { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:estree-walker", + "source": "npm:@smithy/util-defaults-mode-browser", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:glob@8.1.0", + "source": "npm:@smithy/util-defaults-mode-browser", + "target": "npm:@smithy/smithy-client", "type": "static" }, { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:is-reference", + "source": "npm:@smithy/util-defaults-mode-browser", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@rollup/plugin-commonjs", - "target": "npm:magic-string", + "source": "npm:@smithy/util-defaults-mode-browser", + "target": "npm:tslib", "type": "static" } ], - "npm:glob@8.1.0": [ + "npm:@smithy/util-defaults-mode-node": [ { - "source": "npm:glob@8.1.0", - "target": "npm:fs.realpath", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/config-resolver", "type": "static" }, { - "source": "npm:glob@8.1.0", - "target": "npm:inflight", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/credential-provider-imds", "type": "static" }, { - "source": "npm:glob@8.1.0", - "target": "npm:inherits", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:glob@8.1.0", - "target": "npm:minimatch@5.1.6", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/property-provider", "type": "static" }, { - "source": "npm:glob@8.1.0", - "target": "npm:once", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/smithy-client", "type": "static" - } - ], - "npm:minimatch@5.1.6": [ + }, { - "source": "npm:minimatch@5.1.6", - "target": "npm:brace-expansion@2.0.1", + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:@smithy/types", + "type": "static" + }, + { + "source": "npm:@smithy/util-defaults-mode-node", + "target": "npm:tslib", "type": "static" } ], - "npm:@rollup/plugin-image": [ + "npm:@smithy/util-endpoints": [ { - "source": "npm:@rollup/plugin-image", - "target": "npm:rollup", + "source": "npm:@smithy/util-endpoints", + "target": "npm:@smithy/node-config-provider", "type": "static" }, { - "source": "npm:@rollup/plugin-image", - "target": "npm:@rollup/pluginutils", + "source": "npm:@smithy/util-endpoints", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@rollup/plugin-image", - "target": "npm:mini-svg-data-uri", + "source": "npm:@smithy/util-endpoints", + "target": "npm:tslib", "type": "static" } ], - "npm:@rollup/plugin-json": [ + "npm:@smithy/util-hex-encoding": [ { - "source": "npm:@rollup/plugin-json", - "target": "npm:rollup", + "source": "npm:@smithy/util-hex-encoding", + "target": "npm:tslib", + "type": "static" + } + ], + "npm:@smithy/util-middleware": [ + { + "source": "npm:@smithy/util-middleware", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@rollup/plugin-json", - "target": "npm:@rollup/pluginutils", + "source": "npm:@smithy/util-middleware", + "target": "npm:tslib", "type": "static" } ], - "npm:@rollup/plugin-node-resolve": [ + "npm:@smithy/util-retry": [ { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:rollup", + "source": "npm:@smithy/util-retry", + "target": "npm:@smithy/service-error-classification", "type": "static" }, { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:@rollup/pluginutils", + "source": "npm:@smithy/util-retry", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:@types/resolve", + "source": "npm:@smithy/util-retry", + "target": "npm:tslib", "type": "static" - }, + } + ], + "npm:@smithy/util-stream": [ { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:deepmerge", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/fetch-http-handler", "type": "static" }, { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:is-module", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/node-http-handler", "type": "static" }, { - "source": "npm:@rollup/plugin-node-resolve", - "target": "npm:resolve", - "type": "static" - } - ], - "npm:@rollup/pluginutils": [ - { - "source": "npm:@rollup/pluginutils", - "target": "npm:rollup", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/types", "type": "static" }, { - "source": "npm:@rollup/pluginutils", - "target": "npm:@types/estree", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/util-base64", "type": "static" }, { - "source": "npm:@rollup/pluginutils", - "target": "npm:estree-walker", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/util-buffer-from", "type": "static" }, { - "source": "npm:@rollup/pluginutils", - "target": "npm:picomatch", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/util-hex-encoding", "type": "static" - } - ], - "npm:@sendgrid/client": [ + }, { - "source": "npm:@sendgrid/client", - "target": "npm:@sendgrid/helpers", + "source": "npm:@smithy/util-stream", + "target": "npm:@smithy/util-utf8", "type": "static" }, { - "source": "npm:@sendgrid/client", - "target": "npm:axios", + "source": "npm:@smithy/util-stream", + "target": "npm:tslib", "type": "static" } ], - "npm:@sendgrid/helpers": [ + "npm:@smithy/util-uri-escape": [ { - "source": "npm:@sendgrid/helpers", - "target": "npm:deepmerge", + "source": "npm:@smithy/util-uri-escape", + "target": "npm:tslib", "type": "static" } ], - "npm:@sendgrid/mail": [ + "npm:@smithy/util-utf8": [ { - "source": "npm:@sendgrid/mail", - "target": "npm:@sendgrid/client", + "source": "npm:@smithy/util-utf8", + "target": "npm:@smithy/util-buffer-from", "type": "static" }, { - "source": "npm:@sendgrid/mail", - "target": "npm:@sendgrid/helpers", + "source": "npm:@smithy/util-utf8", + "target": "npm:tslib", "type": "static" } ], - "npm:@sinonjs/commons": [ + "npm:@smithy/util-waiter": [ { - "source": "npm:@sinonjs/commons", - "target": "npm:type-detect", + "source": "npm:@smithy/util-waiter", + "target": "npm:@smithy/abort-controller", + "type": "static" + }, + { + "source": "npm:@smithy/util-waiter", + "target": "npm:@smithy/types", + "type": "static" + }, + { + "source": "npm:@smithy/util-waiter", + "target": "npm:tslib", "type": "static" } ], - "npm:@sinonjs/fake-timers": [ + "npm:@smithy/uuid": [ { - "source": "npm:@sinonjs/fake-timers", - "target": "npm:@sinonjs/commons", + "source": "npm:@smithy/uuid", + "target": "npm:tslib", "type": "static" } ], @@ -20057,7 +24485,7 @@ }, { "source": "npm:@swc/cli", - "target": "npm:commander@8.3.0", + "target": "npm:commander", "type": "static" }, { @@ -20067,7 +24495,7 @@ }, { "source": "npm:@swc/cli", - "target": "npm:minimatch@9.0.5", + "target": "npm:minimatch", "type": "static" }, { @@ -20082,7 +24510,7 @@ }, { "source": "npm:@swc/cli", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -20091,13 +24519,6 @@ "type": "static" } ], - "npm:minimatch@9.0.5": [ - { - "source": "npm:minimatch@9.0.5", - "target": "npm:brace-expansion@2.0.1", - "type": "static" - } - ], "npm:@swc/core": [ { "source": "npm:@swc/core", @@ -20280,13 +24701,6 @@ "type": "static" } ], - "npm:@types/bson": [ - { - "source": "npm:@types/bson", - "target": "npm:@types/node", - "type": "static" - } - ], "npm:@types/cacheable-request": [ { "source": "npm:@types/cacheable-request", @@ -20508,6 +24922,18 @@ "type": "static" } ], + "npm:@types/jsonwebtoken": [ + { + "source": "npm:@types/jsonwebtoken", + "target": "npm:@types/ms", + "type": "static" + }, + { + "source": "npm:@types/jsonwebtoken", + "target": "npm:@types/node", + "type": "static" + } + ], "npm:@types/keyv": [ { "source": "npm:@types/keyv", @@ -20515,15 +24941,17 @@ "type": "static" } ], - "npm:@types/mongodb": [ + "npm:@types/minimatch": [ { - "source": "npm:@types/mongodb", - "target": "npm:@types/bson", + "source": "npm:@types/minimatch", + "target": "npm:minimatch", "type": "static" - }, + } + ], + "npm:@types/mongodb": [ { "source": "npm:@types/mongodb", - "target": "npm:@types/node", + "target": "npm:mongodb", "type": "static" } ], @@ -20707,7 +25135,7 @@ }, { "source": "npm:@typescript-eslint/project-service", - "target": "npm:@typescript-eslint/types@8.34.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { @@ -20804,6 +25232,13 @@ "type": "static" } ], + "npm:minimatch@9.0.5": [ + { + "source": "npm:minimatch@9.0.5", + "target": "npm:brace-expansion", + "type": "static" + } + ], "npm:@typescript-eslint/utils": [ { "source": "npm:@typescript-eslint/utils", @@ -21082,7 +25517,7 @@ "npm:@yarnpkg/parsers": [ { "source": "npm:@yarnpkg/parsers", - "target": "npm:js-yaml@3.14.1", + "target": "npm:js-yaml", "type": "static" }, { @@ -21094,7 +25529,7 @@ "npm:@zkochan/js-yaml": [ { "source": "npm:@zkochan/js-yaml", - "target": "npm:argparse", + "target": "npm:argparse@2.0.1", "type": "static" } ], @@ -21129,6 +25564,13 @@ "type": "static" } ], + "npm:acorn-import-phases": [ + { + "source": "npm:acorn-import-phases", + "target": "npm:acorn", + "type": "static" + } + ], "npm:acorn-jsx": [ { "source": "npm:acorn-jsx", @@ -21158,7 +25600,7 @@ }, { "source": "npm:ajv", - "target": "npm:fast-json-stable-stringify", + "target": "npm:fast-uri", "type": "static" }, { @@ -21168,14 +25610,14 @@ }, { "source": "npm:ajv", - "target": "npm:uri-js", + "target": "npm:require-from-string", "type": "static" } ], "npm:ajv-formats": [ { "source": "npm:ajv-formats", - "target": "npm:ajv@8.17.1", + "target": "npm:ajv", "type": "static" } ], @@ -21184,12 +25626,17 @@ "source": "npm:ajv-keywords", "target": "npm:ajv", "type": "static" + }, + { + "source": "npm:ajv-keywords", + "target": "npm:fast-deep-equal", + "type": "static" } ], "npm:ansi-escapes": [ { "source": "npm:ansi-escapes", - "target": "npm:type-fest", + "target": "npm:type-fest@0.21.3", "type": "static" } ], @@ -21212,6 +25659,13 @@ "type": "static" } ], + "npm:argparse": [ + { + "source": "npm:argparse", + "target": "npm:sprintf-js", + "type": "static" + } + ], "npm:array-buffer-byte-length": [ { "source": "npm:array-buffer-byte-length", @@ -21521,58 +25975,6 @@ "type": "static" } ], - "npm:aws-sdk": [ - { - "source": "npm:aws-sdk", - "target": "npm:buffer", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:events", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:ieee754", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:jmespath", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:querystring", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:sax", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:url", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:util", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:uuid", - "type": "static" - }, - { - "source": "npm:aws-sdk", - "target": "npm:xml2js", - "type": "static" - } - ], "npm:axios": [ { "source": "npm:axios", @@ -21628,7 +26030,7 @@ }, { "source": "npm:babel-jest", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" } ], @@ -21792,7 +26194,7 @@ }, { "source": "npm:cosmiconfig@6.0.0", - "target": "npm:yaml", + "target": "npm:yaml@1.10.2", "type": "static" } ], @@ -22177,11 +26579,6 @@ "source": "npm:brace-expansion", "target": "npm:balanced-match", "type": "static" - }, - { - "source": "npm:brace-expansion", - "target": "npm:concat-map", - "type": "static" } ], "npm:braces": [ @@ -22227,23 +26624,6 @@ "type": "static" } ], - "npm:buffer": [ - { - "source": "npm:buffer", - "target": "npm:base64-js", - "type": "static" - }, - { - "source": "npm:buffer", - "target": "npm:ieee754", - "type": "static" - }, - { - "source": "npm:buffer", - "target": "npm:isarray", - "type": "static" - } - ], "npm:cacheable-request": [ { "source": "npm:cacheable-request", @@ -22381,7 +26761,7 @@ }, { "source": "npm:chokidar", - "target": "npm:glob-parent", + "target": "npm:glob-parent@5.1.2", "type": "static" }, { @@ -22410,6 +26790,13 @@ "type": "static" } ], + "npm:glob-parent@5.1.2": [ + { + "source": "npm:glob-parent@5.1.2", + "target": "npm:is-glob", + "type": "static" + } + ], "npm:cli-cursor": [ { "source": "npm:cli-cursor", @@ -22613,7 +27000,7 @@ }, { "source": "npm:copy-webpack-plugin", - "target": "npm:glob-parent@6.0.2", + "target": "npm:glob-parent", "type": "static" }, { @@ -22637,13 +27024,6 @@ "type": "static" } ], - "npm:glob-parent@6.0.2": [ - { - "source": "npm:glob-parent@6.0.2", - "target": "npm:is-glob", - "type": "static" - } - ], "npm:globby@12.2.0": [ { "source": "npm:globby@12.2.0", @@ -22696,7 +27076,7 @@ }, { "source": "npm:cosmiconfig", - "target": "npm:js-yaml", + "target": "npm:js-yaml@4.1.0", "type": "static" }, { @@ -23327,7 +27707,7 @@ "npm:dotenv-expand": [ { "source": "npm:dotenv-expand", - "target": "npm:dotenv", + "target": "npm:dotenv@16.6.1", "type": "static" } ], @@ -23348,6 +27728,28 @@ "type": "static" } ], + "npm:duplexify": [ + { + "source": "npm:duplexify", + "target": "npm:end-of-stream", + "type": "static" + }, + { + "source": "npm:duplexify", + "target": "npm:inherits", + "type": "static" + }, + { + "source": "npm:duplexify", + "target": "npm:readable-stream", + "type": "static" + }, + { + "source": "npm:duplexify", + "target": "npm:stream-shift", + "type": "static" + } + ], "npm:ecdsa-sig-formatter": [ { "source": "npm:ecdsa-sig-formatter", @@ -23851,12 +28253,12 @@ }, { "source": "npm:eslint", - "target": "npm:@eslint/eslintrc@2.1.4", + "target": "npm:@eslint/eslintrc", "type": "static" }, { "source": "npm:eslint", - "target": "npm:@eslint/js@8.57.1", + "target": "npm:@eslint/js", "type": "static" }, { @@ -23881,7 +28283,7 @@ }, { "source": "npm:eslint", - "target": "npm:ajv", + "target": "npm:ajv@6.12.6", "type": "static" }, { @@ -23921,7 +28323,7 @@ }, { "source": "npm:eslint", - "target": "npm:espree@9.6.1", + "target": "npm:espree", "type": "static" }, { @@ -23951,12 +28353,12 @@ }, { "source": "npm:eslint", - "target": "npm:glob-parent@6.0.2", + "target": "npm:glob-parent", "type": "static" }, { "source": "npm:eslint", - "target": "npm:globals@13.24.0", + "target": "npm:globals", "type": "static" }, { @@ -23986,7 +28388,7 @@ }, { "source": "npm:eslint", - "target": "npm:js-yaml", + "target": "npm:js-yaml@4.1.0", "type": "static" }, { @@ -24006,7 +28408,7 @@ }, { "source": "npm:eslint", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -24170,7 +28572,7 @@ }, { "source": "npm:eslint-plugin-import", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -24303,7 +28705,7 @@ }, { "source": "npm:eslint-plugin-jsx-a11y", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -24419,7 +28821,7 @@ }, { "source": "npm:eslint-plugin-react", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -24499,70 +28901,6 @@ "type": "static" } ], - "npm:@eslint/eslintrc@2.1.4": [ - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:ajv", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:debug", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:espree@9.6.1", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:globals@13.24.0", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:ignore", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:import-fresh", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:js-yaml", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:minimatch", - "type": "static" - }, - { - "source": "npm:@eslint/eslintrc@2.1.4", - "target": "npm:strip-json-comments", - "type": "static" - } - ], - "npm:espree@9.6.1": [ - { - "source": "npm:espree@9.6.1", - "target": "npm:acorn", - "type": "static" - }, - { - "source": "npm:espree@9.6.1", - "target": "npm:acorn-jsx", - "type": "static" - }, - { - "source": "npm:espree@9.6.1", - "target": "npm:eslint-visitor-keys", - "type": "static" - } - ], "npm:find-up@5.0.0": [ { "source": "npm:find-up@5.0.0", @@ -24575,13 +28913,6 @@ "type": "static" } ], - "npm:globals@13.24.0": [ - { - "source": "npm:globals@13.24.0", - "target": "npm:type-fest@0.20.2", - "type": "static" - } - ], "npm:locate-path@6.0.0": [ { "source": "npm:locate-path@6.0.0", @@ -24609,7 +28940,7 @@ }, { "source": "npm:espree", - "target": "npm:eslint-visitor-keys@4.2.1", + "target": "npm:eslint-visitor-keys", "type": "static" } ], @@ -24937,7 +29268,7 @@ }, { "source": "npm:fast-glob", - "target": "npm:glob-parent", + "target": "npm:glob-parent@5.1.2", "type": "static" }, { @@ -24959,7 +29290,7 @@ }, { "source": "npm:fast-json-stringify", - "target": "npm:ajv@8.17.1", + "target": "npm:ajv", "type": "static" }, { @@ -25012,6 +29343,13 @@ "type": "static" } ], + "npm:fast-xml-parser": [ + { + "source": "npm:fast-xml-parser", + "target": "npm:strnum", + "type": "static" + } + ], "npm:fastfall": [ { "source": "npm:fastfall", @@ -25096,22 +29434,49 @@ "type": "static" } ], - "npm:fastify-mongoose-driver": [ + "npm:fastify-raw-body": [ { - "source": "npm:fastify-mongoose-driver", - "target": "npm:fastify-plugin@1.6.1", + "source": "npm:fastify-raw-body", + "target": "npm:fastify-plugin", "type": "static" }, { - "source": "npm:fastify-mongoose-driver", - "target": "npm:mongoose", + "source": "npm:fastify-raw-body", + "target": "npm:raw-body@3.0.1", + "type": "static" + }, + { + "source": "npm:fastify-raw-body", + "target": "npm:secure-json-parse@2.7.0", "type": "static" } ], - "npm:fastify-plugin@1.6.1": [ + "npm:iconv-lite@0.7.0": [ { - "source": "npm:fastify-plugin@1.6.1", - "target": "npm:semver", + "source": "npm:iconv-lite@0.7.0", + "target": "npm:safer-buffer", + "type": "static" + } + ], + "npm:raw-body@3.0.1": [ + { + "source": "npm:raw-body@3.0.1", + "target": "npm:bytes", + "type": "static" + }, + { + "source": "npm:raw-body@3.0.1", + "target": "npm:http-errors", + "type": "static" + }, + { + "source": "npm:raw-body@3.0.1", + "target": "npm:iconv-lite@0.7.0", + "type": "static" + }, + { + "source": "npm:raw-body@3.0.1", + "target": "npm:unpipe", "type": "static" } ], @@ -25191,6 +29556,13 @@ "type": "static" } ], + "npm:ajv-keywords@3.5.2": [ + { + "source": "npm:ajv-keywords@3.5.2", + "target": "npm:ajv@6.12.6", + "type": "static" + } + ], "npm:schema-utils@3.3.0": [ { "source": "npm:schema-utils@3.3.0", @@ -25199,12 +29571,12 @@ }, { "source": "npm:schema-utils@3.3.0", - "target": "npm:ajv", + "target": "npm:ajv@6.12.6", "type": "static" }, { "source": "npm:schema-utils@3.3.0", - "target": "npm:ajv-keywords", + "target": "npm:ajv-keywords@3.5.2", "type": "static" } ], @@ -25432,7 +29804,7 @@ }, { "source": "npm:fork-ts-checker-webpack-plugin", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -25479,7 +29851,7 @@ }, { "source": "npm:cosmiconfig@7.1.0", - "target": "npm:yaml", + "target": "npm:yaml@1.10.2", "type": "static" } ], @@ -25530,7 +29902,7 @@ "npm:front-matter": [ { "source": "npm:front-matter", - "target": "npm:js-yaml@3.14.1", + "target": "npm:js-yaml", "type": "static" } ], @@ -25689,7 +30061,7 @@ }, { "source": "npm:glob", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -25710,6 +30082,13 @@ "type": "static" } ], + "npm:globals": [ + { + "source": "npm:globals", + "target": "npm:type-fest", + "type": "static" + } + ], "npm:globalthis": [ { "source": "npm:globalthis", @@ -25750,7 +30129,7 @@ }, { "source": "npm:globby", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" } ], @@ -25767,7 +30146,7 @@ }, { "source": "npm:fast-glob@3.3.3", - "target": "npm:glob-parent", + "target": "npm:glob-parent@5.1.2", "type": "static" }, { @@ -26072,7 +30451,7 @@ }, { "source": "npm:http-server", - "target": "npm:mime", + "target": "npm:mime@1.6.0", "type": "static" }, { @@ -26225,18 +30604,6 @@ "type": "static" } ], - "npm:is-arguments": [ - { - "source": "npm:is-arguments", - "target": "npm:call-bound", - "type": "static" - }, - { - "source": "npm:is-arguments", - "target": "npm:has-tostringtag", - "type": "static" - } - ], "npm:is-array-buffer": [ { "source": "npm:is-array-buffer", @@ -26601,18 +30968,6 @@ "type": "static" } ], - "npm:jackspeak": [ - { - "source": "npm:jackspeak", - "target": "npm:@isaacs/cliui", - "type": "static" - }, - { - "source": "npm:jackspeak", - "target": "npm:@pkgjs/parseargs", - "type": "static" - } - ], "npm:jake": [ { "source": "npm:jake", @@ -26631,7 +30986,7 @@ }, { "source": "npm:jake", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" } ], @@ -26767,7 +31122,7 @@ }, { "source": "npm:jest-circus", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -26970,7 +31325,7 @@ }, { "source": "npm:jest-config", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -27243,7 +31598,7 @@ }, { "source": "npm:jest-message-util", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -27319,7 +31674,7 @@ }, { "source": "npm:jest-resolve", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" } ], @@ -27557,7 +31912,7 @@ }, { "source": "npm:jest-runtime", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" }, { @@ -27801,6 +32156,11 @@ "source": "npm:js-yaml", "target": "npm:argparse", "type": "static" + }, + { + "source": "npm:js-yaml", + "target": "npm:esprima", + "type": "static" } ], "npm:jsdom": [ @@ -27972,7 +32332,7 @@ }, { "source": "npm:jsonc-eslint-parser", - "target": "npm:espree@9.6.1", + "target": "npm:espree", "type": "static" }, { @@ -27993,6 +32353,58 @@ "type": "static" } ], + "npm:jsonwebtoken": [ + { + "source": "npm:jsonwebtoken", + "target": "npm:jws", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.includes", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.isboolean", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.isinteger", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.isnumber", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.isplainobject", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.isstring", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:lodash.once", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:ms", + "type": "static" + }, + { + "source": "npm:jsonwebtoken", + "target": "npm:semver@7.7.3", + "type": "static" + } + ], "npm:jsx-ast-utils": [ { "source": "npm:jsx-ast-utils", @@ -28015,6 +32427,35 @@ "type": "static" } ], + "npm:jwa": [ + { + "source": "npm:jwa", + "target": "npm:buffer-equal-constant-time", + "type": "static" + }, + { + "source": "npm:jwa", + "target": "npm:ecdsa-sig-formatter", + "type": "static" + }, + { + "source": "npm:jwa", + "target": "npm:safe-buffer", + "type": "static" + } + ], + "npm:jws": [ + { + "source": "npm:jws", + "target": "npm:jwa", + "type": "static" + }, + { + "source": "npm:jws", + "target": "npm:safe-buffer", + "type": "static" + } + ], "npm:keyv": [ { "source": "npm:keyv", @@ -28079,7 +32520,7 @@ }, { "source": "npm:less", - "target": "npm:mime", + "target": "npm:mime@1.6.0", "type": "static" }, { @@ -28239,7 +32680,7 @@ "npm:markdown-it": [ { "source": "npm:markdown-it", - "target": "npm:argparse", + "target": "npm:argparse@2.0.1", "type": "static" }, { @@ -28288,7 +32729,7 @@ }, { "source": "npm:markdownlint-cli2", - "target": "npm:js-yaml", + "target": "npm:js-yaml@4.1.0", "type": "static" }, { @@ -28451,170 +32892,6 @@ "type": "static" } ], - "npm:mongoose": [ - { - "source": "npm:mongoose", - "target": "npm:@types/bson", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:@types/mongodb", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:bson@1.1.6", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:kareem", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:mongodb@3.7.4", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:mongoose-legacy-pluralize", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:mpath", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:mquery", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:ms@2.1.2", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:optional-require", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:regexp-clone", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:safe-buffer", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:sift", - "type": "static" - }, - { - "source": "npm:mongoose", - "target": "npm:sliced", - "type": "static" - } - ], - "npm:mongoose-legacy-pluralize": [ - { - "source": "npm:mongoose-legacy-pluralize", - "target": "npm:mongoose", - "type": "static" - } - ], - "npm:bl@2.2.1": [ - { - "source": "npm:bl@2.2.1", - "target": "npm:readable-stream@2.3.8", - "type": "static" - }, - { - "source": "npm:bl@2.2.1", - "target": "npm:safe-buffer", - "type": "static" - } - ], - "npm:mongodb@3.7.4": [ - { - "source": "npm:mongodb@3.7.4", - "target": "npm:bl@2.2.1", - "type": "static" - }, - { - "source": "npm:mongodb@3.7.4", - "target": "npm:bson@1.1.6", - "type": "static" - }, - { - "source": "npm:mongodb@3.7.4", - "target": "npm:denque", - "type": "static" - }, - { - "source": "npm:mongodb@3.7.4", - "target": "npm:optional-require@1.1.8", - "type": "static" - }, - { - "source": "npm:mongodb@3.7.4", - "target": "npm:safe-buffer", - "type": "static" - }, - { - "source": "npm:mongodb@3.7.4", - "target": "npm:saslprep", - "type": "static" - } - ], - "npm:optional-require@1.1.8": [ - { - "source": "npm:optional-require@1.1.8", - "target": "npm:require-at", - "type": "static" - } - ], - "npm:mquery": [ - { - "source": "npm:mquery", - "target": "npm:bluebird", - "type": "static" - }, - { - "source": "npm:mquery", - "target": "npm:debug@3.1.0", - "type": "static" - }, - { - "source": "npm:mquery", - "target": "npm:regexp-clone", - "type": "static" - }, - { - "source": "npm:mquery", - "target": "npm:safe-buffer@5.1.2", - "type": "static" - }, - { - "source": "npm:mquery", - "target": "npm:sliced", - "type": "static" - } - ], - "npm:debug@3.1.0": [ - { - "source": "npm:debug@3.1.0", - "target": "npm:ms@2.0.0", - "type": "static" - } - ], "npm:multicast-dns": [ { "source": "npm:multicast-dns", @@ -28651,13 +32928,6 @@ "type": "static" } ], - "npm:node-cron": [ - { - "source": "npm:node-cron", - "target": "npm:uuid@8.3.2", - "type": "static" - } - ], "npm:nodemon": [ { "source": "npm:nodemon", @@ -28676,7 +32946,7 @@ }, { "source": "npm:nodemon", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -28866,7 +33136,7 @@ }, { "source": "npm:nx", - "target": "npm:minimatch@9.0.3", + "target": "npm:minimatch", "type": "static" }, { @@ -29320,7 +33590,7 @@ "npm:path-scurry": [ { "source": "npm:path-scurry", - "target": "npm:lru-cache@10.4.3", + "target": "npm:lru-cache@11.2.4", "type": "static" }, { @@ -29332,12 +33602,12 @@ "npm:pino": [ { "source": "npm:pino", - "target": "npm:atomic-sleep", + "target": "npm:@pinojs/redact", "type": "static" }, { "source": "npm:pino", - "target": "npm:fast-redact", + "target": "npm:atomic-sleep", "type": "static" }, { @@ -29598,7 +33868,7 @@ }, { "source": "npm:postcss-load-config", - "target": "npm:yaml", + "target": "npm:yaml@1.10.2", "type": "static" } ], @@ -30430,7 +34700,7 @@ }, { "source": "npm:glob@10.4.5", - "target": "npm:jackspeak", + "target": "npm:jackspeak@3.4.3", "type": "static" }, { @@ -30450,14 +34720,38 @@ }, { "source": "npm:glob@10.4.5", - "target": "npm:path-scurry", + "target": "npm:path-scurry@1.11.1", + "type": "static" + } + ], + "npm:jackspeak@3.4.3": [ + { + "source": "npm:jackspeak@3.4.3", + "target": "npm:@isaacs/cliui", + "type": "static" + }, + { + "source": "npm:jackspeak@3.4.3", + "target": "npm:@pkgjs/parseargs", + "type": "static" + } + ], + "npm:path-scurry@1.11.1": [ + { + "source": "npm:path-scurry@1.11.1", + "target": "npm:lru-cache@10.4.3", + "type": "static" + }, + { + "source": "npm:path-scurry@1.11.1", + "target": "npm:minipass", "type": "static" } ], "npm:rollup": [ { "source": "npm:rollup", - "target": "npm:@types/estree@1.0.7", + "target": "npm:@types/estree", "type": "static" }, { @@ -30537,7 +34831,7 @@ }, { "source": "npm:rollup", - "target": "npm:@rollup/rollup-linux-x64-gnu@4.42.0", + "target": "npm:@rollup/rollup-linux-x64-gnu@4.45.1", "type": "static" }, { @@ -30648,7 +34942,7 @@ }, { "source": "npm:globby@10.0.1", - "target": "npm:slash@3.0.0", + "target": "npm:slash", "type": "static" } ], @@ -30795,7 +35089,7 @@ }, { "source": "npm:cssnano@5.1.15", - "target": "npm:yaml", + "target": "npm:yaml@1.10.2", "type": "static" } ], @@ -31606,13 +35900,6 @@ "type": "static" } ], - "npm:saslprep": [ - { - "source": "npm:saslprep", - "target": "npm:sparse-bitfield", - "type": "static" - } - ], "npm:sass": [ { "source": "npm:sass", @@ -31679,7 +35966,7 @@ }, { "source": "npm:schema-utils", - "target": "npm:ajv@8.17.1", + "target": "npm:ajv", "type": "static" }, { @@ -31689,26 +35976,14 @@ }, { "source": "npm:schema-utils", - "target": "npm:ajv-keywords@5.1.0", + "target": "npm:ajv-keywords", "type": "static" } ], "npm:ajv-formats@2.1.1": [ { "source": "npm:ajv-formats@2.1.1", - "target": "npm:ajv@8.17.1", - "type": "static" - } - ], - "npm:ajv-keywords@5.1.0": [ - { - "source": "npm:ajv-keywords@5.1.0", - "target": "npm:ajv@8.17.1", - "type": "static" - }, - { - "source": "npm:ajv-keywords@5.1.0", - "target": "npm:fast-deep-equal", + "target": "npm:ajv", "type": "static" } ], @@ -31774,7 +36049,7 @@ }, { "source": "npm:send", - "target": "npm:mime", + "target": "npm:mime@1.6.0", "type": "static" }, { @@ -32760,7 +37035,7 @@ }, { "source": "npm:test-exclude", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" } ], @@ -32861,27 +37136,27 @@ }, { "source": "npm:ts-jest", - "target": "npm:typescript", + "target": "npm:jest-util", "type": "static" }, { "source": "npm:ts-jest", - "target": "npm:bs-logger", + "target": "npm:typescript", "type": "static" }, { "source": "npm:ts-jest", - "target": "npm:ejs", + "target": "npm:bs-logger", "type": "static" }, { "source": "npm:ts-jest", - "target": "npm:fast-json-stable-stringify", + "target": "npm:ejs", "type": "static" }, { "source": "npm:ts-jest", - "target": "npm:jest-util", + "target": "npm:fast-json-stable-stringify", "type": "static" }, { @@ -33213,305 +37488,270 @@ }, { "source": "npm:typescript-eslint", - "target": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:@typescript-eslint/eslint-plugin@8.38.0", "type": "static" }, { "source": "npm:typescript-eslint", - "target": "npm:@typescript-eslint/parser@8.34.0", + "target": "npm:@typescript-eslint/parser@8.38.0", "type": "static" }, { "source": "npm:typescript-eslint", - "target": "npm:@typescript-eslint/utils@8.34.0", + "target": "npm:@typescript-eslint/typescript-estree@8.38.0", + "type": "static" + }, + { + "source": "npm:typescript-eslint", + "target": "npm:@typescript-eslint/utils@8.38.0", "type": "static" } ], - "npm:@typescript-eslint/eslint-plugin@8.34.0": [ + "npm:@typescript-eslint/eslint-plugin@8.38.0": [ { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:@typescript-eslint/parser@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "target": "npm:@typescript-eslint/parser@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:eslint", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:typescript", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:@eslint-community/regexpp", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:@typescript-eslint/scope-manager@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "target": "npm:@typescript-eslint/scope-manager@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:@typescript-eslint/type-utils@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "target": "npm:@typescript-eslint/type-utils@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:@typescript-eslint/utils@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "target": "npm:@typescript-eslint/utils@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", + "target": "npm:@typescript-eslint/visitor-keys@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:graphemer", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:ignore@7.0.5", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:natural-compare", "type": "static" }, { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "source": "npm:@typescript-eslint/eslint-plugin@8.38.0", "target": "npm:ts-api-utils@2.1.0", "type": "static" - }, - { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:eslint@9.28.0", - "type": "static" - }, - { - "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", - "target": "npm:typescript@5.8.3", - "type": "static" } ], - "npm:@typescript-eslint/parser@8.34.0": [ + "npm:@typescript-eslint/parser@8.38.0": [ { - "source": "npm:@typescript-eslint/parser@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", "target": "npm:eslint", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", "target": "npm:typescript", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", - "target": "npm:@typescript-eslint/scope-manager@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", + "target": "npm:@typescript-eslint/scope-manager@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", - "target": "npm:@typescript-eslint/types@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", - "target": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", + "target": "npm:@typescript-eslint/typescript-estree@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", - "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", + "target": "npm:@typescript-eslint/visitor-keys@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/parser@8.34.0", + "source": "npm:@typescript-eslint/parser@8.38.0", "target": "npm:debug", "type": "static" - }, - { - "source": "npm:@typescript-eslint/parser@8.34.0", - "target": "npm:eslint@9.28.0", - "type": "static" - }, - { - "source": "npm:@typescript-eslint/parser@8.34.0", - "target": "npm:typescript@5.8.3", - "type": "static" } ], - "npm:@typescript-eslint/scope-manager@8.34.0": [ + "npm:@typescript-eslint/scope-manager@8.38.0": [ { - "source": "npm:@typescript-eslint/scope-manager@8.34.0", - "target": "npm:@typescript-eslint/types@8.34.0", + "source": "npm:@typescript-eslint/scope-manager@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/scope-manager@8.34.0", - "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "source": "npm:@typescript-eslint/scope-manager@8.38.0", + "target": "npm:@typescript-eslint/visitor-keys@8.38.0", "type": "static" } ], - "npm:@typescript-eslint/type-utils@8.34.0": [ + "npm:@typescript-eslint/type-utils@8.38.0": [ { - "source": "npm:@typescript-eslint/type-utils@8.34.0", + "source": "npm:@typescript-eslint/type-utils@8.38.0", "target": "npm:eslint", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", + "source": "npm:@typescript-eslint/type-utils@8.38.0", "target": "npm:typescript", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", - "target": "npm:@typescript-eslint/typescript-estree@8.34.0", - "type": "static" - }, - { - "source": "npm:@typescript-eslint/type-utils@8.34.0", - "target": "npm:@typescript-eslint/utils@8.34.0", + "source": "npm:@typescript-eslint/type-utils@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", - "target": "npm:debug", + "source": "npm:@typescript-eslint/type-utils@8.38.0", + "target": "npm:@typescript-eslint/typescript-estree@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", - "target": "npm:ts-api-utils@2.1.0", + "source": "npm:@typescript-eslint/type-utils@8.38.0", + "target": "npm:@typescript-eslint/utils@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", - "target": "npm:eslint@9.28.0", + "source": "npm:@typescript-eslint/type-utils@8.38.0", + "target": "npm:debug", "type": "static" }, { - "source": "npm:@typescript-eslint/type-utils@8.34.0", - "target": "npm:typescript@5.8.3", + "source": "npm:@typescript-eslint/type-utils@8.38.0", + "target": "npm:ts-api-utils@2.1.0", "type": "static" } ], - "npm:@typescript-eslint/typescript-estree@8.34.0": [ + "npm:@typescript-eslint/typescript-estree@8.38.0": [ { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:typescript", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:@typescript-eslint/project-service", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:@typescript-eslint/tsconfig-utils", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", - "target": "npm:@typescript-eslint/types@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", - "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", + "target": "npm:@typescript-eslint/visitor-keys@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:debug", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:fast-glob@3.3.3", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:is-glob", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:minimatch@9.0.5", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:semver@7.7.2", "type": "static" }, { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/typescript-estree@8.38.0", "target": "npm:ts-api-utils@2.1.0", "type": "static" - }, - { - "source": "npm:@typescript-eslint/typescript-estree@8.34.0", - "target": "npm:typescript@5.8.3", - "type": "static" } ], - "npm:@typescript-eslint/utils@8.34.0": [ + "npm:@typescript-eslint/utils@8.38.0": [ { - "source": "npm:@typescript-eslint/utils@8.34.0", + "source": "npm:@typescript-eslint/utils@8.38.0", "target": "npm:eslint", "type": "static" }, { - "source": "npm:@typescript-eslint/utils@8.34.0", + "source": "npm:@typescript-eslint/utils@8.38.0", "target": "npm:typescript", "type": "static" }, { - "source": "npm:@typescript-eslint/utils@8.34.0", + "source": "npm:@typescript-eslint/utils@8.38.0", "target": "npm:@eslint-community/eslint-utils", "type": "static" }, { - "source": "npm:@typescript-eslint/utils@8.34.0", - "target": "npm:@typescript-eslint/scope-manager@8.34.0", - "type": "static" - }, - { - "source": "npm:@typescript-eslint/utils@8.34.0", - "target": "npm:@typescript-eslint/types@8.34.0", - "type": "static" - }, - { - "source": "npm:@typescript-eslint/utils@8.34.0", - "target": "npm:@typescript-eslint/typescript-estree@8.34.0", + "source": "npm:@typescript-eslint/utils@8.38.0", + "target": "npm:@typescript-eslint/scope-manager@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/utils@8.34.0", - "target": "npm:eslint@9.28.0", + "source": "npm:@typescript-eslint/utils@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/utils@8.34.0", - "target": "npm:typescript@5.8.3", + "source": "npm:@typescript-eslint/utils@8.38.0", + "target": "npm:@typescript-eslint/typescript-estree@8.38.0", "type": "static" } ], - "npm:@typescript-eslint/visitor-keys@8.34.0": [ + "npm:@typescript-eslint/visitor-keys@8.38.0": [ { - "source": "npm:@typescript-eslint/visitor-keys@8.34.0", - "target": "npm:@typescript-eslint/types@8.34.0", + "source": "npm:@typescript-eslint/visitor-keys@8.38.0", + "target": "npm:@typescript-eslint/types@8.38.0", "type": "static" }, { - "source": "npm:@typescript-eslint/visitor-keys@8.34.0", + "source": "npm:@typescript-eslint/visitor-keys@8.38.0", "target": "npm:eslint-visitor-keys@4.2.1", "type": "static" } @@ -33593,18 +37833,6 @@ "type": "static" } ], - "npm:url": [ - { - "source": "npm:url", - "target": "npm:punycode@1.3.2", - "type": "static" - }, - { - "source": "npm:url", - "target": "npm:querystring", - "type": "static" - } - ], "npm:url-parse": [ { "source": "npm:url-parse", @@ -33617,33 +37845,6 @@ "type": "static" } ], - "npm:util": [ - { - "source": "npm:util", - "target": "npm:inherits", - "type": "static" - }, - { - "source": "npm:util", - "target": "npm:is-arguments", - "type": "static" - }, - { - "source": "npm:util", - "target": "npm:is-generator-function", - "type": "static" - }, - { - "source": "npm:util", - "target": "npm:is-typed-array", - "type": "static" - }, - { - "source": "npm:util", - "target": "npm:which-typed-array", - "type": "static" - } - ], "npm:v8-to-istanbul": [ { "source": "npm:v8-to-istanbul", @@ -33737,6 +37938,11 @@ "target": "npm:acorn", "type": "static" }, + { + "source": "npm:webpack", + "target": "npm:acorn-import-phases", + "type": "static" + }, { "source": "npm:webpack", "target": "npm:browserslist", @@ -34367,18 +38573,6 @@ "type": "static" } ], - "npm:xml2js": [ - { - "source": "npm:xml2js", - "target": "npm:sax", - "type": "static" - }, - { - "source": "npm:xml2js", - "target": "npm:xmlbuilder", - "type": "static" - } - ], "npm:yargs": [ { "source": "npm:yargs", @@ -34423,10 +38617,362 @@ "type": "static" } ], - "npm:@types/node@22.6.1": [ + "npm:@eslint/eslintrc@3.3.1": [ + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:ajv@6.12.6", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:debug", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:espree@10.4.0", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:globals@14.0.0", + "type": "static" + }, { - "source": "npm:@types/node@22.6.1", - "target": "npm:undici-types", + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:ignore", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:import-fresh", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:js-yaml@4.1.0", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:minimatch@3.1.2", + "type": "static" + }, + { + "source": "npm:@eslint/eslintrc@3.3.1", + "target": "npm:strip-json-comments", + "type": "static" + } + ], + "npm:@fastify/cors@10.1.0": [ + { + "source": "npm:@fastify/cors@10.1.0", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/cors@10.1.0", + "target": "npm:mnemonist", + "type": "static" + } + ], + "npm:@fastify/jwt@9.1.0": [ + { + "source": "npm:@fastify/jwt@9.1.0", + "target": "npm:@fastify/error", + "type": "static" + }, + { + "source": "npm:@fastify/jwt@9.1.0", + "target": "npm:@lukeed/ms", + "type": "static" + }, + { + "source": "npm:@fastify/jwt@9.1.0", + "target": "npm:fast-jwt@5.0.6", + "type": "static" + }, + { + "source": "npm:@fastify/jwt@9.1.0", + "target": "npm:fastify-plugin", + "type": "static" + }, + { + "source": "npm:@fastify/jwt@9.1.0", + "target": "npm:steed", + "type": "static" + } + ], + "npm:@typescript-eslint/eslint-plugin@8.34.0": [ + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:@typescript-eslint/parser@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:eslint@9.28.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:typescript@5.8.3", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:@eslint-community/regexpp", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:@typescript-eslint/scope-manager@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:@typescript-eslint/type-utils@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:@typescript-eslint/utils@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:graphemer", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:ignore@7.0.5", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:natural-compare", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/eslint-plugin@8.34.0", + "target": "npm:ts-api-utils@2.1.0", + "type": "static" + } + ], + "npm:@typescript-eslint/parser@8.34.0": [ + { + "source": "npm:@typescript-eslint/parser@8.34.0", + "target": "npm:eslint@9.28.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/parser@8.34.0", + "target": "npm:typescript@5.8.3", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/parser@8.34.0", + "target": "npm:@typescript-eslint/scope-manager@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/parser@8.34.0", + "target": "npm:@typescript-eslint/types@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/parser@8.34.0", + "target": "npm:@typescript-eslint/typescript-estree@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/parser@8.34.0", + "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/parser@8.34.0", + "target": "npm:debug", + "type": "static" + } + ], + "npm:@typescript-eslint/project-service@8.34.0": [ + { + "source": "npm:@typescript-eslint/project-service@8.34.0", + "target": "npm:typescript@5.8.3", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/project-service@8.34.0", + "target": "npm:@typescript-eslint/tsconfig-utils@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/project-service@8.34.0", + "target": "npm:@typescript-eslint/types@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/project-service@8.34.0", + "target": "npm:debug", + "type": "static" + } + ], + "npm:@typescript-eslint/scope-manager@8.34.0": [ + { + "source": "npm:@typescript-eslint/scope-manager@8.34.0", + "target": "npm:@typescript-eslint/types@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/scope-manager@8.34.0", + "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "type": "static" + } + ], + "npm:@typescript-eslint/tsconfig-utils@8.34.0": [ + { + "source": "npm:@typescript-eslint/tsconfig-utils@8.34.0", + "target": "npm:typescript@5.8.3", + "type": "static" + } + ], + "npm:@typescript-eslint/type-utils@8.34.0": [ + { + "source": "npm:@typescript-eslint/type-utils@8.34.0", + "target": "npm:eslint@9.28.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/type-utils@8.34.0", + "target": "npm:typescript@5.8.3", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/type-utils@8.34.0", + "target": "npm:@typescript-eslint/typescript-estree@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/type-utils@8.34.0", + "target": "npm:@typescript-eslint/utils@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/type-utils@8.34.0", + "target": "npm:debug", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/type-utils@8.34.0", + "target": "npm:ts-api-utils@2.1.0", + "type": "static" + } + ], + "npm:@typescript-eslint/typescript-estree@8.34.0": [ + { + "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "target": "npm:typescript@5.8.3", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "target": "npm:@typescript-eslint/project-service@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "target": "npm:@typescript-eslint/tsconfig-utils@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "target": "npm:@typescript-eslint/types@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "target": "npm:@typescript-eslint/visitor-keys@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "target": "npm:debug", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "target": "npm:fast-glob@3.3.3", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "target": "npm:is-glob", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "target": "npm:minimatch@9.0.5", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "target": "npm:semver@7.7.2", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/typescript-estree@8.34.0", + "target": "npm:ts-api-utils@2.1.0", + "type": "static" + } + ], + "npm:@typescript-eslint/utils@8.34.0": [ + { + "source": "npm:@typescript-eslint/utils@8.34.0", + "target": "npm:eslint@9.28.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/utils@8.34.0", + "target": "npm:typescript@5.8.3", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/utils@8.34.0", + "target": "npm:@eslint-community/eslint-utils", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/utils@8.34.0", + "target": "npm:@typescript-eslint/scope-manager@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/utils@8.34.0", + "target": "npm:@typescript-eslint/types@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/utils@8.34.0", + "target": "npm:@typescript-eslint/typescript-estree@8.34.0", + "type": "static" + } + ], + "npm:@typescript-eslint/visitor-keys@8.34.0": [ + { + "source": "npm:@typescript-eslint/visitor-keys@8.34.0", + "target": "npm:@typescript-eslint/types@8.34.0", + "type": "static" + }, + { + "source": "npm:@typescript-eslint/visitor-keys@8.34.0", + "target": "npm:eslint-visitor-keys@4.2.1", "type": "static" } ], @@ -34458,12 +39004,12 @@ }, { "source": "npm:eslint@9.28.0", - "target": "npm:@eslint/eslintrc", + "target": "npm:@eslint/eslintrc@3.3.1", "type": "static" }, { "source": "npm:eslint@9.28.0", - "target": "npm:@eslint/js", + "target": "npm:@eslint/js@9.28.0", "type": "static" }, { @@ -34498,7 +39044,7 @@ }, { "source": "npm:eslint@9.28.0", - "target": "npm:ajv", + "target": "npm:ajv@6.12.6", "type": "static" }, { @@ -34533,7 +39079,7 @@ }, { "source": "npm:eslint@9.28.0", - "target": "npm:espree", + "target": "npm:espree@10.4.0", "type": "static" }, { @@ -34563,7 +39109,7 @@ }, { "source": "npm:eslint@9.28.0", - "target": "npm:glob-parent@6.0.2", + "target": "npm:glob-parent", "type": "static" }, { @@ -34593,7 +39139,7 @@ }, { "source": "npm:eslint@9.28.0", - "target": "npm:minimatch", + "target": "npm:minimatch@3.1.2", "type": "static" }, { @@ -34619,6 +39165,45 @@ "type": "static" } ], + "npm:espree@10.4.0": [ + { + "source": "npm:espree@10.4.0", + "target": "npm:acorn", + "type": "static" + }, + { + "source": "npm:espree@10.4.0", + "target": "npm:acorn-jsx", + "type": "static" + }, + { + "source": "npm:espree@10.4.0", + "target": "npm:eslint-visitor-keys@4.2.1", + "type": "static" + } + ], + "npm:fast-jwt@5.0.6": [ + { + "source": "npm:fast-jwt@5.0.6", + "target": "npm:@lukeed/ms", + "type": "static" + }, + { + "source": "npm:fast-jwt@5.0.6", + "target": "npm:asn1.js", + "type": "static" + }, + { + "source": "npm:fast-jwt@5.0.6", + "target": "npm:ecdsa-sig-formatter", + "type": "static" + }, + { + "source": "npm:fast-jwt@5.0.6", + "target": "npm:mnemonist", + "type": "static" + } + ], "npm:file-entry-cache@8.0.0": [ { "source": "npm:file-entry-cache@8.0.0", @@ -34637,6 +39222,13 @@ "target": "npm:keyv", "type": "static" } + ], + "npm:node-cron@3.0.3": [ + { + "source": "npm:node-cron@3.0.3", + "target": "npm:uuid@8.3.2", + "type": "static" + } ] }, "version": "6.0" diff --git a/.nx/workspace-data/task-history.csv b/.nx/workspace-data/task-history.csv index 6f440a0..a5f1aee 100644 --- a/.nx/workspace-data/task-history.csv +++ b/.nx/workspace-data/task-history.csv @@ -7,3 +7,5 @@ flowerbase,build,,10081602177197077188,1,failure,1744123177307,1744123179586 flowerbase,build,,7950241543382203915,0,success,1744123234984,1744123243614 flowerbase,build,,7737341932173611326,0,success,1744123284780,1744123292287 flowerbase,build,,3084298656420127870,0,success,1744123321340,1744123329461 +flowerbase-client,build,,14969267837840804475,0,success,1771420864653,1771420865403 +flowerbase,build,,2980540345380768176,0,success,1771420864653,1771420866555 diff --git a/jest.config.ts b/jest.config.ts index 81c7dc6..fb898ed 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -1,6 +1,7 @@ export default { projects: [ '/packages/flowerbase/jest.config.ts', + '/packages/flowerbase-client/jest.config.ts', '/tests/jest.e2e.config.ts' ] }; diff --git a/nx.json b/nx.json index 1fb922f..7585489 100644 --- a/nx.json +++ b/nx.json @@ -8,7 +8,8 @@ "$schema": "./node_modules/nx/schemas/nx-schema.json", "release": { "projects": [ - "flowerbase" + "flowerbase", + "flowerbase-client" ], "projectsRelationship": "independent", "changelog": { diff --git a/package-lock.json b/package-lock.json index 288023b..cc50fb7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1177,12 +1177,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -1230,13 +1230,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", - "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dev": true, "dependencies": { - "@babel/parser": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -1457,9 +1457,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1502,12 +1502,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", - "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", "dev": true, "dependencies": { - "@babel/types": "^7.28.0" + "@babel/types": "^7.29.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -2963,14 +2963,14 @@ } }, "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -2994,14 +2994,34 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse--for-generate-function-map": { + "name": "@babel/traverse", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/types": { - "version": "7.28.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", - "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -3571,6 +3591,10 @@ "resolved": "packages/flowerbase", "link": true }, + "node_modules/@flowerforce/flowerbase-client": { + "resolved": "packages/flowerbase-client", + "link": true + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -3785,6 +3809,16 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@isaacs/ttlcache": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", + "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -5517,6 +5551,233 @@ } } }, + "node_modules/@react-native-async-storage/async-storage": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.2.0.tgz", + "integrity": "sha512-gvRvjR5JAaUZF8tv2Kcq/Gbt3JHwbKFYfmb445rhOj6NUMx3qPLixmDx5pZAyb9at1bYvJ4/eTUipU5aki45xw==", + "dev": true, + "dependencies": { + "merge-options": "^3.0.4" + }, + "peerDependencies": { + "react-native": "^0.0.0-0 || >=0.65 <1.0" + } + }, + "node_modules/@react-native/assets-registry": { + "version": "0.84.0", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.84.0.tgz", + "integrity": "sha512-YiU9h1IN0pvvZsHbd03MaD7mE2q+ySaKMlE9tWK+3iiwtbEaMQOsMUuSJ1er2LU6ERMWfhfvCYgWpKRGOMeN8A==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/codegen": { + "version": "0.84.0", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.84.0.tgz", + "integrity": "sha512-TcTAO58JigCw9onYTrbE2yK2js5YNgqbmnpYyq9oXz2mofbX7JcK53kIi7fhqyJhie8RkY+X85zSOTWNs6S3CA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/parser": "^7.25.3", + "hermes-parser": "0.32.0", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "tinyglobby": "^0.2.15", + "yargs": "^17.6.2" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/community-cli-plugin": { + "version": "0.84.0", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.84.0.tgz", + "integrity": "sha512-uYoLBHnAzod4E5dA5rPPQeny2A5RD0PiIJQ4r+2F7cvA+5bZ8+znxw4TdaSiEk8uhN+clffI4d2bl9V4+xEK+Q==", + "dev": true, + "peer": true, + "dependencies": { + "@react-native/dev-middleware": "0.84.0", + "debug": "^4.4.0", + "invariant": "^2.2.4", + "metro": "^0.83.3", + "metro-config": "^0.83.3", + "metro-core": "^0.83.3", + "semver": "^7.1.3" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@react-native-community/cli": "*", + "@react-native/metro-config": "*" + }, + "peerDependenciesMeta": { + "@react-native-community/cli": { + "optional": true + }, + "@react-native/metro-config": { + "optional": true + } + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@react-native/debugger-frontend": { + "version": "0.84.0", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.84.0.tgz", + "integrity": "sha512-n7JKYVDCbA2aj8/5/OD1IK7nuiAYj5l/Z6yhGf7GG4EGaeQdthqdb0LZbseaRPyZK/7tLfdnLdqlqdTQC6/UTQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/debugger-shell": { + "version": "0.84.0", + "resolved": "https://registry.npmjs.org/@react-native/debugger-shell/-/debugger-shell-0.84.0.tgz", + "integrity": "sha512-5t/NvQLYk/d0kWlGOMNobkjfimqBc+/LYRmSOkgKm+pyOhxjygCLSnRjAUkeRALSZ8h6MKGTz1Wc4pbmJr7T0Q==", + "dev": true, + "peer": true, + "dependencies": { + "cross-spawn": "^7.0.6", + "debug": "^4.4.0", + "fb-dotslash": "0.5.8" + }, + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/dev-middleware": { + "version": "0.84.0", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.84.0.tgz", + "integrity": "sha512-c0o7YW39AUI1FSLV/TFSszr87kQGmaePAQK0ygIRnwZ2fAGDnQ5Iu/tk3u9O5lVH6nTjfAwTKJ3El9YeEWDeEQ==", + "dev": true, + "peer": true, + "dependencies": { + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.84.0", + "@react-native/debugger-shell": "0.84.0", + "chrome-launcher": "^0.15.2", + "chromium-edge-launcher": "^0.2.0", + "connect": "^3.6.5", + "debug": "^4.4.0", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "serve-static": "^1.16.2", + "ws": "^7.5.10" + }, + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "peer": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@react-native/gradle-plugin": { + "version": "0.84.0", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.84.0.tgz", + "integrity": "sha512-j8g/I4Z+SAdh2NXOVng4rmfYgPoeJBZwAKoGPpSe/wB/9XDLh9IRGUTg8dGS5BWUy2471xBUoGZPwHb6QMJmVw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/js-polyfills": { + "version": "0.84.0", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.84.0.tgz", + "integrity": "sha512-xaxmzYWLgHH+2uAZQ0owEkDE58hOTWmuBKD/Gl+cDFD3mFfSK4lZpin/3hiXtE5LB4BwgqICsPN07zCAqx6Fpg==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 20.19.4" + } + }, + "node_modules/@react-native/normalize-colors": { + "version": "0.84.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.84.0.tgz", + "integrity": "sha512-7JgZyWtQ9Sz4qZvCTsURUtuv8/niEZ/iCorp7eExc3GgpBWNazPumieiUoWPdgRKofU0Bqpr2/dJevEn2hrlwA==", + "dev": true, + "peer": true + }, + "node_modules/@react-native/virtualized-lists": { + "version": "0.84.0", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.84.0.tgz", + "integrity": "sha512-ugwSj0Gb4MYrcm8uQrQw8qHPx5RKGDLuZRAP/AuwneFizHx8YCLBEFbOYRGWgxHBRtkJ70D1o+jpIx3CK3p5lw==", + "dev": true, + "peer": true, + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@types/react": "^19.2.0", + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@rollup/plugin-babel": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz", @@ -8519,6 +8780,13 @@ "ajv": "^8.8.2" } }, + "node_modules/anser": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", + "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", + "dev": true, + "peer": true + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -8834,6 +9102,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "peer": true + }, "node_modules/asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -9143,6 +9418,16 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.32.0.tgz", + "integrity": "sha512-m5HthL++AbyeEA2FcdwOLfVFvWYECOBObLHNqdR8ceY4TsEdn4LdX2oTvbB2QJSSElE2AWA/b2MXZ/PF/CqLZg==", + "dev": true, + "peer": true, + "dependencies": { + "hermes-parser": "0.32.0" + } + }, "node_modules/babel-plugin-transform-async-to-promises": { "version": "0.8.18", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-promises/-/babel-plugin-transform-async-to-promises-0.8.18.tgz", @@ -9793,6 +10078,25 @@ "node": ">= 6" } }, + "node_modules/chrome-launcher": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, "node_modules/chrome-trace-event": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", @@ -9802,6 +10106,38 @@ "node": ">=6.0" } }, + "node_modules/chromium-edge-launcher": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", + "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "node_modules/chromium-edge-launcher/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -10109,6 +10445,22 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", @@ -10118,6 +10470,75 @@ "node": ">=0.8" } }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/connect/node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "peer": true + }, + "node_modules/connect/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "peer": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/connect/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -12408,6 +12829,13 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/exponential-backoff": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", + "dev": true, + "peer": true + }, "node_modules/express": { "version": "4.21.2", "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", @@ -12802,6 +13230,19 @@ "node": ">=0.8.0" } }, + "node_modules/fb-dotslash": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/fb-dotslash/-/fb-dotslash-0.5.8.tgz", + "integrity": "sha512-XHYLKk9J4BupDxi9bSEhkfss0m+Vr9ChTrjhf9l2iw3jB5C7BnY4GVPoMcqbrTutsKJso6yj2nAB6BI/F2oZaA==", + "dev": true, + "peer": true, + "bin": { + "dotslash": "bin/dotslash" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", @@ -12811,16 +13252,34 @@ "bser": "2.1.1" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, + "peer": true, "engines": { - "node": ">=8" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13124,6 +13583,13 @@ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true }, + "node_modules/flow-enums-runtime": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz", + "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==", + "dev": true, + "peer": true + }, "node_modules/flowerbase-demo": { "resolved": "packages/demo", "link": true @@ -13887,6 +14353,30 @@ "he": "bin/he" } }, + "node_modules/hermes-compiler": { + "version": "250829098.0.7", + "resolved": "https://registry.npmjs.org/hermes-compiler/-/hermes-compiler-250829098.0.7.tgz", + "integrity": "sha512-8QOmg1VjAWv8poFVslJDY8qkvjTy/UiO3R/hyGoC0IAchLzBdS9/TmAvI9cN1F3yLTEjimAIQQtUslpBMPXVVg==", + "dev": true, + "peer": true + }, + "node_modules/hermes-estree": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz", + "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==", + "dev": true, + "peer": true + }, + "node_modules/hermes-parser": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz", + "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==", + "dev": true, + "peer": true, + "dependencies": { + "hermes-estree": "0.32.0" + } + }, "node_modules/hosted-git-info": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", @@ -14361,6 +14851,16 @@ "node": ">=10.13.0" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ipaddr.js": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", @@ -15184,6 +15684,43 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-circus/node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/jest-circus/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-circus/node_modules/dedent": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", @@ -15198,6 +15735,18 @@ } } }, + "node_modules/jest-circus/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/jest-cli": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", @@ -15768,6 +16317,13 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsc-safe-url": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz", + "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==", + "dev": true, + "peer": true + }, "node_modules/jsdom": { "version": "20.0.3", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", @@ -16240,6 +16796,34 @@ } ] }, + "node_modules/lighthouse-logger": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^2.6.9", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "peer": true + }, "node_modules/lilconfig": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", @@ -16369,6 +16953,13 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "dev": true, + "peer": true + }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -16661,6 +17252,13 @@ "url": "https://github.com/sponsors/DavidAnson" } }, + "node_modules/marky": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", + "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", + "dev": true, + "peer": true + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -16701,6 +17299,13 @@ "node": ">= 4.0.0" } }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "dev": true, + "peer": true + }, "node_modules/memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", @@ -16714,6 +17319,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "dev": true, + "dependencies": { + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-options/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -16737,6 +17363,388 @@ "node": ">= 0.6" } }, + "node_modules/metro": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.3.tgz", + "integrity": "sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", + "@babel/types": "^7.25.2", + "accepts": "^1.3.7", + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "connect": "^3.6.5", + "debug": "^4.4.0", + "error-stack-parser": "^2.0.6", + "flow-enums-runtime": "^0.0.6", + "graceful-fs": "^4.2.4", + "hermes-parser": "0.32.0", + "image-size": "^1.0.2", + "invariant": "^2.2.4", + "jest-worker": "^29.7.0", + "jsc-safe-url": "^0.2.2", + "lodash.throttle": "^4.1.1", + "metro-babel-transformer": "0.83.3", + "metro-cache": "0.83.3", + "metro-cache-key": "0.83.3", + "metro-config": "0.83.3", + "metro-core": "0.83.3", + "metro-file-map": "0.83.3", + "metro-resolver": "0.83.3", + "metro-runtime": "0.83.3", + "metro-source-map": "0.83.3", + "metro-symbolicate": "0.83.3", + "metro-transform-plugins": "0.83.3", + "metro-transform-worker": "0.83.3", + "mime-types": "^2.1.27", + "nullthrows": "^1.1.1", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "throat": "^5.0.0", + "ws": "^7.5.10", + "yargs": "^17.6.2" + }, + "bin": { + "metro": "src/cli.js" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-babel-transformer": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.3.tgz", + "integrity": "sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "hermes-parser": "0.32.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-cache": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.3.tgz", + "integrity": "sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==", + "dev": true, + "peer": true, + "dependencies": { + "exponential-backoff": "^3.1.1", + "flow-enums-runtime": "^0.0.6", + "https-proxy-agent": "^7.0.5", + "metro-core": "0.83.3" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-cache-key": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.3.tgz", + "integrity": "sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==", + "dev": true, + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-cache/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/metro-cache/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "peer": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/metro-config": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.3.tgz", + "integrity": "sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==", + "dev": true, + "peer": true, + "dependencies": { + "connect": "^3.6.5", + "flow-enums-runtime": "^0.0.6", + "jest-validate": "^29.7.0", + "metro": "0.83.3", + "metro-cache": "0.83.3", + "metro-core": "0.83.3", + "metro-runtime": "0.83.3", + "yaml": "^2.6.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-core": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.3.tgz", + "integrity": "sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==", + "dev": true, + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.83.3" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-file-map": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.3.tgz", + "integrity": "sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^4.4.0", + "fb-watchman": "^2.0.0", + "flow-enums-runtime": "^0.0.6", + "graceful-fs": "^4.2.4", + "invariant": "^2.2.4", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "nullthrows": "^1.1.1", + "walker": "^1.0.7" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-minify-terser": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.3.tgz", + "integrity": "sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==", + "dev": true, + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "terser": "^5.15.0" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-resolver": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.3.tgz", + "integrity": "sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==", + "dev": true, + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-runtime": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.3.tgz", + "integrity": "sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/runtime": "^7.25.0", + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-source-map": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.3.tgz", + "integrity": "sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/traverse": "^7.25.3", + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", + "@babel/types": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "invariant": "^2.2.4", + "metro-symbolicate": "0.83.3", + "nullthrows": "^1.1.1", + "ob1": "0.83.3", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro-symbolicate": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.3.tgz", + "integrity": "sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==", + "dev": true, + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "invariant": "^2.2.4", + "metro-source-map": "0.83.3", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + }, + "bin": { + "metro-symbolicate": "src/index.js" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-symbolicate/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro-transform-plugins": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.3.tgz", + "integrity": "sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", + "flow-enums-runtime": "^0.0.6", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro-transform-worker": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.3.tgz", + "integrity": "sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/types": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "metro": "0.83.3", + "metro-babel-transformer": "0.83.3", + "metro-cache": "0.83.3", + "metro-cache-key": "0.83.3", + "metro-minify-terser": "0.83.3", + "metro-source-map": "0.83.3", + "metro-transform-plugins": "0.83.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=20.19.4" + } + }, + "node_modules/metro/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true, + "peer": true + }, + "node_modules/metro/node_modules/image-size": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", + "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", + "dev": true, + "peer": true, + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/metro/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -16884,6 +17892,19 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mnemonist": { "version": "0.40.0", "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.40.0.tgz", @@ -17269,6 +18290,13 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true, + "peer": true + }, "node_modules/nwsapi": { "version": "2.2.20", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", @@ -17376,6 +18404,19 @@ "node": ">=10" } }, + "node_modules/ob1": { + "version": "0.83.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.3.tgz", + "integrity": "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==", + "dev": true, + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=20.19.4" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -18889,6 +19930,16 @@ } ] }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dev": true, + "peer": true, + "dependencies": { + "asap": "~2.0.6" + } + }, "node_modules/promise.series": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", @@ -19048,6 +20099,16 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dev": true, + "peer": true, + "dependencies": { + "inherits": "~2.0.3" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -19127,12 +20188,180 @@ "node": ">=0.10.0" } }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-devtools-core": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-6.1.5.tgz", + "integrity": "sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==", + "dev": true, + "peer": true, + "dependencies": { + "shell-quote": "^1.6.1", + "ws": "^7" + } + }, + "node_modules/react-devtools-core/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, + "node_modules/react-native": { + "version": "0.84.0", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.84.0.tgz", + "integrity": "sha512-CcBfucLDHz8MAjQx9kFXasYtpcn8zP1YapUgGtAy0psRZTLShwF9yeh5+ErSgEK2gXV1CCSz7hqCZqx1eMyBLA==", + "dev": true, + "peer": true, + "dependencies": { + "@jest/create-cache-key-function": "^29.7.0", + "@react-native/assets-registry": "0.84.0", + "@react-native/codegen": "0.84.0", + "@react-native/community-cli-plugin": "0.84.0", + "@react-native/gradle-plugin": "0.84.0", + "@react-native/js-polyfills": "0.84.0", + "@react-native/normalize-colors": "0.84.0", + "@react-native/virtualized-lists": "0.84.0", + "abort-controller": "^3.0.0", + "anser": "^1.4.9", + "ansi-regex": "^5.0.0", + "babel-jest": "^29.7.0", + "babel-plugin-syntax-hermes-parser": "0.32.0", + "base64-js": "^1.5.1", + "commander": "^12.0.0", + "flow-enums-runtime": "^0.0.6", + "hermes-compiler": "250829098.0.7", + "invariant": "^2.2.4", + "jest-environment-node": "^29.7.0", + "memoize-one": "^5.0.0", + "metro-runtime": "^0.83.3", + "metro-source-map": "^0.83.3", + "nullthrows": "^1.1.1", + "pretty-format": "^29.7.0", + "promise": "^8.3.0", + "react-devtools-core": "^6.1.5", + "react-refresh": "^0.14.0", + "regenerator-runtime": "^0.13.2", + "scheduler": "0.27.0", + "semver": "^7.1.3", + "stacktrace-parser": "^0.1.10", + "tinyglobby": "^0.2.15", + "whatwg-fetch": "^3.0.0", + "ws": "^7.5.10", + "yargs": "^17.6.2" + }, + "bin": { + "react-native": "cli.js" + }, + "engines": { + "node": ">= 20.19.4" + }, + "peerDependencies": { + "@types/react": "^19.1.1", + "react": "^19.2.3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-native/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/react-native/node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-native/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/react-native/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", + "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -19322,6 +20551,13 @@ "node": ">=4" } }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true, + "peer": true + }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -20824,6 +22060,13 @@ "node": ">=v12.22.7" } }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "dev": true, + "peer": true + }, "node_modules/schema-utils": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", @@ -21003,6 +22246,16 @@ "node": ">=4" } }, + "node_modules/serialize-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", + "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -21520,6 +22773,29 @@ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", "dev": true }, + "node_modules/stacktrace-parser": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", + "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", + "dev": true, + "peer": true, + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -22234,6 +23510,13 @@ "node": ">=20" } }, + "node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true, + "peer": true + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -22246,6 +23529,23 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "peer": true, + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", @@ -23253,6 +24553,13 @@ "node": ">= 0.8" } }, + "node_modules/vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", + "dev": true, + "peer": true + }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", @@ -23632,6 +24939,13 @@ "node": ">=12" } }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "dev": true, + "peer": true + }, "node_modules/whatwg-mimetype": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", @@ -24007,6 +25321,25 @@ "typescript-eslint": "^8.8.1" } }, + "packages/flowerbase-client": { + "name": "@flowerforce/flowerbase-client", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "bson": "^6.10.4" + }, + "devDependencies": { + "@react-native-async-storage/async-storage": "^2.2.0" + }, + "peerDependencies": { + "@react-native-async-storage/async-storage": "^2.2.0" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, "packages/flowerbase/node_modules/@eslint/compat": { "version": "1.2.9", "dev": true, diff --git a/packages/demo/packages/frontend/eslint.config.js b/packages/demo/packages/frontend/eslint.config.cjs similarity index 64% rename from packages/demo/packages/frontend/eslint.config.js rename to packages/demo/packages/frontend/eslint.config.cjs index 092408a..779885a 100644 --- a/packages/demo/packages/frontend/eslint.config.js +++ b/packages/demo/packages/frontend/eslint.config.cjs @@ -1,10 +1,10 @@ -import js from '@eslint/js' -import globals from 'globals' -import reactHooks from 'eslint-plugin-react-hooks' -import reactRefresh from 'eslint-plugin-react-refresh' -import tseslint from 'typescript-eslint' +const js = require('@eslint/js') +const globals = require('globals') +const reactHooks = require('eslint-plugin-react-hooks') +const reactRefresh = require('eslint-plugin-react-refresh') +const tseslint = require('typescript-eslint') -export default tseslint.config( +module.exports = tseslint.config( { ignores: ['dist'] }, { extends: [js.configs.recommended, ...tseslint.configs.recommended], @@ -24,5 +24,5 @@ export default tseslint.config( { allowConstantExport: true }, ], }, - }, + } ) diff --git a/packages/demo/packages/frontend/package-lock.json b/packages/demo/packages/frontend/package-lock.json index 78c8589..90950f0 100644 --- a/packages/demo/packages/frontend/package-lock.json +++ b/packages/demo/packages/frontend/package-lock.json @@ -8,6 +8,7 @@ "name": "frontend", "version": "0.0.0", "dependencies": { + "@flowerforce/flowerbase-client": "file:../../../flowerbase-client", "@hookform/resolvers": "^5.0.1", "framer-motion": "^12.15.0", "parallax-js": "^3.1.0", @@ -20,7 +21,6 @@ "react-intersection-observer": "^9.16.0", "react-parallax": "^3.5.2", "react-router-dom": "^7.6.1", - "realm-web": "^2.0.1", "zod": "^3.25.32" }, "devDependencies": { @@ -38,6 +38,13 @@ "vite": "^6.3.5" } }, + "../../../flowerbase-client": { + "name": "@flowerforce/flowerbase-client", + "version": "0.1.0", + "dependencies": { + "bson": "^6.10.4" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -865,6 +872,10 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@flowerforce/flowerbase-client": { + "resolved": "../../../flowerbase-client", + "link": true + }, "node_modules/@hookform/resolvers": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.0.1.tgz", @@ -1020,11 +1031,6 @@ "node": ">= 8" } }, - "node_modules/@realm/common": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@realm/common/-/common-0.1.4.tgz", - "integrity": "sha512-bKpIRZIQ4ykribFi0igCwuvf7P4+Ex2XYKqDw1JDe6sCGAaPMwhazooyM6h32fUjtXRTbdAWH2S9JH8Xh/LrqQ==" - }, "node_modules/@rolldown/pluginutils": { "version": "1.0.0-beta.9", "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.9.tgz", @@ -1717,25 +1723,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1790,40 +1777,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/bson": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", - "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1949,11 +1902,6 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/detect-browser": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", - "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" - }, "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", @@ -2400,25 +2348,6 @@ "node": ">=8" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -2489,11 +2418,6 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/js-base64": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", - "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -3054,21 +2978,6 @@ "react-dom": ">=16.6.0" } }, - "node_modules/realm-web": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/realm-web/-/realm-web-2.0.1.tgz", - "integrity": "sha512-hLXrxkDe64T4QOW5nHL8CgkWWnhW1LROFlwCXrWAwJQYqQXaNIlY1aLPgYTMxoJeEvH4C6SplPm0YzGI6kuQwA==", - "deprecated": "Please read https://github.com/realm/realm-js/blob/main/DEPRECATION.md for more information.", - "dependencies": { - "@realm/common": "^0.1.4", - "bson": "^4.5.4", - "detect-browser": "^5.2.1", - "js-base64": "^3.7.6" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", diff --git a/packages/demo/packages/frontend/package.json b/packages/demo/packages/frontend/package.json index 30bb7fe..2323f4b 100644 --- a/packages/demo/packages/frontend/package.json +++ b/packages/demo/packages/frontend/package.json @@ -10,6 +10,7 @@ "preview": "vite preview" }, "dependencies": { + "@flowerforce/flowerbase-client": "file:../../../flowerbase-client", "@hookform/resolvers": "^5.0.1", "framer-motion": "^12.15.0", "parallax-js": "^3.1.0", @@ -22,7 +23,6 @@ "react-intersection-observer": "^9.16.0", "react-parallax": "^3.5.2", "react-router-dom": "^7.6.1", - "realm-web": "^2.0.1", "zod": "^3.25.32" }, "devDependencies": { diff --git a/packages/demo/packages/frontend/src/api/client.ts b/packages/demo/packages/frontend/src/api/client.ts index 13490fa..1b2a92a 100644 --- a/packages/demo/packages/frontend/src/api/client.ts +++ b/packages/demo/packages/frontend/src/api/client.ts @@ -1,5 +1,4 @@ - -import * as RealmWeb from 'realm-web' +import * as Flowerbase from '@flowerforce/flowerbase-client' const DB_NAME = import.meta.env.VITE_DB_NAME as string const APP_ID = import.meta.env.VITE_APP_ID as string @@ -10,7 +9,7 @@ const appConfig = { baseUrl: import.meta.env.VITE_SERVER_URL, } -export const app = new RealmWeb.App(appConfig) +export const app = new Flowerbase.App(appConfig) export const db = (dbname: string = DB_NAME) => app.currentUser!.mongoClient('mongodb-atlas').db(dbname) -export const Realm = RealmWeb \ No newline at end of file +export const Realm = Flowerbase diff --git a/packages/demo/packages/frontend/src/components/Layout/index.tsx b/packages/demo/packages/frontend/src/components/Layout/index.tsx index eab34d5..881604e 100644 --- a/packages/demo/packages/frontend/src/components/Layout/index.tsx +++ b/packages/demo/packages/frontend/src/components/Layout/index.tsx @@ -90,7 +90,7 @@ export const Layout = () => { > {isLoggedIn && ( Promise; + user: UserLike | null; + login: (email: string, password: string) => Promise; logout: () => Promise; isLoggedIn: boolean; } @@ -17,10 +18,10 @@ interface AuthenticationProviderProps { } export const AuthenticationProvider: React.FC = ({ children }) => { - const [user, setUser] = useState(app.currentUser); + const [user, setUser] = useState(app.currentUser); const navigate = useNavigate() - const login = useCallback(async (email: string, password: string): Promise => { + const login = useCallback(async (email: string, password: string): Promise => { const credentials = Realm.Credentials.emailPassword(email, password); const loggedInUser = await app.logIn(credentials); setUser(loggedInUser); @@ -62,4 +63,3 @@ export const AuthenticationProvider: React.FC = ({ return {children}; }; - diff --git a/packages/demo/packages/frontend/src/pages/Home/index.tsx b/packages/demo/packages/frontend/src/pages/Home/index.tsx index 2c5e230..7f8f112 100644 --- a/packages/demo/packages/frontend/src/pages/Home/index.tsx +++ b/packages/demo/packages/frontend/src/pages/Home/index.tsx @@ -22,6 +22,12 @@ export interface Todo { updatedAt: string } +type PaginatedTodos = { + currentPage: number + total: number + todos: Todo[] +} + export const Home = () => { const [isLoading, setIsLoading] = useState(true) @@ -41,8 +47,16 @@ export const Home = () => { const fetchTodos = useCallback(async (page?: number) => { try { setIsLoading(true) - const response = await app.currentUser?.functions.searchTodos({ page }) - setPagination((prevPagination) => page ? response : { ...prevPagination, todos: response }) + const response = await app.currentUser?.functions.searchTodos({ page }) as PaginatedTodos | Todo[] | undefined + if (!response) return + if (page) { + setPagination(response as PaginatedTodos) + } else { + setPagination((prevPagination) => ({ + ...prevPagination, + todos: response as Todo[] + })) + } } catch (e) { console.log(e) diff --git a/packages/demo/packages/frontend/tsconfig.app.json b/packages/demo/packages/frontend/tsconfig.app.json index 2650572..60d3ae0 100644 --- a/packages/demo/packages/frontend/tsconfig.app.json +++ b/packages/demo/packages/frontend/tsconfig.app.json @@ -1,6 +1,11 @@ { "compilerOptions": { - + "baseUrl": ".", + "paths": { + "@flowerforce/flowerbase-client": [ + "../../../flowerbase-client/src/index.ts" + ] + }, "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", "target": "ES2020", "useDefineForClassFields": true, diff --git a/packages/demo/packages/frontend/vite.config.ts b/packages/demo/packages/frontend/vite.config.ts index 8b0f57b..6da81ff 100644 --- a/packages/demo/packages/frontend/vite.config.ts +++ b/packages/demo/packages/frontend/vite.config.ts @@ -1,7 +1,13 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' +import path from 'path' // https://vite.dev/config/ export default defineConfig({ + resolve: { + alias: { + '@flowerforce/flowerbase-client': path.resolve(__dirname, '../../../flowerbase-client/src/index.ts') + } + }, plugins: [react()], }) diff --git a/packages/flowerbase-client/.DS_Store b/packages/flowerbase-client/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/packages/flowerbase-client/.DS_Store differ diff --git a/packages/flowerbase-client/CHANGELOG.md b/packages/flowerbase-client/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/flowerbase-client/LICENSE b/packages/flowerbase-client/LICENSE new file mode 100644 index 0000000..2dac579 --- /dev/null +++ b/packages/flowerbase-client/LICENSE @@ -0,0 +1,3 @@ +MIT License + +Copyright (c) 2026 Flowerbase diff --git a/packages/flowerbase-client/README.md b/packages/flowerbase-client/README.md new file mode 100644 index 0000000..02a5f79 --- /dev/null +++ b/packages/flowerbase-client/README.md @@ -0,0 +1,209 @@ +# @flowerforce/flowerbase-client + +Client TypeScript leggero per usare Flowerbase con API in stile Realm: + +- autenticazione (`local-userpass`, `anon-user`, `custom-function`) +- chiamate funzioni (`user.functions.(...)`) +- accesso a MongoDB Atlas service (`user.mongoClient("mongodb-atlas")`) +- change stream via `watch()` con async iterator +- supporto BSON/EJSON (`ObjectId`, `Date`, ecc.) + +## Installazione + +```bash +npm i @flowerforce/flowerbase-client +``` + +## Quick start + +```ts +import { App, Credentials } from '@flowerforce/flowerbase-client' + +const app = new App({ + id: 'my-app-id', + baseUrl: 'http://localhost:8000', + timeout: 10000 +}) + +await app.logIn(Credentials.emailPassword('user@example.com', 'secret')) + +const user = app.currentUser +if (!user) throw new Error('User not logged in') + +const result = await user.functions.myFunction('hello') +console.log(result) +``` + +## Configurazione `App` + +```ts +new App({ + id: string, // app id Flowerbase + baseUrl: string, // URL base backend (es: http://localhost:8000) + timeout?: number // default 10000 +}) +``` + +## Autenticazione + +### Local user/pass + +```ts +await app.logIn(Credentials.emailPassword(email, password)) +``` + +### Anonymous + +```ts +await app.logIn(Credentials.anonymous()) +``` + +### Custom function auth + +```ts +await app.logIn( + Credentials.function({ + username: 'demo', + pin: '1234' + }) +) +``` + +### Utility `emailPasswordAuth` + +```ts +await app.emailPasswordAuth.registerUser({ email, password }) +await app.emailPasswordAuth.sendResetPasswordEmail(email) +await app.emailPasswordAuth.callResetPasswordFunction(email, newPassword, extraArg1, extraArg2) +await app.emailPasswordAuth.resetPassword({ token, tokenId, password }) +``` + +## Current user + +Dopo il login: + +```ts +const user = app.currentUser +``` + +Interfaccia principale: + +- `user.id` +- `user.functions.(...args)` +- `user.mongoClient('mongodb-atlas')` +- `user.refreshAccessToken()` +- `user.refreshCustomData()` +- `user.logOut()` + +## Funzioni server + +```ts +const response = await user.functions.calculateScore({ workspaceId: 'w1' }) +``` + +Le risposte sono normalizzate lato client per gestire payload JSON/EJSON. + +## Mongo service + +```ts +const mongo = user.mongoClient('mongodb-atlas') +const collection = mongo.db('mydb').collection('todos') + +const one = await collection.findOne({ done: false }) +const many = await collection.find({ done: false }) + +await collection.insertOne({ title: 'Task', createdAt: new Date() }) +await collection.updateOne({ title: 'Task' }, { $set: { done: true } }) +await collection.deleteOne({ title: 'Task' }) +``` + +Metodi disponibili su `collection`: + +- `find(query?, options?)` +- `findOne(query?, options?)` +- `insertOne(document, options?)` +- `updateOne(filter, update, options?)` +- `updateMany(filter, update, options?)` +- `deleteOne(filter, options?)` +- `watch(options?)` + +## Watch / Change streams + +`watch()` restituisce un async iterator con reconnect automatico e metodo `close()`. + +```ts +const stream = collection.watch() + +try { + for await (const change of stream) { + console.log(change) + } +} finally { + stream.close() +} +``` + +Esempio con filtro Realm-like: + +```ts +const stream = collection.watch({ + filter: { + operationType: 'update', + 'fullDocument.type': 'perennial' + } +}) +``` + +## BSON / EJSON + +Il client esporta anche: + +```ts +import { BSON, EJSON, ObjectId, ObjectID } from '@flowerforce/flowerbase-client' +``` + +Il layer Mongo client serializza query/opzioni con EJSON e deserializza le risposte, così tipi BSON come `ObjectId` e `Date` restano coerenti con l'uso Realm-like. + +## Sessione + +La sessione (`accessToken`, `refreshToken`, `userId`) viene salvata con chiave: + +- `flowerbase::session` + +Storage usato: + +- `localStorage` se disponibile (browser) +- memory store fallback (ambienti senza `localStorage`) + +Su bootstrap dell'app viene tentato un refresh automatico dell'access token usando il refresh token salvato. + +## Logout + +```ts +await user.logOut() +``` + +Invia `DELETE /auth/session` con refresh token e pulisce la sessione locale. + +## Tipi esportati + +- `AppConfig` +- `CredentialsLike` +- `UserLike` +- `MongoClientLike` +- `CollectionLike` +- `WatchAsyncIterator` + +## Build e test (workspace) + +```bash +npm run build --workspace @flowerforce/flowerbase-client +npm run test --workspace @flowerforce/flowerbase-client +``` + +Oppure dal package: + +```bash +npm run build +npm test +``` diff --git a/packages/flowerbase-client/jest.config.ts b/packages/flowerbase-client/jest.config.ts new file mode 100644 index 0000000..94e172f --- /dev/null +++ b/packages/flowerbase-client/jest.config.ts @@ -0,0 +1,13 @@ +module.exports = { + preset: '../../jest.preset.js', + transform: { + '^.+\\.[tj]s$': [ + 'ts-jest', + { + tsconfig: '/tsconfig.spec.json' + } + ] + }, + testEnvironment: 'node', + testMatch: ['/src/**/*.test.ts'] +} diff --git a/packages/flowerbase-client/package.json b/packages/flowerbase-client/package.json new file mode 100644 index 0000000..b4649ab --- /dev/null +++ b/packages/flowerbase-client/package.json @@ -0,0 +1,41 @@ +{ + "name": "@flowerforce/flowerbase-client", + "version": "0.1.0", + "description": "Client for Flowerbase", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "keywords": [], + "author": "", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/flowerforce/flowerbase.git" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "test": "npx jest", + "build": "rm -rf dist/ && tsc" + }, + "dependencies": { + "bson": "^6.10.4" + }, + "peerDependencies": { + "@react-native-async-storage/async-storage": "^2.2.0" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + }, + "devDependencies": { + "@react-native-async-storage/async-storage": "^2.2.0" + } +} diff --git a/packages/flowerbase-client/project.json b/packages/flowerbase-client/project.json new file mode 100644 index 0000000..8437d98 --- /dev/null +++ b/packages/flowerbase-client/project.json @@ -0,0 +1,11 @@ +{ + "name": "flowerbase-client", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/flowerbase-client/src", + "projectType": "library", + "tags": [ + "flowerbase", + "client" + ], + "targets": {} +} diff --git a/packages/flowerbase-client/rollup.config.js b/packages/flowerbase-client/rollup.config.js new file mode 100644 index 0000000..38a5e70 --- /dev/null +++ b/packages/flowerbase-client/rollup.config.js @@ -0,0 +1,17 @@ +const { withNx } = require('@nx/rollup/with-nx') + +module.exports = withNx( + { + main: './src/index.ts', + outputPath: './dist', + tsConfig: './tsconfig.lib.json', + compiler: 'tsc', + format: ['cjs', 'esm'], + generateExportsField: true + }, + { + // Provide additional rollup configuration here. See: https://rollupjs.org/configuration-options + // e.g. + // output: { sourcemap: true }, + } +) diff --git a/packages/flowerbase-client/src/__tests__/auth.test.ts b/packages/flowerbase-client/src/__tests__/auth.test.ts new file mode 100644 index 0000000..db497ec --- /dev/null +++ b/packages/flowerbase-client/src/__tests__/auth.test.ts @@ -0,0 +1,213 @@ +import { App } from '../app' +import { Credentials } from '../credentials' + +describe('flowerbase-client auth', () => { + const originalFetch = global.fetch + const originalLocalStorage = (globalThis as typeof globalThis & { localStorage?: unknown }).localStorage + + afterEach(() => { + global.fetch = originalFetch + if (typeof originalLocalStorage === 'undefined') { + Reflect.deleteProperty(globalThis, 'localStorage') + } else { + Object.defineProperty(globalThis, 'localStorage', { + configurable: true, + value: originalLocalStorage + }) + } + }) + + it('logs in with email/password', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-from-session' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + expect(user.id).toBe('user-1') + expect(app.currentUser?.id).toBe('user-1') + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:3000/api/client/v2.0/app/my-app/auth/providers/local-userpass/login', + expect.objectContaining({ method: 'POST' }) + ) + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:3000/api/client/v2.0/auth/session', + expect.objectContaining({ + method: 'POST', + headers: expect.objectContaining({ Authorization: 'Bearer refresh' }) + }) + ) + }) + + it('logs in with anonymous provider', async () => { + global.fetch = jest.fn().mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'anon-1' + }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user = await app.logIn(Credentials.anonymous()) + + expect(user.id).toBe('anon-1') + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:3000/api/client/v2.0/app/my-app/auth/providers/anon-user/login', + expect.objectContaining({ method: 'POST' }) + ) + }) + + it('logs in with custom function provider', async () => { + global.fetch = jest.fn().mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'custom-1' + }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user = await app.logIn(Credentials.function({ token: 'abc' })) + + expect(user.id).toBe('custom-1') + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:3000/api/client/v2.0/app/my-app/auth/providers/custom-function/login', + expect.objectContaining({ method: 'POST' }) + ) + }) + + it('logs in with custom jwt provider', async () => { + global.fetch = jest.fn().mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'jwt-1' + }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user = await app.logIn(Credentials.jwt('jwt-token')) + + expect(user.id).toBe('jwt-1') + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:3000/api/client/v2.0/app/my-app/auth/providers/custom-token/login', + expect.objectContaining({ method: 'POST' }) + ) + }) + + it('supports register and reset endpoints', async () => { + global.fetch = jest.fn().mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ status: 'ok' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + + await app.emailPasswordAuth.registerUser({ email: 'john@doe.com', password: 'secret123' }) + await app.emailPasswordAuth.sendResetPasswordEmail('john@doe.com') + await app.emailPasswordAuth.callResetPasswordFunction('john@doe.com', 'new-secret', 'extra') + await app.emailPasswordAuth.resetPassword({ token: 't1', tokenId: 't2', password: 'new-secret' }) + + expect(global.fetch).toHaveBeenNthCalledWith( + 1, + 'http://localhost:3000/api/client/v2.0/app/my-app/auth/providers/local-userpass/register', + expect.objectContaining({ method: 'POST' }) + ) + expect(global.fetch).toHaveBeenNthCalledWith( + 2, + 'http://localhost:3000/api/client/v2.0/app/my-app/auth/providers/local-userpass/reset/send', + expect.objectContaining({ method: 'POST' }) + ) + expect(global.fetch).toHaveBeenNthCalledWith( + 3, + 'http://localhost:3000/api/client/v2.0/app/my-app/auth/providers/local-userpass/reset/call', + expect.objectContaining({ method: 'POST' }) + ) + expect(global.fetch).toHaveBeenNthCalledWith( + 4, + 'http://localhost:3000/api/client/v2.0/app/my-app/auth/providers/local-userpass/reset', + expect.objectContaining({ method: 'POST' }) + ) + }) + + it('supports email/password confirmation endpoints', async () => { + global.fetch = jest.fn().mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ status: 'ok' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + + await app.emailPasswordAuth.confirmUser({ token: 't1', tokenId: 'tid1' }) + await app.emailPasswordAuth.resendConfirmationEmail({ email: 'john@doe.com' }) + await app.emailPasswordAuth.retryCustomConfirmation({ email: 'john@doe.com' }) + + expect(global.fetch).toHaveBeenNthCalledWith( + 1, + 'http://localhost:3000/api/client/v2.0/app/my-app/auth/providers/local-userpass/confirm', + expect.objectContaining({ method: 'POST' }) + ) + expect(global.fetch).toHaveBeenNthCalledWith( + 2, + 'http://localhost:3000/api/client/v2.0/app/my-app/auth/providers/local-userpass/confirm/send', + expect.objectContaining({ method: 'POST' }) + ) + expect(global.fetch).toHaveBeenNthCalledWith( + 3, + 'http://localhost:3000/api/client/v2.0/app/my-app/auth/providers/local-userpass/confirm/call', + expect.objectContaining({ method: 'POST' }) + ) + }) + + it('calls session endpoint on app load when browser session exists', async () => { + const storage = new Map() + storage.set( + 'flowerbase:my-app:session', + JSON.stringify({ accessToken: 'old-access', refreshToken: 'refresh', userId: 'user-1' }) + ) + Object.defineProperty(globalThis, 'localStorage', { + configurable: true, + value: { + getItem: (key: string) => storage.get(key) ?? null, + setItem: (key: string, value: string) => { + storage.set(key, value) + }, + removeItem: (key: string) => { + storage.delete(key) + } + } + }) + + global.fetch = jest.fn().mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ access_token: 'fresh-access' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.getProfile().catch(() => undefined) + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:3000/api/client/v2.0/auth/session', + expect.objectContaining({ + method: 'POST', + headers: expect.objectContaining({ Authorization: 'Bearer refresh' }) + }) + ) + }) +}) diff --git a/packages/flowerbase-client/src/__tests__/compat.test.ts b/packages/flowerbase-client/src/__tests__/compat.test.ts new file mode 100644 index 0000000..3cc3a0e --- /dev/null +++ b/packages/flowerbase-client/src/__tests__/compat.test.ts @@ -0,0 +1,22 @@ +import * as Flowerbase from '../index' + +describe('flowerbase-client compatibility surface', () => { + it('exposes Realm-like symbols', () => { + expect(typeof Flowerbase.App).toBe('function') + expect(typeof Flowerbase.App.getApp).toBe('function') + expect(Flowerbase.App.Credentials).toBe(Flowerbase.Credentials) + expect(typeof Flowerbase.Credentials.emailPassword).toBe('function') + expect(typeof Flowerbase.Credentials.anonymous).toBe('function') + expect(typeof Flowerbase.Credentials.function).toBe('function') + expect(typeof Flowerbase.Credentials.jwt).toBe('function') + expect(typeof Flowerbase.MongoDBRealmError).toBe('function') + expect(typeof Flowerbase.BSON.ObjectId).toBe('function') + expect(Flowerbase.ObjectID).toBe(Flowerbase.ObjectId) + }) + + it('returns singleton app for same id', () => { + const a1 = Flowerbase.App.getApp('singleton-app') + const a2 = Flowerbase.App.getApp('singleton-app') + expect(a1).toBe(a2) + }) +}) diff --git a/packages/flowerbase-client/src/__tests__/functions.test.ts b/packages/flowerbase-client/src/__tests__/functions.test.ts new file mode 100644 index 0000000..051a676 --- /dev/null +++ b/packages/flowerbase-client/src/__tests__/functions.test.ts @@ -0,0 +1,312 @@ +import { App } from '../app' +import { Credentials } from '../credentials' +import { FlowerbaseHttpError } from '../http' + +describe('flowerbase-client functions', () => { + const originalFetch = global.fetch + const streamFromChunks = (chunks: string[]) => + new ReadableStream({ + start(controller) { + for (const chunk of chunks) { + controller.enqueue(new TextEncoder().encode(chunk)) + } + controller.close() + } + }) + + afterEach(() => { + global.fetch = originalFetch + }) + + it('calls dynamic function proxies', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ result: 42 }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const result = await app.currentUser!.functions.sum(40, 2) + expect(result).toEqual({ result: 42 }) + + expect(global.fetch).toHaveBeenNthCalledWith( + 3, + 'http://localhost:3000/api/client/v2.0/app/my-app/functions/call', + expect.objectContaining({ + method: 'POST', + headers: expect.objectContaining({ Authorization: 'Bearer access' }) + }) + ) + }) + + it('throws function execution errors', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValueOnce({ + ok: false, + status: 400, + text: async () => JSON.stringify({ + error: '{"message":"boom","name":"Error"}', + error_code: 'FunctionExecutionError' + }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + await expect(app.currentUser!.functions.explode()).rejects.toThrow('boom') + }) + + it('supports functions.callFunction compatibility helper', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ result: 7 }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const result = await app.currentUser!.functions.callFunction('sum', 3, 4) + expect(result).toEqual({ result: 7 }) + }) + + it('does not treat toJSON as a remote function name', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + expect(JSON.stringify(app.currentUser!.functions)).toBe('{}') + expect(global.fetch).toHaveBeenCalledTimes(2) + }) + + it('supports functions.callFunctionStreaming', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValueOnce({ + ok: true, + body: streamFromChunks(['a', 'b']) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const stream = await app.currentUser!.functions.callFunctionStreaming('streamData') + const received: string[] = [] + for await (const chunk of stream) { + received.push(new TextDecoder().decode(chunk)) + } + + expect(received).toEqual(['a', 'b']) + }) + + it('executes user-bound functions with that user session', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a1', refresh_token: 'refresh-1', user_id: 'user-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a2', refresh_token: 'refresh-2', user_id: 'user-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) + .mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ ok: true }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user1 = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + await app.logIn(Credentials.anonymous()) + + await user1.functions.sum(1, 2) + const request = (global.fetch as jest.Mock).mock.calls[4][1] + expect(request.headers.Authorization).toBe('Bearer access-1') + }) + + it('retries streaming call when initial request returns 401', async () => { + const streamFromChunks = (chunks: string[]) => + new ReadableStream({ + start(controller) { + for (const chunk of chunks) { + controller.enqueue(new TextEncoder().encode(chunk)) + } + controller.close() + } + }) + + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a1', refresh_token: 'refresh-1', user_id: 'user-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1' }) + }) + .mockResolvedValueOnce({ + ok: false, + status: 401, + statusText: 'Unauthorized', + text: async () => JSON.stringify({ error: 'Unauthorized', error_code: 'InvalidSession' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + body: streamFromChunks(['x', 'y']) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const stream = await app.currentUser!.functions.callFunctionStreaming('streamData') + const received: string[] = [] + for await (const chunk of stream) { + received.push(new TextDecoder().decode(chunk)) + } + + expect(received).toEqual(['x', 'y']) + expect((global.fetch as jest.Mock).mock.calls[3][0]).toBe('http://localhost:3000/api/client/v2.0/auth/session') + }) + + it('retries streaming call when stream fails with 401 during iteration', async () => { + const streamWithAuthError = () => + new ReadableStream({ + start(controller) { + controller.enqueue(new TextEncoder().encode('a')) + controller.error( + new FlowerbaseHttpError({ + method: 'POST', + url: 'http://localhost:3000/api/client/v2.0/app/my-app/functions/call', + statusCode: 401, + statusText: 'Unauthorized', + error: 'Expired token' + }) + ) + } + }) + + const streamFromChunks = (chunks: string[]) => + new ReadableStream({ + start(controller) { + for (const chunk of chunks) { + controller.enqueue(new TextEncoder().encode(chunk)) + } + controller.close() + } + }) + + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a1', refresh_token: 'refresh-1', user_id: 'user-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + body: streamWithAuthError() + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + body: streamFromChunks(['b']) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const stream = await app.currentUser!.functions.callFunctionStreaming('streamData') + const received: string[] = [] + for await (const chunk of stream) { + received.push(new TextDecoder().decode(chunk)) + } + + expect(received).toContain('b') + }) +}) diff --git a/packages/flowerbase-client/src/__tests__/mongo.test.ts b/packages/flowerbase-client/src/__tests__/mongo.test.ts new file mode 100644 index 0000000..00a2daa --- /dev/null +++ b/packages/flowerbase-client/src/__tests__/mongo.test.ts @@ -0,0 +1,83 @@ +import { ObjectId } from 'bson' +import { App } from '../app' +import { Credentials } from '../credentials' + +describe('flowerbase-client mongo service wrapper', () => { + const originalFetch = global.fetch + + afterEach(() => { + global.fetch = originalFetch + }) + + it('maps CRUD calls to mongodb-atlas service payload', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ ok: true }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const collection = app.currentUser!.mongoClient('mongodb-atlas').db('testdb').collection('todos') + + await collection.find({ done: false }) + await collection.findOne({ done: false }) + await collection.insertOne({ title: 'new task' }) + await collection.updateOne({ _id: new ObjectId('507f1f77bcf86cd799439011') }, { $set: { done: true } }) + await collection.updateMany({ done: false }, { $set: { done: true } }) + await collection.deleteOne({ done: true }) + + expect((global.fetch as jest.Mock).mock.calls).toHaveLength(8) + const [url, request] = (global.fetch as jest.Mock).mock.calls[3] + expect(url).toBe('http://localhost:3000/api/client/v2.0/app/my-app/functions/call') + expect(request.method).toBe('POST') + const parsed = JSON.parse(request.body) + expect(parsed.service).toBe('mongodb-atlas') + expect(parsed.name).toBe('findOne') + }) + + it('supports extended CRUD operations and custom service name', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ ok: true }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const collection = app.currentUser!.mongoClient('my-service').db('testdb').collection('todos') + + await collection.findOneAndUpdate({ done: false }, { $set: { done: true } }) + await collection.findOneAndReplace({ done: true }, { done: true, title: 'done' }) + await collection.findOneAndDelete({ done: true }) + await collection.aggregate([{ $match: { done: true } }]) + await collection.count({ done: true }) + await collection.insertMany([{ title: 'A' }, { title: 'B' }]) + await collection.deleteMany({ done: true }) + + const calls = (global.fetch as jest.Mock).mock.calls + const lastBody = JSON.parse(calls[calls.length - 1][1].body) + expect(lastBody.service).toBe('my-service') + expect(lastBody.name).toBe('deleteMany') + }) +}) diff --git a/packages/flowerbase-client/src/__tests__/session.test.ts b/packages/flowerbase-client/src/__tests__/session.test.ts new file mode 100644 index 0000000..309b906 --- /dev/null +++ b/packages/flowerbase-client/src/__tests__/session.test.ts @@ -0,0 +1,597 @@ +import { App } from '../app' +import { Credentials } from '../credentials' +import { MongoDBRealmError } from '../http' + +const encodeBase64Url = (value: string) => + Buffer.from(value, 'utf8').toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '') + +const buildJwt = (payload: Record) => `header.${encodeBase64Url(JSON.stringify(payload))}.signature` + +describe('flowerbase-client session', () => { + const originalFetch = global.fetch + const originalLocalStorage = (globalThis as typeof globalThis & { localStorage?: unknown }).localStorage + + afterEach(() => { + global.fetch = originalFetch + if (typeof originalLocalStorage === 'undefined') { + Reflect.deleteProperty(globalThis, 'localStorage') + } else { + Object.defineProperty(globalThis, 'localStorage', { + configurable: true, + value: originalLocalStorage + }) + } + }) + + it('refreshes access token', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-3' }) + }) + .mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-fallback' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const token = await app.currentUser!.refreshAccessToken() + expect(token).toBe('access-2') + expect(global.fetch).toHaveBeenLastCalledWith( + 'http://localhost:3000/api/client/v2.0/auth/session', + expect.objectContaining({ + method: 'POST', + headers: expect.objectContaining({ Authorization: 'Bearer refresh' }) + }) + ) + }) + + it('clears session when refresh fails', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValueOnce({ + ok: false, + status: 401, + text: async () => JSON.stringify({ message: 'Invalid refresh token provided' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + await expect(app.currentUser!.refreshAccessToken()).rejects.toThrow('Invalid refresh token provided') + expect(app.currentUser).toBeNull() + }) + + it('revokes session on logout', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ status: 'ok' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + await app.currentUser!.logOut() + + expect(global.fetch).toHaveBeenLastCalledWith( + 'http://localhost:3000/api/client/v2.0/auth/session', + expect.objectContaining({ method: 'DELETE' }) + ) + expect(app.currentUser).toBeNull() + }) + + it('retries function call after access token 401', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => + JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValueOnce({ + ok: false, + status: 401, + text: async () => JSON.stringify({ message: 'token expired' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ result: 42 }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const result = await app.currentUser!.functions.sum(40, 2) + expect(result).toEqual({ result: 42 }) + expect((global.fetch as jest.Mock).mock.calls[3][0]).toBe('http://localhost:3000/api/client/v2.0/auth/session') + }) + + it('tracks users in allUsers and supports switch/remove', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ status: 'ok' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + expect(Object.keys(app.allUsers)).toContain('user-1') + app.switchUser(user) + + await app.removeUser(user) + expect(app.currentUser).toBeNull() + expect(Object.keys(app.allUsers)).not.toContain('user-1') + expect(user.state).toBe('removed') + }) + + it('exposes providerType, customData and identities', async () => { + const accessToken = buildJwt({ user_data: { plan: 'pro' } }) + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => + JSON.stringify({ + access_token: accessToken, + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: accessToken }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => + JSON.stringify({ + data: { email: 'john@doe.com' }, + identities: [{ id: 'identity-1', provider_type: 'local-userpass' }], + custom_data: { plan: 'pro' } + }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + await user.refreshCustomData() + + expect(user.providerType).toBe('local-userpass') + expect(user.customData).toEqual({ plan: 'pro' }) + expect(user.identities).toEqual([{ id: 'identity-1', provider_type: 'local-userpass' }]) + }) + + it('throws MongoDBRealmError with status metadata', async () => { + global.fetch = jest.fn().mockResolvedValue({ + ok: false, + status: 401, + statusText: 'Unauthorized', + text: async () => JSON.stringify({ error: 'Unauthorized', error_code: 'InvalidSession' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await expect(app.logIn(Credentials.anonymous())).rejects.toBeInstanceOf(MongoDBRealmError) + }) + + it('orders allUsers as active first then logged-out and persists order', async () => { + const storage = new Map() + Object.defineProperty(globalThis, 'localStorage', { + configurable: true, + value: { + getItem: (key: string) => storage.get(key) ?? null, + setItem: (key: string, value: string) => { + storage.set(key, value) + }, + removeItem: (key: string) => { + storage.delete(key) + } + } + }) + + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access-1', + refresh_token: 'refresh-1', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1b' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ status: 'ok' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access-2', + refresh_token: 'refresh-2', + user_id: 'user-2' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2b' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user1 = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + await user1.logOut() + const user2 = await app.logIn(Credentials.anonymous()) + + expect(app.currentUser?.id).toBe('user-2') + expect(Object.keys(app.allUsers)).toEqual(['user-2', 'user-1']) + expect(app.allUsers['user-1']?.state).toBe('logged-out') + expect(user2.state).toBe('active') + + global.fetch = jest.fn().mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2c' }) + }) as unknown as typeof fetch + + const appReloaded = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await appReloaded.getProfile().catch(() => undefined) + + expect(Object.keys(appReloaded.allUsers)).toEqual(['user-2', 'user-1']) + expect(appReloaded.currentUser?.id).toBe('user-2') + }) + + it('switchUser changes active session used by app calls', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a1', refresh_token: 'refresh-1', user_id: 'user-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a2', refresh_token: 'refresh-2', user_id: 'user-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) + .mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ ok: true }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user1 = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + await app.logIn(Credentials.anonymous()) + + await app.callFunction('firstCall', []) + let request = (global.fetch as jest.Mock).mock.calls[4][1] + expect(request.headers.Authorization).toBe('Bearer access-2') + + app.switchUser(user1) + await app.callFunction('secondCall', []) + request = (global.fetch as jest.Mock).mock.calls[5][1] + expect(request.headers.Authorization).toBe('Bearer access-1') + }) + + it('notifies app listeners on login, switch and logout', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a1', refresh_token: 'refresh-1', user_id: 'user-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a2', refresh_token: 'refresh-2', user_id: 'user-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ status: 'ok' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const appListener = jest.fn() + app.addListener(appListener) + + const user1 = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + await app.logIn(Credentials.anonymous()) + app.switchUser(user1) + await app.logoutUser() + + expect(appListener).toHaveBeenCalledTimes(4) + }) + + it('notifies user listeners on token refresh and custom data refresh', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a1', refresh_token: 'refresh-1', user_id: 'user-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ data: {}, custom_data: { x: 1 }, identities: [] }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + const listener = jest.fn() + user.addListener(listener) + + await user.refreshAccessToken() + await user.refreshCustomData() + + expect(listener).toHaveBeenCalledTimes(2) + }) + + it('supports removing app and user listeners', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a1', refresh_token: 'refresh-1', user_id: 'user-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-3' }) + }) + .mockResolvedValue({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-fallback' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const appListener = jest.fn() + app.addListener(appListener) + app.removeListener(appListener) + + const user = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + expect(appListener).not.toHaveBeenCalled() + + const userListener = jest.fn() + user.addListener(userListener) + user.removeAllListeners() + await user.refreshAccessToken() + + expect(userListener).not.toHaveBeenCalled() + }) + + it('emits app listener notifications in deterministic user order', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a1', refresh_token: 'refresh-1', user_id: 'user-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a2', refresh_token: 'refresh-2', user_id: 'user-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ status: 'ok' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const events: string[] = [] + app.addListener(() => { + events.push(app.currentUser?.id ?? 'null') + }) + + const user1 = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + await app.logIn(Credentials.anonymous()) + app.switchUser(user1) + await app.logoutUser() + + expect(events).toEqual(['user-1', 'user-2', 'user-1', 'user-2']) + }) + + it('notifies only the target user listener for user-scoped operations', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a1', refresh_token: 'refresh-1', user_id: 'user-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a2', refresh_token: 'refresh-2', user_id: 'user-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1b' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user1 = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + await app.logIn(Credentials.anonymous()) + + const user1Listener = jest.fn() + const user2Listener = jest.fn() + user1.addListener(user1Listener) + app.currentUser!.addListener(user2Listener) + + await user1.refreshAccessToken() + + expect(user1Listener).toHaveBeenCalledTimes(1) + expect(user2Listener).toHaveBeenCalledTimes(0) + }) + + it('continues dispatch when a listener throws', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a1', refresh_token: 'refresh-1', user_id: 'user-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const badListener = jest.fn(() => { + throw new Error('listener failure') + }) + const goodListener = jest.fn() + app.addListener(badListener) + app.addListener(goodListener) + + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + expect(badListener).toHaveBeenCalledTimes(1) + expect(goodListener).toHaveBeenCalledTimes(1) + }) + + it('supports listener removal during dispatch', async () => { + global.fetch = jest + .fn() + .mockImplementation(async () => ({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-fallback' }) + })) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'login-a1', refresh_token: 'refresh-1', user_id: 'user-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-1' }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access-2' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + const user = await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const onceListener = jest.fn(() => { + user.removeListener(onceListener) + }) + const stableListener = jest.fn() + user.addListener(onceListener) + user.addListener(stableListener) + + await user.refreshAccessToken() + await user.refreshAccessToken() + + expect(onceListener).toHaveBeenCalledTimes(1) + expect(stableListener).toHaveBeenCalledTimes(2) + }) +}) diff --git a/packages/flowerbase-client/src/__tests__/watch.test.ts b/packages/flowerbase-client/src/__tests__/watch.test.ts new file mode 100644 index 0000000..01de83a --- /dev/null +++ b/packages/flowerbase-client/src/__tests__/watch.test.ts @@ -0,0 +1,336 @@ +import { App } from '../app' +import { EJSON, ObjectId } from '../bson' +import { Credentials } from '../credentials' + +const streamFromLines = (lines: string[]) => { + const encoded = lines.map((line) => `${line}\n`).join('') + const bytes = new TextEncoder().encode(encoded) + + return new ReadableStream({ + start(controller) { + controller.enqueue(bytes) + controller.close() + } + }) +} + +const decodeBaasRequest = (url: string) => { + const parsedUrl = new URL(url) + const encoded = parsedUrl.searchParams.get('baas_request') + if (!encoded) throw new Error('baas_request missing') + const base64 = decodeURIComponent(encoded) + const json = Buffer.from(base64, 'base64').toString('utf8') + return EJSON.deserialize(JSON.parse(json)) as { + arguments: Array<{ + filter?: Record + ids?: unknown[] + }> + } +} + +describe('flowerbase-client watch', () => { + const originalFetch = global.fetch + + afterEach(() => { + jest.useRealTimers() + global.fetch = originalFetch + }) + + it('receives SSE events through watch iterator', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValueOnce({ + ok: true, + body: streamFromLines(['data: {"operationType":"insert","fullDocument":{"title":"A"}}', '']) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const iterator = app.currentUser! + .mongoClient('mongodb-atlas') + .db('testdb') + .collection('todos') + .watch() + + const first = await iterator.next() + expect(first.done).toBe(false) + expect(first.value).toEqual({ operationType: 'insert', fullDocument: { title: 'A' } }) + + iterator.close() + + const [url, request] = (global.fetch as jest.Mock).mock.calls[2] + expect(url).toContain('/functions/call?baas_request=') + expect(request.headers.Authorization).toBe('Bearer access') + }) + + it('closes iterator on return', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValue({ + ok: true, + body: streamFromLines([]) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const iterator = app.currentUser! + .mongoClient('mongodb-atlas') + .db('testdb') + .collection('todos') + .watch() + + iterator.close() + const result = await iterator.next() + expect(result.done).toBe(true) + }) + + it('reconnects with backoff after network errors', async () => { + jest.useFakeTimers() + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockRejectedValueOnce(new Error('network')) + .mockResolvedValueOnce({ + ok: true, + body: streamFromLines(['data: {"operationType":"update"}', '']) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const iterator = app.currentUser! + .mongoClient('mongodb-atlas') + .db('testdb') + .collection('todos') + .watch() + + await jest.advanceTimersByTimeAsync(250) + const result = await iterator.next() + + expect(result.done).toBe(false) + expect(result.value).toEqual({ operationType: 'update' }) + expect((global.fetch as jest.Mock).mock.calls.length).toBeGreaterThanOrEqual(4) + + iterator.close() + }) + + it('maps watch ids/filter options into watch arguments', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValue({ + ok: true, + body: streamFromLines([]) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const collection = app.currentUser!.mongoClient('mongodb-atlas').db('testdb').collection('todos') + + const byIds = collection.watch({ ids: ['id-1', 'id-2'] }) + byIds.close() + const firstRequest = decodeBaasRequest((global.fetch as jest.Mock).mock.calls[2][0] as string) + expect(firstRequest.arguments[0].ids).toEqual(['id-1', 'id-2']) + expect(firstRequest.arguments[0].filter).toBeUndefined() + + const byFilter = collection.watch({ filter: { operationType: 'insert' } }) + byFilter.close() + const secondRequest = decodeBaasRequest((global.fetch as jest.Mock).mock.calls[3][0] as string) + expect(secondRequest.arguments[0].filter).toEqual({ operationType: 'insert' }) + expect(secondRequest.arguments[0].ids).toBeUndefined() + }) + + it('preserves ObjectId values in watch filter payload', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValue({ + ok: true, + body: streamFromLines([]) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const collection = app.currentUser!.mongoClient('mongodb-atlas').db('testdb').collection('todos') + const requestId = new ObjectId('69a282a75cd849c244e001ca') + + const iterator = collection.watch({ + filter: { + 'fullDocument.requestId': requestId, + operationType: 'update' + } + }) + iterator.close() + + const request = decodeBaasRequest((global.fetch as jest.Mock).mock.calls[2][0] as string) + const decodedRequestId = request.arguments[0].filter?.['fullDocument.requestId'] + expect(decodedRequestId).toBeInstanceOf(ObjectId) + expect((decodedRequestId as ObjectId).toHexString()).toBe(requestId.toHexString()) + }) + + it('rejects pipeline-based watch signature', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) + .mockResolvedValue({ + ok: true, + body: streamFromLines([]) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const collection = app.currentUser!.mongoClient('mongodb-atlas').db('testdb').collection('todos') + + expect(() => + collection.watch([{ $match: { operationType: 'update', 'fullDocument.type': 'perennial' } }]) + ).toThrow('watch accepts only an options object with "filter" or "ids"') + }) + + it('rejects unsupported watch option keys', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const collection = app.currentUser!.mongoClient('mongodb-atlas').db('testdb').collection('todos') + expect(() => collection.watch({ fullDocument: 'updateLookup' })).toThrow( + 'watch options support only "filter" or "ids"' + ) + }) + + it('rejects watch options with both ids and filter', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const collection = app.currentUser!.mongoClient('mongodb-atlas').db('testdb').collection('todos') + expect(() => collection.watch({ ids: ['id-1'], filter: { operationType: 'insert' } })).toThrow( + 'watch options cannot include both "ids" and "filter"' + ) + }) + + it('rejects $match inside watch filter object', async () => { + global.fetch = jest + .fn() + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ + access_token: 'access', + refresh_token: 'refresh', + user_id: 'user-1' + }) + }) + .mockResolvedValueOnce({ + ok: true, + text: async () => JSON.stringify({ access_token: 'access' }) + }) as unknown as typeof fetch + + const app = new App({ id: 'my-app', baseUrl: 'http://localhost:3000' }) + await app.logIn(Credentials.emailPassword('john@doe.com', 'secret123')) + + const collection = app.currentUser!.mongoClient('mongodb-atlas').db('testdb').collection('todos') + expect(() => collection.watch({ filter: { $match: { operationType: 'insert' } } })).toThrow( + 'watch filter must be a query object, not a $match stage' + ) + }) +}) diff --git a/packages/flowerbase-client/src/app.ts b/packages/flowerbase-client/src/app.ts new file mode 100644 index 0000000..0162aaf --- /dev/null +++ b/packages/flowerbase-client/src/app.ts @@ -0,0 +1,562 @@ +import { normalizeFunctionResponse } from './functions' +import { FlowerbaseHttpError, requestJson, requestStream } from './http' +import { SessionManager } from './session' +import { AppConfig, CredentialsLike, FunctionCallPayload, ProfileData, SessionData } from './types' +import { Credentials } from './credentials' +import { User } from './user' + +const API_PREFIX = '/api/client/v2.0' + +type LoginResponse = { + access_token: string + refresh_token: string + user_id: string +} + +type SessionResponse = { + access_token: string +} + +export class App { + private static readonly appCache: Record = {} + static readonly Credentials = Credentials + + readonly id: string + readonly baseUrl: string + readonly timeout: number + private readonly sessionManager: SessionManager + private readonly usersById = new Map() + private readonly sessionsByUserId = new Map() + private usersOrder: string[] = [] + private readonly profilesByUserId = new Map() + private readonly sessionBootstrapPromise: Promise + private readonly listeners = new Set<() => void>() + + emailPasswordAuth: { + registerUser: (input: { email: string; password: string }) => Promise + confirmUser: (input: { token: string; tokenId: string }) => Promise + resendConfirmationEmail: (input: { email: string }) => Promise + retryCustomConfirmation: (input: { email: string }) => Promise + sendResetPasswordEmail: (input: { email: string } | string) => Promise + callResetPasswordFunction: ( + input: { email: string; password: string } | string, + passwordOrArg?: string, + ...args: unknown[] + ) => Promise + resetPassword: (input: { token: string; tokenId: string; password: string }) => Promise + } + + constructor(idOrConfig: string | AppConfig) { + const config = typeof idOrConfig === 'string' ? { id: idOrConfig } : idOrConfig + this.id = config.id + this.baseUrl = (config.baseUrl ?? '').replace(/\/$/, '') + this.timeout = config.timeout ?? 10000 + this.sessionManager = new SessionManager(this.id) + const persistedSessionsByUser = this.sessionManager.getSessionsByUser() + for (const [userId, session] of Object.entries(persistedSessionsByUser)) { + this.sessionsByUserId.set(userId, session) + } + this.usersOrder = this.sessionManager.getUsersOrder() + for (const userId of this.sessionsByUserId.keys()) { + if (!this.usersOrder.includes(userId)) { + this.usersOrder.push(userId) + } + } + for (const userId of this.usersOrder) { + this.getOrCreateUser(userId) + } + + const currentSession = this.sessionManager.get() + if (currentSession?.userId) { + this.sessionsByUserId.set(currentSession.userId, currentSession) + this.getOrCreateUser(currentSession.userId) + this.touchUser(currentSession.userId) + this.persistSessionsByUser() + } else { + this.setCurrentSessionFromOrder() + } + this.sessionBootstrapPromise = this.bootstrapSessionOnLoad() + + this.emailPasswordAuth = { + registerUser: ({ email, password }) => + this.postProvider('/local-userpass/register', { email, password }), + confirmUser: ({ token, tokenId }) => + this.postProvider('/local-userpass/confirm', { token, tokenId }), + resendConfirmationEmail: ({ email }) => + this.postProvider('/local-userpass/confirm/send', { email }), + retryCustomConfirmation: ({ email }) => + this.postProvider('/local-userpass/confirm/call', { email }), + sendResetPasswordEmail: (input) => + this.postProvider('/local-userpass/reset/send', { + email: typeof input === 'string' ? input : input.email + }), + callResetPasswordFunction: (input, passwordOrArg, ...args) => { + if (typeof input === 'string') { + return this.postProvider('/local-userpass/reset/call', { + email: input, + password: passwordOrArg, + arguments: args + }) + } + + return this.postProvider('/local-userpass/reset/call', { + email: input.email, + password: input.password, + arguments: [passwordOrArg, ...args].filter((value) => value !== undefined) + }) + }, + resetPassword: ({ token, tokenId, password }) => + this.postProvider('/local-userpass/reset', { token, tokenId, password }) + } + } + + static getApp(appIdOrConfig: string | AppConfig) { + const appId = typeof appIdOrConfig === 'string' ? appIdOrConfig : appIdOrConfig.id + if (appId in App.appCache) { + return App.appCache[appId] + } + const app = new App(appIdOrConfig) + App.appCache[appId] = app + return app + } + + get currentUser() { + for (const userId of this.usersOrder) { + const user = this.usersById.get(userId) + if (user?.state === 'active') { + return user + } + } + return null + } + + get allUsers(): Readonly> { + const activeUsers: string[] = [] + const loggedOutUsers: string[] = [] + for (const userId of this.usersOrder) { + const user = this.usersById.get(userId) + if (!user) continue + if (user.state === 'active') { + activeUsers.push(userId) + } else if (user.state === 'logged-out') { + loggedOutUsers.push(userId) + } + } + + const users = Object.fromEntries( + [...activeUsers, ...loggedOutUsers].map((userId) => [userId, this.usersById.get(userId)!]) + ) + return users + } + + private persistSessionsByUser() { + this.sessionManager.setSessionsByUser(Object.fromEntries(this.sessionsByUserId.entries())) + } + + private persistUsersOrder() { + this.sessionManager.setUsersOrder(this.usersOrder) + } + + private touchUser(userId: string) { + this.usersOrder = [userId, ...this.usersOrder.filter((id) => id !== userId)] + this.persistUsersOrder() + } + + private removeUserFromOrder(userId: string) { + this.usersOrder = this.usersOrder.filter((id) => id !== userId) + this.persistUsersOrder() + } + + private setSessionForUser(session: SessionData) { + this.sessionsByUserId.set(session.userId, session) + this.sessionManager.set(session) + this.persistSessionsByUser() + } + + private clearSessionForUser(userId: string) { + this.sessionsByUserId.delete(userId) + this.persistSessionsByUser() + } + + private setCurrentSessionFromOrder() { + for (const userId of this.usersOrder) { + const session = this.sessionsByUserId.get(userId) + if (session) { + this.sessionManager.set(session) + return + } + } + this.sessionManager.clear() + } + + private notifyListeners(userId?: string) { + for (const callback of Array.from(this.listeners)) { + try { + callback() + } catch { + // Listener failures should not break auth/session lifecycle. + } + } + + if (userId) { + this.usersById.get(userId)?.notifyListeners() + } + } + + private providerUrl(path: string) { + return `${this.baseUrl}${API_PREFIX}/app/${this.id}/auth/providers${path}` + } + + private authUrl(path: string) { + return `${this.baseUrl}${API_PREFIX}/auth${path}` + } + + private functionsUrl(path = '/call') { + return `${this.baseUrl}${API_PREFIX}/app/${this.id}/functions${path}` + } + + private async createSession(refreshToken: string): Promise { + return requestJson({ + url: this.authUrl('/session'), + method: 'POST', + bearerToken: refreshToken, + timeout: this.timeout + }) + } + + private async bootstrapSessionOnLoad(): Promise { + const session = this.sessionManager.get() + if (!session || typeof localStorage === 'undefined') { + return + } + + try { + const result = await this.createSession(session.refreshToken) + this.setSessionForUser({ + ...session, + accessToken: result.access_token + }) + } catch { + this.clearSessionForUser(session.userId) + this.setCurrentSessionFromOrder() + } + } + + private async ensureSessionBootstrapped() { + await this.sessionBootstrapPromise + } + + private async setLoggedInUser( + data: LoginResponse, + providerType: CredentialsLike['provider'], + profileEmail?: string + ) { + const sessionResult = await this.createSession(data.refresh_token) + const session: SessionData = { + accessToken: sessionResult.access_token, + refreshToken: data.refresh_token, + userId: data.user_id + } + this.setSessionForUser(session) + const user = this.getOrCreateUser(data.user_id) + user.setProviderType(providerType) + this.touchUser(data.user_id) + if (profileEmail) { + user.profile = { email: profileEmail } + } + this.notifyListeners(data.user_id) + return user + } + + private getOrCreateUser(userId: string) { + const existing = this.usersById.get(userId) + if (existing) { + return existing + } + const user = new User(this, userId) + this.usersById.set(userId, user) + return user + } + + async logIn(credentials: CredentialsLike) { + if (credentials.provider === 'local-userpass') { + const result = await this.postProvider('/local-userpass/login', { + username: credentials.email, + password: credentials.password + }) + return this.setLoggedInUser(result, 'local-userpass', credentials.email) + } + + if (credentials.provider === 'anon-user') { + const result = await this.postProvider('/anon-user/login', {}) + return this.setLoggedInUser(result, 'anon-user') + } + + if (credentials.provider === 'custom-function') { + const result = await this.postProvider('/custom-function/login', credentials.payload) + return this.setLoggedInUser(result, 'custom-function') + } + + if (credentials.provider === 'custom-token') { + const result = await this.postProvider('/custom-token/login', { token: credentials.token }) + return this.setLoggedInUser(result, 'custom-token') + } + + const unsupportedProvider: never = credentials + throw new Error(`Unsupported credentials provider: ${JSON.stringify(unsupportedProvider)}`) + } + + switchUser(nextUser: User) { + const knownUser = this.usersById.get(nextUser.id) + if (!knownUser) { + throw new Error('The user was never logged into this app') + } + this.touchUser(nextUser.id) + const session = this.sessionsByUserId.get(nextUser.id) + if (session) { + this.sessionManager.set(session) + } + this.notifyListeners(nextUser.id) + } + + async removeUser(user: User) { + const knownUser = this.usersById.get(user.id) + if (!knownUser) { + throw new Error('The user was never logged into this app') + } + if (this.sessionsByUserId.has(user.id)) { + await this.logoutUser(user.id) + } + this.usersById.delete(user.id) + this.removeUserFromOrder(user.id) + this.profilesByUserId.delete(user.id) + this.clearSessionForUser(user.id) + this.setCurrentSessionFromOrder() + this.notifyListeners(user.id) + } + + async deleteUser(user: User) { + await this.requestWithAccessToken((accessToken) => + requestJson({ + url: this.authUrl('/delete'), + method: 'DELETE', + bearerToken: accessToken, + timeout: this.timeout + }), + user.id + ) + await this.removeUser(user) + } + + getSessionOrThrow(userId?: string) { + const targetUserId = userId ?? this.currentUser?.id + const session = targetUserId ? this.sessionsByUserId.get(targetUserId) : this.sessionManager.get() + if (!session) { + throw new Error('User is not authenticated') + } + return session + } + + getSession(userId?: string) { + if (userId) { + return this.sessionsByUserId.get(userId) ?? null + } + return this.sessionManager.get() + } + + hasUser(userId: string) { + return this.usersById.has(userId) + } + + getProfileSnapshot(userId: string) { + return this.profilesByUserId.get(userId) + } + + async postProvider(path: string, body: unknown): Promise { + return requestJson({ + url: this.providerUrl(path), + method: 'POST', + body, + timeout: this.timeout + }) + } + + private async requestWithAccessToken(operation: (accessToken: string) => Promise, userId?: string) { + const firstSession = this.getSessionOrThrow(userId) + try { + return await operation(firstSession.accessToken) + } catch (error) { + if (!(error instanceof FlowerbaseHttpError) || error.status !== 401) { + throw error + } + await this.refreshAccessToken(userId) + const refreshedSession = this.getSessionOrThrow(userId) + return operation(refreshedSession.accessToken) + } + } + + async callFunction(name: string, args: unknown[], userId?: string) { + await this.ensureSessionBootstrapped() + const payload: FunctionCallPayload = { + name, + arguments: args + } + + const result = await this.requestWithAccessToken((accessToken) => + requestJson({ + url: this.functionsUrl('/call'), + method: 'POST', + body: payload, + bearerToken: accessToken, + timeout: this.timeout + }), + userId + ) + + return normalizeFunctionResponse(result) + } + + async callFunctionStreaming(name: string, args: unknown[], userId?: string): Promise> { + await this.ensureSessionBootstrapped() + const payload: FunctionCallPayload = { + name, + arguments: args + } + const resolveSession = () => this.getSessionOrThrow(userId) + const refreshSession = () => this.refreshAccessToken(userId) + const timeout = this.timeout + const url = this.functionsUrl('/call') + + return { + async *[Symbol.asyncIterator]() { + let didRefresh = false + while (true) { + const session = resolveSession() + let stream: AsyncIterable + + try { + stream = await requestStream({ + url, + method: 'POST', + body: payload, + bearerToken: session.accessToken, + timeout + }) + } catch (error) { + if (!didRefresh && error instanceof FlowerbaseHttpError && error.status === 401) { + await refreshSession() + didRefresh = true + continue + } + throw error + } + + try { + for await (const chunk of stream) { + yield chunk + } + return + } catch (error) { + if (!didRefresh && error instanceof FlowerbaseHttpError && error.status === 401) { + await refreshSession() + didRefresh = true + continue + } + throw error + } + } + } + } + } + + async callService(name: string, args: unknown[], service = 'mongodb-atlas', userId?: string) { + await this.ensureSessionBootstrapped() + const payload: FunctionCallPayload = { + name, + service, + arguments: args + } + + return this.requestWithAccessToken((accessToken) => + requestJson({ + url: this.functionsUrl('/call'), + method: 'POST', + body: payload, + bearerToken: accessToken, + timeout: this.timeout + }), + userId + ) + } + + async getProfile(userId?: string): Promise { + await this.ensureSessionBootstrapped() + const profile = await this.requestWithAccessToken((accessToken) => + requestJson({ + url: this.authUrl('/profile'), + method: 'GET', + bearerToken: accessToken, + timeout: this.timeout + }), + userId + ) + const session = this.getSessionOrThrow(userId) + this.profilesByUserId.set(session.userId, profile) + return profile + } + + async refreshAccessToken(userId?: string) { + await this.ensureSessionBootstrapped() + const session = this.getSessionOrThrow(userId) + + try { + const result = await this.createSession(session.refreshToken) + + this.setSessionForUser({ + ...session, + accessToken: result.access_token + }) + this.touchUser(session.userId) + this.notifyListeners(session.userId) + + return result.access_token + } catch (error) { + this.clearSessionForUser(session.userId) + this.setCurrentSessionFromOrder() + this.notifyListeners(session.userId) + throw error + } + } + + async logoutUser(userId?: string) { + const session = this.getSession(userId ?? this.currentUser?.id) + try { + if (session) { + await requestJson({ + url: this.authUrl('/session'), + method: 'DELETE', + bearerToken: session.refreshToken, + timeout: this.timeout + }) + } + } finally { + if (session) { + this.clearSessionForUser(session.userId) + this.notifyListeners(session.userId) + } + this.setCurrentSessionFromOrder() + } + } + + addListener(callback: () => void) { + this.listeners.add(callback) + } + + removeListener(callback: () => void) { + this.listeners.delete(callback) + } + + removeAllListeners() { + this.listeners.clear() + } +} diff --git a/packages/flowerbase-client/src/bson.ts b/packages/flowerbase-client/src/bson.ts new file mode 100644 index 0000000..fa9010c --- /dev/null +++ b/packages/flowerbase-client/src/bson.ts @@ -0,0 +1,6 @@ +import { EJSON, ObjectId, BSON as RawBSON } from 'bson' + +const ObjectID = ObjectId +const BSON = Object.assign({}, RawBSON, { ObjectId, ObjectID }) + +export { BSON, EJSON, ObjectId, ObjectID } diff --git a/packages/flowerbase-client/src/credentials.ts b/packages/flowerbase-client/src/credentials.ts new file mode 100644 index 0000000..6680244 --- /dev/null +++ b/packages/flowerbase-client/src/credentials.ts @@ -0,0 +1,31 @@ +import { CredentialsLike } from './types' + +export class Credentials { + static emailPassword(email: string, password: string): CredentialsLike { + return { + provider: 'local-userpass', + email, + password + } + } + + static anonymous(): CredentialsLike { + return { + provider: 'anon-user' + } + } + + static function(payload: Record): CredentialsLike { + return { + provider: 'custom-function', + payload + } + } + + static jwt(token: string): CredentialsLike { + return { + provider: 'custom-token', + token + } + } +} diff --git a/packages/flowerbase-client/src/functions.ts b/packages/flowerbase-client/src/functions.ts new file mode 100644 index 0000000..23efcaf --- /dev/null +++ b/packages/flowerbase-client/src/functions.ts @@ -0,0 +1,56 @@ +import { EJSON } from './bson' + +const RESERVED_PROXY_KEYS = new Set([ + 'toJSON', + 'then', + 'catch', + 'finally', + 'constructor', + '__proto__', + 'prototype' +]) + +const deserialize = (value: T): T => { + if (!value || typeof value !== 'object') return value + return EJSON.deserialize(value as Record) as T +} + +export const normalizeFunctionResponse = (value: unknown) => { + if (typeof value === 'string') { + try { + const parsed = JSON.parse(value) + return deserialize(parsed) + } catch { + return value + } + } + + return deserialize(value) +} + +export const createFunctionsProxy = ( + callFunction: (name: string, args: unknown[]) => Promise, + callFunctionStreaming: (name: string, args: unknown[]) => Promise> +): Record Promise> & { + callFunction: (name: string, ...args: unknown[]) => Promise + callFunctionStreaming: (name: string, ...args: unknown[]) => Promise> +} => + new Proxy( + {}, + { + get: (_, key) => { + if (typeof key !== 'string') return undefined + if (RESERVED_PROXY_KEYS.has(key)) return undefined + if (key === 'callFunction') { + return (name: string, ...args: unknown[]) => callFunction(name, args) + } + if (key === 'callFunctionStreaming') { + return (name: string, ...args: unknown[]) => callFunctionStreaming(name, args) + } + return (...args: unknown[]) => callFunction(key, args) + } + } + ) as Record Promise> & { + callFunction: (name: string, ...args: unknown[]) => Promise + callFunctionStreaming: (name: string, ...args: unknown[]) => Promise> + } diff --git a/packages/flowerbase-client/src/http.ts b/packages/flowerbase-client/src/http.ts new file mode 100644 index 0000000..76101eb --- /dev/null +++ b/packages/flowerbase-client/src/http.ts @@ -0,0 +1,221 @@ +type ParsedPayloadError = { + message?: string + error?: string + errorCode?: string + link?: string +} + +const parsePayloadError = (payload: unknown): ParsedPayloadError => { + if (!payload || typeof payload !== 'object') return {} + + const message = 'message' in payload && typeof payload.message === 'string' ? payload.message : undefined + const error = 'error' in payload && typeof payload.error === 'string' ? payload.error : undefined + const errorCode = + 'error_code' in payload && typeof payload.error_code === 'string' + ? payload.error_code + : 'errorCode' in payload && typeof payload.errorCode === 'string' + ? payload.errorCode + : undefined + const link = 'link' in payload && typeof payload.link === 'string' ? payload.link : undefined + + if (error) { + try { + const parsed = JSON.parse(error) + if (parsed && typeof parsed === 'object') { + const nestedMessage = 'message' in parsed && typeof parsed.message === 'string' ? parsed.message : undefined + const nestedErrorCode = + 'error_code' in parsed && typeof parsed.error_code === 'string' + ? parsed.error_code + : 'errorCode' in parsed && typeof parsed.errorCode === 'string' + ? parsed.errorCode + : undefined + return { + message: nestedMessage ?? message ?? error, + error, + errorCode: nestedErrorCode ?? errorCode, + link + } + } + } catch { + // Keep original error text if it isn't JSON. + } + } + + return { + message: message ?? error, + error, + errorCode, + link + } +} + +export class MongoDBRealmError extends Error { + readonly method: string + readonly url: string + readonly statusCode: number + readonly statusText: string + readonly error: string | undefined + readonly errorCode: string | undefined + readonly link: string | undefined + readonly payload?: unknown + + constructor(params: { + method: string + url: string + statusCode: number + statusText: string + error?: string + errorCode?: string + link?: string + payload?: unknown + }) { + super(params.error || `${params.statusCode} ${params.statusText}`.trim()) + this.name = 'MongoDBRealmError' + this.method = params.method + this.url = params.url + this.statusCode = params.statusCode + this.statusText = params.statusText + this.error = params.error + this.errorCode = params.errorCode + this.link = params.link + this.payload = params.payload + } +} + +export class FlowerbaseHttpError extends MongoDBRealmError { + readonly status: number + + constructor(params: ConstructorParameters[0]) { + super(params) + this.name = 'FlowerbaseHttpError' + this.status = params.statusCode + } +} + +type RequestParams = { + url: string + method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' + body?: unknown + bearerToken?: string + timeout?: number +} + +const parseBody = async (response: Response) => { + const text = await response.text() + if (!text) return null + + try { + return JSON.parse(text) + } catch { + return text + } +} + +const timeoutSignal = (timeout = 10000) => { + const controller = new AbortController() + const timer = setTimeout(() => controller.abort(), timeout) + return { + signal: controller.signal, + clear: () => clearTimeout(timer) + } +} + +export const requestJson = async ({ + url, + method = 'GET', + body, + bearerToken, + timeout +}: RequestParams): Promise => { + const { signal, clear } = timeoutSignal(timeout) + + try { + const response = await fetch(url, { + method, + headers: { + ...(body !== undefined ? { 'Content-Type': 'application/json' } : {}), + ...(bearerToken ? { Authorization: `Bearer ${bearerToken}` } : {}) + }, + body: body !== undefined ? JSON.stringify(body) : undefined, + signal + }) + + const payload = await parseBody(response) + + if (!response.ok) { + const parsedError = parsePayloadError(payload) + throw new FlowerbaseHttpError({ + method, + url, + statusCode: response.status, + statusText: response.statusText, + error: parsedError.message ?? `HTTP ${response.status}`, + errorCode: parsedError.errorCode, + link: parsedError.link, + payload + }) + } + + return payload as T + } finally { + clear() + } +} + +export const requestStream = async ({ + url, + method = 'GET', + body, + bearerToken, + timeout +}: RequestParams): Promise> => { + const { signal, clear } = timeoutSignal(timeout) + + try { + const response = await fetch(url, { + method, + headers: { + ...(body !== undefined ? { 'Content-Type': 'application/json' } : {}), + ...(bearerToken ? { Authorization: `Bearer ${bearerToken}` } : {}) + }, + body: body !== undefined ? JSON.stringify(body) : undefined, + signal + }) + + if (!response.ok) { + const payload = await parseBody(response) + const parsedError = parsePayloadError(payload) + throw new FlowerbaseHttpError({ + method, + url, + statusCode: response.status, + statusText: response.statusText, + error: parsedError.message ?? `HTTP ${response.status}`, + errorCode: parsedError.errorCode, + link: parsedError.link, + payload + }) + } + + if (!response.body) { + throw new Error('Response stream body is missing') + } + + const reader = response.body.getReader() + return { + async *[Symbol.asyncIterator]() { + try { + while (true) { + const { done, value } = await reader.read() + if (done) break + if (value) yield value + } + } finally { + reader.releaseLock() + } + } + } + } finally { + clear() + } +} diff --git a/packages/flowerbase-client/src/index.ts b/packages/flowerbase-client/src/index.ts new file mode 100644 index 0000000..06dfc66 --- /dev/null +++ b/packages/flowerbase-client/src/index.ts @@ -0,0 +1,15 @@ +import { BSON, EJSON, ObjectId, ObjectID } from './bson' + +export { App } from './app' +export { User } from './user' +export { Credentials } from './credentials' +export { MongoDBRealmError } from './http' +export { BSON, EJSON, ObjectId, ObjectID } +export type { + AppConfig, + CredentialsLike, + UserLike, + MongoClientLike, + CollectionLike, + WatchAsyncIterator +} from './types' diff --git a/packages/flowerbase-client/src/mongo.ts b/packages/flowerbase-client/src/mongo.ts new file mode 100644 index 0000000..9a7f51f --- /dev/null +++ b/packages/flowerbase-client/src/mongo.ts @@ -0,0 +1,112 @@ +import type { App } from './app' +import { EJSON } from './bson' +import { CollectionLike, MongoClientLike } from './types' +import { createWatchIterator } from './watch' + +const serialize = (value: unknown) => EJSON.serialize(value, { relaxed: false }) +const deserialize = (value: T): T => { + if (!value || typeof value !== 'object') return value + return EJSON.deserialize(value as Record) as T +} + +const mapResult = (value: unknown) => { + if (typeof value === 'string') { + try { + return deserialize(JSON.parse(value)) + } catch { + return value + } + } + return deserialize(value) +} + +export const createMongoClient = (app: App, serviceName: string, userId: string): MongoClientLike => ({ + db: (database: string) => ({ + collection: (collection: string): CollectionLike => { + const callService = async (name: string, args: unknown[]) => { + const result = await app.callService(name, [ + { + database, + collection, + ...serialize(args[0] ?? {}), + ...(args[1] !== undefined ? { options: serialize(args[1]) } : {}) + } + ], serviceName, userId) + return mapResult(result) + } + + const normalizeWatchInput = (input?: unknown) => { + if (typeof input === 'undefined') { + return { filter: undefined, ids: undefined } + } + if (Array.isArray(input)) { + throw new Error('watch accepts only an options object with "filter" or "ids"') + } + if (!input || typeof input !== 'object') { + throw new Error('watch options must be an object') + } + + const typed = input as { ids?: unknown[]; filter?: Record; [key: string]: unknown } + const keys = Object.keys(typed) + const hasOnlyAllowedKeys = keys.every((key) => key === 'ids' || key === 'filter') + if (!hasOnlyAllowedKeys) { + throw new Error('watch options support only "filter" or "ids"') + } + if (typed.ids || typed.filter) { + if (typed.ids && typed.filter) { + throw new Error('watch options cannot include both "ids" and "filter"') + } + const { ids, filter } = typed + if (filter && typeof filter === 'object' && '$match' in filter) { + throw new Error('watch filter must be a query object, not a $match stage') + } + if (ids) { + if (!Array.isArray(ids)) { + throw new Error('watch ids must be an array') + } + return { filter: undefined, ids } + } + if (filter) { + return { filter, ids: undefined } + } + return { filter: undefined, ids: undefined } + } + throw new Error('watch options must include "filter" or "ids"') + } + + return { + find: (query = {}, options = {}) => callService('find', [{ query, options }]), + findOne: (query = {}, options = {}) => callService('findOne', [{ query, options }]), + findOneAndUpdate: (filter, update, options = {}) => + callService('findOneAndUpdate', [{ filter, update, options }]), + findOneAndReplace: (filter, replacement, options = {}) => + callService('findOneAndReplace', [{ filter, replacement, options }]), + findOneAndDelete: (filter, options = {}) => callService('findOneAndDelete', [{ filter, options }]), + aggregate: (pipeline) => callService('aggregate', [{ pipeline }]), + count: (query = {}, options = {}) => callService('count', [{ query, options }]), + insertOne: (document, options = {}) => callService('insertOne', [{ document, options }]), + insertMany: (documents, options = {}) => callService('insertMany', [{ documents, options }]), + updateOne: (filter, update, options = {}) => + callService('updateOne', [{ filter, update, options }]), + updateMany: (filter, update, options = {}) => + callService('updateMany', [{ filter, update, options }]), + deleteOne: (filter, options = {}) => callService('deleteOne', [{ query: filter, options }]), + deleteMany: (filter, options = {}) => callService('deleteMany', [{ query: filter, options }]), + watch: (options) => { + const { filter, ids } = normalizeWatchInput(options) + const session = app.getSessionOrThrow(userId) + return createWatchIterator({ + appId: app.id, + baseUrl: app.baseUrl, + accessToken: session.accessToken, + database, + collection, + filter, + ids, + timeout: app.timeout + }) + } + } + } + }) +}) diff --git a/packages/flowerbase-client/src/session.native.ts b/packages/flowerbase-client/src/session.native.ts new file mode 100644 index 0000000..9fc367d --- /dev/null +++ b/packages/flowerbase-client/src/session.native.ts @@ -0,0 +1,89 @@ +import { SessionData } from './types' +import AsyncStorage from '@react-native-async-storage/async-storage' + +type StorageLike = { + getItem: (key: string) => Promise + setItem: (key: string, value: string) => Promise + removeItem: (key: string) => Promise +} + +const memoryStore = new Map() + +const getAsyncStorage = (): StorageLike => AsyncStorage + +const parseSession = (raw: string | null): SessionData | null => { + if (!raw) return null + try { + return JSON.parse(raw) as SessionData + } catch { + return null + } +} + +export class SessionManager { + private readonly key: string + private session: SessionData | null = null + private readonly asyncStorage = getAsyncStorage() + private hydrationPromise: Promise | null = null + + constructor(appId: string) { + this.key = `flowerbase:${appId}:session` + this.session = this.load() + void this.hydrateFromAsyncStorage() + } + + private hydrateFromAsyncStorage() { + if (!this.asyncStorage) { + return Promise.resolve() + } + + if (this.hydrationPromise) { + return this.hydrationPromise + } + + this.hydrationPromise = this.asyncStorage + .getItem(this.key) + .then((raw) => { + const parsed = parseSession(raw) + if (!parsed) return + this.session = parsed + memoryStore.set(this.key, JSON.stringify(parsed)) + }) + .catch(() => { + // Ignore storage read failures and keep memory fallback. + }) + + return this.hydrationPromise + } + + load(): SessionData | null { + return parseSession(memoryStore.get(this.key) ?? null) + } + + get() { + return this.session + } + + set(session: SessionData) { + this.session = session + const raw = JSON.stringify(session) + memoryStore.set(this.key, raw) + + if (this.asyncStorage) { + void this.asyncStorage.setItem(this.key, raw).catch(() => { + // Ignore write failures and keep memory fallback. + }) + } + } + + clear() { + this.session = null + memoryStore.delete(this.key) + + if (this.asyncStorage) { + void this.asyncStorage.removeItem(this.key).catch(() => { + // Ignore delete failures and keep memory fallback. + }) + } + } +} diff --git a/packages/flowerbase-client/src/session.ts b/packages/flowerbase-client/src/session.ts new file mode 100644 index 0000000..71e4c67 --- /dev/null +++ b/packages/flowerbase-client/src/session.ts @@ -0,0 +1,114 @@ +import { SessionData } from './types' + +const memoryStore = new Map() + +const getStorage = () => { + if (typeof localStorage !== 'undefined') { + return { + getItem: (key: string) => localStorage.getItem(key), + setItem: (key: string, value: string) => localStorage.setItem(key, value), + removeItem: (key: string) => localStorage.removeItem(key) + } + } + + return { + getItem: (key: string) => memoryStore.get(key) ?? null, + setItem: (key: string, value: string) => { + memoryStore.set(key, value) + }, + removeItem: (key: string) => { + memoryStore.delete(key) + } + } +} + +export class SessionManager { + private readonly key: string + private readonly usersKey: string + private readonly sessionsKey: string + private readonly storage = getStorage() + private session: SessionData | null = null + + constructor(appId: string) { + this.key = `flowerbase:${appId}:session` + this.usersKey = `flowerbase:${appId}:users` + this.sessionsKey = `flowerbase:${appId}:sessions` + this.session = this.load() + } + + load(): SessionData | null { + const raw = this.storage.getItem(this.key) + if (!raw) return null + + try { + return JSON.parse(raw) as SessionData + } catch { + return null + } + } + + get() { + return this.session + } + + set(session: SessionData) { + this.session = session + this.storage.setItem(this.key, JSON.stringify(session)) + } + + clear() { + this.session = null + this.storage.removeItem(this.key) + } + + getUsersOrder() { + const raw = this.storage.getItem(this.usersKey) + if (!raw) return [] + try { + const parsed = JSON.parse(raw) + if (!Array.isArray(parsed)) return [] + return parsed.filter((item): item is string => typeof item === 'string') + } catch { + return [] + } + } + + setUsersOrder(order: string[]) { + if (order.length === 0) { + this.storage.removeItem(this.usersKey) + return + } + this.storage.setItem(this.usersKey, JSON.stringify(order)) + } + + getSessionsByUser() { + const raw = this.storage.getItem(this.sessionsKey) + if (!raw) return {} as Record + try { + const parsed = JSON.parse(raw) as Record + const normalized: Record = {} + for (const [userId, session] of Object.entries(parsed)) { + if ( + session && + typeof session === 'object' && + typeof session.accessToken === 'string' && + typeof session.refreshToken === 'string' && + typeof session.userId === 'string' + ) { + normalized[userId] = session + } + } + return normalized + } catch { + return {} as Record + } + } + + setSessionsByUser(sessionsByUser: Record) { + if (Object.keys(sessionsByUser).length === 0) { + this.storage.removeItem(this.sessionsKey) + return + } + this.storage.setItem(this.sessionsKey, JSON.stringify(sessionsByUser)) + } +} diff --git a/packages/flowerbase-client/src/types.ts b/packages/flowerbase-client/src/types.ts new file mode 100644 index 0000000..dc75ffa --- /dev/null +++ b/packages/flowerbase-client/src/types.ts @@ -0,0 +1,114 @@ +export type AppConfig = { + id: string + baseUrl?: string + timeout?: number +} + +export type CredentialsLike = + | { provider: 'local-userpass'; email: string; password: string } + | { provider: 'anon-user' } + | { provider: 'custom-function'; payload: Record } + | { provider: 'custom-token'; token: string } + +export type SessionData = { + accessToken: string + refreshToken: string + userId: string +} + +export type ProfileData = { + _id?: string + identities?: unknown[] + type?: string + custom_data?: Record + data?: Record +} + +export type FunctionCallPayload = { + name: string + arguments: unknown[] + service?: string +} + +export type WatchConfig = { + appId: string + baseUrl: string + accessToken: string + database: string + collection: string + filter?: Record + ids?: unknown[] + timeout?: number +} + +export type WatchAsyncIterator = AsyncIterableIterator & { + close: () => void +} + +export interface CollectionLike { + find: (query?: Record, options?: Record) => Promise + findOne: (query?: Record, options?: Record) => Promise + findOneAndUpdate: ( + filter: Record, + update: Record, + options?: Record + ) => Promise + findOneAndReplace: ( + filter: Record, + replacement: Record, + options?: Record + ) => Promise + findOneAndDelete: (filter: Record, options?: Record) => Promise + aggregate: (pipeline: Record[]) => Promise + count: (filter?: Record, options?: Record) => Promise + insertOne: (document: Record, options?: Record) => Promise + insertMany: (documents: Record[], options?: Record) => Promise + updateOne: ( + filter: Record, + update: Record, + options?: Record + ) => Promise + updateMany: ( + filter: Record, + update: Record, + options?: Record + ) => Promise + deleteOne: (filter: Record, options?: Record) => Promise + deleteMany: (filter: Record, options?: Record) => Promise + watch: (options?: unknown) => WatchAsyncIterator +} + +export interface MongoDbLike { + collection: (name: string) => CollectionLike +} + +export interface MongoClientLike { + db: (name: string) => MongoDbLike +} + +export interface UserLike { + id: string + state: 'active' | 'logged-out' | 'removed' + isLoggedIn: boolean + accessToken: string | null + refreshToken: string | null + providerType: string | null + identities: unknown[] + customData: Record + profile?: { + email?: string + [key: string]: unknown + } + functions: Record Promise> & { + callFunction: (name: string, ...args: unknown[]) => Promise + callFunctionStreaming: (name: string, ...args: unknown[]) => Promise> + } + logOut: () => Promise + callFunction: (name: string, ...args: unknown[]) => Promise + refreshAccessToken: () => Promise + refreshCustomData: () => Promise> + mongoClient: (serviceName: string) => MongoClientLike + addListener: (callback: () => void) => void + removeListener: (callback: () => void) => void + removeAllListeners: () => void +} diff --git a/packages/flowerbase-client/src/user.ts b/packages/flowerbase-client/src/user.ts new file mode 100644 index 0000000..2a3ed16 --- /dev/null +++ b/packages/flowerbase-client/src/user.ts @@ -0,0 +1,150 @@ +import type { App } from './app' +import { createFunctionsProxy } from './functions' +import { createMongoClient } from './mongo' +import { MongoClientLike, UserLike } from './types' + +export class User implements UserLike { + readonly id: string + customData: Record = {} + profile?: { email?: string;[key: string]: unknown } + private readonly app: App + private _providerType: string | null = null + private readonly listeners = new Set<() => void>() + + functions: Record Promise> & { + callFunction: (name: string, ...args: unknown[]) => Promise + callFunctionStreaming: (name: string, ...args: unknown[]) => Promise> + } + + constructor(app: App, id: string) { + this.app = app + this.id = id + this.functions = createFunctionsProxy( + (name, args) => this.app.callFunction(name, args, this.id), + (name, args) => this.app.callFunctionStreaming(name, args, this.id) + ) + this.customData = this.resolveCustomDataFromToken() + } + + get state() { + if (!this.app.hasUser(this.id)) { + return 'removed' + } + return this.isLoggedIn ? 'active' : 'logged-out' + } + + get isLoggedIn() { + return this.accessToken !== null && this.refreshToken !== null + } + + get providerType() { + return this._providerType + } + + get identities() { + return this.app.getProfileSnapshot(this.id)?.identities ?? [] + } + + private resolveCustomDataFromToken() { + const payload = this.decodeAccessTokenPayload() + if (!payload) return {} + return ( + 'user_data' in payload && payload.user_data && typeof payload.user_data === 'object' + ? (payload.user_data as Record) + : 'userData' in payload && payload.userData && typeof payload.userData === 'object' + ? (payload.userData as Record) + : 'custom_data' in payload && payload.custom_data && typeof payload.custom_data === 'object' + ? (payload.custom_data as Record) + : {} + ) + } + + get accessToken() { + const session = this.app.getSession(this.id) + if (!session) return null + return session.accessToken + } + + get refreshToken() { + const session = this.app.getSession(this.id) + if (!session) return null + return session.refreshToken + } + + setProviderType(providerType: string) { + this._providerType = providerType + } + + private decodeAccessTokenPayload() { + if (!this.accessToken) return null + const parts = this.accessToken.split('.') + if (parts.length < 2) return null + + const base64Url = parts[1] + const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/').padEnd(Math.ceil(base64Url.length / 4) * 4, '=') + + const decodeBase64 = (input: string) => { + if (typeof atob === 'function') return atob(input) + const runtimeBuffer = (globalThis as { Buffer?: { from: (data: string, encoding: string) => { toString: (enc: string) => string } } }).Buffer + if (runtimeBuffer) return runtimeBuffer.from(input, 'base64').toString('utf8') + return '' + } + + try { + const decoded = decodeBase64(base64) + return JSON.parse(decoded) as Record + } catch { + return null + } + } + + async logOut() { + await this.app.logoutUser(this.id) + } + + async callFunction(name: string, ...args: unknown[]) { + return this.app.callFunction(name, args, this.id) + } + + async refreshAccessToken() { + const accessToken = await this.app.refreshAccessToken(this.id) + this.customData = this.resolveCustomDataFromToken() + return accessToken + } + + async refreshCustomData(): Promise> { + const profile = await this.app.getProfile(this.id) + this.profile = profile.data + this.customData = (profile.custom_data && typeof profile.custom_data === 'object' + ? profile.custom_data + : this.resolveCustomDataFromToken()) as Record + this.notifyListeners() + return this.customData + } + + mongoClient(serviceName: string): MongoClientLike { + return createMongoClient(this.app, serviceName, this.id) + } + + addListener(callback: () => void) { + this.listeners.add(callback) + } + + removeListener(callback: () => void) { + this.listeners.delete(callback) + } + + removeAllListeners() { + this.listeners.clear() + } + + notifyListeners() { + for (const callback of Array.from(this.listeners)) { + try { + callback() + } catch { + // Listener failures should not break user lifecycle operations. + } + } + } +} diff --git a/packages/flowerbase-client/src/watch.ts b/packages/flowerbase-client/src/watch.ts new file mode 100644 index 0000000..7f2adfa --- /dev/null +++ b/packages/flowerbase-client/src/watch.ts @@ -0,0 +1,156 @@ +import { EJSON } from './bson' +import { WatchAsyncIterator, WatchConfig } from './types' + +const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)) + +const createWatchRequest = ({ + database, + collection, + filter, + ids +}: WatchConfig) => ({ + name: 'watch', + service: 'mongodb-atlas', + arguments: [ + { + database, + collection, + ...(filter ? { filter } : {}), + ...(ids ? { ids } : {}) + } + ] +}) + +const toBase64 = (input: string) => { + if (typeof btoa === 'function') { + return btoa(input) + } + throw new Error('Base64 encoder not available in current runtime') +} + +const parseSsePayload = (line: string) => { + if (!line.startsWith('data:')) return null + const raw = line.slice(5).trim() + if (!raw) return null + + try { + return EJSON.deserialize(JSON.parse(raw)) + } catch { + return raw + } +} + +export const createWatchIterator = (config: WatchConfig): WatchAsyncIterator => { + let closed = false + let activeController: AbortController | null = null + const queue: unknown[] = [] + const waiters: Array<(value: IteratorResult) => void> = [] + + const enqueue = (value: unknown) => { + const waiter = waiters.shift() + if (waiter) { + waiter({ done: false, value }) + return + } + queue.push(value) + } + + const close = () => { + if (closed) return + closed = true + activeController?.abort() + while (waiters.length > 0) { + const resolve = waiters.shift() + resolve?.({ done: true, value: undefined }) + } + } + + const run = async () => { + let attempts = 0 + while (!closed) { + const controller = new AbortController() + activeController = controller + const request = createWatchRequest(config) + const encoded = toBase64(JSON.stringify(EJSON.serialize(request, { relaxed: false }))) + const url = `${config.baseUrl}/api/client/v2.0/app/${config.appId}/functions/call?baas_request=${encodeURIComponent(encoded)}` + + try { + const response = await fetch(url, { + method: 'GET', + headers: { + Authorization: `Bearer ${config.accessToken}`, + Accept: 'text/event-stream' + }, + signal: controller.signal + }) + + if (!response.ok || !response.body) { + throw new Error(`Watch request failed (${response.status})`) + } + + attempts = 0 + const reader = response.body.getReader() + const decoder = new TextDecoder() + let buffer = '' + + while (!closed) { + const { done, value } = await reader.read() + if (done) break + + buffer += decoder.decode(value, { stream: true }) + const lines = buffer.split('\n') + buffer = lines.pop() ?? '' + + for (const line of lines) { + const parsed = parseSsePayload(line) + if (parsed !== null) { + enqueue(parsed) + } + } + } + } catch { + if (closed) { + break + } + } + + if (closed) { + break + } + + attempts += 1 + const backoff = Math.min(5000, 250 * 2 ** (attempts - 1)) + await sleep(backoff) + } + } + + void run() + + return { + [Symbol.asyncIterator]() { + return this + }, + next() { + if (queue.length > 0) { + return Promise.resolve({ done: false, value: queue.shift() }) + } + + if (closed) { + return Promise.resolve({ done: true, value: undefined }) + } + + return new Promise((resolve) => { + waiters.push(resolve) + }) + }, + return() { + close() + return Promise.resolve({ done: true, value: undefined }) + }, + throw(error?: unknown) { + close() + return Promise.reject(error) + }, + close + } +} diff --git a/packages/flowerbase-client/tsconfig.json b/packages/flowerbase-client/tsconfig.json new file mode 100644 index 0000000..02a97b1 --- /dev/null +++ b/packages/flowerbase-client/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./src", + "module": "commonjs", + "target": "ES2020", + "declaration": true, + "declarationMap": true, + "strict": true, + "moduleResolution": "node", + "esModuleInterop": true, + "skipLibCheck": true, + "baseUrl": ".", + "paths": { + "*": [ + "../../node_modules/*" + ] + }, + "lib": [ + "ES2021", + "DOM" + ] + }, + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules", + "**/*.test.ts", + "**/*.spec.ts", + "jest.config.ts", + "dist" + ] +} diff --git a/packages/flowerbase-client/tsconfig.spec.json b/packages/flowerbase-client/tsconfig.spec.json new file mode 100644 index 0000000..6af32be --- /dev/null +++ b/packages/flowerbase-client/tsconfig.spec.json @@ -0,0 +1,13 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "types": [ + "node", + "jest" + ] + }, + "include": [ + "src/**/*.test.ts", + "src/**/*.spec.ts" + ] +} diff --git a/packages/flowerbase/src/features/functions/__tests__/watch-filter.test.ts b/packages/flowerbase/src/features/functions/__tests__/watch-filter.test.ts new file mode 100644 index 0000000..9a167c4 --- /dev/null +++ b/packages/flowerbase/src/features/functions/__tests__/watch-filter.test.ts @@ -0,0 +1,116 @@ +import { ObjectId } from 'mongodb' +import { mapWatchFilterToChangeStreamMatch, mapWatchFilterToDocumentQuery } from '../controller' + +describe('watch filter mapping', () => { + it('keeps change-event fields untouched and prefixes only document fields', () => { + const input = { + accountId: '699efbc09729e3b79f79e9b4', + $and: [ + { + $or: [ + { requestId: '69a282a75cd849c244e001ca' }, + { 'fullDocument.requestId': '69a282a75cd849c244e001ca' } + ] + }, + { + $or: [ + { operationType: 'insert' }, + { operationType: 'replace' }, + { + operationType: 'update', + 'updateDescription.updatedFields.stage': { $exists: true } + } + ] + } + ] + } + + const output = mapWatchFilterToChangeStreamMatch(input) + + expect(output).toEqual({ + 'fullDocument.accountId': '699efbc09729e3b79f79e9b4', + $and: [ + { + $or: [ + { 'fullDocument.requestId': '69a282a75cd849c244e001ca' }, + { 'fullDocument.requestId': '69a282a75cd849c244e001ca' } + ] + }, + { + $or: [ + { operationType: 'insert' }, + { operationType: 'replace' }, + { + operationType: 'update', + 'updateDescription.updatedFields.stage': { $exists: true } + } + ] + } + ] + }) + + const outputJson = JSON.stringify(output) + expect(outputJson).not.toContain('fullDocument.fullDocument.') + expect(outputJson).not.toContain('fullDocument.operationType') + }) + + it('supports stage-change filters and strips event-only clauses for document readability checks', () => { + const input = { + 'fullDocument.accountId': '699efbc09729e3b79f79e9b4', + $and: [ + { + $or: [ + { 'fullDocument.requestId': '69a282a75cd849c244e001ca' }, + { 'fullDocument.requestId': '69a282a75cd849c244e001ca' } + ] + }, + { + $or: [ + { operationType: 'insert' }, + { operationType: 'replace' }, + { + operationType: 'update', + 'updateDescription.updatedFields.stage': { $exists: true } + } + ] + } + ] + } + + const watchMatch = mapWatchFilterToChangeStreamMatch(input) + expect(watchMatch).toEqual(input) + + const documentQuery = mapWatchFilterToDocumentQuery(input) + expect(documentQuery).toEqual({ + accountId: '699efbc09729e3b79f79e9b4', + $and: [ + { + $or: [ + { requestId: '69a282a75cd849c244e001ca' }, + { requestId: '69a282a75cd849c244e001ca' } + ] + } + ] + }) + + const documentQueryJson = JSON.stringify(documentQuery) + expect(documentQueryJson).not.toContain('operationType') + expect(documentQueryJson).not.toContain('updateDescription') + }) + + it('preserves ObjectId values in both change-stream and document mappings', () => { + const id = new ObjectId('69a282a75cd849c244e001ca') + const input = { + 'fullDocument._id': id, + operationType: 'update', + 'updateDescription.updatedFields.stage': { $exists: true } + } + + const watchMatch = mapWatchFilterToChangeStreamMatch(input) as Record + expect(watchMatch['fullDocument._id']).toEqual(id) + + const documentQuery = mapWatchFilterToDocumentQuery(input) as Record + expect(documentQuery._id).toEqual(id) + expect(documentQuery.operationType).toBeUndefined() + }) +}) diff --git a/packages/flowerbase/src/features/functions/controller.ts b/packages/flowerbase/src/features/functions/controller.ts index 773d09d..706802d 100644 --- a/packages/flowerbase/src/features/functions/controller.ts +++ b/packages/flowerbase/src/features/functions/controller.ts @@ -54,6 +54,12 @@ const serializeEjson = (value: unknown) => const isRecord = (value: unknown): value is Record => !!value && typeof value === 'object' && !Array.isArray(value) +const isPlainRecord = (value: unknown): value is Record => { + if (!isRecord(value)) return false + const prototype = Object.getPrototypeOf(value) + return prototype === Object.prototype || prototype === null +} + const isCursorLike = ( value: unknown ): value is { toArray: () => Promise | unknown } => { @@ -70,7 +76,7 @@ type WatchSubscriber = { id: string user: Record response: ServerResponse - extraFilter?: Document + documentFilter?: Document } type SharedWatchStream = { @@ -86,13 +92,221 @@ type SharedWatchStream = { const sharedWatchStreams = new Map() let watchSubscriberCounter = 0 +const maxSharedWatchStreams = Number(process.env.MAX_SHARED_WATCH_STREAMS || 200) +const debugWatchStreams = process.env.DEBUG_FUNCTIONS === 'true' + +const changeEventRootKeys = new Set([ + '_id', + 'operationType', + 'clusterTime', + 'txnNumber', + 'lsid', + 'ns', + 'documentKey', + 'fullDocument', + 'updateDescription' +]) + +const isChangeEventPath = (key: string) => { + if (changeEventRootKeys.has(key)) return true + return ( + key.startsWith('ns.') || + key.startsWith('documentKey.') || + key.startsWith('fullDocument.') || + key.startsWith('updateDescription.') + ) +} + +const isOpaqueChangeEventObjectKey = (key: string) => + key === 'ns' || key === 'documentKey' || key === 'fullDocument' || key === 'updateDescription' + +export const mapWatchFilterToChangeStreamMatch = (value: unknown): unknown => { + if (Array.isArray(value)) { + return value.map((item) => mapWatchFilterToChangeStreamMatch(item)) + } + + if (!isPlainRecord(value)) return value + + return Object.entries(value).reduce>((acc, [key, current]) => { + if (key.startsWith('$')) { + acc[key] = mapWatchFilterToChangeStreamMatch(current) + return acc + } + + if (isOpaqueChangeEventObjectKey(key)) { + acc[key] = current + return acc + } + + if (isChangeEventPath(key)) { + acc[key] = mapWatchFilterToChangeStreamMatch(current) + return acc + } + + acc[`fullDocument.${key}`] = mapWatchFilterToChangeStreamMatch(current) + return acc + }, {}) +} + +const isLogicalOperator = (key: string) => key === '$and' || key === '$or' || key === '$nor' + +export const mapWatchFilterToDocumentQuery = (value: unknown): unknown => { + if (Array.isArray(value)) { + const mapped = value + .map((item) => mapWatchFilterToDocumentQuery(item)) + .filter((item) => !(isRecord(item) && Object.keys(item).length === 0)) + return mapped + } + + if (!isPlainRecord(value)) return value + + return Object.entries(value).reduce>((acc, [key, current]) => { + if (key.startsWith('$')) { + const mapped = mapWatchFilterToDocumentQuery(current) + if (isLogicalOperator(key) && Array.isArray(mapped)) { + if (mapped.length > 0) { + acc[key] = mapped + } + return acc + } + if (typeof mapped !== 'undefined') { + acc[key] = mapped + } + return acc + } + + if (key === 'fullDocument') { + if (!isPlainRecord(current)) return acc + const mapped = mapWatchFilterToDocumentQuery(current) + if (isRecord(mapped)) { + Object.assign(acc, mapped) + } + return acc + } + + if (key.startsWith('fullDocument.')) { + const docKey = key.slice('fullDocument.'.length) + if (!docKey) return acc + acc[docKey] = mapWatchFilterToDocumentQuery(current) + return acc + } + + if (isChangeEventPath(key)) { + return acc + } + + acc[key] = mapWatchFilterToDocumentQuery(current) + return acc + }, {}) +} + +const toStableValue = (value: unknown): unknown => { + if (Array.isArray(value)) { + return value.map((item) => toStableValue(item)) + } + if (!isPlainRecord(value)) return value + + const sortedEntries = Object.entries(value).sort(([left], [right]) => left.localeCompare(right)) + return sortedEntries.reduce>((acc, [key, current]) => { + acc[key] = toStableValue(current) + return acc + }, {}) +} + +const stableSerialize = (value: unknown) => { + const serialized = EJSON.serialize(value, { relaxed: false }) + return JSON.stringify(toStableValue(serialized)) +} + +const getWatchPermissionContext = (user: Record) => ({ + role: user.role, + roles: user.roles, + data: user.data, + custom_data: user.custom_data, + user_data: user.user_data +}) + +const resolveWatchStream = ( + database: string, + collection: string, + watchArgs: Record, + user: Record +) => { + const keys = Object.keys(watchArgs) + const hasOnlyAllowedKeys = keys.every((key) => key === 'filter' || key === 'ids') + if (!hasOnlyAllowedKeys) { + throw new Error('watch options support only "filter" or "ids"') + } + + const extraFilter = parseWatchFilter(watchArgs) + const ids = watchArgs.ids + if (extraFilter && typeof ids !== 'undefined') { + throw new Error('watch options cannot include both "ids" and "filter"') + } + + const pipeline: Document[] = [] + if (extraFilter) { + pipeline.push({ $match: mapWatchFilterToChangeStreamMatch(extraFilter) as Document }) + } + + if (typeof ids !== 'undefined') { + if (!Array.isArray(ids)) { + throw new Error('watch ids must be an array') + } + pipeline.push({ + $match: { + $or: [ + { 'documentKey._id': { $in: ids } }, + { 'fullDocument._id': { $in: ids } } + ] + } + }) + } + + const options = { fullDocument: 'updateLookup' } + const streamKey = stableSerialize({ + database, + collection, + pipeline, + options, + permissionContext: getWatchPermissionContext(user) + }) + + return { extraFilter, options, pipeline, streamKey } +} + +const getWatchStats = () => { + let subscribers = 0 + for (const hub of sharedWatchStreams.values()) { + subscribers += hub.subscribers.size + } + return { + hubs: sharedWatchStreams.size, + subscribers + } +} + +const logWatchStats = ( + event: string, + details?: Record +) => { + if (!debugWatchStreams) return + const stats = getWatchStats() + console.log('[watch-pool]', event, { + hubs: stats.hubs, + subscribers: stats.subscribers, + ...details + }) +} const parseWatchFilter = (args: unknown): Document | undefined => { if (!isRecord(args)) return undefined - const candidate = - (isRecord(args.filter) ? args.filter : undefined) ?? - (isRecord(args.query) ? args.query : undefined) - return candidate ? (candidate as Document) : undefined + const candidate = isRecord(args.filter) ? args.filter : undefined + if (!candidate) return undefined + if ('$match' in candidate) { + throw new Error('watch filter must be a query object, not a $match stage') + } + return candidate as Document } const isReadableDocumentResult = (value: unknown) => @@ -224,7 +438,8 @@ export const functionsController: FunctionController = async ( ) const config = EJSON.deserialize(decodedConfig) as Base64Function - const [{ database, collection, ...watchArgs }] = config.arguments + const [{ database, collection, ...watchArgsInput }] = config.arguments + const watchArgs = isRecord(watchArgsInput) ? watchArgsInput : {} const headers = { 'Content-Type': 'text/event-stream', @@ -235,21 +450,33 @@ export const functionsController: FunctionController = async ( "access-control-allow-headers": "X-Stitch-Location, X-Baas-Location, Location", }; - res.raw.writeHead(200, headers) - res.raw.flushHeaders(); - - const streamKey = `${database}::${collection}` const subscriberId = `${Date.now()}-${watchSubscriberCounter++}` - const extraFilter = parseWatchFilter(watchArgs) - const mongoClient = app.mongo.client as unknown as { - db: (name: string) => { collection: (name: string) => { watch: (...args: any[]) => any } } - } + const { + streamKey, + extraFilter, + options: watchOptions, + pipeline: watchPipeline + } = resolveWatchStream(database, collection, watchArgs, user) let hub = sharedWatchStreams.get(streamKey) if (!hub) { - const stream = mongoClient.db(database).collection(collection).watch([], { - fullDocument: 'whenAvailable' + if (sharedWatchStreams.size >= maxSharedWatchStreams) { + res.status(503) + return JSON.stringify({ + error: JSON.stringify({ + message: 'Watch stream limit reached', + name: 'WatchStreamLimitError' + }), + error_code: 'WatchStreamLimitError' + }) + } + const stream = services['mongodb-atlas'](app, { + user, + rules }) + .db(database) + .collection(collection) + .watch(watchPipeline, watchOptions) hub = { database, collection, @@ -257,8 +484,14 @@ export const functionsController: FunctionController = async ( subscribers: new Map() } sharedWatchStreams.set(streamKey, hub) + logWatchStats('hub-created', { streamKey, database, collection }) + } else { + logWatchStats('hub-reused', { streamKey, database, collection }) } + res.raw.writeHead(200, headers) + res.raw.flushHeaders(); + const ensureHubListeners = (currentHub: SharedWatchStream) => { if ((currentHub as SharedWatchStream & { listenersBound?: boolean }).listenersBound) { return @@ -268,6 +501,7 @@ export const functionsController: FunctionController = async ( currentHub.stream.off('change', onHubChange) currentHub.stream.off('error', onHubError) sharedWatchStreams.delete(streamKey) + logWatchStats('hub-closed', { streamKey, database, collection }) try { await currentHub.stream.close() } catch { @@ -281,6 +515,7 @@ export const functionsController: FunctionController = async ( const subscriberRes = subscriber.response if (subscriberRes.writableEnded || subscriberRes.destroyed) { currentHub.subscribers.delete(subscriber.id) + logWatchStats('subscriber-auto-removed', { streamKey, subscriberId: subscriber.id }) return } @@ -289,8 +524,8 @@ export const functionsController: FunctionController = async ( (change as { fullDocument?: { _id?: unknown } })?.fullDocument?._id if (typeof docId === 'undefined') return - const readQuery = subscriber.extraFilter - ? ({ $and: [subscriber.extraFilter, { _id: docId }] } as Document) + const readQuery = subscriber.documentFilter + ? ({ $and: [subscriber.documentFilter, { _id: docId }] } as Document) : ({ _id: docId } as Document) try { @@ -308,6 +543,7 @@ export const functionsController: FunctionController = async ( subscriberRes.write(`event: error\ndata: ${formatFunctionExecutionError(error)}\n\n`) subscriberRes.end() currentHub.subscribers.delete(subscriber.id) + logWatchStats('subscriber-error-removed', { streamKey, subscriberId: subscriber.id }) } })) @@ -339,17 +575,25 @@ export const functionsController: FunctionController = async ( id: subscriberId, user, response: res.raw, - extraFilter + documentFilter: (() => { + if (!extraFilter) return undefined + const mapped = mapWatchFilterToDocumentQuery(extraFilter) + if (!isRecord(mapped) || Object.keys(mapped).length === 0) return undefined + return mapped as Document + })() } hub.subscribers.set(subscriberId, subscriber) + logWatchStats('subscriber-added', { streamKey, subscriberId }) req.raw.on('close', () => { const currentHub = sharedWatchStreams.get(streamKey) if (!currentHub) return currentHub.subscribers.delete(subscriberId) + logWatchStats('subscriber-closed', { streamKey, subscriberId }) if (!currentHub.subscribers.size) { void currentHub.stream.close() sharedWatchStreams.delete(streamKey) + logWatchStats('hub-empty-closed', { streamKey }) } }) }) diff --git a/packages/flowerbase/src/features/triggers/__tests__/index.test.ts b/packages/flowerbase/src/features/triggers/__tests__/index.test.ts index 4f215c7..3770071 100644 --- a/packages/flowerbase/src/features/triggers/__tests__/index.test.ts +++ b/packages/flowerbase/src/features/triggers/__tests__/index.test.ts @@ -21,8 +21,8 @@ describe('activateTriggers', () => { it('skips triggers marked as disabled', async () => { const functionsList = { - runEnabled: jest.fn(), - runDisabled: jest.fn() + runEnabled: { code: 'exports = async () => {}' }, + runDisabled: { code: 'exports = async () => {}' } } await activateTriggers({ diff --git a/packages/flowerbase/src/services/mongodb-atlas/__tests__/findOneAndUpdate.test.ts b/packages/flowerbase/src/services/mongodb-atlas/__tests__/findOneAndUpdate.test.ts index 7a58479..bc001dd 100644 --- a/packages/flowerbase/src/services/mongodb-atlas/__tests__/findOneAndUpdate.test.ts +++ b/packages/flowerbase/src/services/mongodb-atlas/__tests__/findOneAndUpdate.test.ts @@ -171,7 +171,7 @@ describe('mongodb-atlas findOneAndUpdate', () => { const app = createAppWithCollection(collection) const operators = MongoDbAtlas(app as any, { - rules: createRules({ insert: false }), + rules: createRules({ write: undefined, insert: false }), user: { id: 'user-1' } }) .db('db') diff --git a/packages/flowerbase/src/services/mongodb-atlas/index.ts b/packages/flowerbase/src/services/mongodb-atlas/index.ts index e68a42c..ee32b5d 100644 --- a/packages/flowerbase/src/services/mongodb-atlas/index.ts +++ b/packages/flowerbase/src/services/mongodb-atlas/index.ts @@ -456,9 +456,9 @@ const getOperators: GetOperatorsFunction = ( const resolvedOptions = projection || normalizedOptions ? { - ...(normalizedOptions ?? {}), - ...(projection ? { projection } : {}) - } + ...(normalizedOptions ?? {}), + ...(projection ? { projection } : {}) + } : undefined const resolvedQuery = query ?? {} if (!run_as_system) { @@ -496,15 +496,15 @@ const getOperators: GetOperatorsFunction = ( }) const { status, document } = winningRole ? await checkValidation( - winningRole, - { - type: 'read', - roles, - cursor: result, - expansions: {} - }, - user - ) + winningRole, + { + type: 'read', + roles, + cursor: result, + expansions: {} + }, + user + ) : fallbackAccess(result) // Return validated document or empty object if not permitted @@ -557,15 +557,15 @@ const getOperators: GetOperatorsFunction = ( }) const { status } = winningRole ? await checkValidation( - winningRole, - { - type: 'delete', - roles, - cursor: result, - expansions: {} - }, - user - ) + winningRole, + { + type: 'delete', + roles, + cursor: result, + expansions: {} + }, + user + ) : fallbackAccess(result) if (!status) { @@ -612,15 +612,15 @@ const getOperators: GetOperatorsFunction = ( const { status, document } = winningRole ? await checkValidation( - winningRole, - { - type: 'insert', - roles, - cursor: data, - expansions: {} - }, - user - ) + winningRole, + { + type: 'insert', + roles, + cursor: data, + expansions: {} + }, + user + ) : fallbackAccess(data) if (!status || !isEqual(data, document)) { @@ -703,15 +703,15 @@ const getOperators: GetOperatorsFunction = ( // Validate update permissions const { status, document } = winningRole ? await checkValidation( - winningRole, - { - type: 'write', - roles, - cursor: docToCheck, - expansions: {} - }, - user - ) + winningRole, + { + type: 'write', + roles, + cursor: docToCheck, + expansions: {} + }, + user + ) : fallbackAccess(docToCheck) // Ensure no unauthorized changes are made const areDocumentsEqual = areUpdatedFieldsAllowed(document, docToCheck, updatedPaths) @@ -818,15 +818,15 @@ const getOperators: GetOperatorsFunction = ( const readRole = getWinningRole(updateResult, user, roles) const readResult = readRole ? await checkValidation( - readRole, - { - type: 'read', - roles, - cursor: updateResult, - expansions: {} - }, - user - ) + readRole, + { + type: 'read', + roles, + cursor: updateResult, + expansions: {} + }, + user + ) : fallbackAccess(updateResult) const sanitizedDoc = readResult.status ? (readResult.document ?? updateResult) : {} @@ -873,9 +873,9 @@ const getOperators: GetOperatorsFunction = ( const resolvedOptions = projection || normalizedOptions ? { - ...(normalizedOptions ?? {}), - ...(projection ? { projection } : {}) - } + ...(normalizedOptions ?? {}), + ...(projection ? { projection } : {}) + } : undefined if (!run_as_system) { checkDenyOperation(normalizedRules, collection.collectionName, CRUD_OPERATIONS.READ) @@ -906,15 +906,15 @@ const getOperators: GetOperatorsFunction = ( }) const { status, document } = winningRole ? await checkValidation( - winningRole, - { - type: 'read', - roles, - cursor: currentDoc, - expansions: {} - }, - user - ) + winningRole, + { + type: 'read', + roles, + cursor: currentDoc, + expansions: {} + }, + user + ) : fallbackAccess(currentDoc) return status ? document : undefined @@ -1017,10 +1017,10 @@ const getOperators: GetOperatorsFunction = ( const firstStep = watchFormattedQuery.length ? { - $match: { - $and: watchFormattedQuery - } + $match: { + $and: watchFormattedQuery } + } : undefined const formattedPipeline = [firstStep, ...extraMatches, ...pipeline].filter(Boolean) as Document[] @@ -1041,29 +1041,29 @@ const getOperators: GetOperatorsFunction = ( const fullDocumentValidation = winningRole ? await checkValidation( - winningRole, - { - type: 'read', - roles, - cursor: fullDocument, - expansions: {} - }, - user - ) + winningRole, + { + type: 'read', + roles, + cursor: fullDocument, + expansions: {} + }, + user + ) : fallbackAccess(fullDocument) const { status, document } = fullDocumentValidation const { status: updatedFieldsStatus, document: updatedFields } = winningRole ? await checkValidation( - winningRole, - { - type: 'read', - roles, - cursor: updateDescription?.updatedFields, - expansions: {} - }, - user - ) + winningRole, + { + type: 'read', + roles, + cursor: updateDescription?.updatedFields, + expansions: {} + }, + user + ) : fallbackAccess(updateDescription?.updatedFields) return { @@ -1099,18 +1099,6 @@ const getOperators: GetOperatorsFunction = ( } } - console.log('[flowerbase watch] delivered change', { - collection: collName, - operationType: change?.operationType, - eventType, - hasFullDocument, - hasWinningRole, - updatedFieldsStatus, - documentKey: - change?.documentKey?._id?.toString?.() || - change?.documentKey?._id || - null - }) listener(filteredChange) }) } @@ -1210,15 +1198,15 @@ const getOperators: GetOperatorsFunction = ( const { status, document } = winningRole ? await checkValidation( - winningRole, - { - type: 'insert', - roles, - cursor: currentDoc, - expansions: {} - }, - user - ) + winningRole, + { + type: 'insert', + roles, + cursor: currentDoc, + expansions: {} + }, + user + ) : fallbackAccess(currentDoc) return status ? document : undefined @@ -1255,7 +1243,6 @@ const getOperators: GetOperatorsFunction = ( // Retrieve the document to check permissions before updating const result = await collection.find({ $and: formattedQuery }).toArray() if (!result) { - console.log('check1 In updateMany --> (!result)') throw new Error('Update not permitted') } @@ -1271,15 +1258,15 @@ const getOperators: GetOperatorsFunction = ( const { status, document } = winningRole ? await checkValidation( - winningRole, - { - type: 'write', - roles, - cursor: currentDoc, - expansions: {} - }, - user - ) + winningRole, + { + type: 'write', + roles, + cursor: currentDoc, + expansions: {} + }, + user + ) : fallbackAccess(currentDoc) return status ? document : undefined @@ -1292,8 +1279,6 @@ const getOperators: GetOperatorsFunction = ( ) if (!areDocumentsEqual) { - console.log('check1 In updateMany --> (!areDocumentsEqual)') - throw new Error('Update not permitted') } @@ -1341,15 +1326,15 @@ const getOperators: GetOperatorsFunction = ( const { status, document } = winningRole ? await checkValidation( - winningRole, - { - type: 'delete', - roles, - cursor: currentDoc, - expansions: {} - }, - user - ) + winningRole, + { + type: 'delete', + roles, + cursor: currentDoc, + expansions: {} + }, + user + ) : fallbackAccess(currentDoc) return status ? document : undefined diff --git a/packages/flowerbase/src/services/mongodb-atlas/utils.ts b/packages/flowerbase/src/services/mongodb-atlas/utils.ts index 0dbc00a..1d3e455 100644 --- a/packages/flowerbase/src/services/mongodb-atlas/utils.ts +++ b/packages/flowerbase/src/services/mongodb-atlas/utils.ts @@ -323,9 +323,10 @@ export function getHiddenFieldsFromRulesConfig(rulesConfig?: { roles?: Role[] }) function collectHiddenFieldsFromRoles(roles: Role[] = []) { const hiddenFields = new Set() - const collectFromFields = ( - fields?: Role['fields'] | Role['additional_fields'] - ) => { + const isFieldPermissionObject = (value: unknown): value is { read?: unknown; write?: unknown } => + !!value && typeof value === 'object' && ('read' in value || 'write' in value) + + const collectFromFields = (fields?: Role['fields']) => { if (!fields) return Object.entries(fields).forEach(([fieldName, permissions]) => { const canRead = Boolean(permissions?.read || permissions?.write) @@ -335,9 +336,23 @@ function collectHiddenFieldsFromRoles(roles: Role[] = []) { }) } + const collectFromAdditionalFields = (fields?: Role['additional_fields']) => { + if (!fields || typeof fields !== 'object') return + // Global additional_fields permissions (read/write) apply to unknown fields and cannot be mapped. + if (isFieldPermissionObject(fields)) return + + Object.entries(fields).forEach(([fieldName, permissions]) => { + if (!isFieldPermissionObject(permissions)) return + const canRead = Boolean(permissions.read || permissions.write) + if (!canRead) { + hiddenFields.add(fieldName) + } + }) + } + roles.forEach((role) => { collectFromFields(role.fields) - collectFromFields(role.additional_fields) + collectFromAdditionalFields(role.additional_fields) }) return Array.from(hiddenFields) diff --git a/packages/flowerbase/src/utils/__tests__/STEP_A_STATES.test.ts b/packages/flowerbase/src/utils/__tests__/STEP_A_STATES.test.ts index 63448f3..520309f 100644 --- a/packages/flowerbase/src/utils/__tests__/STEP_A_STATES.test.ts +++ b/packages/flowerbase/src/utils/__tests__/STEP_A_STATES.test.ts @@ -1,8 +1,13 @@ +import { evaluateTopLevelPermissionsFn } from '../roles/machines/commonValidators' import { MachineContext } from '../roles/machines/interface' import { STEP_A_STATES } from '../roles/machines/read/A' import * as Utils from '../roles/machines/utils' const { evaluateSearch, checkSearchRequest } = STEP_A_STATES +jest.mock('../roles/machines/commonValidators', () => ({ + evaluateTopLevelPermissionsFn: jest.fn() +})) + const endValidation = jest.fn() const goToNextValidationStage = jest.fn() const next = jest.fn() @@ -57,16 +62,33 @@ describe('STEP_A_STATES', () => { }) expect(goToNextValidationStage).toHaveBeenCalled() }) - it('evaluateSearch should end a failed validation ', () => { + it('evaluateSearch should go to next validation stage when search is allowed', async () => { + (evaluateTopLevelPermissionsFn as jest.Mock).mockResolvedValueOnce(true) + const mockContext = { + role: { + name: 'test' + } + } as MachineContext + await evaluateSearch({ + endValidation, + context: mockContext, + goToNextValidationStage, + next, + initialStep: null + }) + expect(goToNextValidationStage).toHaveBeenCalled() + }) + it('evaluateSearch should end a failed validation when search is denied', async () => { const mockedLogInfo = jest .spyOn(Utils, 'logMachineInfo') .mockImplementation(() => 'Mocked Value') + ; (evaluateTopLevelPermissionsFn as jest.Mock).mockResolvedValueOnce(false) const mockContext = { role: { name: 'test' } } as MachineContext - evaluateSearch({ + await evaluateSearch({ endValidation, context: mockContext, goToNextValidationStage, diff --git a/packages/flowerbase/src/utils/__tests__/STEP_C_STATES.test.ts b/packages/flowerbase/src/utils/__tests__/STEP_C_STATES.test.ts index 5a79dc5..1a8a052 100644 --- a/packages/flowerbase/src/utils/__tests__/STEP_C_STATES.test.ts +++ b/packages/flowerbase/src/utils/__tests__/STEP_C_STATES.test.ts @@ -22,7 +22,7 @@ describe('STEP_C_STATES', () => { beforeEach(() => { jest.clearAllMocks() }) - it('evaluateTopLevelRead should go to evaluateTopLevelWrite if evaluateTopLevelReadFn returns false ', async () => { + it('evaluateTopLevelRead should pass readCheck=false to evaluateTopLevelWrite', async () => { const mockedLogInfo = jest .spyOn(Utils, 'logMachineInfo') .mockImplementation(() => 'Mocked Value') @@ -35,7 +35,7 @@ describe('STEP_C_STATES', () => { next, initialStep: null }) - expect(next).toHaveBeenCalledWith('evaluateTopLevelWrite', { check: false }) + expect(next).toHaveBeenCalledWith('evaluateTopLevelWrite', { readCheck: false }) expect(mockedLogInfo).toHaveBeenCalledWith({ enabled: mockContext.enableLog, machine: 'C', @@ -44,7 +44,7 @@ describe('STEP_C_STATES', () => { }) mockedLogInfo.mockRestore() }) - it('evaluateTopLevelRead should go to evaluateTopLevelWrite if evaluateTopLevelReadFn returns undefined ', async () => { + it('evaluateTopLevelRead should pass readCheck=undefined to evaluateTopLevelWrite', async () => { (evaluateTopLevelReadFn as jest.Mock).mockReturnValueOnce(undefined) const mockContext = {} as MachineContext await evaluateTopLevelRead({ @@ -54,9 +54,9 @@ describe('STEP_C_STATES', () => { next, initialStep: null }) - expect(next).toHaveBeenCalledWith('evaluateTopLevelWrite', { check: undefined }) + expect(next).toHaveBeenCalledWith('evaluateTopLevelWrite', { readCheck: undefined }) }) - it('evaluateTopLevelRead should endValidation validation if evaluateTopLevelReadFn returns true ', async () => { + it('evaluateTopLevelRead should pass readCheck=true to evaluateTopLevelWrite', async () => { (evaluateTopLevelReadFn as jest.Mock).mockReturnValueOnce(true) const mockContext = {} as MachineContext await evaluateTopLevelRead({ @@ -66,13 +66,12 @@ describe('STEP_C_STATES', () => { next, initialStep: null }) - expect(endValidation).toHaveBeenCalledWith({ success: true }) + expect(next).toHaveBeenCalledWith('evaluateTopLevelWrite', { readCheck: true }) }) - it('checkFieldsProperty should go to next validation stage if checkFieldsPropertyExists returns true with initialStep checkIsValidFieldName', async () => { + it('checkFieldsProperty should go to next validation stage with initialStep checkIsValidFieldName', async () => { const mockedLogInfo = jest .spyOn(Utils, 'logMachineInfo') .mockImplementation(() => 'Mocked Value') - ;(checkFieldsPropertyExists as jest.Mock).mockReturnValue(true) const mockContext = {} as MachineContext await checkFieldsProperty({ endValidation, @@ -90,24 +89,13 @@ describe('STEP_C_STATES', () => { }) mockedLogInfo.mockRestore() }) - it('checkFieldsProperty should go to next validation stage if checkFieldsPropertyExists returns fslse with initialStep checkAdditionalFields', async () => { - (checkFieldsPropertyExists as jest.Mock).mockReturnValue(false) - const mockContext = {} as MachineContext - await checkFieldsProperty({ - endValidation, - context: mockContext, - goToNextValidationStage, - next, - initialStep: null - }) - expect(goToNextValidationStage).toHaveBeenCalledWith('checkAdditionalFields') - }) - it('evaluateTopLevelWrite should end a success validation if evaluateTopLevelWriteFn returns true', async () => { + it('evaluateTopLevelWrite should end a success validation when read is true', async () => { const mockedLogInfo = jest .spyOn(Utils, 'logMachineInfo') .mockImplementation(() => 'Mocked Value') - ;(evaluateTopLevelWriteFn as jest.Mock).mockReturnValue(true) - const mockContext = {} as MachineContext + ;(evaluateTopLevelWriteFn as jest.Mock).mockReturnValue(false) + ;(checkFieldsPropertyExists as jest.Mock).mockReturnValue(false) + const mockContext = { prevParams: { readCheck: true } } as unknown as MachineContext await evaluateTopLevelWrite({ endValidation, context: mockContext, @@ -124,11 +112,23 @@ describe('STEP_C_STATES', () => { }) mockedLogInfo.mockRestore() }) - it('evaluateTopLevelWrite should end a failed validation if evaluateTopLevelWriteFn returns false and prevParams.check is false', async () => { + it('evaluateTopLevelWrite should end a success validation when read is false and write is true', async () => { + ;(evaluateTopLevelWriteFn as jest.Mock).mockReturnValue(true) + const mockContext = { prevParams: { readCheck: false } } as unknown as MachineContext + await evaluateTopLevelWrite({ + endValidation, + context: mockContext, + goToNextValidationStage, + next, + initialStep: null + }) + expect(endValidation).toHaveBeenCalledWith({ success: true }) + }) + it('evaluateTopLevelWrite should end a failed validation when read is false and write is not true', async () => { (evaluateTopLevelWriteFn as jest.Mock).mockReturnValue(false) const mockContext = { prevParams: { - check: false + readCheck: false } } as unknown as MachineContext await evaluateTopLevelWrite({ @@ -140,11 +140,28 @@ describe('STEP_C_STATES', () => { }) expect(endValidation).toHaveBeenCalledWith({ success: false }) }) - it('evaluateTopLevelWrite should go to next step checkFieldsProperty if evaluateTopLevelWriteFn returns false and prevParams.check is not false ', async () => { + it('evaluateTopLevelWrite should end a success validation when read is undefined and write is true', async () => { + ;(evaluateTopLevelWriteFn as jest.Mock).mockReturnValue(true) + const mockContext = { + prevParams: { + readCheck: undefined + } + } as unknown as MachineContext + await evaluateTopLevelWrite({ + endValidation, + context: mockContext, + goToNextValidationStage, + next, + initialStep: null + }) + expect(endValidation).toHaveBeenCalledWith({ success: true }) + }) + it('evaluateTopLevelWrite should go to checkFieldsProperty when read and write are undefined/false but fields exist', async () => { (evaluateTopLevelWriteFn as jest.Mock).mockReturnValue(false) + ;(checkFieldsPropertyExists as jest.Mock).mockReturnValue(true) const mockContext = { prevParams: { - check: true + readCheck: undefined } } as unknown as MachineContext await evaluateTopLevelWrite({ @@ -156,4 +173,21 @@ describe('STEP_C_STATES', () => { }) expect(next).toHaveBeenCalledWith('checkFieldsProperty') }) + it('evaluateTopLevelWrite should end a failed validation when read and write are undefined/false and no field rules exist', async () => { + ;(evaluateTopLevelWriteFn as jest.Mock).mockReturnValue(undefined) + ;(checkFieldsPropertyExists as jest.Mock).mockReturnValue(false) + const mockContext = { + prevParams: { + readCheck: undefined + } + } as unknown as MachineContext + await evaluateTopLevelWrite({ + endValidation, + context: mockContext, + goToNextValidationStage, + next, + initialStep: null + }) + expect(endValidation).toHaveBeenCalledWith({ success: false }) + }) }) diff --git a/packages/flowerbase/src/utils/__tests__/STEP_D_STATES.test.ts b/packages/flowerbase/src/utils/__tests__/STEP_D_STATES.test.ts index 8ccb1f2..a3cfc72 100644 --- a/packages/flowerbase/src/utils/__tests__/STEP_D_STATES.test.ts +++ b/packages/flowerbase/src/utils/__tests__/STEP_D_STATES.test.ts @@ -12,7 +12,7 @@ describe('STEP_D_STATES', () => { beforeEach(() => { jest.clearAllMocks() }) - it('checkAdditionalFields should end validation if additional fields is not defined', () => { + it('checkAdditionalFields should end validation if additional fields is not defined', async () => { const mockedLogInfo = jest .spyOn(Utils, 'logMachineInfo') .mockImplementation(() => 'Mocked Value') @@ -21,7 +21,7 @@ describe('STEP_D_STATES', () => { name: 'test' } } as MachineContext - checkAdditionalFields({ + await checkAdditionalFields({ endValidation, context: mockContext, goToNextValidationStage, @@ -37,23 +37,23 @@ describe('STEP_D_STATES', () => { }) mockedLogInfo.mockRestore() }) - it('checkAdditionalFields should end validation if additional fields are empty', () => { + it('checkAdditionalFields should go to evaluateRead if additional fields are empty but defined', async () => { const mockContext = { role: { name: 'test', additional_fields: {} } } as MachineContext - checkAdditionalFields({ + await checkAdditionalFields({ endValidation, context: mockContext, goToNextValidationStage, next, initialStep: null }) - expect(endValidation).toHaveBeenCalledWith({ success: false }) + expect(next).toHaveBeenCalledWith('evaluateRead') }) - it('checkAdditionalFields should go to evaluateRead step if additional fields are defined and not empty', () => { + it('checkAdditionalFields should go to evaluateRead step if additional fields are defined and not empty', async () => { const mockContext = { role: { name: 'test', @@ -67,7 +67,7 @@ describe('STEP_D_STATES', () => { } } as Role } as MachineContext - checkAdditionalFields({ + await checkAdditionalFields({ endValidation, context: mockContext, goToNextValidationStage, @@ -76,7 +76,7 @@ describe('STEP_D_STATES', () => { }) expect(next).toHaveBeenCalledWith('evaluateRead') }) - it('checkIsValidFieldName should end a successful validation, with a document', async () => { + it('checkIsValidFieldName should fail when no field-level permissions allow fields', async () => { const mockedLogInfo = jest .spyOn(Utils, 'logMachineInfo') .mockImplementation(() => 'Mocked Value') @@ -95,7 +95,7 @@ describe('STEP_D_STATES', () => { next, initialStep: null }) - expect(endValidation).toHaveBeenCalledWith({ success: true, document: { name: 'test' } }) + expect(endValidation).toHaveBeenCalledWith({ success: false, document: {} }) expect(mockedLogInfo).toHaveBeenCalledWith({ enabled: mockContext.enableLog, machine: 'D', diff --git a/packages/flowerbase/src/utils/__tests__/WRITE_STEP_B_STATES.test.ts b/packages/flowerbase/src/utils/__tests__/WRITE_STEP_B_STATES.test.ts new file mode 100644 index 0000000..89d8ad3 --- /dev/null +++ b/packages/flowerbase/src/utils/__tests__/WRITE_STEP_B_STATES.test.ts @@ -0,0 +1,184 @@ +import { MachineContext } from '../roles/machines/interface' +import { STEP_B_STATES } from '../roles/machines/write/B' +import { + checkFieldsPropertyExists, + evaluateTopLevelPermissionsFn +} from '../roles/machines/commonValidators' + +const { + checkDeleteRequest, + evaluateTopLevelDelete, + evaluateTopLevelWrite, + evaluateTopLevelInsert, + checkFieldsProperty +} = STEP_B_STATES + +jest.mock('../roles/machines/commonValidators', () => ({ + checkFieldsPropertyExists: jest.fn(), + evaluateTopLevelPermissionsFn: jest.fn() +})) + +const endValidation = jest.fn() +const goToNextValidationStage = jest.fn() +const next = jest.fn() + +describe('WRITE STEP_B_STATES', () => { + beforeEach(() => { + jest.clearAllMocks() + }) + + it('routes delete requests to evaluateTopLevelDelete', async () => { + const context = { params: { type: 'delete' } } as MachineContext + await checkDeleteRequest({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(next).toHaveBeenCalledWith('evaluateTopLevelDelete') + }) + + it('routes non-delete requests to evaluateTopLevelWrite', async () => { + const context = { params: { type: 'write' } } as MachineContext + await checkDeleteRequest({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(next).toHaveBeenCalledWith('evaluateTopLevelWrite') + }) + + it('allows delete only when top-level delete is true', async () => { + ;(evaluateTopLevelPermissionsFn as jest.Mock).mockResolvedValueOnce(true) + const context = {} as MachineContext + await evaluateTopLevelDelete({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(endValidation).toHaveBeenCalledWith({ success: true }) + }) + + it('denies delete when top-level delete is false/undefined', async () => { + ;(evaluateTopLevelPermissionsFn as jest.Mock).mockResolvedValueOnce(undefined) + const context = {} as MachineContext + await evaluateTopLevelDelete({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(endValidation).toHaveBeenCalledWith({ success: false }) + }) + + it('routes to insert check when write=true', async () => { + ;(evaluateTopLevelPermissionsFn as jest.Mock).mockResolvedValueOnce(true) + const context = {} as MachineContext + await evaluateTopLevelWrite({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(next).toHaveBeenCalledWith('evaluateTopLevelInsert') + }) + + it('routes to insert check when write=true and field-level rules exist', async () => { + ;(evaluateTopLevelPermissionsFn as jest.Mock).mockResolvedValueOnce(true) + ;(checkFieldsPropertyExists as jest.Mock).mockReturnValue(true) + const context = {} as MachineContext + await evaluateTopLevelWrite({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(next).toHaveBeenCalledWith('evaluateTopLevelInsert') + }) + + it('denies when write=false', async () => { + ;(evaluateTopLevelPermissionsFn as jest.Mock).mockResolvedValueOnce(false) + const context = {} as MachineContext + await evaluateTopLevelWrite({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(endValidation).toHaveBeenCalledWith({ success: false }) + }) + + it('routes to field-level checks when write is undefined', async () => { + ;(evaluateTopLevelPermissionsFn as jest.Mock).mockResolvedValueOnce(undefined) + const context = {} as MachineContext + await evaluateTopLevelWrite({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(next).toHaveBeenCalledWith('checkFieldsProperty') + }) + + it('denies insert when insert is false/undefined', async () => { + ;(evaluateTopLevelPermissionsFn as jest.Mock).mockResolvedValueOnce(false) + const context = {} as MachineContext + await evaluateTopLevelInsert({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(endValidation).toHaveBeenCalledWith({ success: false }) + }) + + it('allows when insert=true', async () => { + ;(evaluateTopLevelPermissionsFn as jest.Mock).mockResolvedValueOnce(true) + const context = {} as MachineContext + await evaluateTopLevelInsert({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(endValidation).toHaveBeenCalledWith({ success: true }) + }) + + it('routes checkFieldsProperty to checkIsValidFieldName when field rules exist', async () => { + ;(checkFieldsPropertyExists as jest.Mock).mockReturnValue(true) + const context = {} as MachineContext + await checkFieldsProperty({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(goToNextValidationStage).toHaveBeenCalledWith('checkIsValidFieldName') + }) + + it('routes checkFieldsProperty to checkAdditionalFields when no field rules exist', async () => { + ;(checkFieldsPropertyExists as jest.Mock).mockReturnValue(false) + const context = {} as MachineContext + await checkFieldsProperty({ + context, + endValidation, + goToNextValidationStage, + next, + initialStep: null + }) + expect(goToNextValidationStage).toHaveBeenCalledWith('checkAdditionalFields') + }) +}) diff --git a/packages/flowerbase/src/utils/__tests__/checkAdditionalFieldsFn.test.ts b/packages/flowerbase/src/utils/__tests__/checkAdditionalFieldsFn.test.ts index 8403e55..e192f3d 100644 --- a/packages/flowerbase/src/utils/__tests__/checkAdditionalFieldsFn.test.ts +++ b/packages/flowerbase/src/utils/__tests__/checkAdditionalFieldsFn.test.ts @@ -34,12 +34,12 @@ describe('comparePassword', () => { }) expect(isDefined).toBe(false) }) - it('should return false for empty additional fields', () => { + it('should return true for empty additional fields (defined)', () => { const isDefined = checkAdditionalFieldsFn({ role: { ...mockedRole, additional_fields: {} }, user: mockUser, params: mockParams }) - expect(isDefined).toBe(false) + expect(isDefined).toBe(true) }) }) diff --git a/packages/flowerbase/src/utils/__tests__/checkFieldsPropertyExists.test.ts b/packages/flowerbase/src/utils/__tests__/checkFieldsPropertyExists.test.ts index b299944..538e3ba 100644 --- a/packages/flowerbase/src/utils/__tests__/checkFieldsPropertyExists.test.ts +++ b/packages/flowerbase/src/utils/__tests__/checkFieldsPropertyExists.test.ts @@ -44,4 +44,17 @@ describe('checkFieldsPropertyExists', () => { }) expect(isValid).toBe(true) }) + it('should return true if additional_fields is defined (even empty)', () => { + const isValid = checkFieldsPropertyExists({ + role: { + fields: {}, + additional_fields: {}, + apply_when: {}, + name: 'test' + } as Role, + user: mockUser, + params: mockParams + }) + expect(isValid).toBe(true) + }) }) diff --git a/packages/flowerbase/src/utils/__tests__/checkIsValidFieldNameFn.test.ts b/packages/flowerbase/src/utils/__tests__/checkIsValidFieldNameFn.test.ts index 0b2fe33..5e1e603 100644 --- a/packages/flowerbase/src/utils/__tests__/checkIsValidFieldNameFn.test.ts +++ b/packages/flowerbase/src/utils/__tests__/checkIsValidFieldNameFn.test.ts @@ -11,17 +11,16 @@ describe('checkIsValidFieldNameFn', () => { beforeEach(() => { jest.clearAllMocks() }) - it('should return filtered fields based on role permissions, without excluding _id', () => { + + it('returns only explicitly allowed fields when no fallback is configured', async () => { const mockedRole = { name: 'test', - apply_when: { - '%%true': true - }, + apply_when: { '%%true': true }, fields: { name: { read: true, write: false }, - email: { read: false, write: true } - }, - additional_fields: {} + email: { read: false, write: true }, + age: { read: false, write: false } + } } as Role const context = { user: mockUser, @@ -29,168 +28,100 @@ describe('checkIsValidFieldNameFn', () => { params: { cursor: { _id: mockId, name: 'Alice', email: 'alice@example.com', age: 25 } } - } + } as MachineContext - const result = checkIsValidFieldNameFn(context as MachineContext) + const result = await checkIsValidFieldNameFn(context) expect(result).toEqual({ - _id: mockId, name: 'Alice', - email: 'alice@example.com', - age: 25 + email: 'alice@example.com' }) }) - it("should exclude _id if role doesn't allows it", () => { - const mockedRole = { - name: 'test', - apply_when: { - '%%true': true - }, - fields: { - _id: { read: false, write: false }, - name: { read: true, write: false } - }, - additional_fields: {} - } as Role - const context = { - user: mockUser, - role: mockedRole, - params: { - cursor: { _id: mockId, name: 'Alice' } - } - } - const result = checkIsValidFieldNameFn(context as MachineContext) - - expect(result).toEqual({ name: 'Alice' }) - }) - it('should include _id if write role allows it', () => { + it('uses per-field additional_fields as fallback for unknown fields', async () => { const mockedRole = { name: 'test', - apply_when: { - '%%true': true - }, - fields: { - _id: { read: false, write: true }, - name: { read: true, write: false } - }, - additional_fields: {} - } as Role - const context = { - user: mockUser, - role: mockedRole, - params: { - cursor: { _id: mockId, name: 'Alice' } + apply_when: { '%%true': true }, + fields: {}, + additional_fields: { + phone: { read: true, write: false }, + address: { read: false, write: true } } - } - - const result = checkIsValidFieldNameFn(context as MachineContext) - - expect(result).toEqual({ _id: mockId, name: 'Alice' }) - }) - it('should include _id if read role allows it', () => { - const mockedRole = { - name: 'test', - apply_when: { - '%%true': true - }, - fields: { - _id: { read: true, write: false }, - name: { read: true, write: false } - }, - additional_fields: {} } as Role const context = { - user: mockUser, role: mockedRole, params: { - cursor: { _id: mockId, name: 'Alice' } + cursor: { _id: mockId, phone: '123456789', address: 'Unknown', city: 'Rome' } } - } + } as MachineContext - const result = checkIsValidFieldNameFn(context as MachineContext) - - expect(result).toEqual({ _id: mockId, name: 'Alice' }) + const result = await checkIsValidFieldNameFn(context) + expect(result).toEqual({ + phone: '123456789', + address: 'Unknown' + }) }) - it('should return an empty object if no fields are readable/writable', () => { + it('supports realm-style global additional_fields fallback', async () => { const mockedRole = { - name: 'test', - apply_when: { - '%%true': true - }, + name: 'collaborator', + apply_when: { '%%true': true }, fields: { - name: { read: false, write: false } + roles: { read: true, write: false } }, - additional_fields: {} - } as Role - const context = { - role: mockedRole, - params: { - cursor: { name: 'Charlie', email: 'charlie@example.com' } + additional_fields: { + read: false, + write: false } - } - - const result = checkIsValidFieldNameFn(context as MachineContext) - - expect(result).toEqual({ email: 'charlie@example.com' }) - }) - - it('should handle additional_fields correctly for read permission', () => { - const mockedRole = { - name: 'test', - apply_when: { - '%%true': true - }, - fields: {}, - additional_fields: { phone: { read: true, write: false } } } as Role const context = { role: mockedRole, params: { - cursor: { _id: mockId, phone: '123456789', address: 'Unknown' } + cursor: { roles: ['editor'], email: 'user@example.com' } } - } + } as MachineContext - const result = checkIsValidFieldNameFn(context as MachineContext) - expect(result).toEqual({ _id: mockId, phone: '123456789', address: 'Unknown' }) + const result = await checkIsValidFieldNameFn(context) + expect(result).toEqual({ + roles: ['editor'] + }) }) - it('should handle additional_fields correctly for write permission', () => { + + it('denies unknown fields when additional_fields global fallback is false', async () => { const mockedRole = { name: 'test', - apply_when: { - '%%true': true + apply_when: { '%%true': true }, + fields: { + roles: { read: true } }, - fields: {}, additional_fields: { - phone: { read: false, write: true }, - address: { read: false, write: true } + read: false, + write: false } } as Role const context = { role: mockedRole, params: { - cursor: { _id: mockId, phone: '123456789', address: 'Unknown' } + cursor: { email: 'user@example.com' } } - } + } as MachineContext - const result = checkIsValidFieldNameFn(context as MachineContext) - expect(result).toEqual({ _id: mockId, phone: '123456789', address: 'Unknown' }) + const result = await checkIsValidFieldNameFn(context) + expect(result).toEqual({}) }) - it('should return only the _id if fields and additional fields are not defined', () => { + + it('returns empty object when no field permissions are available', async () => { const mockedRole = { name: 'test', - apply_when: { - '%%true': true - } + apply_when: { '%%true': true } } as Role const context = { role: mockedRole, params: { cursor: { _id: mockId, phone: '123456789', address: 'Unknown' } } - } + } as MachineContext - const result = checkIsValidFieldNameFn(context as MachineContext) - expect(result).toEqual({ _id: mockId, phone: '123456789', address: 'Unknown' }) + const result = await checkIsValidFieldNameFn(context) + expect(result).toEqual({}) }) }) diff --git a/packages/flowerbase/src/utils/__tests__/evaluateTopLevelReadFn.test.ts b/packages/flowerbase/src/utils/__tests__/evaluateTopLevelReadFn.test.ts index 0dd543c..51520ba 100644 --- a/packages/flowerbase/src/utils/__tests__/evaluateTopLevelReadFn.test.ts +++ b/packages/flowerbase/src/utils/__tests__/evaluateTopLevelReadFn.test.ts @@ -17,7 +17,7 @@ describe('evaluateTopLevelReadFn', () => { beforeEach(() => { jest.clearAllMocks() }) - it('should return false if type is different from read', async () => { + it('should return false if type is neither read nor search', async () => { const isValid = await evaluateTopLevelReadFn({ role: mockedRole, user: mockUser, @@ -35,6 +35,15 @@ describe('evaluateTopLevelReadFn', () => { expect(isValid).toBe(undefined) expect(evaluateExpression).not.toHaveBeenCalled() }) + it('should return undefined if type is search and role read is not defined', async () => { + const isValid = await evaluateTopLevelReadFn({ + role: mockedRole, + user: mockUser, + params: { type: 'search' } as Params + }) + expect(isValid).toBe(undefined) + expect(evaluateExpression).not.toHaveBeenCalled() + }) it('should return false if type is read and role read defined but evaluate expression returns false', async () => { (evaluateExpression as jest.Mock).mockResolvedValueOnce(false) const isValid = await evaluateTopLevelReadFn({ diff --git a/packages/flowerbase/src/utils/__tests__/evaluateTopLevelWriteFn.test.ts b/packages/flowerbase/src/utils/__tests__/evaluateTopLevelWriteFn.test.ts index 812771d..7b16e2d 100644 --- a/packages/flowerbase/src/utils/__tests__/evaluateTopLevelWriteFn.test.ts +++ b/packages/flowerbase/src/utils/__tests__/evaluateTopLevelWriteFn.test.ts @@ -14,7 +14,10 @@ const mockParams = { } as Params describe('evaluateTopLevelWriteFn', () => { - it('should return undefined if type is different from read and write', async () => { + beforeEach(() => { + jest.clearAllMocks() + }) + it('should return undefined if type is different from read, search and write', async () => { const isValid = await evaluateTopLevelWriteFn({ role: mockedRole, user: mockUser, @@ -23,6 +26,17 @@ describe('evaluateTopLevelWriteFn', () => { expect(isValid).toBe(undefined) expect(evaluateExpression).not.toHaveBeenCalled() }) + it('should evaluate write for search requests', async () => { + (evaluateExpression as jest.Mock).mockResolvedValueOnce(true) + const searchParams = { type: 'search' } as Params + const isValid = await evaluateTopLevelWriteFn({ + role: { ...mockedRole, write: true }, + user: mockUser, + params: searchParams + }) + expect(isValid).toBe(true) + expect(evaluateExpression).toHaveBeenCalledWith(searchParams, true, mockUser) + }) it('should return false if type is read but evaluate expression returns false', async () => { (evaluateExpression as jest.Mock).mockResolvedValueOnce(false) const isValid = await evaluateTopLevelWriteFn({ @@ -45,22 +59,24 @@ describe('evaluateTopLevelWriteFn', () => { }) it('should return false if type is write but evaluate expression returns false', async () => { (evaluateExpression as jest.Mock).mockResolvedValueOnce(false) + const writeParams = { type: 'write' } as Params const isValid = await evaluateTopLevelWriteFn({ role: { ...mockedRole, write: false }, user: mockUser, - params: { type: 'write' } as Params + params: writeParams }) expect(isValid).toBe(false) - expect(evaluateExpression).toHaveBeenCalledWith(mockParams, false, mockUser) + expect(evaluateExpression).toHaveBeenCalledWith(writeParams, false, mockUser) }) it('should return true if type is write and evaluate expression returns true', async () => { (evaluateExpression as jest.Mock).mockResolvedValueOnce(true) + const writeParams = { type: 'write' } as Params const isValid = await evaluateTopLevelWriteFn({ role: { ...mockedRole, write: false }, user: mockUser, - params: { type: 'write' } as Params + params: writeParams }) expect(isValid).toBe(true) - expect(evaluateExpression).toHaveBeenCalledWith(mockParams, false, mockUser) + expect(evaluateExpression).toHaveBeenCalledWith(writeParams, false, mockUser) }) }) diff --git a/packages/flowerbase/src/utils/roles/helpers.ts b/packages/flowerbase/src/utils/roles/helpers.ts index 5bd7fa9..7d77574 100644 --- a/packages/flowerbase/src/utils/roles/helpers.ts +++ b/packages/flowerbase/src/utils/roles/helpers.ts @@ -8,17 +8,30 @@ import { MachineContext } from './machines/interface' const functionsConditions = ['%%true', '%%false'] +const normalizeUserRole = (user?: MachineContext['user']) => { + if (!user) return user + if (typeof user !== 'object') return user + const candidate = user as Record + if (typeof candidate.role === 'string') return user + const customRole = + typeof candidate.custom_data === 'object' && candidate.custom_data !== null + ? (candidate.custom_data as Record).role + : undefined + return typeof customRole === 'string' ? ({ ...candidate, role: customRole } as MachineContext['user']) : user +} + export const evaluateExpression = async ( params: MachineContext['params'], expression?: PermissionExpression, user?: MachineContext['user'] ): Promise => { if (!expression || typeof expression === 'boolean') return !!expression + const normalizedUser = normalizeUserRole(user) const value = { ...params.expansions, ...params.cursor, - '%%user': user, + '%%user': normalizedUser, '%%true': true } const conditions = expandQuery(expression, value) @@ -26,7 +39,7 @@ export const evaluateExpression = async ( functionsConditions.includes(key) ) return complexCondition - ? await evaluateComplexExpression(complexCondition, params, user) + ? await evaluateComplexExpression(complexCondition, params, normalizedUser) : rulesMatcherUtils.checkRule(conditions, value, {}) } @@ -36,6 +49,7 @@ const evaluateComplexExpression = async ( user: MachineContext['user'] ): Promise => { const [key, config] = condition + const normalizedUser = normalizeUserRole(user) const functionConfig = config['%function'] const { name, arguments: fnArguments } = functionConfig @@ -47,7 +61,7 @@ const evaluateComplexExpression = async ( ...params.expansions, ...params.cursor, '%%root': params.cursor, - '%%user': user, + '%%user': normalizedUser, '%%true': true, '%%false': false } @@ -62,7 +76,7 @@ const evaluateComplexExpression = async ( args: expandedArguments, app, rules: StateManager.select("rules"), - user, + user: normalizedUser, currentFunction, functionName: name, functionsList, diff --git a/packages/flowerbase/src/utils/roles/interface.ts b/packages/flowerbase/src/utils/roles/interface.ts index f4efed6..50a1a3d 100644 --- a/packages/flowerbase/src/utils/roles/interface.ts +++ b/packages/flowerbase/src/utils/roles/interface.ts @@ -1,10 +1,19 @@ -export type PermissionExpression = boolean // TODO: add complex condition (%%true: %function) +export type PermissionExpression = boolean | Record export type FieldPermissionExpression = { - read?: boolean - write?: boolean + read?: PermissionExpression + write?: PermissionExpression + fields?: { + [K: string]: FieldPermissionExpression + } } +export type AdditionalFieldsPermissionExpression = + | FieldPermissionExpression + | { + [K: string]: FieldPermissionExpression + } + export interface DocumentFiltersPermissions { read?: PermissionExpression write?: PermissionExpression @@ -23,9 +32,7 @@ export interface Role { fields?: { [K: string]: FieldPermissionExpression } - additional_fields?: { - [K: string]: FieldPermissionExpression - } + additional_fields?: AdditionalFieldsPermissionExpression } export interface Params { diff --git a/packages/flowerbase/src/utils/roles/machines/commonValidators.ts b/packages/flowerbase/src/utils/roles/machines/commonValidators.ts index cedd9d2..970aedb 100644 --- a/packages/flowerbase/src/utils/roles/machines/commonValidators.ts +++ b/packages/flowerbase/src/utils/roles/machines/commonValidators.ts @@ -33,6 +33,6 @@ export const evaluateTopLevelPermissionsFn = async ( export const checkFieldsPropertyExists = ({ role }: MachineContext) => { const hasFields = !!Object.keys(role?.fields ?? {}).length - const hasAdditional = !!Object.keys(role?.additional_fields ?? {}).length + const hasAdditional = typeof role?.additional_fields !== 'undefined' return hasFields || hasAdditional } diff --git a/packages/flowerbase/src/utils/roles/machines/fieldPermissions.ts b/packages/flowerbase/src/utils/roles/machines/fieldPermissions.ts new file mode 100644 index 0000000..857cbde --- /dev/null +++ b/packages/flowerbase/src/utils/roles/machines/fieldPermissions.ts @@ -0,0 +1,86 @@ +import { Document } from 'mongodb' +import { evaluateExpression } from '../helpers' +import { + AdditionalFieldsPermissionExpression, + FieldPermissionExpression, + Role +} from '../interface' +import { MachineContext } from './interface' + +const isObject = (value: unknown): value is Record => + !!value && typeof value === 'object' && !Array.isArray(value) + +const isFieldPermissionExpression = (value: unknown): value is FieldPermissionExpression => + isObject(value) && ('read' in value || 'write' in value) + +const getAdditionalFieldPermission = ( + additionalFields: AdditionalFieldsPermissionExpression | undefined, + fieldName: string +): FieldPermissionExpression | undefined => { + if (!additionalFields || !isObject(additionalFields)) return undefined + + const byField = (additionalFields as Record)[fieldName] + if (isFieldPermissionExpression(byField)) { + return byField + } + + if (isFieldPermissionExpression(additionalFields)) { + return additionalFields + } + + return undefined +} + +const canReadField = async ( + context: Pick, + permission?: FieldPermissionExpression +) => { + if (!permission) return false + const read = await evaluateExpression(context.params, permission.read, context.user) + if (read) return true + return await evaluateExpression(context.params, permission.write, context.user) +} + +const canWriteField = async ( + context: Pick, + permission?: FieldPermissionExpression +) => { + if (!permission) return false + return await evaluateExpression(context.params, permission.write, context.user) +} + +export const hasAdditionalFieldsDefined = (role?: Role) => + typeof role?.additional_fields !== 'undefined' + +export const filterDocumentByFieldPermissions = async ( + context: Pick, + mode: 'read' | 'write', + options?: { + defaultAllow?: boolean + } +): Promise => { + const source = context.params?.cursor + if (!isObject(source)) return {} + + const document: Document = {} + const fields = context.role.fields ?? {} + const additionalFields = context.role.additional_fields + + for (const [key, value] of Object.entries(source)) { + const fieldPermission = fields[key] + const permission = fieldPermission ?? getAdditionalFieldPermission(additionalFields, key) + let allowed = options?.defaultAllow === true + if (permission) { + allowed = + mode === 'read' + ? await canReadField(context, permission) + : await canWriteField(context, permission) + } + + if (allowed) { + document[key] = value + } + } + + return document +} diff --git a/packages/flowerbase/src/utils/roles/machines/read/A/index.ts b/packages/flowerbase/src/utils/roles/machines/read/A/index.ts index e492bbc..e9585ba 100644 --- a/packages/flowerbase/src/utils/roles/machines/read/A/index.ts +++ b/packages/flowerbase/src/utils/roles/machines/read/A/index.ts @@ -1,3 +1,4 @@ +import { evaluateTopLevelPermissionsFn } from '../../commonValidators' import { States } from '../../interface' import { logMachineInfo } from '../../utils' @@ -14,14 +15,14 @@ export const STEP_A_STATES: States = { } return goToNextValidationStage() }, - evaluateSearch: async ({ context, endValidation }) => { + evaluateSearch: async ({ context, endValidation, goToNextValidationStage }) => { logMachineInfo({ enabled: context.enableLog, machine: 'A', step: 2, stepName: 'evaluateSearch' }) - // NOTE -> we don't support search operations - return endValidation({ success: false }) + const check = await evaluateTopLevelPermissionsFn(context, 'search') + return check ? goToNextValidationStage() : endValidation({ success: false }) } } diff --git a/packages/flowerbase/src/utils/roles/machines/read/C/index.ts b/packages/flowerbase/src/utils/roles/machines/read/C/index.ts index 12e1a68..ab3a1fb 100644 --- a/packages/flowerbase/src/utils/roles/machines/read/C/index.ts +++ b/packages/flowerbase/src/utils/roles/machines/read/C/index.ts @@ -1,13 +1,13 @@ +import { States } from '../../interface' +import { logMachineInfo } from '../../utils' import { checkFieldsPropertyExists, evaluateTopLevelReadFn, evaluateTopLevelWriteFn } from './validators' -import { States } from '../../interface' -import { logMachineInfo } from '../../utils' export const STEP_C_STATES: States = { - evaluateTopLevelRead: async ({ context, next, endValidation }) => { + evaluateTopLevelRead: async ({ context, next }) => { logMachineInfo({ enabled: context.enableLog, machine: 'C', @@ -15,12 +15,7 @@ export const STEP_C_STATES: States = { stepName: 'evaluateTopLevelRead' }) const check = await evaluateTopLevelReadFn(context) - if (check) { - return checkFieldsPropertyExists(context) - ? next('checkFieldsProperty') - : endValidation({ success: true }) - } - return next('evaluateTopLevelWrite', { check }) + return next('evaluateTopLevelWrite', { readCheck: check }) }, evaluateTopLevelWrite: async ({ context, next, endValidation }) => { logMachineInfo({ @@ -29,11 +24,19 @@ export const STEP_C_STATES: States = { step: 2, stepName: 'evaluateTopLevelWrite' }) - const check = await evaluateTopLevelWriteFn(context) - if (check) return endValidation({ success: true }) - return context?.prevParams?.check === false - ? endValidation({ success: false }) - : next('checkFieldsProperty') + const writeCheck = await evaluateTopLevelWriteFn(context) + const readCheck = context?.prevParams?.readCheck + + if (readCheck === true || writeCheck === true) { + return checkFieldsPropertyExists(context) + ? next('checkFieldsProperty') + : endValidation({ success: true }) + } + + if (readCheck === false) return endValidation({ success: false }) + return checkFieldsPropertyExists(context) + ? next('checkFieldsProperty') + : endValidation({ success: false }) }, checkFieldsProperty: async ({ context, goToNextValidationStage }) => { logMachineInfo({ @@ -42,9 +45,6 @@ export const STEP_C_STATES: States = { step: 3, stepName: 'checkFieldsProperty' }) - const check = checkFieldsPropertyExists(context) - return goToNextValidationStage( - check ? 'checkIsValidFieldName' : 'checkAdditionalFields' - ) + return goToNextValidationStage('checkIsValidFieldName') } } diff --git a/packages/flowerbase/src/utils/roles/machines/read/C/validators.ts b/packages/flowerbase/src/utils/roles/machines/read/C/validators.ts index 2eecc50..f71c9e2 100644 --- a/packages/flowerbase/src/utils/roles/machines/read/C/validators.ts +++ b/packages/flowerbase/src/utils/roles/machines/read/C/validators.ts @@ -5,14 +5,14 @@ import { } from '../../commonValidators' export const evaluateTopLevelReadFn = async (context: MachineContext) => { - if (context.params.type !== 'read') { + if (!['read', 'search'].includes(context.params.type)) { return false } return evaluateTopLevelPermissionsFn(context, 'read') } export const evaluateTopLevelWriteFn = async (context: MachineContext) => { - if (!['read', 'write'].includes(context.params.type)) { + if (!['read', 'search', 'write'].includes(context.params.type)) { return undefined } return evaluateTopLevelPermissionsFn(context, 'write') diff --git a/packages/flowerbase/src/utils/roles/machines/read/D/index.ts b/packages/flowerbase/src/utils/roles/machines/read/D/index.ts index cb99ff9..5c795ec 100644 --- a/packages/flowerbase/src/utils/roles/machines/read/D/index.ts +++ b/packages/flowerbase/src/utils/roles/machines/read/D/index.ts @@ -16,7 +16,7 @@ const runCheckIsValidFieldName = async ({ step: 2, stepName: 'checkIsValidFieldName' }) - const document = checkIsValidFieldNameFn(context) + const document = await checkIsValidFieldNameFn(context) return endValidation({ success: !!Object.keys(document).length, document }) } diff --git a/packages/flowerbase/src/utils/roles/machines/read/D/validators.ts b/packages/flowerbase/src/utils/roles/machines/read/D/validators.ts index 7da1665..2276a46 100644 --- a/packages/flowerbase/src/utils/roles/machines/read/D/validators.ts +++ b/packages/flowerbase/src/utils/roles/machines/read/D/validators.ts @@ -1,32 +1,19 @@ +import { evaluateTopLevelPermissionsFn } from '../../commonValidators' +import { + filterDocumentByFieldPermissions, + hasAdditionalFieldsDefined +} from '../../fieldPermissions' import { MachineContext } from '../../interface' export const checkAdditionalFieldsFn = ({ role }: MachineContext) => { - return !!Object.keys(role.additional_fields || {}).length + return hasAdditionalFieldsDefined(role) } -export const checkIsValidFieldNameFn = ({ role, params }: MachineContext) => { - const { cursor } = params +export const checkIsValidFieldNameFn = async (context: MachineContext) => { + const readCheck = await evaluateTopLevelPermissionsFn(context, 'read') + const writeCheck = await evaluateTopLevelPermissionsFn(context, 'write') - const { fields = {}, additional_fields = {} } = role - const rulesOnId = !!(fields['_id'] || additional_fields['_id']) - const filteredDocument = Object.entries(cursor).reduce( - (filteredDocument, [key, value]) => { - if (fields![key]) { - return role.fields![key].read || role.fields![key].write - ? { ...filteredDocument, [key]: value } - : filteredDocument - } - if (additional_fields[key]) { - return additional_fields[key]?.read || additional_fields[key]?.write - ? { ...filteredDocument, [key]: value } - : filteredDocument - } - return { ...filteredDocument, [key]: value } - }, - {} - ) - - return rulesOnId || cursor._id === undefined - ? filteredDocument - : { ...filteredDocument, _id: cursor._id } + return await filterDocumentByFieldPermissions(context, 'read', { + defaultAllow: readCheck === true || writeCheck === true + }) } diff --git a/packages/flowerbase/src/utils/roles/machines/write/B/index.ts b/packages/flowerbase/src/utils/roles/machines/write/B/index.ts index 4ce0e36..4753845 100644 --- a/packages/flowerbase/src/utils/roles/machines/write/B/index.ts +++ b/packages/flowerbase/src/utils/roles/machines/write/B/index.ts @@ -36,13 +36,13 @@ export const STEP_B_STATES: States = { stepName: 'evaluateTopLevelWrite' }) const check = await evaluateTopLevelPermissionsFn(context, 'write') - if (check) - return context.params.type === 'insert' - ? next('evaluateTopLevelInsert') - : endValidation({ success: true }) - return check === false - ? endValidation({ success: false }) - : next('checkFieldsProperty') + if (check) { + return next('evaluateTopLevelInsert') + } + if (check === false) { + return endValidation({ success: false }) + } + return next('checkFieldsProperty') }, checkFieldsProperty: async ({ context, goToNextValidationStage }) => { logMachineInfo({ @@ -56,7 +56,7 @@ export const STEP_B_STATES: States = { check ? 'checkIsValidFieldName' : 'checkAdditionalFields' ) }, - evaluateTopLevelInsert: async ({ context, endValidation }) => { + evaluateTopLevelInsert: async ({ context, next, endValidation }) => { logMachineInfo({ enabled: context.enableLog, machine: 'B', @@ -64,6 +64,9 @@ export const STEP_B_STATES: States = { stepName: 'evaluateTopLevelInsert' }) const check = await evaluateTopLevelPermissionsFn(context, 'insert') - return endValidation({ success: !!check }) + if (!check) { + return endValidation({ success: false }) + } + return endValidation({ success: true }) } } diff --git a/packages/flowerbase/src/utils/roles/machines/write/C/index.ts b/packages/flowerbase/src/utils/roles/machines/write/C/index.ts index 235cfc3..b9dc775 100644 --- a/packages/flowerbase/src/utils/roles/machines/write/C/index.ts +++ b/packages/flowerbase/src/utils/roles/machines/write/C/index.ts @@ -20,7 +20,7 @@ export const STEP_C_STATES: States = { step: 2, stepName: 'checkIsValidFieldName' }) - const document = checkIsValidFieldNameFn(context) + const document = await checkIsValidFieldNameFn(context) return endValidation({ success: !!Object.keys(document).length, document }) } } diff --git a/packages/flowerbase/src/utils/roles/machines/write/C/validators.ts b/packages/flowerbase/src/utils/roles/machines/write/C/validators.ts index c647bfb..b24b67a 100644 --- a/packages/flowerbase/src/utils/roles/machines/write/C/validators.ts +++ b/packages/flowerbase/src/utils/roles/machines/write/C/validators.ts @@ -1,32 +1,15 @@ +import { + filterDocumentByFieldPermissions, + hasAdditionalFieldsDefined +} from '../../fieldPermissions' import { MachineContext } from '../../interface' export const checkAdditionalFieldsFn = ({ role }: MachineContext) => { - return !!Object.keys(role.additional_fields || {}).length + return hasAdditionalFieldsDefined(role) } -export const checkIsValidFieldNameFn = ({ role, params }: MachineContext) => { - const { cursor } = params - - const { fields = {}, additional_fields = {} } = role - const rulesOnId = !!(fields['_id'] || additional_fields['_id']) - const filteredDocument = Object.entries(cursor).reduce( - (filteredDocument, [key, value]) => { - if (fields![key]) { - return role.fields![key].write - ? { ...filteredDocument, [key]: value } - : filteredDocument - } - if (additional_fields[key]) { - return additional_fields[key]?.write - ? { ...filteredDocument, [key]: value } - : filteredDocument - } - return { ...filteredDocument, [key]: value } - }, - {} - ) - - return rulesOnId || cursor._id === undefined - ? filteredDocument - : { ...filteredDocument, _id: cursor._id } +export const checkIsValidFieldNameFn = async (context: MachineContext) => { + return await filterDocumentByFieldPermissions(context, 'write', { + defaultAllow: typeof context.role.write !== 'undefined' + }) } diff --git a/tests/e2e/app/data_sources/mongodb-atlas/flowerbase-e2e/teamDocs/rules.json b/tests/e2e/app/data_sources/mongodb-atlas/flowerbase-e2e/teamDocs/rules.json new file mode 100644 index 0000000..4f898d2 --- /dev/null +++ b/tests/e2e/app/data_sources/mongodb-atlas/flowerbase-e2e/teamDocs/rules.json @@ -0,0 +1,34 @@ +{ + "database": "flowerbase-e2e", + "collection": "teamDocs", + "filters": [ + { + "name": "ownerOnly", + "apply_when": {}, + "query": { + "ownerId": "%%user.id" + } + } + ], + "roles": [ + { + "name": "collaborator", + "apply_when": { + "%%user.custom_data.accountRole": "collaborator" + }, + "fields": { + "roles": { + "read": true + } + }, + "additional_fields": { + "read": false, + "write": false + }, + "search": false, + "write": false, + "insert": false, + "delete": false + } + ] +} diff --git a/tests/e2e/mongodb-atlas.rules.e2e.rules-and-triggers.test.ts b/tests/e2e/mongodb-atlas.rules.e2e.rules-and-triggers.test.ts index 9d2ec89..e8d451a 100644 --- a/tests/e2e/mongodb-atlas.rules.e2e.rules-and-triggers.test.ts +++ b/tests/e2e/mongodb-atlas.rules.e2e.rules-and-triggers.test.ts @@ -15,6 +15,7 @@ const APP_ROOT = path.join(__dirname, 'app') const DB_NAME = 'flowerbase-e2e' const TODO_COLLECTION = 'todos' const USER_COLLECTION = 'users' +const TEAM_DOCS_COLLECTION = 'teamDocs' const ACTIVITIES_COLLECTION = 'activities' const COUNTERS_COLLECTION = 'counters' const UPLOADS_COLLECTION = 'uploads' @@ -41,6 +42,7 @@ type TestUser = User & { email: string custom_data?: { key?: string + accountRole?: string workspaces: string[] adminIn?: string[] } @@ -62,6 +64,9 @@ const projectIds = { ownerProject: new ObjectId('000000000000000000000020'), guestProject: new ObjectId('000000000000000000000021') } +const teamDocIds = { + collaboratorDoc: new ObjectId('000000000000000000000022') +} const logIds = { activeOwner: new ObjectId('000000000000000000000030'), @@ -96,6 +101,7 @@ const ownerUser: TestUser = { role: 'owner', custom_data: { role: 'owner', + accountRole: 'collaborator', key: 'publisher-owner', workspaces: ['workspace-1'], adminIn: ['workspace-1'] @@ -252,6 +258,7 @@ const createCollectionProxy = (collection: string, user: TestUser | null) => ({ const getTodosCollection = (user: TestUser | null) => createCollectionProxy(TODO_COLLECTION, user) const getUsersCollection = (user: TestUser | null) => createCollectionProxy(USER_COLLECTION, user) +const getTeamDocsCollection = (user: TestUser | null) => createCollectionProxy(TEAM_DOCS_COLLECTION, user) const getAuthUsersCollection = (user: TestUser | null) => createCollectionProxy(AUTH_USERS_COLLECTION, user) const getProjectsCollection = (user: TestUser | null) => createCollectionProxy('projects', user) const getActivityLogsCollection = (user: TestUser | null) => createCollectionProxy('activityLogs', user) @@ -291,6 +298,10 @@ type ProjectDoc = Document & { secretNotes?: string internalCode?: string } +type TeamDoc = Document & { + ownerId: string + roles: string[] +} type ActivityLogDoc = Document & { status: string ownerId: string @@ -335,6 +346,7 @@ const resetCollections = async () => { await Promise.all([ db.collection(TODO_COLLECTION).deleteMany({}), db.collection(USER_COLLECTION).deleteMany({}), + db.collection(TEAM_DOCS_COLLECTION).deleteMany({}), db.collection('projects').deleteMany({}), db.collection('activityLogs').deleteMany({}), db.collection(ACTIVITIES_COLLECTION).deleteMany({}), @@ -405,6 +417,16 @@ const resetCollections = async () => { } ]) + await db.collection(TEAM_DOCS_COLLECTION).insertMany([ + { + _id: teamDocIds.collaboratorDoc, + ownerId: ownerUser.id, + roles: ['editor'], + email: 'collaborator@example.com', + status: 'active' + } + ]) + await db.collection('activityLogs').insertMany([ { _id: logIds.activeOwner, @@ -1155,6 +1177,17 @@ describe('MongoDB Atlas rule enforcement (e2e)', () => { expect(projects[0]).toHaveProperty('summary') }) + it('returns only allowed fields when read is undefined and field-level read is configured', async () => { + const docs = (await getTeamDocsCollection(ownerUser).find({}).toArray()) as TeamDoc[] + expect(docs).toHaveLength(1) + expect(docs[0]).toEqual({ roles: ['editor'] }) + + const singleDoc = (await getTeamDocsCollection(ownerUser).findOne({ + _id: teamDocIds.collaboratorDoc + })) as TeamDoc | null + expect(singleDoc).toEqual({ roles: ['editor'] }) + }) + it('allows owners to update their project summary via function rules', async () => { const updateResult = await getProjectsCollection(ownerUser).updateOne( { _id: projectIds.ownerProject }, @@ -1645,6 +1678,55 @@ describe('MongoDB Atlas rule enforcement (e2e)', () => { await adminWatch.close() await guestWatch.close() }) + + it('emits upload watch event only when status changes with a complex change-stream filter', async () => { + const watch = await openWatchConnection({ + user: ownerUser, + collection: UPLOADS_COLLECTION, + filter: { + 'fullDocument.publisher': ownerUser.custom_data?.key, + $and: [ + { + $or: [ + { 'fullDocument._id': uploadIds.owner }, + { 'fullDocument._id': uploadIds.owner } + ] + }, + { + $or: [ + { operationType: 'insert' }, + { operationType: 'replace' }, + { + operationType: 'update', + 'updateDescription.updatedFields.status': { $exists: true } + } + ] + } + ] + } + }) + + try { + await client + .db(DB_NAME) + .collection(UPLOADS_COLLECTION) + .updateOne({ _id: uploadIds.owner }, { $set: { runAt: new Date() } }) + + await watch.expectNoEvent() + + await client + .db(DB_NAME) + .collection(UPLOADS_COLLECTION) + .updateOne({ _id: uploadIds.owner }, { $set: { status: 'processing' } }) + + const event = await watch.nextEvent() + expect(event.operationType).toBe('update') + expect(String(event.documentKey?._id)).toBe(String(uploadIds.owner)) + expect((event.fullDocument as UploadDoc | undefined)?.status).toBe('processing') + } finally { + await watch.close() + } + }) afterAll(async () => { await appInstance?.close() await client.close() diff --git a/tsconfig.base.json b/tsconfig.base.json index b375131..4185236 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -15,7 +15,8 @@ "paths": { "@flowerforce/devtool": ["packages/flower-devtool/src/index.ts"], "@flowerforce/flower-core": ["packages/flower-core/src/index.ts"], - "@flowerforce/flower-react": ["packages/flower-react/src/index.ts"] + "@flowerforce/flower-react": ["packages/flower-react/src/index.ts"], + "@flowerforce/flowerbase-client": ["packages/flowerbase-client/src/index.ts"] } }, "exclude": ["node_modules"]