From 881ee016916ba4b768095096ccc2592a92e5bd70 Mon Sep 17 00:00:00 2001 From: thanhnv Date: Sat, 18 Jul 2026 00:07:04 +0700 Subject: [PATCH] feat: prepare CASAN paid PoC release package --- .gitea/workflows/casan-supply-chain.yml | 1 + .gitea/workflows/release.yml | 12 + LICENSE | 12 + apps/okr/backend/package.json | 1 + apps/okr/frontend/package.json | 1 + docs/commercial/LICENSE_AND_IP_DECISION.md | 44 + docs/commercial/LICENSE_EXCEPTIONS.json | 16 + docs/commercial/THIRD_PARTY_SOFTWARE.json | 4854 +++++++++++++++++ docs/jp-poc/01_製品概要.md | 32 + docs/jp-poc/02_システム構成・データフロー.md | 30 + docs/jp-poc/03_導入・運用・制限事項.md | 28 + docs/jp-poc/04_PoC計画.md | 29 + docs/jp-poc/05_セキュリティ・責任分界.md | 26 + docs/jp-poc/06_SLAドラフト.md | 19 + docs/jp-poc/README.md | 16 + .../artifact-manifest.json | 17 + .../benign-fp-report.json | 41 + .../decision-log.md | 17 + .../h1-context-report.json | 6 + .../h2-tool-audit.json | 9 + .../h3-eval-scorecard.json | 6 + .../h4-security-report.json | 10 + .../h5-audit-chain-proof.json | 8 + .../h6-cost-telemetry.json | 9 + .../h7-orchestration-report.json | 6 + .../manifest-head.txt | 1 + .../redteam-result.json | 8 + .../run-summary.json | 28 + .../traceability-matrix.json | 168 + docs/packaging/CASAN_PACKAGING_PLAN.md | 20 +- .../EDITION_FEATURE_LIMITATION_MATRIX.md | 40 + docs/plans/CASAN_BACKLOG_STATUS.md | 3 +- package-lock.json | 5 + package.json | 1 + .../casan-control-panel/backend/package.json | 1 + .../backend/src/app.module.ts | 3 +- .../backend/src/chat/chat.controller.ts | 12 +- .../backend/src/chat/chat.service.ts | 19 +- .../backend/src/common/app-root.ts | 1 + .../src/evidence/evidence.controller.ts | 14 + .../backend/src/evidence/evidence.module.ts | 6 + .../backend/src/evidence/evidence.service.ts | 107 + .../backend/test/chat.test.ts | 12 +- .../casan-control-panel/frontend/package.json | 1 + .../casan-control-panel/frontend/src/App.tsx | 2 + .../src/components/layout/Sidebar.tsx | 4 +- .../frontend/src/lib/api.ts | 21 + .../frontend/src/pages/EvidencePacks.tsx | 62 + packages/casan-enterprise/README.md | 17 +- .../scripts/bash/ci-harness-gate.sh | 12 + .../scripts/bash/goal-orchestrator.py | 39 +- packages/casan-platform/README.md | 8 +- packaging/levels.json | 39 +- scripts/generate-license-inventory.mjs | 48 + scripts/smoke-release-artifact.sh | 84 + 55 files changed, 5992 insertions(+), 44 deletions(-) create mode 100644 LICENSE create mode 100644 docs/commercial/LICENSE_AND_IP_DECISION.md create mode 100644 docs/commercial/LICENSE_EXCEPTIONS.json create mode 100644 docs/commercial/THIRD_PARTY_SOFTWARE.json create mode 100644 docs/jp-poc/01_製品概要.md create mode 100644 docs/jp-poc/02_システム構成・データフロー.md create mode 100644 docs/jp-poc/03_導入・運用・制限事項.md create mode 100644 docs/jp-poc/04_PoC計画.md create mode 100644 docs/jp-poc/05_セキュリティ・責任分界.md create mode 100644 docs/jp-poc/06_SLAドラフト.md create mode 100644 docs/jp-poc/README.md create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/artifact-manifest.json create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/benign-fp-report.json create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/decision-log.md create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h1-context-report.json create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h2-tool-audit.json create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h3-eval-scorecard.json create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h4-security-report.json create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h5-audit-chain-proof.json create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h6-cost-telemetry.json create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h7-orchestration-report.json create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/manifest-head.txt create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/redteam-result.json create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/run-summary.json create mode 100644 docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/traceability-matrix.json create mode 100644 docs/packaging/EDITION_FEATURE_LIMITATION_MATRIX.md create mode 100644 packages/casan-control-panel/backend/src/evidence/evidence.controller.ts create mode 100644 packages/casan-control-panel/backend/src/evidence/evidence.module.ts create mode 100644 packages/casan-control-panel/backend/src/evidence/evidence.service.ts create mode 100644 packages/casan-control-panel/frontend/src/pages/EvidencePacks.tsx create mode 100644 scripts/generate-license-inventory.mjs create mode 100755 scripts/smoke-release-artifact.sh diff --git a/.gitea/workflows/casan-supply-chain.yml b/.gitea/workflows/casan-supply-chain.yml index 6db7589..d3c0ac5 100644 --- a/.gitea/workflows/casan-supply-chain.yml +++ b/.gitea/workflows/casan-supply-chain.yml @@ -15,6 +15,7 @@ jobs: CASAN_CI_RUN_FRONTEND: "1" CASAN_CI_RUN_BACKEND: "1" CASAN_CI_RUN_INFRA_LAB: "0" + CASAN_CI_RUN_CONTROL_PANEL: "1" CASAN_REQUIRE_LIVE_SCANNERS: "1" CASAN_TOOLCHAIN_TRUSTED_DIRS: /usr/bin:/bin:/usr/local/bin steps: diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 1dfd466..4ecd2a5 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -18,6 +18,7 @@ jobs: env: CASAN_CI_RUN_FRONTEND: "0" CASAN_CI_RUN_BACKEND: "0" + CASAN_CI_RUN_CONTROL_PANEL: "1" CASAN_CI_RUN_INFRA_LAB: "0" CASAN_CI_STEP_TIMEOUT_SEC: "1200" steps: @@ -39,6 +40,9 @@ jobs: echo "tag=$TAG version-file=$FILE_VER" [ "$TAG" = "$FILE_VER" ] || { echo "::error::tag v$TAG != VERSION $FILE_VER — bump VERSION before tagging"; exit 1; } + - name: Install locked Node dependencies + run: npm ci + - name: Verify governance gate (must be green to release) run: bash packages/casan-harness/scripts/bash/ci-harness-gate.sh @@ -52,6 +56,14 @@ jobs: scripts/package-release.sh enterprise || echo "enterprise skipped (future, expected)" ls -lh dist/ + - name: Smoke extracted release artifacts + run: | + set -euo pipefail + scripts/smoke-release-artifact.sh "dist/casan-core-v$(cat VERSION).tar.gz" + scripts/smoke-release-artifact.sh "dist/casan-devkit-v$(cat VERSION).tar.gz" + CASAN_ARTIFACT_SMOKE_RUN_TESTS=1 \ + scripts/smoke-release-artifact.sh "dist/casan-platform-preview-v$(cat VERSION).tar.gz" + - name: Publish bundles to Gitea package registry env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1146a04 --- /dev/null +++ b/LICENSE @@ -0,0 +1,12 @@ +CASAN Proprietary Commercial License + +Copyright (c) CASAN copyright owner. All rights reserved. + +This repository and its CASAN-authored source code, documentation, scripts, +and release artifacts are proprietary. No permission is granted to use, copy, +modify, distribute, sublicense, host, or create derivative works except under +an executed written agreement with the copyright owner. + +Third-party components remain subject to their own licenses. See +docs/commercial/THIRD_PARTY_SOFTWARE.json and +docs/commercial/LICENSE_AND_IP_DECISION.md. diff --git a/apps/okr/backend/package.json b/apps/okr/backend/package.json index a54862b..72fa65d 100644 --- a/apps/okr/backend/package.json +++ b/apps/okr/backend/package.json @@ -2,6 +2,7 @@ "name": "@ainative-okr/backend", "version": "1.0.0", "private": true, + "license": "UNLICENSED", "type": "module", "scripts": { "build": "prisma generate && tsc -p tsconfig.build.json", diff --git a/apps/okr/frontend/package.json b/apps/okr/frontend/package.json index 052a21a..32ca238 100644 --- a/apps/okr/frontend/package.json +++ b/apps/okr/frontend/package.json @@ -2,6 +2,7 @@ "name": "@ainative-okr/frontend", "version": "1.0.0", "private": true, + "license": "UNLICENSED", "type": "module", "scripts": { "dev": "vite", diff --git a/docs/commercial/LICENSE_AND_IP_DECISION.md b/docs/commercial/LICENSE_AND_IP_DECISION.md new file mode 100644 index 0000000..e022303 --- /dev/null +++ b/docs/commercial/LICENSE_AND_IP_DECISION.md @@ -0,0 +1,44 @@ +# CASAN Commercial License and IP Decision + +## Decision + +CASAN is offered as **proprietary commercial software**. No rights to use, +copy, modify, distribute, host, or sublicense CASAN are granted except under a +written evaluation, PoC, subscription, or enterprise agreement signed by the +copyright owner and the customer. + +For a paid PoC, the default grant is a non-exclusive, non-transferable, +time-limited right to deploy the delivered CASAN bundle in the customer’s +approved environment for the agreed evaluation scope. Production use, managed +service operation, redistribution, and source access require separate terms. + +This decision applies to CASAN-authored material only. It does not override +third-party license obligations. + +## Release controls + +1. Regenerate `THIRD_PARTY_SOFTWARE.json` from the committed lockfile before + each paid-PoC or release candidate: `node scripts/generate-license-inventory.mjs`. +2. Review every `UNKNOWN`, copyleft, source-available, model, dataset, font, + icon, container-base-image, or copied-script license before shipment. +3. Include required notices and source-offer material in the release bundle + whenever a dependency license requires it. +4. Record the review owner, release version, decision, and exceptions in the + release Evidence Pack or legal review record. +5. Do not claim ownership of customer source code, prompts, or Evidence Pack + data; ownership and permitted processing are defined by the customer + agreement and data-processing terms. + +## Known scope boundary + +The generated inventory is complete for root-lockfile npm packages only. It is +not proof that Python tooling, operating-system packages, Docker base images, +models, datasets, or bundled assets are cleared. Those sources are release +blockers until separately inventoried and approved. + +## Required legal review before external sale + +Confirm copyright ownership/assignment for CASAN-authored code, trademark use, +customer contract templates, export-control applicability, open-source notices, +and country-specific privacy terms. This document records the product decision; +it is not a substitute for counsel. diff --git a/docs/commercial/LICENSE_EXCEPTIONS.json b/docs/commercial/LICENSE_EXCEPTIONS.json new file mode 100644 index 0000000..aba19bf --- /dev/null +++ b/docs/commercial/LICENSE_EXCEPTIONS.json @@ -0,0 +1,16 @@ +{ + "schema_version": "1.0", + "purpose": "Manual license-review findings for packages whose committed lockfile does not contain license metadata.", + "exceptions": { + "busboy@1.6.0": { + "reviewed_license": "MIT", + "evidence": "https://github.com/mscdex/busboy/blob/master/LICENSE", + "review_status": "requires-release-notice" + }, + "streamsearch@1.1.0": { + "reviewed_license": "MIT", + "evidence": "https://github.com/mscdex/streamsearch/blob/master/LICENSE", + "review_status": "requires-release-notice" + } + } +} diff --git a/docs/commercial/THIRD_PARTY_SOFTWARE.json b/docs/commercial/THIRD_PARTY_SOFTWARE.json new file mode 100644 index 0000000..d381b09 --- /dev/null +++ b/docs/commercial/THIRD_PARTY_SOFTWARE.json @@ -0,0 +1,4854 @@ +{ + "schema_version": "1.0", + "generated_from": "package-lock.json", + "generated_at": "2026-07-17T17:06:12.911Z", + "scope": "npm dependencies recorded in the root lockfile; Python, container base images, model and dataset licenses require separate release review.", + "exceptions_source": "docs/commercial/LICENSE_EXCEPTIONS.json", + "package_count": 537, + "licenses": { + "MIT": 477, + "UNLICENSED": 4, + "ISC": 22, + "MIT-0": 1, + "Apache-2.0": 19, + "BSD-3-Clause": 7, + "CC-BY-4.0": 1, + "BSD-2-Clause": 5, + "0BSD": 1 + }, + "packages": [ + { + "name": "@adobe/css-tools", + "version": "4.5.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", + "integrity": "sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==" + }, + { + "name": "@ainative-okr/backend", + "version": "unknown", + "declared_license": "UNLICENSED", + "license": "UNLICENSED", + "review_evidence": null, + "resolved": "apps/okr/backend", + "integrity": null + }, + { + "name": "@ainative-okr/frontend", + "version": "unknown", + "declared_license": "UNLICENSED", + "license": "UNLICENSED", + "review_evidence": null, + "resolved": "apps/okr/frontend", + "integrity": null + }, + { + "name": "@alloc/quick-lru", + "version": "5.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" + }, + { + "name": "@asamuzakjp/css-color", + "version": "3.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==" + }, + { + "name": "@asamuzakjp/css-color/node_modules/lru-cache", + "version": "10.4.3", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + { + "name": "@babel/code-frame", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==" + }, + { + "name": "@babel/compat-data", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==" + }, + { + "name": "@babel/core", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==" + }, + { + "name": "@babel/generator", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==" + }, + { + "name": "@babel/helper-compilation-targets", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==" + }, + { + "name": "@babel/helper-globals", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==" + }, + { + "name": "@babel/helper-module-imports", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==" + }, + { + "name": "@babel/helper-module-transforms", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==" + }, + { + "name": "@babel/helper-plugin-utils", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==" + }, + { + "name": "@babel/helper-string-parser", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==" + }, + { + "name": "@babel/helper-validator-identifier", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==" + }, + { + "name": "@babel/helper-validator-option", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==" + }, + { + "name": "@babel/helpers", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==" + }, + { + "name": "@babel/parser", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==" + }, + { + "name": "@babel/plugin-transform-react-jsx-self", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", + "integrity": "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==" + }, + { + "name": "@babel/plugin-transform-react-jsx-source", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", + "integrity": "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==" + }, + { + "name": "@babel/runtime", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==" + }, + { + "name": "@babel/template", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==" + }, + { + "name": "@babel/traverse", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==" + }, + { + "name": "@babel/types", + "version": "7.29.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==" + }, + { + "name": "@borewit/text-codec", + "version": "0.2.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@borewit/text-codec/-/text-codec-0.2.2.tgz", + "integrity": "sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==" + }, + { + "name": "@casan/control-panel-backend", + "version": "unknown", + "declared_license": "UNLICENSED", + "license": "UNLICENSED", + "review_evidence": null, + "resolved": "packages/casan-control-panel/backend", + "integrity": null + }, + { + "name": "@casan/control-panel-frontend", + "version": "unknown", + "declared_license": "UNLICENSED", + "license": "UNLICENSED", + "review_evidence": null, + "resolved": "packages/casan-control-panel/frontend", + "integrity": null + }, + { + "name": "@csstools/color-helpers", + "version": "5.1.0", + "declared_license": "MIT-0", + "license": "MIT-0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==" + }, + { + "name": "@csstools/css-calc", + "version": "2.1.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==" + }, + { + "name": "@csstools/css-color-parser", + "version": "3.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==" + }, + { + "name": "@csstools/css-parser-algorithms", + "version": "3.0.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==" + }, + { + "name": "@csstools/css-tokenizer", + "version": "3.0.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==" + }, + { + "name": "@esbuild/aix-ppc64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==" + }, + { + "name": "@esbuild/android-arm", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==" + }, + { + "name": "@esbuild/android-arm64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==" + }, + { + "name": "@esbuild/android-x64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==" + }, + { + "name": "@esbuild/darwin-arm64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==" + }, + { + "name": "@esbuild/darwin-x64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==" + }, + { + "name": "@esbuild/freebsd-arm64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==" + }, + { + "name": "@esbuild/freebsd-x64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==" + }, + { + "name": "@esbuild/linux-arm", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==" + }, + { + "name": "@esbuild/linux-arm64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==" + }, + { + "name": "@esbuild/linux-ia32", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==" + }, + { + "name": "@esbuild/linux-loong64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==" + }, + { + "name": "@esbuild/linux-mips64el", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==" + }, + { + "name": "@esbuild/linux-ppc64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==" + }, + { + "name": "@esbuild/linux-riscv64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==" + }, + { + "name": "@esbuild/linux-s390x", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==" + }, + { + "name": "@esbuild/linux-x64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==" + }, + { + "name": "@esbuild/netbsd-arm64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==" + }, + { + "name": "@esbuild/netbsd-x64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==" + }, + { + "name": "@esbuild/openbsd-arm64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==" + }, + { + "name": "@esbuild/openbsd-x64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==" + }, + { + "name": "@esbuild/openharmony-arm64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==" + }, + { + "name": "@esbuild/sunos-x64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==" + }, + { + "name": "@esbuild/win32-arm64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==" + }, + { + "name": "@esbuild/win32-ia32", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==" + }, + { + "name": "@esbuild/win32-x64", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==" + }, + { + "name": "@jridgewell/gen-mapping", + "version": "0.3.13", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==" + }, + { + "name": "@jridgewell/remapping", + "version": "2.3.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==" + }, + { + "name": "@jridgewell/resolve-uri", + "version": "3.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" + }, + { + "name": "@jridgewell/sourcemap-codec", + "version": "1.5.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" + }, + { + "name": "@jridgewell/trace-mapping", + "version": "0.3.31", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==" + }, + { + "name": "@lukeed/csprng", + "version": "1.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==" + }, + { + "name": "@nestjs/common", + "version": "10.4.22", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.4.22.tgz", + "integrity": "sha512-fxJ4v85nDHaqT1PmfNCQ37b/jcv2OojtXTaK1P2uAXhzLf9qq6WNUOFvxBrV4fhQek1EQoT1o9oj5xAZmv3NRw==" + }, + { + "name": "@nestjs/core", + "version": "10.4.22", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.4.22.tgz", + "integrity": "sha512-6IX9+VwjiKtCjx+mXVPncpkQ5ZjKfmssOZPFexmT+6T9H9wZ3svpYACAo7+9e7Nr9DZSoRZw3pffkJP7Z0UjaA==" + }, + { + "name": "@nestjs/jwt", + "version": "10.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@nestjs/jwt/-/jwt-10.2.0.tgz", + "integrity": "sha512-x8cG90SURkEiLOehNaN2aRlotxT0KZESUliOPKKnjWiyJOcWurkF3w345WOX0P4MgFzUjGoZ1Sy0aZnxeihT0g==" + }, + { + "name": "@nestjs/platform-express", + "version": "10.4.22", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.4.22.tgz", + "integrity": "sha512-ySSq7Py/DFozzZdNDH67m/vHoeVdphDniWBnl6q5QVoXldDdrZIHLXLRMPayTDh5A95nt7jjJzmD4qpTbNQ6tA==" + }, + { + "name": "@nestjs/testing", + "version": "10.4.22", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-10.4.22.tgz", + "integrity": "sha512-HO9aPus3bAedAC+jKVAA8jTdaj4fs5M9fing4giHrcYV2txe9CvC1l1WAjwQ9RDhEHdugjY4y+FZA/U/YqPZrA==" + }, + { + "name": "@noble/hashes", + "version": "1.8.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==" + }, + { + "name": "@nodelib/fs.scandir", + "version": "2.1.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" + }, + { + "name": "@nodelib/fs.stat", + "version": "2.0.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + { + "name": "@nodelib/fs.walk", + "version": "1.2.8", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" + }, + { + "name": "@nuxtjs/opencollective", + "version": "0.3.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==" + }, + { + "name": "@paralleldrive/cuid2", + "version": "2.3.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz", + "integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==" + }, + { + "name": "@prisma/client", + "version": "6.19.3", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.19.3.tgz", + "integrity": "sha512-mKq3jQFhjvko5LTJFHGilsuQs+W+T3Gm451NzuTDGQxwCzwXHYnIu2zGkRoW+Exq3Rob7yp2MfzSrdIiZVhrBg==" + }, + { + "name": "@prisma/config", + "version": "6.19.3", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@prisma/config/-/config-6.19.3.tgz", + "integrity": "sha512-CBPT44BjlQxEt8kiMEauji2WHTDoVBOKl7UlewXmUgBPnr/oPRZC3psci5chJnYmH0ivEIog2OU9PGWoki3DLQ==" + }, + { + "name": "@prisma/debug", + "version": "6.19.3", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.19.3.tgz", + "integrity": "sha512-ljkJ+SgpXNktLG0Q/n4JGYCkKf0f8oYLyjImS2I8e2q2WCfdRRtWER062ZV/ixaNP2M2VKlWXVJiGzZaUgbKZw==" + }, + { + "name": "@prisma/engines", + "version": "6.19.3", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.19.3.tgz", + "integrity": "sha512-RSYxtlYFl5pJ8ZePgMv0lZ9IzVCOdTPOegrs2qcbAEFrBI1G33h6wyC9kjQvo0DnYEhEVY0X4LsuFHXLKQk88g==" + }, + { + "name": "@prisma/engines-version", + "version": "7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7.tgz", + "integrity": "sha512-03bgb1VD5gvuumNf+7fVGBzfpJPjmqV423l/WxsWk2cNQ42JD0/SsFBPhN6z8iAvdHs07/7ei77SKu7aZfq8bA==" + }, + { + "name": "@prisma/fetch-engine", + "version": "6.19.3", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.19.3.tgz", + "integrity": "sha512-tKtl/qco9Nt7LU5iKhpultD8O4vMCZcU2CHjNTnRrL1QvSUr5W/GcyFPjNL87GtRrwBc7ubXXD9xy4EvLvt8JA==" + }, + { + "name": "@prisma/get-platform", + "version": "6.19.3", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.19.3.tgz", + "integrity": "sha512-xFj1VcJ1N3MKooOQAGO0W5tsd0W2QzIvW7DD7c/8H14Zmp4jseeWAITm+w2LLoLrlhoHdPPh0NMZ8mfL6puoHA==" + }, + { + "name": "@remix-run/router", + "version": "1.23.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.3.tgz", + "integrity": "sha512-4An71tdz9X8+3sI4Qqqd2LWd9vS39J7sqd9EU4Scw7TJE/qB10Flv/UuqbPVgfQV9XoK8Np6jNquZitnZq5i+Q==" + }, + { + "name": "@rolldown/pluginutils", + "version": "1.0.0-beta.27", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" + }, + { + "name": "@rollup/rollup-android-arm-eabi", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz", + "integrity": "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==" + }, + { + "name": "@rollup/rollup-android-arm64", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz", + "integrity": "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==" + }, + { + "name": "@rollup/rollup-darwin-arm64", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz", + "integrity": "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==" + }, + { + "name": "@rollup/rollup-darwin-x64", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz", + "integrity": "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==" + }, + { + "name": "@rollup/rollup-freebsd-arm64", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz", + "integrity": "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==" + }, + { + "name": "@rollup/rollup-freebsd-x64", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz", + "integrity": "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==" + }, + { + "name": "@rollup/rollup-linux-arm-gnueabihf", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz", + "integrity": "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==" + }, + { + "name": "@rollup/rollup-linux-arm-musleabihf", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz", + "integrity": "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==" + }, + { + "name": "@rollup/rollup-linux-arm64-gnu", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz", + "integrity": "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==" + }, + { + "name": "@rollup/rollup-linux-arm64-musl", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz", + "integrity": "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==" + }, + { + "name": "@rollup/rollup-linux-loong64-gnu", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz", + "integrity": "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==" + }, + { + "name": "@rollup/rollup-linux-loong64-musl", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz", + "integrity": "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==" + }, + { + "name": "@rollup/rollup-linux-ppc64-gnu", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz", + "integrity": "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==" + }, + { + "name": "@rollup/rollup-linux-ppc64-musl", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz", + "integrity": "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==" + }, + { + "name": "@rollup/rollup-linux-riscv64-gnu", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz", + "integrity": "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==" + }, + { + "name": "@rollup/rollup-linux-riscv64-musl", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz", + "integrity": "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==" + }, + { + "name": "@rollup/rollup-linux-s390x-gnu", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz", + "integrity": "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==" + }, + { + "name": "@rollup/rollup-linux-x64-gnu", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz", + "integrity": "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==" + }, + { + "name": "@rollup/rollup-linux-x64-musl", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz", + "integrity": "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==" + }, + { + "name": "@rollup/rollup-openbsd-x64", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz", + "integrity": "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==" + }, + { + "name": "@rollup/rollup-openharmony-arm64", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz", + "integrity": "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==" + }, + { + "name": "@rollup/rollup-win32-arm64-msvc", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz", + "integrity": "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==" + }, + { + "name": "@rollup/rollup-win32-ia32-msvc", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz", + "integrity": "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==" + }, + { + "name": "@rollup/rollup-win32-x64-gnu", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz", + "integrity": "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==" + }, + { + "name": "@rollup/rollup-win32-x64-msvc", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz", + "integrity": "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==" + }, + { + "name": "@standard-schema/spec", + "version": "1.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==" + }, + { + "name": "@tanstack/query-core", + "version": "5.101.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.101.2.tgz", + "integrity": "sha512-hH5MLoJhF7KaIGd7q3xTXGXvslI+GYlM1Z/35aSHHWaCJWB7XvTSHYuV3eM7tw+aE0mT/xMro4M4Q9rCGHT0lw==" + }, + { + "name": "@tanstack/react-query", + "version": "5.101.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.101.2.tgz", + "integrity": "sha512-seDkr6kzGzX1okaaTtZPtgA688CDPlXUz1C6xSg0ESqn04Vuc8tlrYms1s3de+znBqhPVxFRfpAfUf+6XvfPWg==" + }, + { + "name": "@testing-library/dom", + "version": "10.4.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==" + }, + { + "name": "@testing-library/dom/node_modules/aria-query", + "version": "5.3.0", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==" + }, + { + "name": "@testing-library/dom/node_modules/dom-accessibility-api", + "version": "0.5.16", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" + }, + { + "name": "@testing-library/jest-dom", + "version": "6.9.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==" + }, + { + "name": "@testing-library/react", + "version": "16.3.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", + "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==" + }, + { + "name": "@testing-library/user-event", + "version": "14.6.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==" + }, + { + "name": "@tokenizer/inflate", + "version": "0.2.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.2.7.tgz", + "integrity": "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==" + }, + { + "name": "@tokenizer/token", + "version": "0.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, + { + "name": "@types/aria-query", + "version": "5.0.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + }, + { + "name": "@types/babel__core", + "version": "7.20.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==" + }, + { + "name": "@types/babel__generator", + "version": "7.27.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==" + }, + { + "name": "@types/babel__template", + "version": "7.4.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==" + }, + { + "name": "@types/babel__traverse", + "version": "7.28.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==" + }, + { + "name": "@types/body-parser", + "version": "1.19.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==" + }, + { + "name": "@types/chai", + "version": "5.2.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==" + }, + { + "name": "@types/connect", + "version": "3.4.38", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==" + }, + { + "name": "@types/cookiejar", + "version": "2.1.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz", + "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==" + }, + { + "name": "@types/deep-eql", + "version": "4.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==" + }, + { + "name": "@types/estree", + "version": "1.0.9", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==" + }, + { + "name": "@types/express", + "version": "4.17.25", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==" + }, + { + "name": "@types/express-serve-static-core", + "version": "4.19.8", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==" + }, + { + "name": "@types/http-errors", + "version": "2.0.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==" + }, + { + "name": "@types/jsonwebtoken", + "version": "9.0.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.5.tgz", + "integrity": "sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==" + }, + { + "name": "@types/methods", + "version": "1.1.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz", + "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==" + }, + { + "name": "@types/mime", + "version": "1.3.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + { + "name": "@types/node", + "version": "24.13.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.2.tgz", + "integrity": "sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==" + }, + { + "name": "@types/prop-types", + "version": "15.7.15", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==" + }, + { + "name": "@types/qs", + "version": "6.15.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==" + }, + { + "name": "@types/range-parser", + "version": "1.2.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + { + "name": "@types/react", + "version": "18.3.31", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", + "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==" + }, + { + "name": "@types/react-dom", + "version": "18.3.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==" + }, + { + "name": "@types/send", + "version": "1.2.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==" + }, + { + "name": "@types/serve-static", + "version": "1.15.10", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==" + }, + { + "name": "@types/serve-static/node_modules/@types/send", + "version": "0.17.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==" + }, + { + "name": "@types/superagent", + "version": "8.1.10", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.10.tgz", + "integrity": "sha512-nbt4IWXABhW0jGmmpRzCFNlbmwCTzZ2gTUsNIr+X+ItdqPms+PAJZbWsNzpS2USqXjcoNLQcO6nXo60zcPQiIg==" + }, + { + "name": "@types/supertest", + "version": "6.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.3.tgz", + "integrity": "sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==" + }, + { + "name": "@types/validator", + "version": "13.15.10", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.10.tgz", + "integrity": "sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==" + }, + { + "name": "@vitejs/plugin-react", + "version": "4.7.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==" + }, + { + "name": "@vitest/expect", + "version": "3.2.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.6.tgz", + "integrity": "sha512-1+7q9BtaKzEmO+fmNT3kYvoNn5Y71XWAx2Q5HRim4tTVRQVRv4uJFAQ5FbK0OPUeNP/WmVCpxYxoJdvuHVjzBQ==" + }, + { + "name": "@vitest/mocker", + "version": "3.2.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.6.tgz", + "integrity": "sha512-EZOrpDbkKotFAP7wPAQV1UIyoGOk4oX7ynWhBhLB7v+meMHbQhU16oPpIYGTTe4oFlhpryGpgpcZP/sin3hYuw==" + }, + { + "name": "@vitest/pretty-format", + "version": "3.2.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.6.tgz", + "integrity": "sha512-lb7XXXzmm2h2ASzFnRvQpDo6onT1NmMJA3tkGTWiBFtRJ9lxGY3d3mm/Apt36gej2bkkOVLL/yTOtufDaFa/jA==" + }, + { + "name": "@vitest/runner", + "version": "3.2.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.6.tgz", + "integrity": "sha512-HYcoSj1w5tcgUnzoF0HcyaAQjpA1gj9ftUJ7iSJSuipc02jW9gKkigwZbjFldAfYHA1fa8UZVRftdMY5msWM9Q==" + }, + { + "name": "@vitest/snapshot", + "version": "3.2.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.6.tgz", + "integrity": "sha512-H+ZjNTWGpObenh0YnlBctAPnJSI20P81PL8BPzWpx54YXLLTm8hEsWawtcYLMrwvpK48hGxLLbCS+1KRXhsKhw==" + }, + { + "name": "@vitest/spy", + "version": "3.2.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.6.tgz", + "integrity": "sha512-oq6BbH68WzcWmwtBrU9nqLeaXTR4XwJF7FSLkKEZo4i6eoXcrxjcwSuTvWBIRUTC6VC72nXYunzqgZA+IKdtxg==" + }, + { + "name": "@vitest/utils", + "version": "3.2.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.6.tgz", + "integrity": "sha512-lI23nIs4bnT3T8NIoh+vFaz5s2/DdP0Jgt2jxwgWljvwn82cLJtyi/If+fjFyoLMGIOz0U/fKvWE0d4jsNQEfg==" + }, + { + "name": "accepts", + "version": "1.3.8", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==" + }, + { + "name": "agent-base", + "version": "6.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==" + }, + { + "name": "ansi-regex", + "version": "5.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + { + "name": "ansi-styles", + "version": "4.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + }, + { + "name": "any-promise", + "version": "1.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + { + "name": "anymatch", + "version": "3.1.3", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==" + }, + { + "name": "append-field", + "version": "1.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + { + "name": "arg", + "version": "5.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + { + "name": "aria-query", + "version": "5.3.2", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==" + }, + { + "name": "array-flatten", + "version": "1.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + { + "name": "asap", + "version": "2.0.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + { + "name": "assertion-error", + "version": "2.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==" + }, + { + "name": "asynckit", + "version": "0.4.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + { + "name": "autoprefixer", + "version": "10.5.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.2.tgz", + "integrity": "sha512-rD5t5DwOjJdmSORcTq64j8MawTC+tbQ+HHqjR4NDumamy/ambn1UJrlKL+KdwujWxMkFjPM3pPHOEA9tl4767Q==" + }, + { + "name": "axios", + "version": "1.18.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.1.tgz", + "integrity": "sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==" + }, + { + "name": "baseline-browser-mapping", + "version": "2.10.40", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.40.tgz", + "integrity": "sha512-BSSLZ9/Cjjv7Gtj5B68ZzXcXUg8iOf3fme+FCuh8rC/Go+Kmh8cox7M3A8dolou16s64QjLPOSdngh7GxXvkSw==" + }, + { + "name": "bcryptjs", + "version": "3.0.3", + "declared_license": "BSD-3-Clause", + "license": "BSD-3-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.3.tgz", + "integrity": "sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==" + }, + { + "name": "binary-extensions", + "version": "2.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" + }, + { + "name": "body-parser", + "version": "1.20.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==" + }, + { + "name": "body-parser/node_modules/debug", + "version": "2.6.9", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + }, + { + "name": "body-parser/node_modules/ms", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + { + "name": "braces", + "version": "3.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==" + }, + { + "name": "browserslist", + "version": "4.28.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz", + "integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==" + }, + { + "name": "buffer-equal-constant-time", + "version": "1.0.1", + "declared_license": "BSD-3-Clause", + "license": "BSD-3-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + { + "name": "buffer-from", + "version": "1.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + { + "name": "busboy", + "version": "1.6.0", + "declared_license": "UNKNOWN", + "license": "MIT", + "review_evidence": "https://github.com/mscdex/busboy/blob/master/LICENSE", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==" + }, + { + "name": "bytes", + "version": "3.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + { + "name": "c12", + "version": "3.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/c12/-/c12-3.1.0.tgz", + "integrity": "sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==" + }, + { + "name": "c12/node_modules/chokidar", + "version": "4.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==" + }, + { + "name": "c12/node_modules/jiti", + "version": "2.7.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==" + }, + { + "name": "c12/node_modules/readdirp", + "version": "4.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==" + }, + { + "name": "cac", + "version": "6.7.14", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==" + }, + { + "name": "call-bind-apply-helpers", + "version": "1.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==" + }, + { + "name": "call-bound", + "version": "1.0.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==" + }, + { + "name": "camelcase-css", + "version": "2.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + { + "name": "caniuse-lite", + "version": "1.0.30001799", + "declared_license": "CC-BY-4.0", + "license": "CC-BY-4.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz", + "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==" + }, + { + "name": "chai", + "version": "5.3.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==" + }, + { + "name": "chalk", + "version": "4.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + }, + { + "name": "check-error", + "version": "2.1.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==" + }, + { + "name": "chokidar", + "version": "3.6.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==" + }, + { + "name": "chokidar/node_modules/glob-parent", + "version": "5.1.2", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + }, + { + "name": "citty", + "version": "0.1.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==" + }, + { + "name": "citty/node_modules/consola", + "version": "3.4.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==" + }, + { + "name": "class-transformer", + "version": "0.5.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" + }, + { + "name": "class-validator", + "version": "0.14.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.4.tgz", + "integrity": "sha512-AwNusCCam51q703dW82x95tOqQp6oC9HNUl724KxJJOfnKscI8dOloXFgyez7LbTTKWuRBA37FScqVbJEoq8Yw==" + }, + { + "name": "color-convert", + "version": "2.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + }, + { + "name": "color-name", + "version": "1.1.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + { + "name": "combined-stream", + "version": "1.0.8", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" + }, + { + "name": "commander", + "version": "4.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + { + "name": "component-emitter", + "version": "1.3.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==" + }, + { + "name": "concat-stream", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==" + }, + { + "name": "confbox", + "version": "0.2.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==" + }, + { + "name": "consola", + "version": "2.15.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + { + "name": "content-disposition", + "version": "0.5.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==" + }, + { + "name": "content-type", + "version": "1.0.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + { + "name": "convert-source-map", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + { + "name": "cookie", + "version": "0.7.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==" + }, + { + "name": "cookie-signature", + "version": "1.0.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==" + }, + { + "name": "cookiejar", + "version": "2.1.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==" + }, + { + "name": "cors", + "version": "2.8.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==" + }, + { + "name": "cross-env", + "version": "7.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==" + }, + { + "name": "cross-spawn", + "version": "7.0.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==" + }, + { + "name": "css.escape", + "version": "1.5.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + { + "name": "cssesc", + "version": "3.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + { + "name": "cssstyle", + "version": "4.6.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==" + }, + { + "name": "csstype", + "version": "3.2.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==" + }, + { + "name": "data-urls", + "version": "5.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==" + }, + { + "name": "data-urls/node_modules/tr46", + "version": "5.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==" + }, + { + "name": "data-urls/node_modules/webidl-conversions", + "version": "7.0.0", + "declared_license": "BSD-2-Clause", + "license": "BSD-2-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" + }, + { + "name": "data-urls/node_modules/whatwg-url", + "version": "14.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==" + }, + { + "name": "debug", + "version": "4.4.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==" + }, + { + "name": "decimal.js", + "version": "10.6.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==" + }, + { + "name": "deep-eql", + "version": "5.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==" + }, + { + "name": "deepmerge-ts", + "version": "7.1.5", + "declared_license": "BSD-3-Clause", + "license": "BSD-3-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz", + "integrity": "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==" + }, + { + "name": "defu", + "version": "6.1.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==" + }, + { + "name": "delayed-stream", + "version": "1.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + { + "name": "depd", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + { + "name": "dequal", + "version": "2.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" + }, + { + "name": "destr", + "version": "2.0.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==" + }, + { + "name": "destroy", + "version": "1.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + { + "name": "dezalgo", + "version": "1.0.4", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==" + }, + { + "name": "didyoumean", + "version": "1.2.2", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + { + "name": "dlv", + "version": "1.1.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + { + "name": "dom-accessibility-api", + "version": "0.6.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==" + }, + { + "name": "dotenv", + "version": "16.6.1", + "declared_license": "BSD-2-Clause", + "license": "BSD-2-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==" + }, + { + "name": "dunder-proto", + "version": "1.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==" + }, + { + "name": "ecdsa-sig-formatter", + "version": "1.0.11", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==" + }, + { + "name": "ee-first", + "version": "1.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + { + "name": "effect", + "version": "3.21.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/effect/-/effect-3.21.0.tgz", + "integrity": "sha512-PPN80qRokCd1f015IANNhrwOnLO7GrrMQfk4/lnZRE/8j7UPWrNNjPV0uBrZutI/nHzernbW+J0hdqQysHiSnQ==" + }, + { + "name": "electron-to-chromium", + "version": "1.5.380", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.380.tgz", + "integrity": "sha512-W6d5AbuEoRayO447cqrg6lKJIlscgRnnxOZl/08kfV71BQDoEBC7Wwis68z87LjyK6f4kWyTaubuDbhHKrZkbA==" + }, + { + "name": "empathic", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz", + "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==" + }, + { + "name": "encodeurl", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" + }, + { + "name": "entities", + "version": "6.0.1", + "declared_license": "BSD-2-Clause", + "license": "BSD-2-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==" + }, + { + "name": "es-define-property", + "version": "1.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + }, + { + "name": "es-errors", + "version": "1.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + { + "name": "es-module-lexer", + "version": "1.7.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==" + }, + { + "name": "es-object-atoms", + "version": "1.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==" + }, + { + "name": "es-set-tostringtag", + "version": "2.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==" + }, + { + "name": "esbuild", + "version": "0.28.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==" + }, + { + "name": "escalade", + "version": "3.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" + }, + { + "name": "escape-html", + "version": "1.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + { + "name": "estree-walker", + "version": "3.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==" + }, + { + "name": "etag", + "version": "1.8.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + { + "name": "expect-type", + "version": "1.4.0", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==" + }, + { + "name": "express", + "version": "4.22.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==" + }, + { + "name": "express/node_modules/debug", + "version": "2.6.9", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + }, + { + "name": "express/node_modules/ms", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + { + "name": "express/node_modules/path-to-regexp", + "version": "0.1.13", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==" + }, + { + "name": "exsolve", + "version": "1.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.1.0.tgz", + "integrity": "sha512-D+42+T12DdIlJM3uepa55qGiL3sYdLBOxIl2ifQCzCHz4c7eiolaHsi3BIqEr7JxBzxv2pYZQX9kw16ziMcEmw==" + }, + { + "name": "fast-check", + "version": "3.23.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.23.2.tgz", + "integrity": "sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==" + }, + { + "name": "fast-glob", + "version": "3.3.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==" + }, + { + "name": "fast-glob/node_modules/glob-parent", + "version": "5.1.2", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + }, + { + "name": "fast-safe-stringify", + "version": "2.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + { + "name": "fastq", + "version": "1.20.1", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==" + }, + { + "name": "fdir", + "version": "6.5.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==" + }, + { + "name": "fflate", + "version": "0.8.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==" + }, + { + "name": "file-type", + "version": "20.4.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/file-type/-/file-type-20.4.1.tgz", + "integrity": "sha512-hw9gNZXUfZ02Jo0uafWLaFVPter5/k2rfcrjFJJHX/77xtSDOfJuEFb6oKlFV86FLP1SuyHMW1PSk0U9M5tKkQ==" + }, + { + "name": "fill-range", + "version": "7.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==" + }, + { + "name": "finalhandler", + "version": "1.3.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==" + }, + { + "name": "finalhandler/node_modules/debug", + "version": "2.6.9", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + }, + { + "name": "finalhandler/node_modules/ms", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + { + "name": "follow-redirects", + "version": "1.16.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==" + }, + { + "name": "form-data", + "version": "4.0.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==" + }, + { + "name": "formidable", + "version": "3.5.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz", + "integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==" + }, + { + "name": "forwarded", + "version": "0.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + { + "name": "fraction.js", + "version": "5.3.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==" + }, + { + "name": "fresh", + "version": "0.5.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + { + "name": "fsevents", + "version": "2.3.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==" + }, + { + "name": "function-bind", + "version": "1.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + { + "name": "gensync", + "version": "1.0.0-beta.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + { + "name": "get-intrinsic", + "version": "1.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==" + }, + { + "name": "get-proto", + "version": "1.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==" + }, + { + "name": "giget", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz", + "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==" + }, + { + "name": "giget/node_modules/consola", + "version": "3.4.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==" + }, + { + "name": "glob-parent", + "version": "6.0.2", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" + }, + { + "name": "gopd", + "version": "1.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + }, + { + "name": "has-flag", + "version": "4.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + { + "name": "has-symbols", + "version": "1.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" + }, + { + "name": "has-tostringtag", + "version": "1.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==" + }, + { + "name": "hasown", + "version": "2.0.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==" + }, + { + "name": "html-encoding-sniffer", + "version": "4.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==" + }, + { + "name": "http-errors", + "version": "2.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==" + }, + { + "name": "http-proxy-agent", + "version": "7.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==" + }, + { + "name": "http-proxy-agent/node_modules/agent-base", + "version": "7.1.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==" + }, + { + "name": "https-proxy-agent", + "version": "5.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==" + }, + { + "name": "iconv-lite", + "version": "0.4.24", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" + }, + { + "name": "ieee754", + "version": "1.2.1", + "declared_license": "BSD-3-Clause", + "license": "BSD-3-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + { + "name": "indent-string", + "version": "4.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + { + "name": "inherits", + "version": "2.0.4", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + { + "name": "ipaddr.js", + "version": "1.9.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + { + "name": "is-binary-path", + "version": "2.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" + }, + { + "name": "is-core-module", + "version": "2.16.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==" + }, + { + "name": "is-extglob", + "version": "2.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + { + "name": "is-glob", + "version": "4.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" + }, + { + "name": "is-number", + "version": "7.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + { + "name": "is-potential-custom-element-name", + "version": "1.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + { + "name": "isexe", + "version": "2.0.0", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + { + "name": "iterare", + "version": "1.2.1", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==" + }, + { + "name": "jiti", + "version": "1.21.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==" + }, + { + "name": "js-tokens", + "version": "4.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + { + "name": "jsdom", + "version": "26.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", + "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==" + }, + { + "name": "jsdom/node_modules/agent-base", + "version": "7.1.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==" + }, + { + "name": "jsdom/node_modules/https-proxy-agent", + "version": "7.0.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==" + }, + { + "name": "jsdom/node_modules/tr46", + "version": "5.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==" + }, + { + "name": "jsdom/node_modules/webidl-conversions", + "version": "7.0.0", + "declared_license": "BSD-2-Clause", + "license": "BSD-2-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" + }, + { + "name": "jsdom/node_modules/whatwg-url", + "version": "14.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==" + }, + { + "name": "jsesc", + "version": "3.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==" + }, + { + "name": "json5", + "version": "2.2.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + { + "name": "jsonwebtoken", + "version": "9.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==" + }, + { + "name": "jsonwebtoken/node_modules/semver", + "version": "7.8.5", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==" + }, + { + "name": "jwa", + "version": "1.4.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", + "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==" + }, + { + "name": "jws", + "version": "3.2.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.3.tgz", + "integrity": "sha512-byiJ0FLRdLdSVSReO/U4E7RoEyOCKnEnEPMjq3HxWtvzLsV08/i5RQKsFVNkCldrCaPr2vDNAOMsfs8T/Hze7g==" + }, + { + "name": "libphonenumber-js", + "version": "1.13.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.13.7.tgz", + "integrity": "sha512-rvr3HIMdOgzhz1RFGjftji+wjoAFlzhqCNqJOU/MKTZQ8d9NZxAR/tI+0weDicyoucqVR0U1GCniqHJ0f8aM2A==" + }, + { + "name": "lilconfig", + "version": "3.1.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==" + }, + { + "name": "lines-and-columns", + "version": "1.2.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + { + "name": "lodash.includes", + "version": "4.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + { + "name": "lodash.isboolean", + "version": "3.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + { + "name": "lodash.isinteger", + "version": "4.0.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + { + "name": "lodash.isnumber", + "version": "3.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + { + "name": "lodash.isplainobject", + "version": "4.0.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + { + "name": "lodash.isstring", + "version": "4.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + { + "name": "lodash.once", + "version": "4.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + { + "name": "loose-envify", + "version": "1.4.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" + }, + { + "name": "loupe", + "version": "3.2.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==" + }, + { + "name": "lru-cache", + "version": "5.1.1", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" + }, + { + "name": "lz-string", + "version": "1.5.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==" + }, + { + "name": "magic-string", + "version": "0.30.21", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==" + }, + { + "name": "math-intrinsics", + "version": "1.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + }, + { + "name": "media-typer", + "version": "0.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + { + "name": "merge-descriptors", + "version": "1.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==" + }, + { + "name": "merge2", + "version": "1.4.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + { + "name": "methods", + "version": "1.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + { + "name": "micromatch", + "version": "4.0.8", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==" + }, + { + "name": "mime", + "version": "1.6.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + { + "name": "mime-db", + "version": "1.52.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + { + "name": "mime-types", + "version": "2.1.35", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" + }, + { + "name": "min-indent", + "version": "1.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + }, + { + "name": "minimist", + "version": "1.2.8", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + { + "name": "mkdirp", + "version": "0.5.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==" + }, + { + "name": "ms", + "version": "2.1.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + { + "name": "multer", + "version": "2.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/multer/-/multer-2.0.2.tgz", + "integrity": "sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==" + }, + { + "name": "mz", + "version": "2.7.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==" + }, + { + "name": "nanoid", + "version": "3.3.15", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", + "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==" + }, + { + "name": "negotiator", + "version": "0.6.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + { + "name": "node-fetch", + "version": "2.7.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==" + }, + { + "name": "node-fetch-native", + "version": "1.6.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==" + }, + { + "name": "node-releases", + "version": "2.0.50", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz", + "integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==" + }, + { + "name": "normalize-path", + "version": "3.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + { + "name": "nwsapi", + "version": "2.2.24", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.24.tgz", + "integrity": "sha512-7YRhZ3jS45LwmSCT4b2sVFHt/WuovaktDU07QrtOBY2PXskss5a9jfmR9jptyumwXST+rFjrmppMY1KT/yn35A==" + }, + { + "name": "nypm", + "version": "0.6.8", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.8.tgz", + "integrity": "sha512-Q9K4Diu6l5u6xJQogeFSs/zKtyMSgFKFtRQV+tHP4kL7KPm2grpBU0dFIwFaXwNxN0MtfKWc43VpCugAa+LPsw==" + }, + { + "name": "nypm/node_modules/citty", + "version": "0.2.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz", + "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==" + }, + { + "name": "object-assign", + "version": "4.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + { + "name": "object-hash", + "version": "3.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + { + "name": "object-inspect", + "version": "1.13.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==" + }, + { + "name": "ohash", + "version": "2.0.11", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==" + }, + { + "name": "on-finished", + "version": "2.4.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" + }, + { + "name": "once", + "version": "1.4.0", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" + }, + { + "name": "parse5", + "version": "7.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==" + }, + { + "name": "parseurl", + "version": "1.3.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + { + "name": "path-key", + "version": "3.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + { + "name": "path-parse", + "version": "1.0.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + { + "name": "path-to-regexp", + "version": "3.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==" + }, + { + "name": "pathe", + "version": "2.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==" + }, + { + "name": "pathval", + "version": "2.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==" + }, + { + "name": "perfect-debounce", + "version": "1.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==" + }, + { + "name": "picocolors", + "version": "1.1.1", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + { + "name": "picomatch", + "version": "2.3.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==" + }, + { + "name": "pify", + "version": "2.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + { + "name": "pirates", + "version": "4.0.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==" + }, + { + "name": "pkg-types", + "version": "2.3.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.1.tgz", + "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==" + }, + { + "name": "postcss", + "version": "8.5.15", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==" + }, + { + "name": "postcss-import", + "version": "15.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==" + }, + { + "name": "postcss-js", + "version": "4.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==" + }, + { + "name": "postcss-load-config", + "version": "6.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==" + }, + { + "name": "postcss-nested", + "version": "6.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==" + }, + { + "name": "postcss-selector-parser", + "version": "6.1.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==" + }, + { + "name": "postcss-value-parser", + "version": "4.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + { + "name": "pretty-format", + "version": "27.5.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==" + }, + { + "name": "pretty-format/node_modules/ansi-styles", + "version": "5.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + { + "name": "prisma", + "version": "6.19.3", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.19.3.tgz", + "integrity": "sha512-++ZJ0ijLrDJF6hNB4t4uxg2br3fC4H9Yc9tcbjr2fcNFP3rh/SBNrAgjhsqBU4Ght8JPrVofG/ZkXfnSfnYsFg==" + }, + { + "name": "proxy-addr", + "version": "2.0.7", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==" + }, + { + "name": "proxy-from-env", + "version": "2.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==" + }, + { + "name": "punycode", + "version": "2.3.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + }, + { + "name": "pure-rand", + "version": "6.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==" + }, + { + "name": "qs", + "version": "6.14.2", + "declared_license": "BSD-3-Clause", + "license": "BSD-3-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==" + }, + { + "name": "queue-microtask", + "version": "1.2.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + { + "name": "range-parser", + "version": "1.2.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + { + "name": "raw-body", + "version": "2.5.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==" + }, + { + "name": "rc9", + "version": "2.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==" + }, + { + "name": "react", + "version": "18.3.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==" + }, + { + "name": "react-dom", + "version": "18.3.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==" + }, + { + "name": "react-hook-form", + "version": "7.80.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.80.0.tgz", + "integrity": "sha512-4P+fk6oXsxY+6xSj7Euhc2sumQD8zQqCuVHoJwoyp9EchP+IUW9OESB7uHFJOKsIBQ4MQqYE84INJFqUCYNoOg==" + }, + { + "name": "react-is", + "version": "17.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + { + "name": "react-refresh", + "version": "0.17.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==" + }, + { + "name": "react-router", + "version": "6.30.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.4.tgz", + "integrity": "sha512-SVUsDe+DybHM/WmYKIVYhZh1o5Dcuf16yM6WjG02Q9XVFMZIJyHYhwrr6bFBXZkVP6z69kNkMyBCujt8FaFLJA==" + }, + { + "name": "react-router-dom", + "version": "6.30.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.4.tgz", + "integrity": "sha512-q4HvNl+mmDdkS0g+MqiBZNteQJCuimWoOyHMy4T/RQLAn9Z29+E91QXRaxOujeMl2HTzRSS0KFPd7lxX3PjV0Q==" + }, + { + "name": "read-cache", + "version": "1.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==" + }, + { + "name": "readable-stream", + "version": "3.6.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==" + }, + { + "name": "readdirp", + "version": "3.6.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" + }, + { + "name": "redent", + "version": "3.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==" + }, + { + "name": "reflect-metadata", + "version": "0.2.2", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + { + "name": "resolve", + "version": "1.22.12", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==" + }, + { + "name": "reusify", + "version": "1.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==" + }, + { + "name": "rollup", + "version": "4.62.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.2.tgz", + "integrity": "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==" + }, + { + "name": "rrweb-cssom", + "version": "0.8.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==" + }, + { + "name": "run-parallel", + "version": "1.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" + }, + { + "name": "rxjs", + "version": "7.8.2", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==" + }, + { + "name": "safe-buffer", + "version": "5.2.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + { + "name": "safer-buffer", + "version": "2.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + { + "name": "saxes", + "version": "6.0.0", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==" + }, + { + "name": "scheduler", + "version": "0.23.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==" + }, + { + "name": "semver", + "version": "6.3.1", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + }, + { + "name": "send", + "version": "0.19.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==" + }, + { + "name": "send/node_modules/debug", + "version": "2.6.9", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + }, + { + "name": "send/node_modules/debug/node_modules/ms", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + { + "name": "serve-static", + "version": "1.16.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==" + }, + { + "name": "setprototypeof", + "version": "1.2.0", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + { + "name": "shebang-command", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" + }, + { + "name": "shebang-regex", + "version": "3.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + { + "name": "side-channel", + "version": "1.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==" + }, + { + "name": "side-channel-list", + "version": "1.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==" + }, + { + "name": "side-channel-map", + "version": "1.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==" + }, + { + "name": "side-channel-weakmap", + "version": "1.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==" + }, + { + "name": "siginfo", + "version": "2.0.0", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + { + "name": "source-map-js", + "version": "1.2.1", + "declared_license": "BSD-3-Clause", + "license": "BSD-3-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" + }, + { + "name": "stackback", + "version": "0.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + { + "name": "statuses", + "version": "2.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==" + }, + { + "name": "std-env", + "version": "3.10.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==" + }, + { + "name": "streamsearch", + "version": "1.1.0", + "declared_license": "UNKNOWN", + "license": "MIT", + "review_evidence": "https://github.com/mscdex/streamsearch/blob/master/LICENSE", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + { + "name": "string_decoder", + "version": "1.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" + }, + { + "name": "strip-indent", + "version": "3.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==" + }, + { + "name": "strip-literal", + "version": "3.1.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==" + }, + { + "name": "strip-literal/node_modules/js-tokens", + "version": "9.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==" + }, + { + "name": "strtok3", + "version": "10.3.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.5.tgz", + "integrity": "sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==" + }, + { + "name": "sucrase", + "version": "3.35.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==" + }, + { + "name": "superagent", + "version": "10.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/superagent/-/superagent-10.3.0.tgz", + "integrity": "sha512-B+4Ik7ROgVKrQsXTV0Jwp2u+PXYLSlqtDAhYnkkD+zn3yg8s/zjA2MeGayPoY/KICrbitwneDHrjSotxKL+0XQ==" + }, + { + "name": "superagent/node_modules/mime", + "version": "2.6.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + }, + { + "name": "supertest", + "version": "7.2.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.2.2.tgz", + "integrity": "sha512-oK8WG9diS3DlhdUkcFn4tkNIiIbBx9lI2ClF8K+b2/m8Eyv47LSawxUzZQSNKUrVb2KsqeTDCcjAAVPYaSLVTA==" + }, + { + "name": "supertest/node_modules/cookie-signature", + "version": "1.2.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==" + }, + { + "name": "supports-color", + "version": "7.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + }, + { + "name": "supports-preserve-symlinks-flag", + "version": "1.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + { + "name": "symbol-tree", + "version": "3.2.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + { + "name": "tailwindcss", + "version": "3.4.19", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==" + }, + { + "name": "thenify", + "version": "3.3.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==" + }, + { + "name": "thenify-all", + "version": "1.6.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==" + }, + { + "name": "tinybench", + "version": "2.9.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==" + }, + { + "name": "tinyexec", + "version": "1.2.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", + "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==" + }, + { + "name": "tinyglobby", + "version": "0.2.17", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==" + }, + { + "name": "tinyglobby/node_modules/picomatch", + "version": "4.0.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==" + }, + { + "name": "tinypool", + "version": "1.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==" + }, + { + "name": "tinyrainbow", + "version": "2.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==" + }, + { + "name": "tinyspy", + "version": "4.0.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==" + }, + { + "name": "tldts", + "version": "6.1.86", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==" + }, + { + "name": "tldts-core", + "version": "6.1.86", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==" + }, + { + "name": "to-regex-range", + "version": "5.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" + }, + { + "name": "toidentifier", + "version": "1.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + { + "name": "token-types", + "version": "6.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.1.2.tgz", + "integrity": "sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==" + }, + { + "name": "tough-cookie", + "version": "5.1.2", + "declared_license": "BSD-3-Clause", + "license": "BSD-3-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==" + }, + { + "name": "tr46", + "version": "0.0.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + { + "name": "ts-interface-checker", + "version": "0.1.13", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + { + "name": "tslib", + "version": "2.8.1", + "declared_license": "0BSD", + "license": "0BSD", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + { + "name": "tsx", + "version": "4.22.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.22.4.tgz", + "integrity": "sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==" + }, + { + "name": "type-is", + "version": "1.6.18", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==" + }, + { + "name": "typedarray", + "version": "0.0.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + { + "name": "typescript", + "version": "5.9.3", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==" + }, + { + "name": "uid", + "version": "2.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", + "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==" + }, + { + "name": "uint8array-extras", + "version": "1.5.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz", + "integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==" + }, + { + "name": "undici-types", + "version": "7.18.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==" + }, + { + "name": "unpipe", + "version": "1.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + { + "name": "update-browserslist-db", + "version": "1.2.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==" + }, + { + "name": "util-deprecate", + "version": "1.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + { + "name": "utils-merge", + "version": "1.0.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + { + "name": "validator", + "version": "13.15.35", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.35.tgz", + "integrity": "sha512-TQ5pAGhd5whStmqWvYF4OjQROlmv9SMFVt37qoCBdqRffuuklWYQlCNnEs2ZaIBD1kZRNnikiZOS1eqgkar0iw==" + }, + { + "name": "vary", + "version": "1.1.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + { + "name": "vite", + "version": "5.4.21", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==" + }, + { + "name": "vite-node", + "version": "3.2.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==" + }, + { + "name": "vite/node_modules/@esbuild/aix-ppc64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==" + }, + { + "name": "vite/node_modules/@esbuild/android-arm", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==" + }, + { + "name": "vite/node_modules/@esbuild/android-arm64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==" + }, + { + "name": "vite/node_modules/@esbuild/android-x64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==" + }, + { + "name": "vite/node_modules/@esbuild/darwin-arm64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==" + }, + { + "name": "vite/node_modules/@esbuild/darwin-x64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==" + }, + { + "name": "vite/node_modules/@esbuild/freebsd-arm64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==" + }, + { + "name": "vite/node_modules/@esbuild/freebsd-x64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==" + }, + { + "name": "vite/node_modules/@esbuild/linux-arm", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==" + }, + { + "name": "vite/node_modules/@esbuild/linux-arm64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==" + }, + { + "name": "vite/node_modules/@esbuild/linux-ia32", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==" + }, + { + "name": "vite/node_modules/@esbuild/linux-loong64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==" + }, + { + "name": "vite/node_modules/@esbuild/linux-mips64el", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==" + }, + { + "name": "vite/node_modules/@esbuild/linux-ppc64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==" + }, + { + "name": "vite/node_modules/@esbuild/linux-riscv64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==" + }, + { + "name": "vite/node_modules/@esbuild/linux-s390x", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==" + }, + { + "name": "vite/node_modules/@esbuild/linux-x64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==" + }, + { + "name": "vite/node_modules/@esbuild/netbsd-x64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==" + }, + { + "name": "vite/node_modules/@esbuild/openbsd-x64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==" + }, + { + "name": "vite/node_modules/@esbuild/sunos-x64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==" + }, + { + "name": "vite/node_modules/@esbuild/win32-arm64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==" + }, + { + "name": "vite/node_modules/@esbuild/win32-ia32", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==" + }, + { + "name": "vite/node_modules/@esbuild/win32-x64", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==" + }, + { + "name": "vite/node_modules/esbuild", + "version": "0.21.5", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==" + }, + { + "name": "vitest", + "version": "3.2.6", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.6.tgz", + "integrity": "sha512-xejya+bT/j/+R/AGa1XOfRxLmNUlLtlwjRsFUILF+xHfzElmGcmFydy2gqqIrd62ptIEfwVMofd19uNWD9L7Nw==" + }, + { + "name": "vitest/node_modules/picomatch", + "version": "4.0.4", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==" + }, + { + "name": "vitest/node_modules/tinyexec", + "version": "0.3.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==" + }, + { + "name": "w3c-xmlserializer", + "version": "5.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==" + }, + { + "name": "webidl-conversions", + "version": "3.0.1", + "declared_license": "BSD-2-Clause", + "license": "BSD-2-Clause", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + { + "name": "whatwg-encoding", + "version": "3.1.1", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==" + }, + { + "name": "whatwg-encoding/node_modules/iconv-lite", + "version": "0.6.3", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==" + }, + { + "name": "whatwg-mimetype", + "version": "4.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==" + }, + { + "name": "whatwg-url", + "version": "5.0.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==" + }, + { + "name": "which", + "version": "2.0.2", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + }, + { + "name": "why-is-node-running", + "version": "2.3.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==" + }, + { + "name": "wrappy", + "version": "1.0.2", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + { + "name": "ws", + "version": "8.21.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==" + }, + { + "name": "xml-name-validator", + "version": "5.0.0", + "declared_license": "Apache-2.0", + "license": "Apache-2.0", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==" + }, + { + "name": "xmlchars", + "version": "2.2.0", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + { + "name": "xtend", + "version": "4.0.2", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + { + "name": "yallist", + "version": "3.1.1", + "declared_license": "ISC", + "license": "ISC", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + { + "name": "zod", + "version": "3.25.76", + "declared_license": "MIT", + "license": "MIT", + "review_evidence": null, + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==" + } + ] +} diff --git a/docs/jp-poc/01_製品概要.md b/docs/jp-poc/01_製品概要.md new file mode 100644 index 0000000..f1d0dba --- /dev/null +++ b/docs/jp-poc/01_製品概要.md @@ -0,0 +1,32 @@ +# 製品概要 + +## 提供価値 + +CASAN は、既存の AI コーディングツールを置き換える製品ではありません。 +開発者、AI モデル、リポジトリ、CI の間に配置される独立した統制レイヤーです。 +AI が生成・提案した変更を、ポリシー、テスト、セキュリティ検査、承認、監査証跡で確認し、根拠を Evidence Pack として残します。 + +## PoC の対象ユースケース + +「Claude Code、Codex、Copilot 等を利用する開発チームで、AI が関与した変更を +merge 前に検査し、誰が何を行ったかを証明する。」 + +PoC では、1〜2 プロジェクト、1 つの Git リポジトリ連携、1 つの Domain Pack を対象とします。 + +## 提供範囲(CASAN Core + Control Center Lite) + +- H1〜H7 のハーネス実行、アクションゲート、セキュリティ検査 +- Gitea CI からの検査起動と PASS/BLOCK 判定 +- Evidence Pack の作成、ハッシュ manifest の検証、Control Panel での閲覧 +- 監査ログ、ツール呼出記録、コスト/トークンの可視化 +- 承認が必要な変更を apply 前に停止するワークフロー + +## PoC では提供しないもの + +- 高可用性、RPO/RTO を伴う本番運用 +- 本番用 SSO/OIDC、顧客 CA、マネージド運用 +- KMS 必須運用、S3 Object Lock、外部ペネトレーションテスト +- GitHub/GitLab/Jenkins の本番コネクタ保証 +- 自律エージェントによる無承認の変更適用 + +これらは Enterprise Pilot / Production の後続条件です。 diff --git a/docs/jp-poc/02_システム構成・データフロー.md b/docs/jp-poc/02_システム構成・データフロー.md new file mode 100644 index 0000000..fb9e292 --- /dev/null +++ b/docs/jp-poc/02_システム構成・データフロー.md @@ -0,0 +1,30 @@ +# システム構成・データフロー + +## 推奨配置 + +PoC では顧客管理のネットワーク内、または顧客クラウドアカウント内への self-hosted 配置を推奨します。 + +```text +Developer / AI coding tool + │ patch / PR + ▼ +Gitea ──► CASAN Runner ──► test / security / policy gates + │ + ├── Evidence Pack(manifest + reports) + └── Control Panel(run、承認、証跡表示) +``` + +## データフロー + +1. 開発者が既存の AI ツールで変更を作成し、PR を作成します。 +2. Gitea workflow が CASAN を呼び出します。 +3. CASAN は許可されたワークスペースでポリシー、テスト、セキュリティを実行します。 +4. 判定、実行記録、ハッシュを Evidence Pack に保存します。 +5. Control Panel は Evidence Pack の manifest を再検証して表示します。 +6. PASS でない変更は、顧客定義のマージ/承認ルールに従って停止します。 + +## データの扱い + +ソースコード、ログ、Evidence Pack は顧客環境内に保存する構成を基本とします。 +クラウドモデルへ送信するデータは、顧客が選択したモデル設定とポリシーに依存します。 +PoC 開始時に、送信対象、保存場所、保持期間、マスキング方針を Data Flow Sheet に記録します。 diff --git a/docs/jp-poc/03_導入・運用・制限事項.md b/docs/jp-poc/03_導入・運用・制限事項.md new file mode 100644 index 0000000..46d6425 --- /dev/null +++ b/docs/jp-poc/03_導入・運用・制限事項.md @@ -0,0 +1,28 @@ +# 導入・運用・制限事項 + +## 導入手順(PoC) + +1. 顧客と対象リポジトリ、担当者、承認ルールを確定します。 +2. CASAN bundle を顧客環境へ配置し、Docker Compose または提供手順で起動します。 +3. Gitea workflow に CASAN gate を接続します。 +4. Domain Pack と閾値を対象プロジェクトに合わせます。 +5. テスト PR を用いて PASS/BLOCK/Evidence Pack を確認します。 +6. 運用開始後、週次で KPI と誤検知をレビューします。 + +## 日常運用 + +- 開発者: PR の CASAN verdict と必要な修正を確認します。 +- QA/セキュリティ: ブロック理由、Evidence Pack、例外承認を確認します。 +- 管理者: ポリシー変更、ロール、バックアップ、障害連絡を管理します。 + +## 既知の制限 + +- Evidence Pack の署名は、PoC 環境では鍵未設定の場合に unsigned となります。 +- テレメトリ完全性未検証またはコストスパイクがある場合、pack は certified になりません。 +- 実際の隔離強度は配置する runner/container 設定に依存します。Production 用 hardened sandbox は PoC の範囲外です。 +- Enterprise SSO、HA、DR、外部監査は PoC 完了条件には含みません。 + +## 障害時 + +モデル、runner、検査、または証跡生成が失敗した場合、CASAN は PASS を生成せず、失敗理由を記録します。 +復旧判断とマージ例外の承認は顧客の責任者が行います。 diff --git a/docs/jp-poc/04_PoC計画.md b/docs/jp-poc/04_PoC計画.md new file mode 100644 index 0000000..cc81316 --- /dev/null +++ b/docs/jp-poc/04_PoC計画.md @@ -0,0 +1,29 @@ +# PoC計画(8〜12週間) + +## 成功条件 + +- 対象リポジトリで CASAN gate が PR ごとに実行されること +- PASS/BLOCK の理由と Evidence Pack を担当者が確認できること +- AI が関与した変更のテスト/セキュリティ/承認記録を追跡できること +- 顧客と合意した KPI を最終報告書で提示できること + +## 進め方 + +| 期間 | 内容 | 成果物 | +|---|---|---| +| 1〜2週 | キックオフ、対象選定、リスク確認 | PoC 設計、Data Flow Sheet | +| 3〜4週 | 環境配置、Gitea 連携、Domain Pack | 導入記録、テスト PR | +| 5〜8週 | 実運用、閾値調整、Evidence 確認 | 週次 KPI、課題一覧 | +| 9〜12週 | 最終評価、次フェーズ判断 | PoC 結果報告、Pilot 提案 | + +## KPI(開始時に基準値を合意) + +- CASAN が実行された PR 比率 +- ブロックされたセキュリティ/ポリシー違反数 +- Evidence Pack が完全性検証に成功した比率 +- 誤検知レビュー件数と解決時間 +- AI 関連の変更に対する承認・追跡可能比率 + +## 顧客に必要な協力 + +対象リポジトリ、テスト環境、Gitea 管理者、セキュリティ/QA 窓口、承認ルール、及びクラウドモデル利用時のデータ送信判断を提供してください。 diff --git a/docs/jp-poc/05_セキュリティ・責任分界.md b/docs/jp-poc/05_セキュリティ・責任分界.md new file mode 100644 index 0000000..6da9678 --- /dev/null +++ b/docs/jp-poc/05_セキュリティ・責任分界.md @@ -0,0 +1,26 @@ +# セキュリティ・責任分界 + +## CASAN が提供する統制 + +- AI 出力/ツール実行に対するポリシーとセキュリティ検査 +- 実行・判定・承認の監査記録 +- Evidence Pack の SHA-256 manifest 検証 +- 失敗時に PASS を出さない fail-closed 動作 + +## 顧客の責任 + +- ネットワーク、ホスト、ID、リポジトリ権限、バックアップの管理 +- モデル provider と送信データの選定 +- 個人情報、秘密情報、保持期間、例外承認の決定 +- PoC 環境のアクセス権とログ閲覧権の管理 + +## 提供者の責任 + +- 合意した CASAN bundle、導入支援、障害一次切り分けを提供すること +- 既知の制限、重大な脆弱性、PoC スコープ外の事項を明示すること +- 顧客データを合意外の目的に使用しないこと + +## 事前確認事項 + +APPI を含む適用法令、個人情報の有無、海外移転、subprocessor、データ削除/export、インシデント通知窓口は契約・Data Flow Sheet で合意します。 +この資料は法的助言ではありません。 diff --git a/docs/jp-poc/06_SLAドラフト.md b/docs/jp-poc/06_SLAドラフト.md new file mode 100644 index 0000000..a5d54ac --- /dev/null +++ b/docs/jp-poc/06_SLAドラフト.md @@ -0,0 +1,19 @@ +# SLA / サポート条件ドラフト(PoC) + +## 適用範囲 + +本ドラフトは PoC 期間の導入支援と障害対応の目安です。Production SLA ではありません。 + +| 区分 | 例 | 初回応答目標 | +|---|---|---| +| P1 | CASAN が全 PR で実行不能、証跡が作成不能 | 営業時間内 4 時間 | +| P2 | 一部 gate/表示機能の不具合、回避策あり | 営業時間内 1 営業日 | +| P3 | 質問、設定調整、改善要望 | 3 営業日以内 | + +## 連絡とエスカレーション + +顧客の PoC 責任者と提供者の技術窓口をキックオフ時に指定します。P1 の場合、run ID、発生時刻、影響範囲、表示された理由を添えて連絡します。 + +## 除外 + +顧客ネットワーク、顧客提供モデル、Gitea 自体、外部クラウド障害、未承認の構成変更は本ドラフトの保証対象外です。 diff --git a/docs/jp-poc/README.md b/docs/jp-poc/README.md new file mode 100644 index 0000000..8570086 --- /dev/null +++ b/docs/jp-poc/README.md @@ -0,0 +1,16 @@ +# CASAN Japanese PoC Pack(最小版) + +このパックは、有償 PoC の開始前に顧客へ提示する最小限の説明資料です。 +実装済みの機能と未提供の機能を分け、未検証のエンタープライズ機能を約束しません。 + +| 資料 | 用途 | +|---|---| +| [01_製品概要](01_製品概要.md) | 課題、提供価値、対象範囲 | +| [02_システム構成・データフロー](02_システム構成・データフロー.md) | 配置、データ境界、証跡フロー | +| [03_導入・運用・制限事項](03_導入・運用・制限事項.md) | 導入手順、運用、既知の制限 | +| [04_PoC計画](04_PoC計画.md) | 8〜12 週間の評価計画と KPI | +| [05_セキュリティ・責任分界](05_セキュリティ・責任分界.md) | セキュリティ仕様と顧客・提供者の責任 | +| [06_SLAドラフト](06_SLAドラフト.md) | PoC 中の支援条件(ドラフト) | + +製品名(提案): **CASAN AI-SDLC Governance Platform** +(生成AIによるソフトウェア開発を、セキュリティ・品質・コスト・監査証跡の観点から統制するプラットフォーム) diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/artifact-manifest.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/artifact-manifest.json new file mode 100644 index 0000000..149c68a --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/artifact-manifest.json @@ -0,0 +1,17 @@ +{ + "files": { + "benign-fp-report.json": "52d3911e7b539f07391e187e3212f198f25e55d08396e2ab0e75d9db3178848b", + "decision-log.md": "6975cabd29baff1fbc1c9ceca8a44323832ecc28eafe6bdd30fbe94981563d70", + "h1-context-report.json": "64a1bbcdf38672eb1efcb8742e258850709297bd848a443fcf11b94b0f165d9d", + "h2-tool-audit.json": "095b369ae21d47ecfcbc38387f3255118bc32a4c28327f19b27e0bfcd7c945ae", + "h3-eval-scorecard.json": "b0e779fb219c4d9d38e55eefb15cd4370b4f0760e0a3bf70b5d22923407c8e47", + "h4-security-report.json": "2828cf13b2f4edba852c9da77e1397b3b44933a3bd6d04c81b4ac96e31026e9d", + "h5-audit-chain-proof.json": "f9918cc45311097be05ab852c36ed99170c65962f8c0f0e71b91d7468f9f2ba4", + "h6-cost-telemetry.json": "e01cc551016f3d4b7d525e11cf9556481cb1376408daca6e2314aba9a3ddd088", + "h7-orchestration-report.json": "9dd45a16004bd705c7307fae6c74975049a156a3dc1e14fc439ad816d5400066", + "redteam-result.json": "341f7985a8cceb2cb3cc7705e644a4407ab27f7203c148abb98788dcca5e5c8e", + "run-summary.json": "16cf96c55fa7b899e7b021b52a88cf3fa160366ab03e2361e431b0639196af29", + "traceability-matrix.json": "011ac8ac6ab008f1048e3bce1e3f7b5b28bc969de7a1574fed86af16e259de27" + }, + "manifest_head": "c55972046b1fe12b6bc538fde0ab31ad62e0c9e4b20003e5f1370f104d849f47" +} \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/benign-fp-report.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/benign-fp-report.json new file mode 100644 index 0000000..0923830 --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/benign-fp-report.json @@ -0,0 +1,41 @@ +{ + "generated": "deterministic (semantic OFF)", + "policy": { + "fp_max_pct": 3.0, + "adv_block_min_pct": 95.0, + "critical_block_pct": 100.0 + }, + "benign": { + "by_lang": { + "en": { + "total": 32, + "false_positives": 0 + }, + "vi": { + "total": 32, + "false_positives": 0 + }, + "ja": { + "total": 31, + "false_positives": 0 + } + }, + "total": 95, + "false_positives": 0, + "false_positive_rate_pct": 0.0, + "examples": [] + }, + "adversarial": { + "total": 12, + "blocked": 12, + "block_rate_pct": 100.0, + "missed": [] + }, + "critical": { + "total": 4, + "blocked": 4, + "block_rate_pct": 100.0 + }, + "within_budget": true, + "breaches": [] +} \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/decision-log.md b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/decision-log.md new file mode 100644 index 0000000..82ed43a --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/decision-log.md @@ -0,0 +1,17 @@ +# CASAN Evidence Pack — Decision Log + +Run: `9534d91f-4518-41c5-a7c4-56e22a56c2a4` +Certified: **False** +Reasons: telemetry_integrity_not_verified, unresolved_cost_spike + +## Gate outcomes + +- H4 security: 186 records, 38 blocked +- H5 audit chain: AUDIT_CHAIN_VALID anchor=signed last_hash=e715767a0d5ec67a8955c0e8e87262b5ca8c0f5826f1dee6583014ede8032bbe (ok=True) +- H5 telemetry integrity: none (ok=False) +- H6 cost: spike_detected, 56519 provider tokens +- H2 tool audit: 24 records, chain_ok=True +- H3 traceability: ok=True +- Red-team: 16 vectors (block_rate=100.0%) + +_Summaries only — no raw secret/PII content is copied into the pack._ diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h1-context-report.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h1-context-report.json new file mode 100644 index 0000000..4f4cd0b --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h1-context-report.json @@ -0,0 +1,6 @@ +{ + "harness": "H1-context", + "run_id": "9534d91f-4518-41c5-a7c4-56e22a56c2a4", + "context_yaml": true, + "note": "path/artifact validation performed by context-validate.sh at run time" +} \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h2-tool-audit.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h2-tool-audit.json new file mode 100644 index 0000000..1357f0e --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h2-tool-audit.json @@ -0,0 +1,9 @@ +{ + "harness": "H2-tool", + "run_id": "9534d91f-4518-41c5-a7c4-56e22a56c2a4", + "records": 24, + "denied": 6, + "approved": 5, + "chain_status": "TOOL_AUDIT_VALID anchor=signed last_hash=dda5685f038e171c7fdd8bb36b00793c3de7b14be7295fdfe34fff5e6a03c443", + "chain_ok": true +} \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h3-eval-scorecard.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h3-eval-scorecard.json new file mode 100644 index 0000000..2f550dc --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h3-eval-scorecard.json @@ -0,0 +1,6 @@ +{ + "harness": "H3-eval", + "run_id": "9534d91f-4518-41c5-a7c4-56e22a56c2a4", + "judge_gate_tests": true, + "note": "judge-gate fail-before/fix cycle proven by phase3-judge-gate-tests.sh" +} \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h4-security-report.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h4-security-report.json new file mode 100644 index 0000000..a913696 --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h4-security-report.json @@ -0,0 +1,10 @@ +{ + "harness": "H4-security", + "run_id": "9534d91f-4518-41c5-a7c4-56e22a56c2a4", + "records": 186, + "by_status": { + "blocked": 38, + "pass": 148 + }, + "blocked": 38 +} \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h5-audit-chain-proof.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h5-audit-chain-proof.json new file mode 100644 index 0000000..a3b3d91 --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h5-audit-chain-proof.json @@ -0,0 +1,8 @@ +{ + "harness": "H5-governance", + "run_id": "9534d91f-4518-41c5-a7c4-56e22a56c2a4", + "audit_chain": "AUDIT_CHAIN_VALID anchor=signed last_hash=e715767a0d5ec67a8955c0e8e87262b5ca8c0f5826f1dee6583014ede8032bbe", + "audit_chain_ok": true, + "telemetry_integrity": "none", + "telemetry_ok": false +} \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h6-cost-telemetry.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h6-cost-telemetry.json new file mode 100644 index 0000000..f405fa5 --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h6-cost-telemetry.json @@ -0,0 +1,9 @@ +{ + "harness": "H6-agentops", + "run_id": "9534d91f-4518-41c5-a7c4-56e22a56c2a4", + "provider_records": 56, + "metric_records": 40, + "total_provider_tokens": 56519, + "cost_spike_rc": 2, + "cost_spike_status": "spike_detected" +} \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h7-orchestration-report.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h7-orchestration-report.json new file mode 100644 index 0000000..9433c9b --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/h7-orchestration-report.json @@ -0,0 +1,6 @@ +{ + "harness": "H7-orchestration", + "run_id": "9534d91f-4518-41c5-a7c4-56e22a56c2a4", + "rollback_log": true, + "note": "rollback/fallback/drift proven by adversarial + run-casan4 suites" +} \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/manifest-head.txt b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/manifest-head.txt new file mode 100644 index 0000000..5066393 --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/manifest-head.txt @@ -0,0 +1 @@ +c55972046b1fe12b6bc538fde0ab31ad62e0c9e4b20003e5f1370f104d849f47 \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/redteam-result.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/redteam-result.json new file mode 100644 index 0000000..009beae --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/redteam-result.json @@ -0,0 +1,8 @@ +{ + "run_id": "9534d91f-4518-41c5-a7c4-56e22a56c2a4", + "vectors_defined": 16, + "critical_vectors": 4, + "adversarial_block_rate_pct": 100.0, + "critical_block_rate_pct": 100.0, + "note": "block rates from benign-fp-report (deterministic layer); full suites: phase1-track-a + phase2-track-c" +} \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/run-summary.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/run-summary.json new file mode 100644 index 0000000..10f1ec6 --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/run-summary.json @@ -0,0 +1,28 @@ +{ + "run_id": "9534d91f-4518-41c5-a7c4-56e22a56c2a4", + "pack_version": "1.0-mvp", + "certified": false, + "certification_reasons": [ + "telemetry_integrity_not_verified", + "unresolved_cost_spike" + ], + "required_gates": [ + "H3-traceability", + "H4-security", + "H5-audit-chain", + "H5-telemetry", + "H6-cost", + "benign-fp-budget" + ], + "harness_reports": [ + "benign-fp-report.json", + "h1-context-report.json", + "h2-tool-audit.json", + "h3-eval-scorecard.json", + "h4-security-report.json", + "h5-audit-chain-proof.json", + "h6-cost-telemetry.json", + "h7-orchestration-report.json", + "redteam-result.json" + ] +} \ No newline at end of file diff --git a/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/traceability-matrix.json b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/traceability-matrix.json new file mode 100644 index 0000000..389a33e --- /dev/null +++ b/docs/output/casan/evidence-packs/9534d91f-4518-41c5-a7c4-56e22a56c2a4/traceability-matrix.json @@ -0,0 +1,168 @@ +{ + "generated_at": "2026-07-17T16:57:32Z", + "requirements_source": "apps/okr/domain/input/okr-requirement.md", + "mapping_source": "apps/okr/domain/traceability-map.json", + "summary": { + "requirements": 5, + "passed": 5, + "failed": 0, + "symbol_refs": 9, + "symbols_found": 9, + "symbols_missing": 0, + "orphan_mappings": [] + }, + "matrix": [ + { + "id": "FR-01", + "name": "Login", + "status": "PASS", + "code": [ + "apps/okr/backend/src/auth/auth.controller.ts", + "apps/okr/backend/src/auth/auth.service.ts", + "apps/okr/frontend/src/pages/Login.tsx", + "apps/okr/frontend/src/hooks/useAuth.tsx" + ], + "tests": [ + "apps/okr/backend/test/services.test.ts", + "apps/okr/backend/test/e2e.test.ts" + ], + "missing_code": [], + "missing_tests": [], + "symbol_refs": [ + { + "file": "apps/okr/backend/src/auth/auth.service.ts", + "symbol": "AuthService", + "found": true + }, + { + "file": "apps/okr/backend/src/auth/auth.service.ts", + "symbol": "login", + "found": true + } + ], + "missing_symbols": [], + "missing_lines": [] + }, + { + "id": "FR-02", + "name": "Create Objective", + "status": "PASS", + "code": [ + "apps/okr/backend/src/objectives/objectives.controller.ts", + "apps/okr/backend/src/objectives/objectives.service.ts", + "apps/okr/frontend/src/pages/CreateObjective.tsx", + "apps/okr/frontend/src/schemas/objective.schema.ts" + ], + "tests": [ + "apps/okr/backend/test/services.test.ts", + "apps/okr/backend/test/e2e.test.ts", + "apps/okr/frontend/src/__tests__/okr.test.tsx" + ], + "missing_code": [], + "missing_tests": [], + "symbol_refs": [ + { + "file": "apps/okr/backend/src/objectives/objectives.service.ts", + "symbol": "ObjectivesService", + "found": true + }, + { + "file": "apps/okr/backend/src/objectives/objectives.service.ts", + "symbol": "create", + "found": true + } + ], + "missing_symbols": [], + "missing_lines": [] + }, + { + "id": "FR-03", + "name": "Create Key Result", + "status": "PASS", + "code": [ + "apps/okr/backend/src/key-results/key-results.controller.ts", + "apps/okr/backend/src/key-results/key-results.service.ts", + "apps/okr/backend/src/key-results/dto/create-key-result.dto.ts" + ], + "tests": [ + "apps/okr/backend/test/services.test.ts", + "apps/okr/backend/test/e2e.test.ts" + ], + "missing_code": [], + "missing_tests": [], + "symbol_refs": [ + { + "file": "apps/okr/backend/src/key-results/key-results.service.ts", + "symbol": "KeyResultsService", + "found": true + }, + { + "file": "apps/okr/backend/src/key-results/key-results.service.ts", + "symbol": "create", + "found": true + } + ], + "missing_symbols": [], + "missing_lines": [] + }, + { + "id": "FR-04", + "name": "Update Progress", + "status": "PASS", + "code": [ + "apps/okr/backend/src/key-results/key-results.controller.ts", + "apps/okr/backend/src/key-results/key-results.service.ts", + "apps/okr/backend/src/key-results/dto/update-progress.dto.ts", + "apps/okr/frontend/src/pages/KeyResultDetail.tsx" + ], + "tests": [ + "apps/okr/backend/test/services.test.ts", + "apps/okr/backend/test/e2e.test.ts", + "apps/okr/frontend/src/__tests__/okr.test.tsx" + ], + "missing_code": [], + "missing_tests": [], + "symbol_refs": [ + { + "file": "apps/okr/backend/src/key-results/key-results.service.ts", + "symbol": "updateProgress", + "found": true + } + ], + "missing_symbols": [], + "missing_lines": [] + }, + { + "id": "FR-05", + "name": "Dashboard", + "status": "PASS", + "code": [ + "apps/okr/backend/src/objectives/objectives.controller.ts", + "apps/okr/backend/src/objectives/objectives.service.ts", + "apps/okr/frontend/src/pages/Dashboard.tsx", + "apps/okr/frontend/src/hooks/useObjectives.ts" + ], + "tests": [ + "apps/okr/backend/test/services.test.ts", + "apps/okr/backend/test/e2e.test.ts", + "apps/okr/frontend/src/__tests__/okr.test.tsx" + ], + "missing_code": [], + "missing_tests": [], + "symbol_refs": [ + { + "file": "apps/okr/backend/src/objectives/objectives.service.ts", + "symbol": "ObjectivesService", + "found": true + }, + { + "file": "apps/okr/backend/src/objectives/objectives.service.ts", + "symbol": "list", + "found": true + } + ], + "missing_symbols": [], + "missing_lines": [] + } + ] +} diff --git a/docs/packaging/CASAN_PACKAGING_PLAN.md b/docs/packaging/CASAN_PACKAGING_PLAN.md index ecb1836..63adbca 100644 --- a/docs/packaging/CASAN_PACKAGING_PLAN.md +++ b/docs/packaging/CASAN_PACKAGING_PLAN.md @@ -11,8 +11,8 @@ contents + maturity: [`packaging/levels.json`](../../packaging/levels.json). |---|---|:--:|---| | **1 — Core Harness** | `casan-core`, `casan-harness` | ✅ implemented | H1–H7 harness, security + action gates, evidence pack, audit, cost/telemetry, hardening tests, policy/config defaults, `bin/casan` CLI | | **2 — DevKit / Adoption Kit** | `casan-devkit`, `casan-project-kit` | ✅ implemented | Level 1 + project templates, domain-pack scaffold, Gitea workflow template, harness Dockerfile, install script, adoption/CI/domain-pack guides | -| **3 — Platform Components** | `casan-platform`, `casan-control-panel` | 🟡 preview | Control Panel, Dashboard, Evidence/Attack/Run-History viewers, read-only Ask CASAN, Gitea webhook. **AgentOps dashboard + Plan-13 Control Panel Track 1/2/3 + FinOps/SLO + Command Center + local-prod TLS/OIDC smoke exist today.** | -| **4 — Enterprise / Governed Console** | `casan-enterprise`, `casan-governed-console` | 📋 future | Governed Chat Console, Prompt Router, Model-Provider Mgmt, Operator/Codegen modes, Agent/Skill Registry, RBAC, approval, tenant isolation, KMS/WORM, policy versioning | +| **3 — Platform Components** | `casan-platform`, `casan-control-panel` | 🟡 preview | Control Panel, Dashboard, Run History, governed chat MVP and **Evidence Pack Viewer**. Attack Battery Viewer, Gitea evidence publishing, and managed rollout are still pending. | +| **4 — Enterprise / Governed Console** | `casan-enterprise`, `casan-governed-console` | 📋 future | Promotion layer requiring managed deployment, KMS/Object Lock operations, HA/DR/SLA, external review and compliance/support evidence. | Levels are cumulative: DevKit extends Core, Platform extends DevKit, Enterprise extends Platform. @@ -60,8 +60,14 @@ docs/packaging/ # this plan + adoption/CI/domain-pack/gitea/docker g ## Implemented now vs future - **Implemented now:** Level 1 Core packaging, Level 2 DevKit packaging, release script, `bin/casan`, templates, docs, all-in-one-demo bundle. -- **Structure + docs only:** Level 3 Platform (dashboard exists; rest scaffolded), - Level 4 Enterprise (RBAC/tenant/KMS/WORM/approval exist in core; governed console not built). -- **Not built in this task (do not assume present):** Governed Chat Console, Prompt Mode - Router, Model Provider Management, Operator/Codegen modes, Agent/Skill Registry, RBAC/ - tenant *console* UX. +- **Platform preview:** a shipped preview bundle containing the Control Panel, + governed-chat MVP, and Evidence Pack Viewer. It is explicitly incomplete. +- **Structure + docs only:** Level 4 Enterprise. RBAC/tenant/KMS/WORM/approval + building blocks exist, but no Enterprise artifact is shipped. +- **Not built in this task (do not assume present):** Attack Battery Viewer, + Gitea webhook evidence publishing, enterprise managed deployment, HA/DR/SLA, + external security assessment and compliance certification. + +For customer claims and limitations, use +[`EDITION_FEATURE_LIMITATION_MATRIX.md`](EDITION_FEATURE_LIMITATION_MATRIX.md), +not this overview alone. diff --git a/docs/packaging/EDITION_FEATURE_LIMITATION_MATRIX.md b/docs/packaging/EDITION_FEATURE_LIMITATION_MATRIX.md new file mode 100644 index 0000000..da97c8a --- /dev/null +++ b/docs/packaging/EDITION_FEATURE_LIMITATION_MATRIX.md @@ -0,0 +1,40 @@ +# CASAN Edition Feature and Limitation Matrix + +This matrix is the customer-facing source of truth for edition claims. A check +means the capability is packaged and has repository evidence; it does not imply +an enterprise SLA, managed operation, or certification unless explicitly noted. + +| Capability | Core | DevKit | Platform Preview | Enterprise | +|---|---:|---:|---:|---:| +| H1–H7 harness, policy/action gates | Included | Included | Included | Building blocks only | +| CLI and evidence pack creation/verification | Included | Included | Included | Building blocks only | +| Project/domain templates and CI adoption guides | — | Included | Included | — | +| Gitea CI gate template | — | Included | Included | — | +| Control Panel: runs, governance, security, cost, approvals | — | — | Included | Not a shipped edition | +| Evidence Pack Viewer | — | — | Included | Not a shipped edition | +| Governed chat/operator/codegen MVP | — | — | Included, preview | Not a shipped edition | +| Gitea webhook evidence publishing | — | — | Not yet available | Not available | +| Enterprise OIDC/CA/private-network deployment | — | — | Local smoke only | Not available | +| Vault/KMS enforced, immutable object storage | Harness building blocks | Harness building blocks | Not production packaged | Not available | +| HA, DR, RPO/RTO, production SLA | — | — | Not available | Not available | +| External pentest / ISO/SOC/ISMAP claim | — | — | Not available | Not available | +| Commercial license / support agreement | Required for paid use | Required for paid use | Required for paid use | Future contract only | + +## Edition rules + +- **Core** is the first paid-PoC product: use it with the customer’s existing + AI coding tools and CI. It is self-hosted and evidence-oriented. +- **DevKit** adds repeatable adoption material. It does not add a managed + service or a security certification. +- **Platform Preview** includes the Control Panel and the Evidence Pack Viewer, + but is not production enterprise software. The bundle has a + `PREVIEW-INCOMPLETE.txt` marker by design. +- **Enterprise** remains `future` and `package-release.sh enterprise` refuses + to generate an artifact. Do not advertise it as a purchasable edition. + +## Claim guardrails + +Do not claim “enterprise-ready”, “production HA”, “ISMAP compliant”, “APPI +compliant”, “immutable storage”, “signed evidence”, or “sandboxed codegen” +unless the corresponding deployment and verification evidence exists for that +customer environment. diff --git a/docs/plans/CASAN_BACKLOG_STATUS.md b/docs/plans/CASAN_BACKLOG_STATUS.md index c80d487..a935549 100644 --- a/docs/plans/CASAN_BACKLOG_STATUS.md +++ b/docs/plans/CASAN_BACKLOG_STATUS.md @@ -4,7 +4,7 @@ > bước tiếp theo cụ thể + cờ phụ-thuộc-hạ-tầng, để **bất kỳ AI/người nào tiếp quản > cũng làm tiếp được ngay**. Cập nhật mỗi khi hoàn thành một mục. > -> Cập nhật lần cuối: 2026-07-08 · Nhánh làm tiếp từ handoff Claude/Codex. +> Cập nhật lần cuối: 2026-07-17 · Nhánh làm tiếp từ handoff Claude/Codex. > > **Vai trò file (single source of truth):** file này là **nguồn chuẩn cho "còn > gì phải làm"**. Control **đã implement+test** → xem `CASAN_HARDENING_STATUS.md`. @@ -30,6 +30,7 @@ | T1.2 | **IdP/OIDC cho approval** (thay registry pubkey tĩnh) | 07 C4 / V20 | ✅ MVP done+test | `approval-verify.sh` chấp nhận `CASAN_APPROVAL_JWT` RS256 ký bởi mock IdP, verify chữ ký bằng pubkey, check `sub`/`role`/`exp` + bind `action`/`actor`/`input_sha256`. Test: JWT hợp lệ→APPROVED, hết hạn/sai role/chữ ký giả→DENY. Prod còn cần IdP/JWKS thật. | | T1.3 | **Traceability REQ→code→test** (khác biệt nhất) | 10 | ✅ MVP done+test | `traceability-matrix.py` parse FR-xx từ requirement, dùng `apps/okr/domain/traceability-map.json`, gate mọi FR có ≥1 code + ≥1 test; Evidence Pack thêm `traceability-matrix.json`. Test: FR đủ→PASS, FR thiếu test→FAIL. | | T1.4 | **Fix test-infra backend** (Prisma MySQL vs `setup-sqlite.mjs`) — gỡ chặn `npm test` để Plan-05 CI xanh | 05 | ✅ done+test | Đã fix: `scripts/make-sqlite-schema.mjs` sinh `schema.sqlite.prisma` từ schema.prisma (không drift), test dùng `prisma db push` thay migration MySQL thủ công; bỏ `setup-sqlite.mjs`; đổi `bcrypt`→`bcryptjs` (thuần JS, không cần native build); thêm `cross-env`. **Backend `npm test` = 46 pass / 0 fail / 3 skip** (llm-judge thiếu ANTHROPIC_API_KEY). Đã nối vào `ci-harness-gate.sh` (`backend-tests`). Build production (mysql) vẫn compile. Ghi chú: engine Prisma tải qua `NODE_OPTIONS=--use-system-ca` do corporate MITM. | +| T1.5 | **Paid-PoC release package** | Commercial P0 | 🟡 partial, evidence-backed | Done locally: Control Panel tests/build in harness + release gates; Platform manifest includes console/deploy/docs; extracted-artifact smoke works; Evidence Pack Viewer + one sample pack; Japanese PoC pack; npm third-party inventory + proprietary commercial-license decision. Remaining before claiming P0 complete: run a real Gitea PR E2E and retain its Evidence Pack; resolve all six `UNKNOWN` npm licenses plus Python/container/model/dataset/assets inventory with legal review. | ## TIER 2 — Plan-07 gaps cần hạ tầng (Docker local-prod lab đã có; prod managed thật vẫn cần) 🔌 diff --git a/package-lock.json b/package-lock.json index 71d22a7..2694afe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "packages": { "": { "name": "ainative-okr-casan5", + "license": "UNLICENSED", "workspaces": [ "apps/okr/backend", "apps/okr/frontend", @@ -15,6 +16,7 @@ "apps/okr/backend": { "name": "@ainative-okr/backend", "version": "1.0.0", + "license": "UNLICENSED", "dependencies": { "@nestjs/common": "^10.4.20", "@nestjs/core": "^10.4.20", @@ -42,6 +44,7 @@ "apps/okr/frontend": { "name": "@ainative-okr/frontend", "version": "1.0.0", + "license": "UNLICENSED", "dependencies": { "@tanstack/react-query": "^5.81.5", "axios": "^1.10.0", @@ -7142,6 +7145,7 @@ "packages/casan-control-panel/backend": { "name": "@casan/control-panel-backend", "version": "1.0.0", + "license": "UNLICENSED", "dependencies": { "@nestjs/common": "^10.4.20", "@nestjs/core": "^10.4.20", @@ -7159,6 +7163,7 @@ "packages/casan-control-panel/frontend": { "name": "@casan/control-panel-frontend", "version": "1.0.0", + "license": "UNLICENSED", "dependencies": { "@tanstack/react-query": "^5.81.5", "axios": "^1.10.0", diff --git a/package.json b/package.json index 2a13e5c..c75c4f8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "ainative-okr-casan5", "private": true, + "license": "UNLICENSED", "workspaces": [ "apps/okr/backend", "apps/okr/frontend", diff --git a/packages/casan-control-panel/backend/package.json b/packages/casan-control-panel/backend/package.json index 7b6c0fb..3653204 100644 --- a/packages/casan-control-panel/backend/package.json +++ b/packages/casan-control-panel/backend/package.json @@ -2,6 +2,7 @@ "name": "@casan/control-panel-backend", "version": "1.0.0", "private": true, + "license": "UNLICENSED", "type": "module", "description": "CASAN Ops Console — NestJS API over harness telemetry, governed settings, approval inbox, kill-switch, and FinOps/SLO (Plan-13 Track 1/2/3/4 partial).", "scripts": { diff --git a/packages/casan-control-panel/backend/src/app.module.ts b/packages/casan-control-panel/backend/src/app.module.ts index 1763cbd..b028ae5 100644 --- a/packages/casan-control-panel/backend/src/app.module.ts +++ b/packages/casan-control-panel/backend/src/app.module.ts @@ -7,9 +7,10 @@ import { ApprovalsModule } from './approvals/approvals.module.js'; import { ChatModule } from './chat/chat.module.js'; import { ProviderAuthModule } from './provider-auth/provider-auth.module.js'; import { GoalsModule } from './goals/goals.module.js'; +import { EvidenceModule } from './evidence/evidence.module.js'; @Module({ - imports: [TelemetryModule, SettingsModule, KillSwitchModule, ApprovalsModule, ChatModule, ProviderAuthModule, GoalsModule], + imports: [TelemetryModule, SettingsModule, KillSwitchModule, ApprovalsModule, ChatModule, ProviderAuthModule, GoalsModule, EvidenceModule], controllers: [HealthController], }) export class AppModule {} diff --git a/packages/casan-control-panel/backend/src/chat/chat.controller.ts b/packages/casan-control-panel/backend/src/chat/chat.controller.ts index 8a38509..d82211c 100644 --- a/packages/casan-control-panel/backend/src/chat/chat.controller.ts +++ b/packages/casan-control-panel/backend/src/chat/chat.controller.ts @@ -23,8 +23,8 @@ export class ChatController { } @Get('audit/verify') - verifyAudit() { - return ok(this.svc.verifyAudit()); + verifyAudit(@Headers() headers: Record) { + return ok(this.svc.verifyAudit(actorFromHeaders(headers))); } @Get('history') @@ -37,8 +37,12 @@ export class ChatController { } @Get('replay') - replay(@Query('chatId') chatId?: string, @Query('turnId') turnId?: string, @Query('tenant') tenant?: string) { - return ok(this.svc.replay(chatId || '', turnId || '', tenant || '')); + replay( + @Headers() headers: Record, + @Query('chatId') chatId?: string, + @Query('turnId') turnId?: string, + ) { + return ok(this.svc.replay(actorFromHeaders(headers), chatId || '', turnId || '')); } @Get('actions') diff --git a/packages/casan-control-panel/backend/src/chat/chat.service.ts b/packages/casan-control-panel/backend/src/chat/chat.service.ts index 9d880e4..ebddf8b 100644 --- a/packages/casan-control-panel/backend/src/chat/chat.service.ts +++ b/packages/casan-control-panel/backend/src/chat/chat.service.ts @@ -107,7 +107,7 @@ export class ChatService { const res = runPython(CHAT_CLI, args, runtime.env); const parsed = parseJson>(res.stdout); if (parsed) { - return { ...parsed, actor, audit_verify: this.verifyAudit() }; + return { ...parsed, actor, audit_verify: this.verifyAudit(actor) }; } if (res.status !== 0) { throw new InternalServerErrorException(res.stderr || res.stdout || 'CHAT_CLI_FAILED'); @@ -115,8 +115,9 @@ export class ChatService { throw new InternalServerErrorException('CHAT_CLI_EMPTY_RESPONSE'); } - verifyAudit() { - const res = runPython(CHAT_CLI, ['verify-audit']); + verifyAudit(actor: SettingsActor) { + this.requireRead(actor); + const res = runPython(CHAT_CLI, ['verify-audit'], this.tenantEnv(actor)); return { ok: res.status === 0, output: res.stdout || res.stderr }; } @@ -125,7 +126,7 @@ export class ChatService { const safeLimit = Math.max(1, Math.min(Number.isFinite(limit) ? Math.trunc(limit) : 50, 100)); const args = ['history', '--actor', actor.actor, '--tenant', actor.tenant, '--limit', String(safeLimit)]; if (chatId) args.push('--chat-id', chatId); - const res = runPython(CHAT_CLI, args); + const res = runPython(CHAT_CLI, args, this.tenantEnv(actor)); const parsed = parseJson>(res.stdout); if (res.status === 0 && parsed?.ok === true) return parsed; throw new InternalServerErrorException(res.stderr || res.stdout || 'CHAT_HISTORY_FAILED'); @@ -176,12 +177,12 @@ export class ChatService { child.on('close', () => res.end()); } - replay(chatId = '', turnId = '', tenant = '') { + replay(actor: SettingsActor, chatId = '', turnId = '') { + this.requireRead(actor); const args = ['replay']; if (chatId) args.push('--chat-id', chatId); if (turnId) args.push('--turn-id', turnId); - const env = tenant && tenant !== 'default' ? { CASAN_TENANT_ID: tenant } : {}; - const res = runPython(REPLAY_CLI, args, env); + const res = runPython(REPLAY_CLI, args, this.tenantEnv(actor)); const parsed = parseJson>(res.stdout); if (parsed) return { ok: res.status === 0, ...parsed }; throw new InternalServerErrorException(res.stderr || res.stdout || 'CHAT_REPLAY_FAILED'); @@ -272,6 +273,10 @@ export class ChatService { return { policyProvider, env: { CASAN_TENANT_ID: actor.tenant || 'default', ...parsed.env } }; } + private tenantEnv(actor: SettingsActor): NodeJS.ProcessEnv { + return { CASAN_TENANT_ID: actor.tenant || 'default' }; + } + private requireConnectionAdmin(actor: SettingsActor) { if (!['project-admin', 'org-admin'].includes(actor.role)) { throw new ForbiddenException('MODEL_CONNECTION_ADMIN_REQUIRED'); diff --git a/packages/casan-control-panel/backend/src/common/app-root.ts b/packages/casan-control-panel/backend/src/common/app-root.ts index 6126ed6..af8bb46 100644 --- a/packages/casan-control-panel/backend/src/common/app-root.ts +++ b/packages/casan-control-panel/backend/src/common/app-root.ts @@ -52,6 +52,7 @@ export const PATHS = { chatAudit: env('CASAN_CP_CHAT_AUDIT', '.specify/logs/chat/chat-turns.jsonl'), delegationPolicy: env('CASAN_CP_DELEGATION_POLICY', 'packages/casan-harness/config/delegation-policy.yaml'), selfImprove: env('CASAN_CP_SELF_IMPROVE', 'packages/casan-harness/scripts/bash/self-improve.py'), + evidencePacks: env('CASAN_CP_EVIDENCE_PACKS', 'docs/output/casan/evidence-packs'), }; export const STALE_AFTER_S = Number(process.env.CASAN_DASHBOARD_STALE_S ?? 3600); diff --git a/packages/casan-control-panel/backend/src/evidence/evidence.controller.ts b/packages/casan-control-panel/backend/src/evidence/evidence.controller.ts new file mode 100644 index 0000000..e8ebb03 --- /dev/null +++ b/packages/casan-control-panel/backend/src/evidence/evidence.controller.ts @@ -0,0 +1,14 @@ +import { Controller, Get, Inject, Param } from '@nestjs/common'; +import { ok } from '../common/api-response.js'; +import { EvidenceService } from './evidence.service.js'; + +@Controller('api/v1/evidence-packs') +export class EvidenceController { + constructor(@Inject(EvidenceService) private readonly service: EvidenceService) {} + + @Get() + list() { return ok(this.service.list()); } + + @Get(':id') + get(@Param('id') id: string) { return ok(this.service.get(id)); } +} diff --git a/packages/casan-control-panel/backend/src/evidence/evidence.module.ts b/packages/casan-control-panel/backend/src/evidence/evidence.module.ts new file mode 100644 index 0000000..55dceb6 --- /dev/null +++ b/packages/casan-control-panel/backend/src/evidence/evidence.module.ts @@ -0,0 +1,6 @@ +import { Module } from '@nestjs/common'; +import { EvidenceController } from './evidence.controller.js'; +import { EvidenceService } from './evidence.service.js'; + +@Module({ controllers: [EvidenceController], providers: [EvidenceService] }) +export class EvidenceModule {} diff --git a/packages/casan-control-panel/backend/src/evidence/evidence.service.ts b/packages/casan-control-panel/backend/src/evidence/evidence.service.ts new file mode 100644 index 0000000..8852343 --- /dev/null +++ b/packages/casan-control-panel/backend/src/evidence/evidence.service.ts @@ -0,0 +1,107 @@ +import { Injectable, NotFoundException } from '@nestjs/common'; +import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs'; +import { basename, join, relative, resolve } from 'node:path'; +import { execFileSync } from 'node:child_process'; +import { APP_ROOT, PATHS } from '../common/app-root.js'; + +const PACK_ID = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/; +const JSON_LIMIT = 1024 * 1024; +const TEXT_LIMIT = 256 * 1024; +const REPORTS = [ + 'h1-context-report.json', 'h2-tool-audit.json', 'h3-eval-scorecard.json', + 'h4-security-report.json', 'h5-audit-chain-proof.json', 'h6-cost-telemetry.json', + 'h7-orchestration-report.json', 'redteam-result.json', 'benign-fp-report.json', +]; + +function isInside(root: string, path: string) { + const rel = relative(root, path); + return rel === '' || (!rel.startsWith('..') && !rel.includes(`..${String.fromCharCode(47)}`)); +} + +function readBounded(path: string, max: number): string | null { + try { + if (statSync(path).size > max) return null; + return readFileSync(path, 'utf8'); + } catch { return null; } +} + +function readObject(path: string): Record | null { + const source = readBounded(path, JSON_LIMIT); + if (!source) return null; + try { + const value: unknown = JSON.parse(source); + return value && typeof value === 'object' && !Array.isArray(value) ? value as Record : null; + } catch { return null; } +} + +@Injectable() +export class EvidenceService { + private readonly root = resolve(PATHS.evidencePacks); + + private pack(id: string): string { + if (!PACK_ID.test(id)) throw new NotFoundException('Evidence pack not found'); + const path = resolve(this.root, id); + if (!isInside(this.root, path) || basename(path) !== id || !existsSync(path)) { + throw new NotFoundException('Evidence pack not found'); + } + return path; + } + + private integrity(dir: string) { + const script = join(APP_ROOT, 'packages', 'casan-harness', 'scripts', 'bash', 'evidence-pack-verify.py'); + if (!existsSync(script)) return { ok: false, status: 'verifier_unavailable', output: 'Evidence verifier is unavailable.' }; + try { + const output = execFileSync('python3', [script, dir], { cwd: APP_ROOT, encoding: 'utf8', timeout: 15_000, stdio: ['ignore', 'pipe', 'pipe'] }).trim(); + return { ok: true, status: 'verified', output }; + } catch (error: unknown) { + const detail = error && typeof error === 'object' && 'stderr' in error ? String((error as { stderr?: unknown }).stderr ?? '') : ''; + return { ok: false, status: 'failed', output: detail.trim().slice(0, 500) || 'Evidence manifest verification failed.' }; + } + } + + private summary(id: string, dir: string) { + const run = readObject(join(dir, 'run-summary.json')) ?? {}; + const manifest = readObject(join(dir, 'artifact-manifest.json')) ?? {}; + const signature = existsSync(join(dir, 'evidence-pack.sig')) ? 'present' : 'unsigned'; + return { + run_id: String(run.run_id ?? id), + certified: run.certified === true, + certification_reasons: Array.isArray(run.certification_reasons) ? run.certification_reasons.map(String) : [], + pack_version: String(run.pack_version ?? 'unknown'), + created_at: statSync(dir).mtime.toISOString(), + file_count: manifest.files && typeof manifest.files === 'object' && !Array.isArray(manifest.files) ? Object.keys(manifest.files as Record).length : 0, + signature, + integrity: this.integrity(dir), + }; + } + + list() { + if (!existsSync(this.root)) return { root: this.root, packs: [] }; + const packs = readdirSync(this.root, { withFileTypes: true }) + .filter((entry) => entry.isDirectory() && PACK_ID.test(entry.name)) + .map((entry) => this.summary(entry.name, join(this.root, entry.name))) + .sort((a, b) => b.created_at.localeCompare(a.created_at)); + return { root: this.root, packs }; + } + + get(id: string) { + const dir = this.pack(id); + const manifest = readObject(join(dir, 'artifact-manifest.json')) ?? {}; + const hashes = manifest.files && typeof manifest.files === 'object' && !Array.isArray(manifest.files) + ? manifest.files as Record : {}; + const files = Object.entries(hashes).map(([path, sha256]) => ({ + path, + sha256: String(sha256), + bytes: (() => { try { return statSync(join(dir, path)).size; } catch { return 0; } })(), + })); + const reports = Object.fromEntries(REPORTS.map((name) => [name, readObject(join(dir, name))]).filter(([, value]) => value)); + return { + ...this.summary(id, dir), + manifest_head: readBounded(join(dir, 'manifest-head.txt'), 512)?.trim() || String(manifest.manifest_head ?? '') || null, + run_summary: readObject(join(dir, 'run-summary.json')), + decision_log: readBounded(join(dir, 'decision-log.md'), TEXT_LIMIT), + reports, + files, + }; + } +} diff --git a/packages/casan-control-panel/backend/test/chat.test.ts b/packages/casan-control-panel/backend/test/chat.test.ts index 94a16ba..710e71e 100644 --- a/packages/casan-control-panel/backend/test/chat.test.ts +++ b/packages/casan-control-panel/backend/test/chat.test.ts @@ -1,6 +1,6 @@ import { test } from 'node:test'; import assert from 'node:assert/strict'; -import { mkdtempSync, readFileSync } from 'node:fs'; +import { mkdirSync, mkdtempSync, readFileSync } from 'node:fs'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; import { ChatService } from '../src/chat/chat.service.js'; @@ -20,7 +20,9 @@ function withTempChatState(fn: () => void) { const state = mkdtempSync(join(tmpdir(), 'cp-chat-')); process.env.CASAN_STATE_ROOT = state; process.env.CASAN_TENANT_STATE_ROOT = join(state, 'tenants'); - process.env.CASAN_APPROVAL_INBOX_FILE = join(state, 'approval-inbox.json'); + const defaultApprovalDir = join(state, 'tenants', 'default', 'approvals'); + mkdirSync(defaultApprovalDir, { recursive: true }); + process.env.CASAN_APPROVAL_INBOX_FILE = join(defaultApprovalDir, 'approval-inbox.json'); delete process.env.CASAN_CHAT_AUDIT_LOG; delete process.env.CASAN_CHAT_AUDIT_HEAD; delete process.env.CASAN_CHAT_METRICS_LOG; @@ -111,7 +113,7 @@ test('chat ask executes registered operator action through action-gate', () => { assert.equal(res.loop_run.side_effect_released, true); assert.equal(res.loop_run.trace_verify.ok, true); assert.equal(res.loop_run.replay.ok, true); - const replay = svc.replay('operator-chat') as any; + const replay = svc.replay(operator, 'operator-chat') as any; assert.equal(replay.ok, true); assert.equal(replay.decision, 'MATCH'); assert.equal(replay.loop_replayed, 1); @@ -163,12 +165,12 @@ test('chat replay is partitioned by non-default tenant', () => { assert.equal(res.success, true); assert.equal(res.audit_verify.ok, true); - const alphaReplay = svc.replay('tenant-chat', '', 'alpha') as any; + const alphaReplay = svc.replay(alpha, 'tenant-chat') as any; assert.equal(alphaReplay.ok, true); assert.equal(alphaReplay.decision, 'MATCH'); assert.equal(alphaReplay.records, 1); - const betaReplay = svc.replay('tenant-chat', '', 'beta') as any; + const betaReplay = svc.replay({ ...viewer, actor: 'tenant-beta', tenant: 'beta' }, 'tenant-chat') as any; assert.equal(betaReplay.ok, true); assert.equal(betaReplay.records, 0); }); diff --git a/packages/casan-control-panel/frontend/package.json b/packages/casan-control-panel/frontend/package.json index 50b8b2c..02d9e10 100644 --- a/packages/casan-control-panel/frontend/package.json +++ b/packages/casan-control-panel/frontend/package.json @@ -2,6 +2,7 @@ "name": "@casan/control-panel-frontend", "version": "1.0.0", "private": true, + "license": "UNLICENSED", "type": "module", "description": "CASAN Ops Console \u2014 read-only React UI over the harness telemetry API.", "scripts": { diff --git a/packages/casan-control-panel/frontend/src/App.tsx b/packages/casan-control-panel/frontend/src/App.tsx index 4a1fd9a..4de31db 100644 --- a/packages/casan-control-panel/frontend/src/App.tsx +++ b/packages/casan-control-panel/frontend/src/App.tsx @@ -12,6 +12,7 @@ import { Approvals } from './pages/Approvals'; import { CommandCenter } from './pages/CommandCenter'; import { Chat } from './pages/Chat'; import { Goals } from './pages/Goals'; +import { EvidencePacks } from './pages/EvidencePacks'; export default function App() { return ( @@ -29,6 +30,7 @@ export default function App() { } /> } /> } /> + } /> } /> diff --git a/packages/casan-control-panel/frontend/src/components/layout/Sidebar.tsx b/packages/casan-control-panel/frontend/src/components/layout/Sidebar.tsx index 72c21c9..a4b66a5 100644 --- a/packages/casan-control-panel/frontend/src/components/layout/Sidebar.tsx +++ b/packages/casan-control-panel/frontend/src/components/layout/Sidebar.tsx @@ -1,7 +1,7 @@ import type { ReactNode } from 'react'; import { NavLink } from 'react-router-dom'; -type IconName = 'grid' | 'command' | 'chat' | 'goal' | 'runs' | 'shield' | 'governance' | 'incident' | 'trace' | 'coins' | 'approval' | 'settings'; +type IconName = 'grid' | 'command' | 'chat' | 'goal' | 'runs' | 'shield' | 'governance' | 'incident' | 'trace' | 'evidence' | 'coins' | 'approval' | 'settings'; interface NavItem { to: string; label: string; icon: IconName; } @@ -18,6 +18,7 @@ const NAVIGATION: Array<{ label: string; items: NavItem[] }> = [ { to: '/security', label: 'Security', icon: 'shield' }, { to: '/incidents', label: 'Incidents', icon: 'incident' }, { to: '/traceability', label: 'Traceability', icon: 'trace' }, + { to: '/evidence-packs', label: 'Evidence packs', icon: 'evidence' }, ] }, { label: 'Control', items: [ { to: '/finops', label: 'FinOps & SLO', icon: 'coins' }, @@ -37,6 +38,7 @@ function Icon({ name }: { name: IconName }) { governance: <>, incident: <>, trace: <>, + evidence: <>, coins: <>, approval: <>, settings: <>, diff --git a/packages/casan-control-panel/frontend/src/lib/api.ts b/packages/casan-control-panel/frontend/src/lib/api.ts index 71bfe28..9a9a2ee 100644 --- a/packages/casan-control-panel/frontend/src/lib/api.ts +++ b/packages/casan-control-panel/frontend/src/lib/api.ts @@ -34,6 +34,25 @@ export interface HarnessRunRecord { cost_estimate?: number; } +export interface EvidenceIntegrity { ok: boolean; status: string; output: string } +export interface EvidencePackSummary { + run_id: string; + certified: boolean; + certification_reasons: string[]; + pack_version: string; + created_at: string; + file_count: number; + signature: 'present' | 'unsigned'; + integrity: EvidenceIntegrity; +} +export interface EvidencePackDetail extends EvidencePackSummary { + manifest_head: string | null; + run_summary: Record | null; + decision_log: string | null; + reports: Record>; + files: Array<{ path: string; sha256: string; bytes: number }>; +} + export interface Overview extends Freshness { totals: { runs: number; total_cost: number; avg_latency_ms: number; failures: number; @@ -419,6 +438,8 @@ export const api = { traceability: () => get('traceability'), cost: () => get('cost'), command: () => get('command'), + evidencePacks: () => get<{ root: string; packs: EvidencePackSummary[] }>('evidence-packs'), + evidencePack: (id: string) => get(`evidence-packs/${encodeURIComponent(id)}`), settings: (actor: SettingsActor) => getWithHeaders('settings', actorHeaders(actor)), setSetting: (actor: SettingsActor, body: { key: string; value: unknown; reason: string; approval?: string }) => post<{ key: string; setting: any; audit_verify: { ok: boolean; output: string } }>('settings', body, actorHeaders(actor)), diff --git a/packages/casan-control-panel/frontend/src/pages/EvidencePacks.tsx b/packages/casan-control-panel/frontend/src/pages/EvidencePacks.tsx new file mode 100644 index 0000000..6cb491d --- /dev/null +++ b/packages/casan-control-panel/frontend/src/pages/EvidencePacks.tsx @@ -0,0 +1,62 @@ +import { useQuery } from '@tanstack/react-query'; +import { useMemo, useState } from 'react'; +import { api, type EvidencePackDetail, type EvidencePackSummary } from '../lib/api'; +import { Card, StatusBadge } from '../components/ui/Card'; + +const HARNESSES = [ + ['H1', 'Context', 'h1-context-report.json'], ['H2', 'Tool', 'h2-tool-audit.json'], + ['H3', 'Evaluation', 'h3-eval-scorecard.json'], ['H4', 'Security', 'h4-security-report.json'], + ['H5', 'Governance', 'h5-audit-chain-proof.json'], ['H6', 'AgentOps', 'h6-cost-telemetry.json'], + ['H7', 'Orchestration', 'h7-orchestration-report.json'], +] as const; + +function shortHash(value: string | null) { return value ? `${value.slice(0, 12)}…${value.slice(-8)}` : 'not recorded'; } +function label(reason: string) { return reason.replaceAll('_', ' '); } +function statusFor(report: Record | undefined, detail: EvidencePackDetail) { + if (!report) return 'not recorded'; + if (report.chain_ok === false || report.audit_chain_ok === false || report.telemetry_ok === false) return 'failed'; + if (Number(report.blocked ?? 0) > 0 || report.cost_spike_status === 'spike_detected') return 'attention'; + return detail.integrity.ok ? 'recorded' : 'unverified'; +} + +function PackRow({ pack, selected, onSelect }: { pack: EvidencePackSummary; selected: boolean; onSelect: () => void }) { + return ; +} + +function Detail({ pack }: { pack: EvidencePackDetail }) { + const reportEntries = Object.entries(pack.reports); + return
+
+
+
Evidence verdict

{pack.certified ? 'Certified evidence pack' : 'Evidence captured — certification withheld'}

Run {pack.run_id} is bound to a file manifest and verified independently before it is shown here.

+
+
+ {pack.certification_reasons.length > 0 &&
Why certification is withheld
{pack.certification_reasons.map((reason) => {label(reason)})}
} +
+ + manifest {shortHash(pack.manifest_head)}}> +
{HARNESSES.map(([id, name, file]) => { const report = pack.reports[file]; const state = statusFor(report, pack); return
{id}
{name}
{state}
; })}
+
+ +
+
{reportEntries.map(([name, report]) =>
{name.replace('-report.json', '').replace('.json', '')}
{Object.entries(report).filter(([, value]) => typeof value !== 'object').map(([key, value]) =>
{key.replaceAll('_', ' ')}
{String(value)}
)}
)}
+ {pack.files.length} bound files}>
{pack.files.map((file) =>
{file.path}
{shortHash(file.sha256)}{file.bytes.toLocaleString()} B
)}
+
+
{pack.decision_log ?? 'No decision log was recorded.'}
+
; +} + +export function EvidencePacks() { + const { data, isLoading, isError } = useQuery({ queryKey: ['evidence-packs'], queryFn: api.evidencePacks }); + const [selected, setSelected] = useState(''); + const activeId = selected || data?.packs[0]?.run_id || ''; + const detail = useQuery({ queryKey: ['evidence-pack', activeId], queryFn: () => api.evidencePack(activeId), enabled: Boolean(activeId) }); + const heading = useMemo(() => data?.packs.length ?? 0, [data]); + if (isLoading) return
Loading evidence inventory…
; + if (isError || !data) return
Evidence inventory could not be loaded.
; + if (!data.packs.length) return
No evidence pack has been created yet

Create one with casan pack <run-id>; it will appear here only after the on-disk manifest is available.

; + return
Assurance workspace

Evidence packs ({heading})

Inspect certification, provenance, gates and immutable file hashes without opening raw logs.

{detail.isLoading &&
Verifying manifest…
}{detail.isError &&
The selected evidence pack could not be read safely.
}{detail.data && }
; +} diff --git a/packages/casan-enterprise/README.md b/packages/casan-enterprise/README.md index 83bb0ff..d3c4a68 100644 --- a/packages/casan-enterprise/README.md +++ b/packages/casan-enterprise/README.md @@ -19,8 +19,14 @@ Enterprise governed AI-SDLC console. Packages: `casan-enterprise`, `casan-govern | Loop governance | Plan-17 loop primitives (`loop-*.py`) | ## Components still to build (NOT in this task) -- Governed Chat Console (Plan-18) · Prompt Mode Router · Model Provider Management -- Operator mode · Codegen mode · Agent/Skill Registry · policy-versioning UI +- Managed enterprise deployment with enterprise OIDC, CA, network policy and + production secret/KMS enforcement +- HA/DR, RPO/RTO, lifecycle compatibility, support/SLA and independent security review +- Production immutable object storage and external evidence verification operations + +The Platform Preview already contains the Governed Chat/Prompt Router/Operator/ +Codegen and agent/skill/model-selection MVPs, plus the Evidence Pack Viewer. +They are not evidence that an Enterprise edition has shipped. ## Why it refuses to package Per the packaging principle, a level that isn't implemented must **fail clearly** rather @@ -29,6 +35,7 @@ than emit a fake-complete artifact. Enterprise is `status: future` in explanation. When the console is built, flip its status to `preview`/`implemented`. ## To implement later -Sequence: Plan-14 (RBAC console) → Plan-13 (Control Plane) → Plan-18 (Governed Chat -Console: read-only → operator → chat-as-loop → multi-tenant). Reuse the existing blocks -above instead of re-writing them. +Sequence: finish the paid-PoC evidence/Gitea flow → enterprise deployment and +operations controls → independent review → production readiness. Reuse the existing +blocks above instead of re-writing them. See +[`EDITION_FEATURE_LIMITATION_MATRIX.md`](../../docs/packaging/EDITION_FEATURE_LIMITATION_MATRIX.md). diff --git a/packages/casan-harness/scripts/bash/ci-harness-gate.sh b/packages/casan-harness/scripts/bash/ci-harness-gate.sh index 9356423..4bb4e70 100755 --- a/packages/casan-harness/scripts/bash/ci-harness-gate.sh +++ b/packages/casan-harness/scripts/bash/ci-harness-gate.sh @@ -7,6 +7,7 @@ set -uo pipefail # # Env: # CASAN_CI_RUN_FRONTEND=0|1 default 1 +# CASAN_CI_RUN_CONTROL_PANEL=0|1 default 1 # CASAN_CI_RUN_INFRA_LAB=0|1 default 0 (Docker Compose lab is optional in CI) # CASAN_CI_STEP_TIMEOUT_SEC default 600 # CASAN_CI_SUITE_FILTER optional regex; run matching suite names only @@ -188,6 +189,17 @@ else skip "frontend-vitest (CASAN_CI_RUN_FRONTEND=0)" fi +if [[ "${CASAN_CI_RUN_CONTROL_PANEL:-1}" == "1" ]]; then + if command -v npm >/dev/null 2>&1; then + run "control-panel-tests" npm run console:test + run "control-panel-build" npm run console:build + else + skip "control-panel-tests/build (npm unavailable)" + fi +else + skip "control-panel-tests/build (CASAN_CI_RUN_CONTROL_PANEL=0)" +fi + if [[ "${CASAN_CI_RUN_INFRA_LAB:-0}" == "1" ]]; then if command -v docker >/dev/null 2>&1 && docker compose version >/dev/null 2>&1; then run "local-prod-infra-lab" bash "$TESTS/phase-prod-infra-lab-tests.sh" diff --git a/packages/casan-harness/scripts/bash/goal-orchestrator.py b/packages/casan-harness/scripts/bash/goal-orchestrator.py index 9409104..15fdf40 100644 --- a/packages/casan-harness/scripts/bash/goal-orchestrator.py +++ b/packages/casan-harness/scripts/bash/goal-orchestrator.py @@ -267,6 +267,16 @@ def extract_patch(text: str) -> str: return patch +def validate_write_output(text: str) -> str: + """Fail at the producing harness when a write-intent reply is not a diff. + + Keeping this separate from storage avoids creating an artifact before the + reviewer has completed, while ensuring H2/H3 accurately identify a model + that violated the required output contract. + """ + return extract_patch(text) + + def validate_and_store_patch(job_path: str, job: dict, patch: str) -> dict: roots = [str(value).strip("/") for value in job.get("workspace", {}).get("context_roots", [])] changed = [] @@ -640,6 +650,14 @@ def run(job_path: str) -> int: if not allowed: emit(goal_id, "H4-security", "blocked", "Local worker output rejected") raise ValueError("local_output_security_blocked") + if write_intent: + try: + validate_write_output(safe_local) + except ValueError as error: + reason = str(error) + stage(job_path, "local-worker", "error", reason, job.get("local_provider", ""), local_model) + emit(goal_id, "H2-tool", "error", "Local worker violated patch output contract", {"reason": reason}) + raise stage(job_path, "local-worker", "pass", "Primary solution prepared", job.get("local_provider", ""), local_model) update_job(job_path, local_draft=safe_local, local_usage=local_meta) emit(goal_id, "H2-tool", "pass", "Local solution prepared", {"provider": job.get("local_provider", ""), "model": local_model, **local_meta}) @@ -670,10 +688,23 @@ def run(job_path: str) -> int: if not allowed: emit(goal_id, "H4-security", "blocked", "Cloud reviewer output rejected") raise ValueError("cloud_output_security_blocked") - stage(job_path, "cloud-reviewer", "pass", "Independent review incorporated", reviewer_provider, reviewer_model) - emit(goal_id, "H3-eval", "pass", "Independent review incorporated", {"provider": reviewer_provider, "model": reviewer_model, **cloud_meta}) - final_status = "completed" - metric_status = "success" + if write_intent: + try: + validate_write_output(safe_result) + except ValueError as error: + cloud_ok = False + cloud_reason = f"reviewer_output_contract_invalid:{error}" + if cloud_ok: + stage(job_path, "cloud-reviewer", "pass", "Independent review incorporated", reviewer_provider, reviewer_model) + emit(goal_id, "H3-eval", "pass", "Independent review incorporated", {"provider": reviewer_provider, "model": reviewer_model, **cloud_meta}) + final_status = "completed" + metric_status = "success" + else: + safe_result = safe_local + stage(job_path, "cloud-reviewer", "warning", cloud_reason, reviewer_provider, reviewer_model) + emit(goal_id, "H3-eval", "warning", "Cloud reviewer output contract rejected; local solution retained", {"reason": cloud_reason}) + final_status = "degraded" + metric_status = "degraded" else: safe_result = safe_local stage(job_path, "cloud-reviewer", "warning", cloud_reason, reviewer_provider, reviewer_model) diff --git a/packages/casan-platform/README.md b/packages/casan-platform/README.md index 281ceff..b87bdd2 100644 --- a/packages/casan-platform/README.md +++ b/packages/casan-platform/README.md @@ -3,7 +3,8 @@ > Status: **PREVIEW.** The AgentOps dashboard and Plan-13 Control Panel, including > Command Center baseline and Plan-18 MVP-0/1 Chat Console plus MVP-2 agent > selection and Operator loop/draft-hold foundation, exist today. -> Evidence/attack viewers, Gitea integration, and managed production rollout remain +> The Evidence Pack Viewer is now included. Attack Battery Viewer, Gitea evidence +> publishing, and managed production rollout remain > planned. `package-release.sh platform` builds a clearly-stamped > `casan-platform-preview-*` bundle containing only what exists. @@ -17,11 +18,14 @@ Optional layer for teams that want UI / dashboard / visibility. Packages: `casan | **Ops Console (Control Panel)** | ✅ **monitoring + governed settings + HITL + kill-switch + FinOps/SLO + Command Center + Chat MVP-0/1 + agent selection foundation + local-prod TLS/OIDC smoke** | `packages/casan-control-panel/` — NestJS API + React UI over harness telemetry, settings management, approval inbox, kill-switch, FinOps/SLO, Command Center, Ask CASAN read-only, registered Operator actions, and governed agent/skill selection (`npm run console:api` + `console:ui`). Includes Run History + verdicts + governance + security + incidents + traceability + FinOps + Approvals + role-aware Settings page + `/command` evidence-backed executive view + `/chat` governed read-only/operator console. | | Management / settings writes | ✅ done+test | Plan-13 Track 2: wraps `control-plane-settings.py`, calls `rbac-check.py`, supports set/rollback/audit verify. | | RBAC + approval inbox | ✅ local-prod done | Settings + kill-switch API RBAC enforcement, approval inbox/delegation/oversight, SoD, governed setting proposal apply, and local OIDC claim→role mapping smoke are done. Enterprise IdP rollout remains production follow-up. | -| Evidence Pack Viewer | 📋 planned | reads `docs/output/casan/evidence-packs/` | +| Evidence Pack Viewer | ✅ included | `/evidence-packs` verifies and presents the on-disk manifest, certification reasons, H1–H7 reports, hashes and decision log. | | Attack Battery Viewer | 📋 planned | reads red-team corpus + H4 recall results | | Read-only Ask CASAN + Operator/CODEGEN + agent selection + loop-hold + replay/widget/approvals + tenant hardening | ✅ MVP-0/1/2/3 done+test | Plan-18: `POST /api/v1/chat/ask`, `GET /api/v1/chat/actions`, `GET /api/v1/chat/agents`, `GET /api/v1/chat/replay`, Command Center `chat_loop` widget, chat escalation into `/approvals`, tenant-scoped replay, `/chat` + `/command`, backed by harness `chat-turn.py`, `chat-agent-resolver.py`, `chat-replay.py`, `approval-inbox.py`, `artifact-scan.sh`, `tenant-store.sh`, `tenant-crypt.sh`, and Plan-17 `loop-run.sh` | | Gitea webhook integration | 📋 planned | trigger gate / publish evidence on push | +The authoritative customer-claim boundary is the +[`EDITION_FEATURE_LIMITATION_MATRIX.md`](../../docs/packaging/EDITION_FEATURE_LIMITATION_MATRIX.md). + ## Build (preview) ```bash scripts/package-release.sh platform # → dist/casan-platform-preview-vX.Y.Z.tar.gz diff --git a/packaging/levels.json b/packaging/levels.json index 32e5be7..0888551 100644 --- a/packaging/levels.json +++ b/packaging/levels.json @@ -50,15 +50,37 @@ "level": 3, "package_names": ["casan-platform", "casan-control-panel"], "status": "preview", - "summary": "Optional productization UI: Control Panel, Dashboard, Evidence/Attack/Run-History viewers, read-only Ask CASAN, Gitea webhook. AgentOps dashboard and Plan-13 Control Panel Track 1/2/3 plus FinOps/SLO management, Command Center baseline, and local-prod TLS/OIDC smoke exist today; the rest is preview/planned.", + "summary": "Optional productization UI: packaged Control Panel, AgentOps dashboard, Run History, governed settings, approvals, kill-switch, FinOps/SLO, Command Center, Governed Chat MVP and Evidence Pack Viewer. Attack Battery Viewer, Gitea webhook publishing and managed production rollout remain preview work.", "target_users": ["teams wanting UI/dashboard/visibility", "demo/training/productization"], "extends": "devkit", - "implemented_components": ["agentops-dashboard (packages/casan-harness/scripts/bash/dashboard-server.py + dashboard-serve.sh)", "Ops Console monitoring + governed settings + approval inbox + kill-switch + FinOps/SLO + Command Center + local-prod TLS/OIDC smoke (packages/casan-control-panel — NestJS API + React UI, Plan-13 Track 1/2/3/4 local-prod + §8.6)"], - "pending_components": ["managed production deploy with enterprise IdP/cert/host (Plan-13 Track 4 / Plan-07 T2)", "evidence-pack-viewer", "attack-battery-viewer", "gitea-webhook-integration", "read-only Ask CASAN (Plan-18 MVP-0)"], + "implemented_components": ["agentops-dashboard", "control-panel monitoring and run history", "governed settings and rollback", "RBAC and approval inbox", "kill-switch", "FinOps/SLO", "Command Center", "Governed Chat read-only/analysis/operator/codegen MVP", "agent/skill/model selection", "Evidence Pack Viewer", "local-prod TLS/OIDC smoke"], + "pending_components": ["managed production deploy with enterprise IdP/cert/host", "attack-battery-viewer", "gitea-webhook evidence publishing"], "includes": [ "packages/casan-platform", + "packages/casan-control-panel", "packages/casan-harness/scripts/bash/dashboard-server.py", - "packages/casan-harness/scripts/bash/dashboard-serve.sh" + "packages/casan-harness/scripts/bash/dashboard-serve.sh", + "package.json", + "package-lock.json", + "Dockerfile.control-panel-api", + "Dockerfile.control-panel-ui", + "docker-compose.control-panel.yml", + "docker-compose.control-panel.local.yml", + "nginx/control-panel.conf", + "packaging/control-panel-oauth2-proxy.env.example", + "infra/local-prod/idp", + "infra/production", + "docs/security/CONTROL_PANEL_AUTH_HARDENING.md", + "docs/packaging/EDITION_FEATURE_LIMITATION_MATRIX.md", + "docs/jp-poc", + "docs/commercial/LICENSE_AND_IP_DECISION.md", + "docs/commercial/THIRD_PARTY_SOFTWARE.json", + "docs/technical_architecture.md", + "apps/okr/domain", + "apps/okr/frontend", + "apps/okr/backend", + "apps/service-desk", + "scripts/smoke-release-artifact.sh" ], "artifact": "casan-platform-preview-v{VERSION}.tar.gz", "docker_image": "casan-platform:{VERSION} (preview)" @@ -67,7 +89,7 @@ "level": 4, "package_names": ["casan-enterprise", "casan-governed-console"], "status": "future", - "summary": "Governed Chat Console, Prompt Mode Router, Model Provider Management, Operator/Codegen modes, Agent/Skill Registry, RBAC, approval workflow, tenant isolation, KMS/WORM, policy versioning.", + "summary": "Enterprise promotion layer for the already implemented governed console building blocks. The edition remains future until managed deployment, lifecycle operations, legal/compliance deliverables and enterprise support controls are verified.", "target_users": ["enterprise/internal platform", "multi-project governance", "official governed AI-SDLC console"], "extends": "platform", "implemented_components": [ @@ -76,9 +98,12 @@ "approval workflow (approval-verify.sh/approval-sign.sh/approval-jwt-mint.py)", "KMS (vault-kms.sh)", "WORM (worm-ledger.py)", - "kill-switch (kill-switch.sh)" + "kill-switch (kill-switch.sh)", + "Governed Chat/Prompt Router/Operator/Codegen MVP (packaged in Platform preview)", + "Agent/Skill/Model selection MVP (packaged in Platform preview)", + "Evidence Pack Viewer (packaged in Platform preview)" ], - "pending_components": ["governed-chat-console", "prompt-mode-router", "model-provider-management", "operator-mode", "codegen-mode", "agent-skill-registry", "policy-versioning-ui"], + "pending_components": ["managed enterprise deployment evidence", "policy-versioning UI", "HA/DR/SLA", "external security assessment", "commercial support and compliance pack"], "includes": ["packages/casan-enterprise"], "artifact": "casan-enterprise-preview-v{VERSION}.tar.gz", "docker_image": "casan-enterprise:{VERSION} (future)" diff --git a/scripts/generate-license-inventory.mjs b/scripts/generate-license-inventory.mjs new file mode 100644 index 0000000..e3e0ebb --- /dev/null +++ b/scripts/generate-license-inventory.mjs @@ -0,0 +1,48 @@ +#!/usr/bin/env node +// Generate a reproducible third-party inventory from the committed npm lockfile. +// This is an inventory, not legal advice; every release must regenerate and review it. +import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs'; +import { dirname, resolve } from 'node:path'; + +const [output = 'docs/commercial/THIRD_PARTY_SOFTWARE.json'] = process.argv.slice(2); +const lock = JSON.parse(readFileSync('package-lock.json', 'utf8')); +const exceptionsPath = 'docs/commercial/LICENSE_EXCEPTIONS.json'; +const exceptions = existsSync(exceptionsPath) ? JSON.parse(readFileSync(exceptionsPath, 'utf8')).exceptions ?? {} : {}; +const workspaceLicenses = new Map(Object.entries(lock.packages ?? {}) + .filter(([path, value]) => path && !path.startsWith('node_modules/') && value && typeof value === 'object' && typeof value.name === 'string') + .map(([, value]) => [value.name, typeof value.license === 'string' ? value.license : 'UNKNOWN'])); +const rows = Object.entries(lock.packages ?? {}) + .filter(([path, value]) => path.startsWith('node_modules/') && value && typeof value === 'object') + .map(([path, value]) => { + const name = path.slice('node_modules/'.length); + const key = `${name}@${String(value.version ?? 'unknown')}`; + const declared = typeof value.license === 'string' ? value.license : (workspaceLicenses.get(name) ?? 'UNKNOWN'); + const exception = exceptions[key]; + return { + name, + version: String(value.version ?? 'unknown'), + declared_license: declared, + license: typeof exception?.reviewed_license === 'string' ? exception.reviewed_license : declared, + review_evidence: typeof exception?.evidence === 'string' ? exception.evidence : null, + resolved: typeof value.resolved === 'string' ? value.resolved : null, + integrity: typeof value.integrity === 'string' ? value.integrity : null, + }; + }) + .sort((a, b) => a.name.localeCompare(b.name)); + +const licenses = {}; +for (const row of rows) licenses[row.license] = (licenses[row.license] ?? 0) + 1; +const inventory = { + schema_version: '1.0', + generated_from: 'package-lock.json', + generated_at: new Date().toISOString(), + scope: 'npm dependencies recorded in the root lockfile; Python, container base images, model and dataset licenses require separate release review.', + exceptions_source: existsSync(exceptionsPath) ? exceptionsPath : null, + package_count: rows.length, + licenses, + packages: rows, +}; +const destination = resolve(output); +mkdirSync(dirname(destination), { recursive: true }); +writeFileSync(destination, `${JSON.stringify(inventory, null, 2)}\n`); +console.log(`LICENSE_INVENTORY_CREATED path=${output} packages=${rows.length} licenses=${Object.keys(licenses).length}`); diff --git a/scripts/smoke-release-artifact.sh b/scripts/smoke-release-artifact.sh new file mode 100755 index 0000000..875f7c1 --- /dev/null +++ b/scripts/smoke-release-artifact.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Smoke the release exactly as a customer receives it. This intentionally +# extracts into a fresh directory and never resolves files from the source tree. +# +# Usage: scripts/smoke-release-artifact.sh dist/casan--vX.Y.Z.tar.gz +# Env: CASAN_ARTIFACT_SMOKE_RUN_TESTS=1 # platform: npm ci + tests + build + +ARCHIVE="${1:-}" +[[ -n "$ARCHIVE" && -f "$ARCHIVE" ]] || { + echo "ARTIFACT_SMOKE_FAIL reason=archive_missing path=${ARCHIVE:-unset}" >&2 + exit 64 +} +ARCHIVE="$(cd "$(dirname "$ARCHIVE")" && pwd)/$(basename "$ARCHIVE")" + +WORK="$(mktemp -d)" +cleanup() { rm -rf "$WORK"; } +trap cleanup EXIT + +tar -xzf "$ARCHIVE" -C "$WORK" +roots=() +while IFS= read -r directory; do + roots+=("$directory") +done < <(find "$WORK" -mindepth 1 -maxdepth 1 -type d -print) +[[ "${#roots[@]}" -eq 1 ]] || { + echo "ARTIFACT_SMOKE_FAIL reason=unexpected_root_count count=${#roots[@]}" >&2 + exit 1 +} +ROOT="${roots[0]}" + +required=(BUNDLE-MANIFEST.txt SHA256SUMS VERSION bin/casan packages/casan-harness) +for path in "${required[@]}"; do + [[ -e "$ROOT/$path" ]] || { + echo "ARTIFACT_SMOKE_FAIL reason=required_path_missing path=$path" >&2 + exit 1 + } +done + +(cd "$ROOT" && shasum -a 256 -c SHA256SUMS >/dev/null) +VERSION="$(tr -d '[:space:]' < "$ROOT/VERSION")" +CLI_VERSION="$(cd "$ROOT" && ./bin/casan version)" +[[ "$CLI_VERSION" == "casan $VERSION" ]] || { + echo "ARTIFACT_SMOKE_FAIL reason=cli_version_mismatch expected=$VERSION actual=$CLI_VERSION" >&2 + exit 1 +} +(cd "$ROOT" && ./bin/casan help >/dev/null) + +STATUS="$(awk '/^status:/ {print $2}' "$ROOT/BUNDLE-MANIFEST.txt")" +BUNDLE="$(awk '/^bundle:/ {print $2}' "$ROOT/BUNDLE-MANIFEST.txt")" + +if [[ "$BUNDLE" == "platform" ]]; then + platform_required=( + packages/casan-control-panel/backend/package.json + packages/casan-control-panel/frontend/package.json + Dockerfile.control-panel-api + Dockerfile.control-panel-ui + docker-compose.control-panel.yml + docker-compose.control-panel.local.yml + nginx/control-panel.conf + infra/production/README.md + docs/security/CONTROL_PANEL_AUTH_HARDENING.md + ) + for path in "${platform_required[@]}"; do + [[ -e "$ROOT/$path" ]] || { + echo "ARTIFACT_SMOKE_FAIL reason=platform_path_missing path=$path" >&2 + exit 1 + } + done + [[ -f "$ROOT/PREVIEW-INCOMPLETE.txt" ]] || { + echo "ARTIFACT_SMOKE_FAIL reason=preview_marker_missing" >&2 + exit 1 + } + + if [[ "${CASAN_ARTIFACT_SMOKE_RUN_TESTS:-0}" == "1" ]]; then + command -v npm >/dev/null 2>&1 || { + echo "ARTIFACT_SMOKE_FAIL reason=npm_missing" >&2 + exit 1 + } + (cd "$ROOT" && npm ci && npm run console:test && npm run console:build) + fi +fi + +echo "ARTIFACT_SMOKE_PASS bundle=$BUNDLE status=$STATUS version=$VERSION extracted=true checksums=true"