diff --git a/.github.bk/angular-auth-logo.png b/.github.bk/angular-auth-logo.png deleted file mode 100644 index 47d081e..0000000 Binary files a/.github.bk/angular-auth-logo.png and /dev/null differ diff --git a/.github.bk/angular-auth-oidc-client-schematics-720.gif b/.github.bk/angular-auth-oidc-client-schematics-720.gif deleted file mode 100644 index 3e7cd70..0000000 Binary files a/.github.bk/angular-auth-oidc-client-schematics-720.gif and /dev/null differ diff --git a/.github.bk/workflows/build.yml b/.github.bk/workflows/build.yml deleted file mode 100644 index db1c66a..0000000 --- a/.github.bk/workflows/build.yml +++ /dev/null @@ -1,265 +0,0 @@ -name: Build, Lint & Test Lib - -on: - push: - branches: - - main - pull_request: - types: [opened, synchronize, reopened, closed] - branches: - - main - -jobs: - build_job: - if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') - runs-on: ubuntu-latest - name: Built, Lint and Test Library - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 20 - - - name: Installing Dependencies - run: npm ci - - - name: Linting Library - run: npm run lint-lib - - - name: Testing Frontend - run: npm run test-lib-ci - - - name: Coveralls - uses: coverallsapp/github-action@master - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - path-to-lcov: './coverage/oidc-client-rx/lcov.info' - - - name: Coveralls Finished - uses: coverallsapp/github-action@master - with: - github-token: ${{ secrets.github_token }} - parallel-finished: true - - - name: Building Frontend - run: npm run build-lib-prod - - - name: Copying essential additional files - run: npm run copy-files - - - name: Show files - run: ls - - - name: Upload Artefact - uses: actions/upload-artifact@v3 - with: - name: angular_auth_oidc_client_artefact - path: dist/oidc-client-rx - - AngularLatestVersion: - needs: build_job - runs-on: ubuntu-latest - name: Angular latest - steps: - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 20 - - - name: Download Artefact - uses: actions/download-artifact@v3 - with: - name: angular_auth_oidc_client_artefact - path: oidc-client-rx-artefact - - - name: Install AngularCLI globally - run: sudo npm install -g @angular/cli - - - name: Show ng Version - run: ng version - - - name: Create Angular Project - run: sudo ng new oidc-client-rx-test --skip-git - - - name: Npm Install & Install Library from local artefact - run: | - sudo cp -R oidc-client-rx-artefact oidc-client-rx-test/ - cd oidc-client-rx-test - sudo npm install --unsafe-perm=true - sudo ng add ./oidc-client-rx-artefact --authority-url-or-tenant-id "my-authority-url" --flow-type "OIDC Code Flow PKCE using refresh tokens" --use-local-package=true --skip-confirmation - - - name: Test Angular Application - working-directory: ./oidc-client-rx-test - run: npm test -- --watch=false --browsers=ChromeHeadless - - - name: Build Angular Application - working-directory: ./oidc-client-rx-test - run: sudo npm run build - - AngularLatestVersionWithSchematics: - needs: build_job - runs-on: ubuntu-latest - name: Angular latest & Schematics Job - steps: - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 20 - - - name: Download Artefact - uses: actions/download-artifact@v3 - with: - name: angular_auth_oidc_client_artefact - path: oidc-client-rx-artefact - - - name: Install AngularCLI globally - run: sudo npm install -g @angular/cli - - - name: Show ng Version - run: ng version - - - name: Create Angular Project - run: sudo ng new oidc-client-rx-test --skip-git - - - name: Npm Install & Install Library from local artefact - run: | - sudo cp -R oidc-client-rx-artefact oidc-client-rx-test/ - cd oidc-client-rx-test - sudo npm install --unsafe-perm=true - sudo ng add ./oidc-client-rx-artefact --authority-url-or-tenant-id "my-authority-url" --flow-type "Default config" --use-local-package=true --skip-confirmation - - - name: Test Angular Application - working-directory: ./oidc-client-rx-test - run: npm test -- --watch=false --browsers=ChromeHeadless - - - name: Build Angular Application - working-directory: ./oidc-client-rx-test - run: sudo npm run build - - AngularLatestVersionWithNgModuleSchematics: - needs: build_job - runs-on: ubuntu-latest - name: Angular latest Standalone & Schematics Job - steps: - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 20 - - - name: Download Artefact - uses: actions/download-artifact@v3 - with: - name: angular_auth_oidc_client_artefact - path: oidc-client-rx-artefact - - - name: Install AngularCLI globally - run: sudo npm install -g @angular/cli - - - name: Show ng Version - run: ng version - - - name: Create Angular Project - run: sudo ng new oidc-client-rx-test --skip-git --standalone=false - - - name: Npm Install & Install Library from local artefact - run: | - sudo cp -R oidc-client-rx-artefact oidc-client-rx-test/ - cd oidc-client-rx-test - sudo npm install --unsafe-perm=true - sudo ng add ./oidc-client-rx-artefact --authority-url-or-tenant-id "my-authority-url" --flow-type "OIDC Code Flow PKCE using refresh tokens" --use-local-package=true --skip-confirmation - - - name: Test Angular Application - working-directory: ./oidc-client-rx-test - run: npm test -- --watch=false --browsers=ChromeHeadless - - - name: Build Angular Application - working-directory: ./oidc-client-rx-test - run: sudo npm run build - - Angular16VersionWithRxJs6: - needs: build_job - runs-on: ubuntu-latest - name: Angular 16 & RxJs 6 - steps: - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 20 - - - name: Download Artefact - uses: actions/download-artifact@v3 - with: - name: angular_auth_oidc_client_artefact - path: oidc-client-rx-artefact - - - name: Install AngularCLI globally - run: sudo npm install -g @angular/cli@16 - - - name: Show ng Version - run: ng version - - - name: Create Angular Project - run: sudo ng new oidc-client-rx-test --skip-git - - - name: npm install RxJs 6 - working-directory: ./oidc-client-rx-test - run: sudo npm install rxjs@6.5.3 - - - name: Npm Install & Install Library from local artefact - run: | - sudo cp -R oidc-client-rx-artefact oidc-client-rx-test/ - cd oidc-client-rx-test - sudo npm install --unsafe-perm=true - sudo ng add ./oidc-client-rx-artefact --authority-url-or-tenant-id "my-authority-url" --flow-type "OIDC Code Flow PKCE using refresh tokens" --use-local-package=true --skip-confirmation - - - name: Test Angular Application - working-directory: ./oidc-client-rx-test - run: npm test -- --watch=false --browsers=ChromeHeadless - - - name: Build Angular Application - working-directory: ./oidc-client-rx-test - run: sudo npm run build - - LibWithAngularV16: - needs: build_job - runs-on: ubuntu-latest - name: Angular V16 - steps: - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 18 - - - name: Download Artefact - uses: actions/download-artifact@v3 - with: - name: angular_auth_oidc_client_artefact - path: oidc-client-rx-artefact - - - name: Install AngularCLI globally - run: sudo npm install -g @angular/cli@16 - - - name: Show ng Version - run: ng version - - - name: Create Angular Project - run: sudo ng new oidc-client-rx-test --skip-git - - - name: Npm Install & Install Library from local artefact - run: | - sudo cp -R oidc-client-rx-artefact oidc-client-rx-test/ - cd oidc-client-rx-test - sudo npm install --unsafe-perm=true - sudo ng add ./oidc-client-rx-artefact --authority-url-or-tenant-id "my-authority-url" --flow-type "OIDC Code Flow PKCE using refresh tokens" --use-local-package=true --skip-confirmation - - - name: Test Angular Application - working-directory: ./oidc-client-rx-test - run: npm test -- --watch=false --browsers=ChromeHeadless - - - name: Build Angular Application - working-directory: ./oidc-client-rx-test - run: sudo npm run build diff --git a/.github.bk/workflows/deploy-docs.yml b/.github.bk/workflows/deploy-docs.yml deleted file mode 100644 index 73afc4d..0000000 --- a/.github.bk/workflows/deploy-docs.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: Docs - -on: - push: - branches: - - main - pull_request: - types: [opened, synchronize, reopened, closed] - branches: - - main - -jobs: - build_and_deploy_job: - if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') - runs-on: ubuntu-latest - name: Build and Deploy Docs Job - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - - name: Setup Node.js - uses: actions/setup-node@v1 - with: - node-version: 18 - - - name: Installing Dependencies - run: sudo npm install - - - name: Installing Dependencies for docs - in docs folder - run: sudo npm install - working-directory: docs/site/oidc-client-rx - - - name: Building Documentation - run: sudo npm run build - working-directory: docs/site/oidc-client-rx - - - name: Build And Deploy - if: ${{ github.actor == 'damienbod' || github.actor == 'FabianGosebrink' }} - id: builddeploy - uses: Azure/static-web-apps-deploy@v1 - with: - azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }} - repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) - action: 'upload' - ###### Repository/Build Configurations - These values can be configured to match you app requirements. ###### - app_location: '/docs/site/oidc-client-rx' # App source code path - app_artifact_location: 'build' # Built app content directory - optional - ###### End of Repository/Build Configurations ###### - - close_pull_request_job: - if: github.event_name == 'pull_request' && github.event.action == 'closed' - runs-on: ubuntu-latest - name: Close Pull Request Job - steps: - - name: Close Pull Request - id: closepullrequest - uses: Azure/static-web-apps-deploy@v1 - with: - azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }} - action: 'close' diff --git a/.github.bk/workflows/playwright.yml b/.github.bk/workflows/playwright.yml deleted file mode 100644 index 8116248..0000000 --- a/.github.bk/workflows/playwright.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Playwright Tests -on: - push: - branches: [ main, master ] - pull_request: - branches: [ main, master ] -jobs: - test: - timeout-minutes: 60 - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: lts/* - - name: Install dependencies - run: npm install -g pnpm && pnpm install - - name: Install Playwright Browsers - run: pnpm exec playwright install --with-deps - - name: Run Playwright tests - run: pnpm exec playwright test - - uses: actions/upload-artifact@v4 - if: ${{ !cancelled() }} - with: - name: playwright-report - path: playwright-report/ - retention-days: 30 diff --git a/.github.bk/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml similarity index 100% rename from .github.bk/ISSUE_TEMPLATE/bug_report.yaml rename to .github/ISSUE_TEMPLATE/bug_report.yaml diff --git a/.github.bk/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md similarity index 100% rename from .github.bk/ISSUE_TEMPLATE/feature_request.md rename to .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github.bk/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md similarity index 100% rename from .github.bk/ISSUE_TEMPLATE/question.md rename to .github/ISSUE_TEMPLATE/question.md diff --git a/.github.bk/ISSUE_TEMPLATE/refactoring.md b/.github/ISSUE_TEMPLATE/refactoring.md similarity index 100% rename from .github.bk/ISSUE_TEMPLATE/refactoring.md rename to .github/ISSUE_TEMPLATE/refactoring.md diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..2dba1ab --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,55 @@ +name: Build, Lint & Test Lib + +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - main + workflow_dispatch: + +jobs: + build_job: + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Build, Lint and Test Library + steps: + - name: Check Permissions When Workflow Dispatch + id: check_admin + + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node and Install Dependencies + uses: pnpm/action-setup@v4 + with: + version: 10 + run_install: | + - recursive: true + args: [--frozen-lockfile] + with: + node-version: 22 + + - name: Linting Library + run: npm run lint + + - name: Testing Frontend + run: npm run test-ci + + - name: 'Report Coverage' + if: always() + uses: davelosert/vitest-coverage-report-action@v2 + + - name: Building Frontend + run: npm run build + + - name: Show files + run: ls + + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: oidc_client_rx_artifact + path: dist diff --git a/.gitignore b/.gitignore index 0911462..8d90120 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # compiled output /dist +**/dist /tmp /out-tsc # Only exists if Bazel was run @@ -45,7 +46,6 @@ testem.log .DS_Store Thumbs.db -/.angulardoc.json debug.log /.husky @@ -55,3 +55,5 @@ debug.log /blob-report/ /playwright/.cache/ /.vitest +/.rslib +**/*.tsbuildinfo diff --git a/README.md b/README.md index 148dc8f..e2aebe8 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ OUTPOSTS
OIDC-CLIENT-RX
+ build-status status-badge
@@ -10,7 +11,17 @@ ## Quick Start -@TODO Coming Soon +@TODO Add More Detailed Informations + +```sh +# or yarn/npm +pnpm install oidc-client-rx +``` + +```ts +import {} from '' +``` + ## License diff --git a/biome.jsonc b/biome.jsonc index 9b81888..09b9fac 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -6,7 +6,7 @@ "style": { "noNonNullAssertion": "off", "noParameterAssign": "off", - "useFilenamingConvention": "warn", + "useFilenamingConvention": "off", "noParameterProperties": "off" }, "suspicious": { diff --git a/examples/react-tanstack-router/.gitignore b/examples/react-tanstack-router/.gitignore new file mode 100644 index 0000000..38d7344 --- /dev/null +++ b/examples/react-tanstack-router/.gitignore @@ -0,0 +1,13 @@ +# Local +.DS_Store +*.local +*.log* + +# Dist +node_modules +dist/ + +# IDE +.vscode/* +!.vscode/extensions.json +.idea diff --git a/examples/react-tanstack-router/README.md b/examples/react-tanstack-router/README.md new file mode 100644 index 0000000..5fc0306 --- /dev/null +++ b/examples/react-tanstack-router/README.md @@ -0,0 +1,29 @@ +# Rsbuild project + +## Setup + +Install the dependencies: + +```bash +pnpm install +``` + +## Get started + +Start the dev server: + +```bash +pnpm dev +``` + +Build the app for production: + +```bash +pnpm build +``` + +Preview the production build locally: + +```bash +pnpm preview +``` diff --git a/examples/react-tanstack-router/package.json b/examples/react-tanstack-router/package.json new file mode 100644 index 0000000..bd72b08 --- /dev/null +++ b/examples/react-tanstack-router/package.json @@ -0,0 +1,23 @@ +{ + "name": "react-tanstack-router", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "rsbuild dev", + "build": "rsbuild build", + "preview": "rsbuild preview" + }, + "dependencies": { + "@tanstack/react-router": "^1.99.6", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@rsbuild/core": "^1.2.3", + "@rsbuild/plugin-react": "^1.1.0", + "@types/react": "^19.0.8", + "@types/react-dom": "^19.0.3", + "oidc-client-rx": "workspace:*", + "typescript": "^5.7.3" + } +} diff --git a/examples/react-tanstack-router/public/.gitkeep b/examples/react-tanstack-router/public/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/examples/react-tanstack-router/rsbuild.config.ts b/examples/react-tanstack-router/rsbuild.config.ts new file mode 100644 index 0000000..c9962d3 --- /dev/null +++ b/examples/react-tanstack-router/rsbuild.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from '@rsbuild/core'; +import { pluginReact } from '@rsbuild/plugin-react'; + +export default defineConfig({ + plugins: [pluginReact()], +}); diff --git a/examples/react-tanstack-router/src/App.css b/examples/react-tanstack-router/src/App.css new file mode 100644 index 0000000..164c0a6 --- /dev/null +++ b/examples/react-tanstack-router/src/App.css @@ -0,0 +1,26 @@ +body { + margin: 0; + color: #fff; + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + background-image: linear-gradient(to bottom, #020917, #101725); +} + +.content { + display: flex; + min-height: 100vh; + line-height: 1.1; + text-align: center; + flex-direction: column; + justify-content: center; +} + +.content h1 { + font-size: 3.6rem; + font-weight: 700; +} + +.content p { + font-size: 1.2rem; + font-weight: 400; + opacity: 0.5; +} diff --git a/examples/react-tanstack-router/src/App.tsx b/examples/react-tanstack-router/src/App.tsx new file mode 100644 index 0000000..f385ec1 --- /dev/null +++ b/examples/react-tanstack-router/src/App.tsx @@ -0,0 +1,15 @@ +import { useOidcClient } from 'oidc-client-rx/adapters/react'; +import './App.css'; + +const App = () => { + const { oidcSecurityService } = useOidcClient(); + + return ( +
+

Rsbuild with React

+

Start building amazing things with Rsbuild.

+
+ ); +}; + +export default App; diff --git a/examples/react-tanstack-router/src/env.d.ts b/examples/react-tanstack-router/src/env.d.ts new file mode 100644 index 0000000..b0ac762 --- /dev/null +++ b/examples/react-tanstack-router/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/react-tanstack-router/src/index.tsx b/examples/react-tanstack-router/src/index.tsx new file mode 100644 index 0000000..edb2327 --- /dev/null +++ b/examples/react-tanstack-router/src/index.tsx @@ -0,0 +1,40 @@ +import { type Injector, ReflectiveInjector } from '@outposts/injection-js'; +import { LogLevel, OidcSecurityService, provideAuth } from 'oidc-client-rx'; +import { InjectorProvider } from 'oidc-client-rx/adapters/react'; +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; + +const rootEl = document.getElementById('root'); + +if (rootEl) { + const injector = ReflectiveInjector.resolveAndCreate( + provideAuth({ + config: { + authority: '', + redirectUrl: window.location.origin, + postLogoutRedirectUri: window.location.origin, + clientId: '', + scope: 'openid profile email offline_access', + responseType: 'code', + silentRenew: true, + useRefreshToken: true, + logLevel: LogLevel.Debug, + }, + }) + ) as Injector; + + // if needed, check when init + const oidcSecurityService = injector.get(OidcSecurityService); + oidcSecurityService.checkAuthMultiple(); + + const root = ReactDOM.createRoot(rootEl); + + root.render( + + + + + + ); +} diff --git a/examples/react-tanstack-router/tsconfig.json b/examples/react-tanstack-router/tsconfig.json new file mode 100644 index 0000000..c174f06 --- /dev/null +++ b/examples/react-tanstack-router/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "composite": true, + "rootDir": ".", + "lib": ["ES2021", "DOM", "DOM.Iterable"], + "useDefineForClassFields": true, + "resolveJsonModule": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "emitDeclarationOnly": true, + "noEmit": true, + "outDir": "./dist", + "declarationDir": "./dist", + "jsx": "preserve" + }, + "include": ["src"] +} diff --git a/lefthook.yml b/lefthook.yml deleted file mode 100644 index cfcc968..0000000 --- a/lefthook.yml +++ /dev/null @@ -1,41 +0,0 @@ -# EXAMPLE USAGE -# Refer for explanation to following link: -# https://github.com/evilmartians/lefthook/blob/master/docs/full_guide.md -# -pre-push: - commands: - fix-prettier: - tags: frontend security - glob: '*.{js,ts}' - run: npm run fix-prettier {staged_files} - -pre-commit: - parallel: true - commands: - check-blockwords: - run: npm run check-blockwords - - lint: - run: npm run lint-lib -# -# pre-commit: -# parallel: true -# commands: -# eslint: -# glob: "*.{js,ts}" -# run: yarn eslint {staged_files} -# rubocop: -# tags: backend style -# glob: "*.rb" -# exclude: "application.rb|routes.rb" -# run: bundle exec rubocop --force-exclusion {all_files} -# govet: -# tags: backend style -# files: git ls-files -m -# glob: "*.go" -# run: go vet {files} -# scripts: -# "hello.js": -# runner: node -# "any.go": -# runner: go run diff --git a/license-banner.txt b/license-banner.txt deleted file mode 100644 index 62a24bb..0000000 --- a/license-banner.txt +++ /dev/null @@ -1,4 +0,0 @@ -/** - * @license oidc-client-rx - * MIT license - */ diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index f623415..0000000 --- a/package-lock.json +++ /dev/null @@ -1,3006 +0,0 @@ -{ - "name": "oidc-client-rx", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "oidc-client-rx", - "version": "0.1.0", - "dependencies": { - "@ngify/http": "^2.0.4", - "injection-js": "git+https://github.com/mgechev/injection-js.git#81a10e0", - "rxjs": ">=7.4.0" - }, - "devDependencies": { - "@evilmartians/lefthook": "^1.0.3", - "@playwright/test": "^1.49.1", - "@rslib/core": "^0.3.1", - "@types/node": "^22.10.1", - "@vitest/coverage-v8": "^3.0.1", - "rfc4648": "^1.5.0", - "typescript": "^5.7.3", - "ultracite": "^4.1.15", - "vitest": "^3.0.1" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", - "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.7" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", - "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", - "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@evilmartians/lefthook": { - "version": "1.10.10", - "resolved": "https://registry.npmjs.org/@evilmartians/lefthook/-/lefthook-1.10.10.tgz", - "integrity": "sha512-MRIA0zJzUBbmcbecI7QjI08li4ffpmZ6DeVydEiZSg0vSx5mElEMEjDEjkI60eSV0XOm7LRbQKz2rfW6NqH8Cw==", - "cpu": [ - "x64", - "arm64", - "ia32" - ], - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "os": [ - "darwin", - "linux", - "win32" - ], - "bin": { - "lefthook": "bin/index.js" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@module-federation/error-codes": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.8.4.tgz", - "integrity": "sha512-55LYmrDdKb4jt+qr8qE8U3al62ZANp3FhfVaNPOaAmdTh0jHdD8M3yf5HKFlr5xVkVO4eV/F/J2NCfpbh+pEXQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@module-federation/runtime": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.8.4.tgz", - "integrity": "sha512-yZeZ7z2Rx4gv/0E97oLTF3V6N25vglmwXGgoeju/W2YjsFvWzVtCDI7zRRb0mJhU6+jmSM8jP1DeQGbea/AiZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@module-federation/error-codes": "0.8.4", - "@module-federation/sdk": "0.8.4" - } - }, - "node_modules/@module-federation/runtime-tools": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.8.4.tgz", - "integrity": "sha512-fjVOsItJ1u5YY6E9FnS56UDwZgqEQUrWFnouRiPtK123LUuqUI9FH4redZoKWlE1PB0ir1Z3tnqy8eFYzPO38Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@module-federation/runtime": "0.8.4", - "@module-federation/webpack-bundler-runtime": "0.8.4" - } - }, - "node_modules/@module-federation/sdk": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.8.4.tgz", - "integrity": "sha512-waABomIjg/5m1rPDBWYG4KUhS5r7OUUY7S+avpaVIY/tkPWB3ibRDKy2dNLLAMaLKq0u+B1qIdEp4NIWkqhqpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "isomorphic-rslog": "0.0.6" - } - }, - "node_modules/@module-federation/webpack-bundler-runtime": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.8.4.tgz", - "integrity": "sha512-HggROJhvHPUX7uqBD/XlajGygMNM1DG0+4OAkk8MBQe4a18QzrRNzZt6XQbRTSG4OaEoyRWhQHvYD3Yps405tQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@module-federation/runtime": "0.8.4", - "@module-federation/sdk": "0.8.4" - } - }, - "node_modules/@ngify/core": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@ngify/core/-/core-2.0.4.tgz", - "integrity": "sha512-MyZ6TrD4NEEEpy5yBoAtCyAXySpLvi6kBrvJk1vl9s4dkU5H+/bKBeAy5gPvdbLQ6c6NHD3Y4cnnMBbhdtVOnA==", - "dependencies": { - "tslib": "^2.3.0" - } - }, - "node_modules/@ngify/http": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@ngify/http/-/http-2.0.4.tgz", - "integrity": "sha512-3w3mMadsrkO0/xgLC5+79qqOJcRc+XvcBoOMZZBPFdiWg7wHWHULv48KHFVau+GbzvnXEza46W/xYyOMyR0F8g==", - "dependencies": { - "@ngify/core": "2.0.4", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "rxjs": "^7.0.0" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@playwright/test": { - "version": "1.50.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.50.0.tgz", - "integrity": "sha512-ZGNXbt+d65EGjBORQHuYKj+XhCewlwpnSd/EDuLPZGSiEWmgOJB5RmMCCYGy5aMfTs9wx61RivfDKi8H/hcMvw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright": "1.50.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.1.tgz", - "integrity": "sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.1.tgz", - "integrity": "sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.1.tgz", - "integrity": "sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.1.tgz", - "integrity": "sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.1.tgz", - "integrity": "sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.1.tgz", - "integrity": "sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.1.tgz", - "integrity": "sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.1.tgz", - "integrity": "sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.1.tgz", - "integrity": "sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.1.tgz", - "integrity": "sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.1.tgz", - "integrity": "sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.1.tgz", - "integrity": "sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.1.tgz", - "integrity": "sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.1.tgz", - "integrity": "sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.1.tgz", - "integrity": "sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.1.tgz", - "integrity": "sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.1.tgz", - "integrity": "sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.1.tgz", - "integrity": "sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.1.tgz", - "integrity": "sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rsbuild/core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rsbuild/core/-/core-1.2.3.tgz", - "integrity": "sha512-lUCt8gQe9E2PI3srcEJ1Na3GQYmsYuvAqK0f/k00HM0pEjrbOFC9Xq2kR85UoXHFqlTCIw/fLLDe91PKRCbKAw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@rspack/core": "1.2.2", - "@rspack/lite-tapable": "~1.0.1", - "@swc/helpers": "^0.5.15", - "core-js": "~3.40.0" - }, - "bin": { - "rsbuild": "bin/rsbuild.js" - }, - "engines": { - "node": ">=16.7.0" - } - }, - "node_modules/@rslib/core": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@rslib/core/-/core-0.3.2.tgz", - "integrity": "sha512-BdR/1kjR+Jk614je0ijjEwGoY44fLtPg6PoWHoKfzMkqNMtFg40AwMaBS04SylvR4BuUt1Q+9k6NQ/IWdE5HWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rsbuild/core": "1.2.0-beta.1", - "rsbuild-plugin-dts": "0.3.2", - "tinyglobby": "^0.2.10" - }, - "bin": { - "rslib": "bin/rslib.js" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "@microsoft/api-extractor": "^7", - "typescript": "^5" - }, - "peerDependenciesMeta": { - "@microsoft/api-extractor": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/@rslib/core/node_modules/@rsbuild/core": { - "version": "1.2.0-beta.1", - "resolved": "https://registry.npmjs.org/@rsbuild/core/-/core-1.2.0-beta.1.tgz", - "integrity": "sha512-+TzwALD2xEpgc2FQgjn1CtNtE2CTS1FELuWXpjI4AABjytYDGdaOHvHyCLXHiJpuvDdnyJumoN/T8i8zhbTkPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rspack/core": "1.2.0-beta.0", - "@rspack/lite-tapable": "~1.0.1", - "@swc/helpers": "^0.5.15", - "core-js": "~3.40.0" - }, - "bin": { - "rsbuild": "bin/rsbuild.js" - }, - "engines": { - "node": ">=16.7.0" - } - }, - "node_modules/@rslib/core/node_modules/@rspack/binding": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.2.0-beta.0.tgz", - "integrity": "sha512-ZUBWVKCVC3uunZhjH7FAVLP83r/6QvPmYViA6n0JF3ycBmcJLkHJb26v42j6d5EfYfTtNvfRUlzHckIkFDQeDQ==", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "@rspack/binding-darwin-arm64": "1.2.0-beta.0", - "@rspack/binding-darwin-x64": "1.2.0-beta.0", - "@rspack/binding-linux-arm64-gnu": "1.2.0-beta.0", - "@rspack/binding-linux-arm64-musl": "1.2.0-beta.0", - "@rspack/binding-linux-x64-gnu": "1.2.0-beta.0", - "@rspack/binding-linux-x64-musl": "1.2.0-beta.0", - "@rspack/binding-win32-arm64-msvc": "1.2.0-beta.0", - "@rspack/binding-win32-ia32-msvc": "1.2.0-beta.0", - "@rspack/binding-win32-x64-msvc": "1.2.0-beta.0" - } - }, - "node_modules/@rslib/core/node_modules/@rspack/binding-darwin-arm64": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.2.0-beta.0.tgz", - "integrity": "sha512-g8NgY4OIjZf5LabAKOHNr2rs/WzVaxXpOSVsdHztQL6ETdeEpIPUul4p/5zivFNcrvJxVVeHzKJHyB5lqxDcTA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rslib/core/node_modules/@rspack/binding-darwin-x64": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.2.0-beta.0.tgz", - "integrity": "sha512-+BH/1UpG96exJc6KhDOiSHAb05bUwxbYCd37HAJwcLxQgB7IEmPtBYvV5CtHysteM5NBtbNeeAcyXK+dIYvUew==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rslib/core/node_modules/@rspack/binding-linux-arm64-gnu": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.0-beta.0.tgz", - "integrity": "sha512-LdIBNy5WAXJ1J9nB3bEyvqz7mJrMN/7cCtPHMmFBR1aTFbh1NAjYZl24fc+f59aSV5jAU9wfTrOtqtSwnXg4tQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rslib/core/node_modules/@rspack/binding-linux-arm64-musl": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.0-beta.0.tgz", - "integrity": "sha512-4tRi87UyEWV25X6Ul68kJJ/de/cwmASmrIUrCYmdWEdtWMN46UOz0OvxCYvcHTf0DCP8M1CZf0cSiRuG/hsxGA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rslib/core/node_modules/@rspack/binding-linux-x64-gnu": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.0-beta.0.tgz", - "integrity": "sha512-rWWrPwUH3V4yG46acZDIlqr7H/yCxbu+WdPhdIRBvgT7bisQkZa2HYx6MXmUXxx94U2iFy5bh+un0ho5FZOeCg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rslib/core/node_modules/@rspack/binding-linux-x64-musl": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.0-beta.0.tgz", - "integrity": "sha512-9pgL17Bk8aSrTBx6VfQbb313RInDjlY9DfgV5ybbSsWaFs/oAs4oPy+kepWWixfb9Y2q/74bSBPrBNTBYQpknw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rslib/core/node_modules/@rspack/binding-win32-arm64-msvc": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.0-beta.0.tgz", - "integrity": "sha512-JQ06Q3uTclIk4AvKUqx0Royx2PqVcUuumEUFVWERbd01fntkQqI3RFrPazBYAIvk5JmXk40+CKA1CsFef4RKOA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rslib/core/node_modules/@rspack/binding-win32-ia32-msvc": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.2.0-beta.0.tgz", - "integrity": "sha512-rNz/sXjXLAqCZkDuTumqm9Aa47Hiu45+vkJ0XvbirJ0A+dzuyGjdtlinwLyZtCY+dVAlS+AcX5znJLlpTSnjjA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rslib/core/node_modules/@rspack/binding-win32-x64-msvc": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.0-beta.0.tgz", - "integrity": "sha512-LKFcgaeEo7G6YLE5aKIbeWzXUpVZc02u0q4as0TjTTRBHd8r21GeaGJVh1Xm9YBkHpIX8Ho1DMftYVd+F6gHzw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rslib/core/node_modules/@rspack/core": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.2.0-beta.0.tgz", - "integrity": "sha512-0o0EYNeCwbRrh1l+P6HEKGS3Y+SVE/+J6SqDGGBsOixt/YzFeYNeaePWUnFfQ8a27jp9s//Ix6iuxMYGjWmitA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@module-federation/runtime-tools": "0.8.4", - "@rspack/binding": "1.2.0-beta.0", - "@rspack/lite-tapable": "1.0.1", - "caniuse-lite": "^1.0.30001616" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "@swc/helpers": ">=0.5.1" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@rspack/binding": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.2.2.tgz", - "integrity": "sha512-GCZwpGFYlLTdJ2soPLwjw9z4LSZ+GdpbHNfBt3Cm/f/bAF8n6mZc7dHUqN893RFh7MPU17HNEL3fMw7XR+6pHg==", - "dev": true, - "license": "MIT", - "peer": true, - "optionalDependencies": { - "@rspack/binding-darwin-arm64": "1.2.2", - "@rspack/binding-darwin-x64": "1.2.2", - "@rspack/binding-linux-arm64-gnu": "1.2.2", - "@rspack/binding-linux-arm64-musl": "1.2.2", - "@rspack/binding-linux-x64-gnu": "1.2.2", - "@rspack/binding-linux-x64-musl": "1.2.2", - "@rspack/binding-win32-arm64-msvc": "1.2.2", - "@rspack/binding-win32-ia32-msvc": "1.2.2", - "@rspack/binding-win32-x64-msvc": "1.2.2" - } - }, - "node_modules/@rspack/binding-darwin-arm64": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.2.2.tgz", - "integrity": "sha512-h23F8zEkXWhwMeScm0ZnN78Zh7hCDalxIWsm7bBS0eKadnlegUDwwCF8WE+8NjWr7bRzv0p3QBWlS5ufkcL4eA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true - }, - "node_modules/@rspack/binding-darwin-x64": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.2.2.tgz", - "integrity": "sha512-vG5s7FkEvwrGLfksyDRHwKAHUkhZt1zHZZXJQn4gZKjTBonje8ezdc7IFlDiWpC4S+oBYp73nDWkUzkGRbSdcQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true - }, - "node_modules/@rspack/binding-linux-arm64-gnu": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.2.tgz", - "integrity": "sha512-VykY/kiYOzO8E1nYzfJ9+gQEHxb5B6lt5wa8M6xFi5B6jEGU+OsaGskmAZB9/GFImeFDHxDPvhUalI4R9p8O2Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rspack/binding-linux-arm64-musl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.2.tgz", - "integrity": "sha512-Z5vAC4wGfXi8XXZ6hs8Q06TYjr3zHf819HB4DI5i4C1eQTeKdZSyoFD0NHFG23bP4NWJffp8KhmoObcy9jBT5Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rspack/binding-linux-x64-gnu": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.2.tgz", - "integrity": "sha512-o3pDaL+cH5EeRbDE9gZcdZpBgp5iXvYZBBhe8vZQllYgI4zN5MJEuleV7WplG3UwTXlgZg3Kht4RORSOPn96vg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rspack/binding-linux-x64-musl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.2.tgz", - "integrity": "sha512-RE3e0xe4DdchHssttKzryDwjLkbrNk/4H59TkkWeGYJcLw41tmcOZVFQUOwKLUvXWVyif/vjvV/w1SMlqB4wQg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@rspack/binding-win32-arm64-msvc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.2.tgz", - "integrity": "sha512-R+PKBYn6uzTaDdVqTHvjqiJPBr5ZHg1wg5UmFDLNH9OklzVFyQh1JInSdJRb7lzfzTRz6bEkkwUFBPQK/CGScw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@rspack/binding-win32-ia32-msvc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.2.2.tgz", - "integrity": "sha512-dBqz3sRAGZ2f31FgzKLDvIRfq2haRP3X3XVCT0PsiMcvt7QJng+26aYYMy2THatd/nM8IwExYeitHWeiMBoruw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@rspack/binding-win32-x64-msvc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.2.tgz", - "integrity": "sha512-eeAvaN831KG553cMSHkVldyk6YQn4ujgRHov6r1wtREq7CD3/ka9LMkJUepCN85K7XtwYT0N4KpFIQyf5GTGoA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@rspack/core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.2.2.tgz", - "integrity": "sha512-EeHAmY65Uj62hSbUKesbrcWGE7jfUI887RD03G++Gj8jS4WPHEu1TFODXNOXg6pa7zyIvs2BK0Bm16Kwz8AEaQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@module-federation/runtime-tools": "0.8.4", - "@rspack/binding": "1.2.2", - "@rspack/lite-tapable": "1.0.1", - "caniuse-lite": "^1.0.30001616" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "@rspack/tracing": "^1.x", - "@swc/helpers": ">=0.5.1" - }, - "peerDependenciesMeta": { - "@rspack/tracing": { - "optional": true - }, - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@rspack/lite-tapable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rspack/lite-tapable/-/lite-tapable-1.0.1.tgz", - "integrity": "sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.8.0" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.12.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", - "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@vitest/coverage-v8": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.0.4.tgz", - "integrity": "sha512-f0twgRCHgbs24Dp8cLWagzcObXMcuKtAwgxjJV/nnysPAJJk1JiKu/W0gIehZLmkljhJXU/E0/dmuQzsA/4jhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@bcoe/v8-coverage": "^1.0.2", - "debug": "^4.4.0", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-lib-source-maps": "^5.0.6", - "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.17", - "magicast": "^0.3.5", - "std-env": "^3.8.0", - "test-exclude": "^7.0.1", - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@vitest/browser": "3.0.4", - "vitest": "3.0.4" - }, - "peerDependenciesMeta": { - "@vitest/browser": { - "optional": true - } - } - }, - "node_modules/@vitest/expect": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.4.tgz", - "integrity": "sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "3.0.4", - "@vitest/utils": "3.0.4", - "chai": "^5.1.2", - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/mocker": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.4.tgz", - "integrity": "sha512-gEef35vKafJlfQbnyOXZ0Gcr9IBUsMTyTLXsEQwuyYAerpHqvXhzdBnDFuHLpFqth3F7b6BaFr4qV/Cs1ULx5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "3.0.4", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.17" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^5.0.0 || ^6.0.0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@vitest/pretty-format": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.4.tgz", - "integrity": "sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.4.tgz", - "integrity": "sha512-dKHzTQ7n9sExAcWH/0sh1elVgwc7OJ2lMOBrAm73J7AH6Pf9T12Zh3lNE1TETZaqrWFXtLlx3NVrLRb5hCK+iw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "3.0.4", - "pathe": "^2.0.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.4.tgz", - "integrity": "sha512-+p5knMLwIk7lTQkM3NonZ9zBewzVp9EVkVpvNta0/PlFWpiqLaRcF4+33L1it3uRUCh0BGLOaXPPGEjNKfWb4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "3.0.4", - "magic-string": "^0.30.17", - "pathe": "^2.0.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.4.tgz", - "integrity": "sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyspy": "^3.0.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.4.tgz", - "integrity": "sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "3.0.4", - "loupe": "^3.1.2", - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001696", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001696.tgz", - "integrity": "sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chai": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", - "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/check-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/core-js": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz", - "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/expect-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", - "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/fdir": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", - "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/injection-js": { - "version": "2.4.0", - "resolved": "git+ssh://git@github.com/mgechev/injection-js.git#81a10e03929a913486f5ccb88bb893c67beeb228", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.5" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/isomorphic-rslog": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/isomorphic-rslog/-/isomorphic-rslog-0.0.6.tgz", - "integrity": "sha512-HM0q6XqQ93psDlqvuViNs/Ea3hAyGDkIdVAHlrEocjjAwGrs1fZ+EdQjS9eUPacnYB7Y8SoDdSY3H8p3ce205A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.17.6" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", - "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.23", - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/loupe": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", - "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/magicast": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", - "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.25.4", - "@babel/types": "^7.25.4", - "source-map-js": "^1.2.0" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/pathe": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", - "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==", - "dev": true, - "license": "MIT" - }, - "node_modules/pathval": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/playwright": { - "version": "1.50.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.50.0.tgz", - "integrity": "sha512-+GinGfGTrd2IfX1TA4N2gNmeIksSb+IAe589ZH+FlmpV3MYTx6+buChGIuDLQwrGNCw2lWibqV50fU510N7S+w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright-core": "1.50.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/playwright-core": { - "version": "1.50.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.50.0.tgz", - "integrity": "sha512-CXkSSlr4JaZs2tZHI40DsZUN/NIwgaUPsyLuOAaIZp2CyF2sN5MM5NJsyB188lFSSozFxQ5fPT4qM+f0tH/6wQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/rfc4648": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.4.tgz", - "integrity": "sha512-rRg/6Lb+IGfJqO05HZkN50UtY7K/JhxJag1kP23+zyMfrvoB0B7RWv06MbOzoc79RgCdNTiUaNsTT1AJZ7Z+cg==", - "dev": true, - "license": "MIT" - }, - "node_modules/rollup": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.1.tgz", - "integrity": "sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.32.1", - "@rollup/rollup-android-arm64": "4.32.1", - "@rollup/rollup-darwin-arm64": "4.32.1", - "@rollup/rollup-darwin-x64": "4.32.1", - "@rollup/rollup-freebsd-arm64": "4.32.1", - "@rollup/rollup-freebsd-x64": "4.32.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.32.1", - "@rollup/rollup-linux-arm-musleabihf": "4.32.1", - "@rollup/rollup-linux-arm64-gnu": "4.32.1", - "@rollup/rollup-linux-arm64-musl": "4.32.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.32.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.32.1", - "@rollup/rollup-linux-riscv64-gnu": "4.32.1", - "@rollup/rollup-linux-s390x-gnu": "4.32.1", - "@rollup/rollup-linux-x64-gnu": "4.32.1", - "@rollup/rollup-linux-x64-musl": "4.32.1", - "@rollup/rollup-win32-arm64-msvc": "4.32.1", - "@rollup/rollup-win32-ia32-msvc": "4.32.1", - "@rollup/rollup-win32-x64-msvc": "4.32.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/rsbuild-plugin-dts": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/rsbuild-plugin-dts/-/rsbuild-plugin-dts-0.3.2.tgz", - "integrity": "sha512-Gjaf5ANA6R9t92Va6utNG1iyRxCE0QLoswKvR5UkOkX5GUpNyWveze+k/6L/qrkgqGRuJqUuYX3lrwatrOUZ3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "magic-string": "^0.30.17", - "picocolors": "1.1.1", - "tinyglobby": "^0.2.10" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "@microsoft/api-extractor": "^7", - "@rsbuild/core": "1.x", - "typescript": "^5" - }, - "peerDependenciesMeta": { - "@microsoft/api-extractor": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true, - "license": "ISC" - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", - "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^10.4.1", - "minimatch": "^9.0.4" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/tinybench": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyglobby": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz", - "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.4.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/tinypool": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", - "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, - "node_modules/tinyrainbow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", - "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/ultracite": { - "version": "4.1.17", - "resolved": "https://registry.npmjs.org/ultracite/-/ultracite-4.1.17.tgz", - "integrity": "sha512-CdugkIPgpaQle6Yzn4foEV4t+ocLmos2y/64hr+I9ZJ0XVDrO52AeTioc+n7wTxwUxuEF/VxBkcxXhyQYu9hzg==", - "dev": true, - "license": "ISC", - "dependencies": { - "commander": "^12.1.0" - }, - "bin": { - "ultracite": "scripts/run.mjs" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "dev": true, - "license": "MIT" - }, - "node_modules/vite": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", - "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.4.49", - "rollup": "^4.23.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite-node": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.4.tgz", - "integrity": "sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.4.0", - "es-module-lexer": "^1.6.0", - "pathe": "^2.0.2", - "vite": "^5.0.0 || ^6.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/vite/node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/vitest": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.4.tgz", - "integrity": "sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "3.0.4", - "@vitest/mocker": "3.0.4", - "@vitest/pretty-format": "^3.0.4", - "@vitest/runner": "3.0.4", - "@vitest/snapshot": "3.0.4", - "@vitest/spy": "3.0.4", - "@vitest/utils": "3.0.4", - "chai": "^5.1.2", - "debug": "^4.4.0", - "expect-type": "^1.1.0", - "magic-string": "^0.30.17", - "pathe": "^2.0.2", - "std-env": "^3.8.0", - "tinybench": "^2.9.0", - "tinyexec": "^0.3.2", - "tinypool": "^1.0.2", - "tinyrainbow": "^2.0.0", - "vite": "^5.0.0 || ^6.0.0", - "vite-node": "3.0.4", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@types/debug": "^4.1.12", - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.0.4", - "@vitest/ui": "3.0.4", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@types/debug": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/why-is-node-running": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - } - } -} diff --git a/package.json b/package.json index 5917f1d..b9e19c0 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,16 @@ "types": "./dist/index.d.ts", "import": "./dist/index.js", "require": "./dist/index.cjs" + }, + "./adapters/react": { + "types": "./dist/adapters/react/index.d.ts", + "import": "./dist/adapters/react/index.js", + "require": "./dist/adapters/react.cjs" + }, + "./adapters/tanstack-router": { + "types": "./dist/adapters/tanstack-router/index.d.ts", + "import": "./dist/adapters/tanstack-router/index.js", + "require": "./dist/adapters/tanstack-router.cjs" } }, "main": "./dist/index.cjs", @@ -30,31 +40,31 @@ "test-ci": "vitest --watch=false --coverage", "pack": "npm run build && npm pack ./dist", "publish": "npm run build && npm publish ./dist", - "coverage": "vitest run --coverage", "lint": "ultracite lint", "format": "ultracite format", "cli": "tsx scripts/cli.ts" }, "dependencies": { "@ngify/http": "^2.0.4", - "injection-js": "git+https://github.com/mgechev/injection-js.git#81a10e0", - "reflect-metadata": "^0.2.2" + "@outposts/injection-js": "^2.5.1" }, "peerDependencies": { + "@tanstack/react-router": "*", + "react": ">=16.8.0", "rxjs": "^7.4.0||>=8.0.0" }, "devDependencies": { "@biomejs/biome": "1.9.4", "@biomejs/js-api": "0.7.1", "@biomejs/wasm-nodejs": "^1.9.4", - "@evilmartians/lefthook": "^1.0.3", "@playwright/test": "^1.49.1", - "@rslib/core": "^0.3.1", + "@rslib/core": "^0.4.0", "@swc/core": "^1.10.12", + "@tanstack/react-router": "^1.99.6", "@types/jsdom": "^21.1.7", "@types/lodash-es": "^4.17.12", "@types/node": "^22.12.0", - "@vitest/browser": "^3.0.4", + "@types/react": "^19.0.8", "@vitest/coverage-v8": "^3.0.4", "commander": "^13.1.0", "jsdom": "^26.0.0", @@ -62,6 +72,8 @@ "oxc-parser": "^0.48.1", "oxc-walker": "^0.2.2", "playwright": "^1.50.0", + "react": "^19.0.0", + "reflect-metadata": "^0.2.2", "rfc4648": "^1.5.0", "rxjs": "^7.4.0", "tsx": "^4.19.2", @@ -71,6 +83,14 @@ "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.0.4" }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "@tanstack/react-router": { + "optional": true + } + }, "keywords": [ "rxjs", "oidc", @@ -86,6 +106,11 @@ "certified", "oauth", "authorization", - "reactivex" - ] + "reactivex", + "injection-js", + "injection" + ], + "pnpm": { + "onlyBuiltDependencies": ["core-js"] + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ee9173..67668c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,12 +11,9 @@ importers: '@ngify/http': specifier: ^2.0.4 version: 2.0.4(rxjs@7.8.1) - injection-js: - specifier: git+https://github.com/mgechev/injection-js.git#81a10e0 - version: https://codeload.github.com/mgechev/injection-js/tar.gz/81a10e0 - reflect-metadata: - specifier: ^0.2.2 - version: 0.2.2 + '@outposts/injection-js': + specifier: ^2.5.1 + version: 2.5.1 devDependencies: '@biomejs/biome': specifier: 1.9.4 @@ -27,18 +24,18 @@ importers: '@biomejs/wasm-nodejs': specifier: ^1.9.4 version: 1.9.4 - '@evilmartians/lefthook': - specifier: ^1.0.3 - version: 1.10.7 '@playwright/test': specifier: ^1.49.1 version: 1.49.1 '@rslib/core': - specifier: ^0.3.1 - version: 0.3.1(typescript@5.7.3) + specifier: ^0.4.0 + version: 0.4.0(@microsoft/api-extractor@7.49.2(@types/node@22.12.0))(typescript@5.7.3) '@swc/core': specifier: ^1.10.12 version: 1.10.12(@swc/helpers@0.5.15) + '@tanstack/react-router': + specifier: ^1.99.6 + version: 1.99.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/jsdom': specifier: ^21.1.7 version: 21.1.7 @@ -48,9 +45,9 @@ importers: '@types/node': specifier: ^22.12.0 version: 22.12.0 - '@vitest/browser': - specifier: ^3.0.4 - version: 3.0.4(@types/node@22.12.0)(playwright@1.50.0)(typescript@5.7.3)(vite@6.0.7(@types/node@22.12.0)(tsx@4.19.2))(vitest@3.0.4)(webdriverio@9.7.2) + '@types/react': + specifier: ^19.0.8 + version: 19.0.8 '@vitest/coverage-v8': specifier: ^3.0.4 version: 3.0.4(@vitest/browser@3.0.4)(vitest@3.0.4) @@ -63,9 +60,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - mock-local-storage: - specifier: ^1.1.24 - version: 1.1.24 oxc-parser: specifier: ^0.48.1 version: 0.48.1 @@ -75,6 +69,12 @@ importers: playwright: specifier: ^1.50.0 version: 1.50.0 + react: + specifier: ^19.0.0 + version: 19.0.0 + reflect-metadata: + specifier: ^0.2.2 + version: 0.2.2 rfc4648: specifier: ^1.5.0 version: 1.5.4 @@ -100,6 +100,37 @@ importers: specifier: ^3.0.4 version: 3.0.4(@types/node@22.12.0)(@vitest/browser@3.0.4)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(tsx@4.19.2) + examples/react-tanstack-router: + dependencies: + '@tanstack/react-router': + specifier: ^1.99.6 + version: 1.99.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: + specifier: ^19.0.0 + version: 19.0.0 + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + devDependencies: + '@rsbuild/core': + specifier: ^1.2.3 + version: 1.2.4 + '@rsbuild/plugin-react': + specifier: ^1.1.0 + version: 1.1.0(@rsbuild/core@1.2.4) + '@types/react': + specifier: ^19.0.8 + version: 19.0.8 + '@types/react-dom': + specifier: ^19.0.3 + version: 19.0.3(@types/react@19.0.8) + oidc-client-rx: + specifier: workspace:* + version: link:../.. + typescript: + specifier: ^5.7.3 + version: 5.7.3 + packages: '@ampproject/remapping@2.3.0': @@ -539,11 +570,6 @@ packages: cpu: [x64] os: [win32] - '@evilmartians/lefthook@1.10.7': - resolution: {integrity: sha512-QQLKnBaaOFjl/sdu018AhqCoFI0bQSHRdC/kpCU4sANASwai/QBUzpzorR+xsi0++14/q7Nax04N60YF08fX4w==} - os: [darwin, linux, win32] - hasBin: true - '@inquirer/confirm@5.1.4': resolution: {integrity: sha512-EsiT7K4beM5fN5Mz6j866EFA9+v9d5o9VUra3hrg8zY4GHmCS8b616FErbdo5eyKoVotBQkHzMIeeKYsKDStDw==} engines: {node: '>=18'} @@ -590,6 +616,19 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@microsoft/api-extractor-model@7.30.3': + resolution: {integrity: sha512-yEAvq0F78MmStXdqz9TTT4PZ05Xu5R8nqgwI5xmUmQjWBQ9E6R2n8HB/iZMRciG4rf9iwI2mtuQwIzDXBvHn1w==} + + '@microsoft/api-extractor@7.49.2': + resolution: {integrity: sha512-DI/WnvhbkHcucxxc4ys00ejCiViFls5EKPrEfe4NV3GGpVkoM5ZXF61HZNSGA8IG0oEV4KfTqIa59Rc3wdMopw==} + hasBin: true + + '@microsoft/tsdoc-config@0.17.1': + resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==} + + '@microsoft/tsdoc@0.15.1': + resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} + '@module-federation/error-codes@0.8.4': resolution: {integrity: sha512-55LYmrDdKb4jt+qr8qE8U3al62ZANp3FhfVaNPOaAmdTh0jHdD8M3yf5HKFlr5xVkVO4eV/F/J2NCfpbh+pEXQ==} @@ -626,6 +665,9 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@outposts/injection-js@2.5.1': + resolution: {integrity: sha512-f2HCfEM9k7WqLw5Bs2Sh2rWrwuuQFE3c5yKueQfO4WAnJBvlC6tU0JWSG1j8A7NsEfcdUtMVmIzGIRIHo7ALPw==} + '@oxc-parser/binding-darwin-arm64@0.48.1': resolution: {integrity: sha512-qCpCWt+8B1c76KndRgTQmCswsd1Nx+7/8Rm/JCee+tSB+emW/EcJEP5cIHvnUAueqlF0ZUuQ9LQWdPNN2n5SiQ==} cpu: [arm64] @@ -793,13 +835,18 @@ packages: cpu: [x64] os: [win32] - '@rsbuild/core@1.2.0-beta.0': - resolution: {integrity: sha512-gS1vTTbnYYjIpraEjRPhFMf1iH2rFrnV3cc3H6ZgAFQsksZzgYJyZBvAuigKPUW4SIl1mgnmMGWhLwZHgyZzOg==} + '@rsbuild/core@1.2.4': + resolution: {integrity: sha512-GPn4TLW9nv7OgmbSBs9Col3dNr55CEDoeoGLl1B0pszyj9yI3s4ArVWVo/R5oXrRa9sDmA/T54rsb2r3trnttw==} engines: {node: '>=16.7.0'} hasBin: true - '@rslib/core@0.3.1': - resolution: {integrity: sha512-CWGCoEEUC2/29MKcdtW6/QbjGR+7tEHZc9/w7pGG8fZAKtPAZx/lYNi/N63e/Q/MVWeU4GYRpG89EROFRantPQ==} + '@rsbuild/plugin-react@1.1.0': + resolution: {integrity: sha512-uqdRoV2V91G1XIA14dAmxqYTlTDVf0ktpE7TgwG29oQ2j+DerF1kh29WPHK9HvGE34JTfaBrsme2Zmb6bGD0cw==} + peerDependencies: + '@rsbuild/core': 1.x + + '@rslib/core@0.4.0': + resolution: {integrity: sha512-dONhz7PsooyGUdSQbJRzlsCXgOKrP5NyW1dzcNBvfLHr13nd2anCCZzFdQXb/g7772h5moj+EkTEo982AmUeJQ==} engines: {node: '>=16.0.0'} hasBin: true peerDependencies: @@ -811,60 +858,63 @@ packages: typescript: optional: true - '@rspack/binding-darwin-arm64@1.2.0-beta.0': - resolution: {integrity: sha512-g8NgY4OIjZf5LabAKOHNr2rs/WzVaxXpOSVsdHztQL6ETdeEpIPUul4p/5zivFNcrvJxVVeHzKJHyB5lqxDcTA==} + '@rspack/binding-darwin-arm64@1.2.2': + resolution: {integrity: sha512-h23F8zEkXWhwMeScm0ZnN78Zh7hCDalxIWsm7bBS0eKadnlegUDwwCF8WE+8NjWr7bRzv0p3QBWlS5ufkcL4eA==} cpu: [arm64] os: [darwin] - '@rspack/binding-darwin-x64@1.2.0-beta.0': - resolution: {integrity: sha512-+BH/1UpG96exJc6KhDOiSHAb05bUwxbYCd37HAJwcLxQgB7IEmPtBYvV5CtHysteM5NBtbNeeAcyXK+dIYvUew==} + '@rspack/binding-darwin-x64@1.2.2': + resolution: {integrity: sha512-vG5s7FkEvwrGLfksyDRHwKAHUkhZt1zHZZXJQn4gZKjTBonje8ezdc7IFlDiWpC4S+oBYp73nDWkUzkGRbSdcQ==} cpu: [x64] os: [darwin] - '@rspack/binding-linux-arm64-gnu@1.2.0-beta.0': - resolution: {integrity: sha512-LdIBNy5WAXJ1J9nB3bEyvqz7mJrMN/7cCtPHMmFBR1aTFbh1NAjYZl24fc+f59aSV5jAU9wfTrOtqtSwnXg4tQ==} + '@rspack/binding-linux-arm64-gnu@1.2.2': + resolution: {integrity: sha512-VykY/kiYOzO8E1nYzfJ9+gQEHxb5B6lt5wa8M6xFi5B6jEGU+OsaGskmAZB9/GFImeFDHxDPvhUalI4R9p8O2Q==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-arm64-musl@1.2.0-beta.0': - resolution: {integrity: sha512-4tRi87UyEWV25X6Ul68kJJ/de/cwmASmrIUrCYmdWEdtWMN46UOz0OvxCYvcHTf0DCP8M1CZf0cSiRuG/hsxGA==} + '@rspack/binding-linux-arm64-musl@1.2.2': + resolution: {integrity: sha512-Z5vAC4wGfXi8XXZ6hs8Q06TYjr3zHf819HB4DI5i4C1eQTeKdZSyoFD0NHFG23bP4NWJffp8KhmoObcy9jBT5Q==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-x64-gnu@1.2.0-beta.0': - resolution: {integrity: sha512-rWWrPwUH3V4yG46acZDIlqr7H/yCxbu+WdPhdIRBvgT7bisQkZa2HYx6MXmUXxx94U2iFy5bh+un0ho5FZOeCg==} + '@rspack/binding-linux-x64-gnu@1.2.2': + resolution: {integrity: sha512-o3pDaL+cH5EeRbDE9gZcdZpBgp5iXvYZBBhe8vZQllYgI4zN5MJEuleV7WplG3UwTXlgZg3Kht4RORSOPn96vg==} cpu: [x64] os: [linux] - '@rspack/binding-linux-x64-musl@1.2.0-beta.0': - resolution: {integrity: sha512-9pgL17Bk8aSrTBx6VfQbb313RInDjlY9DfgV5ybbSsWaFs/oAs4oPy+kepWWixfb9Y2q/74bSBPrBNTBYQpknw==} + '@rspack/binding-linux-x64-musl@1.2.2': + resolution: {integrity: sha512-RE3e0xe4DdchHssttKzryDwjLkbrNk/4H59TkkWeGYJcLw41tmcOZVFQUOwKLUvXWVyif/vjvV/w1SMlqB4wQg==} cpu: [x64] os: [linux] - '@rspack/binding-win32-arm64-msvc@1.2.0-beta.0': - resolution: {integrity: sha512-JQ06Q3uTclIk4AvKUqx0Royx2PqVcUuumEUFVWERbd01fntkQqI3RFrPazBYAIvk5JmXk40+CKA1CsFef4RKOA==} + '@rspack/binding-win32-arm64-msvc@1.2.2': + resolution: {integrity: sha512-R+PKBYn6uzTaDdVqTHvjqiJPBr5ZHg1wg5UmFDLNH9OklzVFyQh1JInSdJRb7lzfzTRz6bEkkwUFBPQK/CGScw==} cpu: [arm64] os: [win32] - '@rspack/binding-win32-ia32-msvc@1.2.0-beta.0': - resolution: {integrity: sha512-rNz/sXjXLAqCZkDuTumqm9Aa47Hiu45+vkJ0XvbirJ0A+dzuyGjdtlinwLyZtCY+dVAlS+AcX5znJLlpTSnjjA==} + '@rspack/binding-win32-ia32-msvc@1.2.2': + resolution: {integrity: sha512-dBqz3sRAGZ2f31FgzKLDvIRfq2haRP3X3XVCT0PsiMcvt7QJng+26aYYMy2THatd/nM8IwExYeitHWeiMBoruw==} cpu: [ia32] os: [win32] - '@rspack/binding-win32-x64-msvc@1.2.0-beta.0': - resolution: {integrity: sha512-LKFcgaeEo7G6YLE5aKIbeWzXUpVZc02u0q4as0TjTTRBHd8r21GeaGJVh1Xm9YBkHpIX8Ho1DMftYVd+F6gHzw==} + '@rspack/binding-win32-x64-msvc@1.2.2': + resolution: {integrity: sha512-eeAvaN831KG553cMSHkVldyk6YQn4ujgRHov6r1wtREq7CD3/ka9LMkJUepCN85K7XtwYT0N4KpFIQyf5GTGoA==} cpu: [x64] os: [win32] - '@rspack/binding@1.2.0-beta.0': - resolution: {integrity: sha512-ZUBWVKCVC3uunZhjH7FAVLP83r/6QvPmYViA6n0JF3ycBmcJLkHJb26v42j6d5EfYfTtNvfRUlzHckIkFDQeDQ==} + '@rspack/binding@1.2.2': + resolution: {integrity: sha512-GCZwpGFYlLTdJ2soPLwjw9z4LSZ+GdpbHNfBt3Cm/f/bAF8n6mZc7dHUqN893RFh7MPU17HNEL3fMw7XR+6pHg==} - '@rspack/core@1.2.0-beta.0': - resolution: {integrity: sha512-0o0EYNeCwbRrh1l+P6HEKGS3Y+SVE/+J6SqDGGBsOixt/YzFeYNeaePWUnFfQ8a27jp9s//Ix6iuxMYGjWmitA==} + '@rspack/core@1.2.2': + resolution: {integrity: sha512-EeHAmY65Uj62hSbUKesbrcWGE7jfUI887RD03G++Gj8jS4WPHEu1TFODXNOXg6pa7zyIvs2BK0Bm16Kwz8AEaQ==} engines: {node: '>=16.0.0'} peerDependencies: + '@rspack/tracing': ^1.x '@swc/helpers': '>=0.5.1' peerDependenciesMeta: + '@rspack/tracing': + optional: true '@swc/helpers': optional: true @@ -872,6 +922,36 @@ packages: resolution: {integrity: sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w==} engines: {node: '>=16.0.0'} + '@rspack/plugin-react-refresh@1.0.1': + resolution: {integrity: sha512-KSBc3bsr3mrAPViv7w9MpE9KEWm6q87EyRXyHlRfJ9PpQ56NbX9KZ7AXo7jPeECb0q5sfpM2PSEf+syBiMgLSw==} + peerDependencies: + react-refresh: '>=0.10.0 <1.0.0' + peerDependenciesMeta: + react-refresh: + optional: true + + '@rushstack/node-core-library@5.11.0': + resolution: {integrity: sha512-I8+VzG9A0F3nH2rLpPd7hF8F7l5Xb7D+ldrWVZYegXM6CsKkvWc670RlgK3WX8/AseZfXA/vVrh0bpXe2Y2UDQ==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/rig-package@0.5.3': + resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} + + '@rushstack/terminal@0.14.6': + resolution: {integrity: sha512-4nMUy4h0u5PGXVG71kEA9uYI3l8GjVqewoHOFONiM6fuqS51ORdaJZ5ZXB2VZEGUyfg1TOTSy88MF2cdAy+lqA==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/ts-command-line@4.23.4': + resolution: {integrity: sha512-pqmzDJCm0TS8VyeqnzcJ7ncwXgiLDQ6LVmXXfqv2nPL6VIz+UpyTpNVfZRJpyyJ+UDxqob1vIj2liaUfBjv8/A==} + '@swc/core-darwin-arm64@1.10.12': resolution: {integrity: sha512-pOANQegUTAriW7jq3SSMZGM5l89yLVMs48R0F2UG6UZsH04SiViCnDctOGlA/Sa++25C+rL9MGMYM1jDLylBbg==} engines: {node: '>=10'} @@ -950,6 +1030,30 @@ packages: '@swc/types@0.1.17': resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==} + '@tanstack/history@1.99.0': + resolution: {integrity: sha512-MQS1Lg8D+1vpasEJKf4zs1sxhxbXcoejmVCZDbo0bq2wq+xVK+kRixj5Pae2kb2APzdXYga4u236GBbgCKTcnQ==} + engines: {node: '>=12'} + + '@tanstack/react-router@1.99.6': + resolution: {integrity: sha512-mH4wkW2h4uILKsCB4qxJWZ8LtVlxvDzZXnXmb5FuAigdTN2qsQhgpxM1bxecII1cDQMjqq8bZvqYw/62MZ5elg==} + engines: {node: '>=12'} + peerDependencies: + react: '>=18.0.0 || >=19.0.0' + react-dom: '>=18.0.0 || >=19.0.0' + + '@tanstack/react-store@0.7.0': + resolution: {integrity: sha512-S/Rq17HaGOk+tQHV/yrePMnG1xbsKZIl/VsNWnNXt4XW+tTY8dTlvpJH2ZQ3GRALsusG5K6Q3unAGJ2pd9W/Ng==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@tanstack/router-core@1.99.6': + resolution: {integrity: sha512-tEfMLeONfyoyI1e/ygUeGFtTWeWQu0GR3OT8OR75EOeNXRmUEtI6H4ThrXcV8nwBd6B88wmp9LhSPLl9H2VwSA==} + engines: {node: '>=12'} + + '@tanstack/store@0.7.0': + resolution: {integrity: sha512-CNIhdoUsmD2NolYuaIs8VfWM467RK6oIBAW4nPEKZhg1smZ+/CwtCdpURgp7nxSqOaV9oKkzdWD80+bC66F/Jg==} + '@testing-library/dom@10.4.0': resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} @@ -963,6 +1067,9 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@types/argparse@1.0.38': + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -987,6 +1094,14 @@ packages: '@types/node@22.12.0': resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==} + '@types/react-dom@19.0.3': + resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} + peerDependencies: + '@types/react': ^19.0.0 + + '@types/react@19.0.8': + resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} + '@types/sinonjs__fake-timers@8.1.5': resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} @@ -1098,6 +1213,28 @@ packages: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} + ajv-draft-04@1.0.0: + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + + ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -1130,6 +1267,9 @@ packages: resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} engines: {node: '>= 14'} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -1188,6 +1328,9 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} @@ -1269,6 +1412,9 @@ packages: resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} engines: {node: '>= 14'} + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} @@ -1276,8 +1422,8 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - core-js@3.39.0: - resolution: {integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==} + core-js@3.40.0: + resolution: {integrity: sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -1312,6 +1458,9 @@ packages: resolution: {integrity: sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==} engines: {node: '>=18'} + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} @@ -1366,9 +1515,6 @@ packages: dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - dom-walk@0.1.2: - resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} - domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} @@ -1407,6 +1553,9 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + es-module-lexer@1.6.0: resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} @@ -1468,6 +1617,9 @@ packages: fast-deep-equal@2.0.1: resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} @@ -1502,6 +1654,10 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1512,6 +1668,9 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + geckodriver@5.0.0: resolution: {integrity: sha512-vn7TtQ3b9VMJtVXsyWtQQl1fyBVFhQy7UvJF96kPuuJ0or5THH496AD3eUyaDD11+EqCxH9t6V+EP9soZQk4YQ==} engines: {node: '>=18.0.0'} @@ -1540,9 +1699,6 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - global@4.4.0: - resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} - globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} @@ -1560,6 +1716,10 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + headers-polyfill@4.0.3: resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} @@ -1567,6 +1727,9 @@ packages: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} + html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -1594,21 +1757,24 @@ packages: immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - injection-js@https://codeload.github.com/mgechev/injection-js/tar.gz/81a10e0: - resolution: {tarball: https://codeload.github.com/mgechev/injection-js/tar.gz/81a10e0} - version: 2.4.0 - engines: {node: '>=8.5'} - ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -1660,6 +1826,9 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -1675,6 +1844,17 @@ packages: canvas: optional: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} @@ -1717,6 +1897,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} @@ -1746,8 +1930,8 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - min-document@2.19.0: - resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} @@ -1764,9 +1948,6 @@ packages: mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - mock-local-storage@1.1.24: - resolution: {integrity: sha512-NEfmw+yEK9oe6xCfOnTaJ6Dz+L3eu6vsZopJlxflXYxr7Mg3EV+S0NXKUQlY9AAeDEdaPZDSUGq1Gi6kLSa5PA==} - mrmime@2.0.0: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} @@ -1856,6 +2037,9 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -1948,9 +2132,22 @@ packages: querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} + peerDependencies: + react: ^19.0.0 + react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + react-refresh@0.16.0: + resolution: {integrity: sha512-FPvF2XxTSikpJxcr+bHut2H4gJ17+18Uy20D5/F+SKzFap62R3cM5wH6b8WN3LyGSYeQilLEcJcR1fjBSI2S1A==} + engines: {node: '>=0.10.0'} + + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} + engines: {node: '>=0.10.0'} + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -1975,12 +2172,21 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + resq@1.11.0: resolution: {integrity: sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==} @@ -1998,8 +2204,8 @@ packages: rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - rsbuild-plugin-dts@0.3.1: - resolution: {integrity: sha512-oeD8ztSn0LBSNhUbIkYIxJKRMjd1Td2Dfhc1RefP0eouxkpnbQ+Dln3V5AVUGfDGK+BlubqEAF1gk3xAzLWA9w==} + rsbuild-plugin-dts@0.4.0: + resolution: {integrity: sha512-Yjr+6iSY/TgV2jd+bY8J0wFe3RSBZaj766ygIMmILBacWUmaxnyIXnXjiIR3KDO7fxSwUYZzqqvpSgrRoVCk6g==} engines: {node: '>=16.0.0'} peerDependencies: '@microsoft/api-extractor': ^7 @@ -2031,6 +2237,14 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -2089,12 +2303,18 @@ packages: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -2108,6 +2328,10 @@ packages: strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -2130,6 +2354,10 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} @@ -2137,6 +2365,14 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -2156,6 +2392,12 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -2238,6 +2480,11 @@ packages: type-level-regexp@0.1.17: resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==} + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.7.3: resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} engines: {node: '>=14.17'} @@ -2267,6 +2514,10 @@ packages: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + unplugin-swc@1.5.1: resolution: {integrity: sha512-/ZLrPNjChhGx3Z95pxJ4tQgfI6rWqukgYHKflrNB4zAV1izOQuDhkTn55JWeivpBxDCoK7M/TStb2aS/14PS/g==} peerDependencies: @@ -2276,12 +2527,20 @@ packages: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} + use-sync-external-store@1.4.0: + resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + userhome@1.0.1: resolution: {integrity: sha512-5cnLm4gseXjAclKowC4IjByaGsjtAoV6PrOQOljplNB54ReUYJP8HdAFq2muHinSDAh09PPX/uXDPfdxRHvuSA==} engines: {node: '>= 0.8.0'} @@ -2468,6 +2727,9 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -2507,6 +2769,7 @@ snapshots: '@babel/helper-validator-identifier': 7.25.9 js-tokens: 4.0.0 picocolors: 1.1.1 + optional: true '@babel/helper-string-parser@7.25.9': {} @@ -2519,6 +2782,7 @@ snapshots: '@babel/runtime@7.26.7': dependencies: regenerator-runtime: 0.14.1 + optional: true '@babel/types@7.26.5': dependencies: @@ -2571,15 +2835,18 @@ snapshots: '@bundled-es-modules/cookie@2.0.1': dependencies: cookie: 0.7.2 + optional: true '@bundled-es-modules/statuses@1.0.1': dependencies: statuses: 2.0.1 + optional: true '@bundled-es-modules/tough-cookie@0.1.6': dependencies: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 + optional: true '@csstools/color-helpers@5.0.1': {} @@ -2748,13 +3015,12 @@ snapshots: '@esbuild/win32-x64@0.24.2': optional: true - '@evilmartians/lefthook@1.10.7': {} - '@inquirer/confirm@5.1.4(@types/node@22.12.0)': dependencies: '@inquirer/core': 10.1.5(@types/node@22.12.0) '@inquirer/type': 3.0.3(@types/node@22.12.0) '@types/node': 22.12.0 + optional: true '@inquirer/core@10.1.5(@types/node@22.12.0)': dependencies: @@ -2768,12 +3034,15 @@ snapshots: yoctocolors-cjs: 2.1.2 transitivePeerDependencies: - '@types/node' + optional: true - '@inquirer/figures@1.0.10': {} + '@inquirer/figures@1.0.10': + optional: true '@inquirer/type@3.0.3(@types/node@22.12.0)': dependencies: '@types/node': 22.12.0 + optional: true '@isaacs/cliui@8.0.2': dependencies: @@ -2803,6 +3072,45 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@microsoft/api-extractor-model@7.30.3(@types/node@22.12.0)': + dependencies: + '@microsoft/tsdoc': 0.15.1 + '@microsoft/tsdoc-config': 0.17.1 + '@rushstack/node-core-library': 5.11.0(@types/node@22.12.0) + transitivePeerDependencies: + - '@types/node' + optional: true + + '@microsoft/api-extractor@7.49.2(@types/node@22.12.0)': + dependencies: + '@microsoft/api-extractor-model': 7.30.3(@types/node@22.12.0) + '@microsoft/tsdoc': 0.15.1 + '@microsoft/tsdoc-config': 0.17.1 + '@rushstack/node-core-library': 5.11.0(@types/node@22.12.0) + '@rushstack/rig-package': 0.5.3 + '@rushstack/terminal': 0.14.6(@types/node@22.12.0) + '@rushstack/ts-command-line': 4.23.4(@types/node@22.12.0) + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.10 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.7.2 + transitivePeerDependencies: + - '@types/node' + optional: true + + '@microsoft/tsdoc-config@0.17.1': + dependencies: + '@microsoft/tsdoc': 0.15.1 + ajv: 8.12.0 + jju: 1.4.0 + resolve: 1.22.10 + optional: true + + '@microsoft/tsdoc@0.15.1': + optional: true + '@module-federation/error-codes@0.8.4': {} '@module-federation/runtime-tools@0.8.4': @@ -2832,6 +3140,7 @@ snapshots: is-node-process: 1.2.0 outvariant: 1.4.3 strict-event-emitter: 0.5.1 + optional: true '@ngify/core@2.0.4': dependencies: @@ -2843,14 +3152,21 @@ snapshots: rxjs: 7.8.1 tslib: 2.8.1 - '@open-draft/deferred-promise@2.2.0': {} + '@open-draft/deferred-promise@2.2.0': + optional: true '@open-draft/logger@0.3.0': dependencies: is-node-process: 1.2.0 outvariant: 1.4.3 + optional: true - '@open-draft/until@2.1.0': {} + '@open-draft/until@2.1.0': + optional: true + + '@outposts/injection-js@2.5.1': + dependencies: + tslib: 2.8.1 '@oxc-parser/binding-darwin-arm64@0.48.1': optional: true @@ -2885,7 +3201,8 @@ snapshots: dependencies: playwright: 1.49.1 - '@polka/url@1.0.0-next.28': {} + '@polka/url@1.0.0-next.28': + optional: true '@promptbook/utils@0.69.5': dependencies: @@ -2972,64 +3289,75 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.30.1': optional: true - '@rsbuild/core@1.2.0-beta.0': + '@rsbuild/core@1.2.4': dependencies: - '@rspack/core': 1.2.0-beta.0(@swc/helpers@0.5.15) + '@rspack/core': 1.2.2(@swc/helpers@0.5.15) '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.15 - core-js: 3.39.0 + core-js: 3.40.0 + transitivePeerDependencies: + - '@rspack/tracing' - '@rslib/core@0.3.1(typescript@5.7.3)': + '@rsbuild/plugin-react@1.1.0(@rsbuild/core@1.2.4)': dependencies: - '@rsbuild/core': 1.2.0-beta.0 - rsbuild-plugin-dts: 0.3.1(@rsbuild/core@1.2.0-beta.0)(typescript@5.7.3) + '@rsbuild/core': 1.2.4 + '@rspack/plugin-react-refresh': 1.0.1(react-refresh@0.16.0) + react-refresh: 0.16.0 + + '@rslib/core@0.4.0(@microsoft/api-extractor@7.49.2(@types/node@22.12.0))(typescript@5.7.3)': + dependencies: + '@rsbuild/core': 1.2.4 + rsbuild-plugin-dts: 0.4.0(@microsoft/api-extractor@7.49.2(@types/node@22.12.0))(@rsbuild/core@1.2.4)(typescript@5.7.3) tinyglobby: 0.2.10 optionalDependencies: + '@microsoft/api-extractor': 7.49.2(@types/node@22.12.0) typescript: 5.7.3 + transitivePeerDependencies: + - '@rspack/tracing' - '@rspack/binding-darwin-arm64@1.2.0-beta.0': + '@rspack/binding-darwin-arm64@1.2.2': optional: true - '@rspack/binding-darwin-x64@1.2.0-beta.0': + '@rspack/binding-darwin-x64@1.2.2': optional: true - '@rspack/binding-linux-arm64-gnu@1.2.0-beta.0': + '@rspack/binding-linux-arm64-gnu@1.2.2': optional: true - '@rspack/binding-linux-arm64-musl@1.2.0-beta.0': + '@rspack/binding-linux-arm64-musl@1.2.2': optional: true - '@rspack/binding-linux-x64-gnu@1.2.0-beta.0': + '@rspack/binding-linux-x64-gnu@1.2.2': optional: true - '@rspack/binding-linux-x64-musl@1.2.0-beta.0': + '@rspack/binding-linux-x64-musl@1.2.2': optional: true - '@rspack/binding-win32-arm64-msvc@1.2.0-beta.0': + '@rspack/binding-win32-arm64-msvc@1.2.2': optional: true - '@rspack/binding-win32-ia32-msvc@1.2.0-beta.0': + '@rspack/binding-win32-ia32-msvc@1.2.2': optional: true - '@rspack/binding-win32-x64-msvc@1.2.0-beta.0': + '@rspack/binding-win32-x64-msvc@1.2.2': optional: true - '@rspack/binding@1.2.0-beta.0': + '@rspack/binding@1.2.2': optionalDependencies: - '@rspack/binding-darwin-arm64': 1.2.0-beta.0 - '@rspack/binding-darwin-x64': 1.2.0-beta.0 - '@rspack/binding-linux-arm64-gnu': 1.2.0-beta.0 - '@rspack/binding-linux-arm64-musl': 1.2.0-beta.0 - '@rspack/binding-linux-x64-gnu': 1.2.0-beta.0 - '@rspack/binding-linux-x64-musl': 1.2.0-beta.0 - '@rspack/binding-win32-arm64-msvc': 1.2.0-beta.0 - '@rspack/binding-win32-ia32-msvc': 1.2.0-beta.0 - '@rspack/binding-win32-x64-msvc': 1.2.0-beta.0 + '@rspack/binding-darwin-arm64': 1.2.2 + '@rspack/binding-darwin-x64': 1.2.2 + '@rspack/binding-linux-arm64-gnu': 1.2.2 + '@rspack/binding-linux-arm64-musl': 1.2.2 + '@rspack/binding-linux-x64-gnu': 1.2.2 + '@rspack/binding-linux-x64-musl': 1.2.2 + '@rspack/binding-win32-arm64-msvc': 1.2.2 + '@rspack/binding-win32-ia32-msvc': 1.2.2 + '@rspack/binding-win32-x64-msvc': 1.2.2 - '@rspack/core@1.2.0-beta.0(@swc/helpers@0.5.15)': + '@rspack/core@1.2.2(@swc/helpers@0.5.15)': dependencies: '@module-federation/runtime-tools': 0.8.4 - '@rspack/binding': 1.2.0-beta.0 + '@rspack/binding': 1.2.2 '@rspack/lite-tapable': 1.0.1 caniuse-lite: 1.0.30001692 optionalDependencies: @@ -3037,6 +3365,51 @@ snapshots: '@rspack/lite-tapable@1.0.1': {} + '@rspack/plugin-react-refresh@1.0.1(react-refresh@0.16.0)': + dependencies: + error-stack-parser: 2.1.4 + html-entities: 2.5.2 + optionalDependencies: + react-refresh: 0.16.0 + + '@rushstack/node-core-library@5.11.0(@types/node@22.12.0)': + dependencies: + ajv: 8.13.0 + ajv-draft-04: 1.0.0(ajv@8.13.0) + ajv-formats: 3.0.1(ajv@8.13.0) + fs-extra: 11.3.0 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.10 + semver: 7.5.4 + optionalDependencies: + '@types/node': 22.12.0 + optional: true + + '@rushstack/rig-package@0.5.3': + dependencies: + resolve: 1.22.10 + strip-json-comments: 3.1.1 + optional: true + + '@rushstack/terminal@0.14.6(@types/node@22.12.0)': + dependencies: + '@rushstack/node-core-library': 5.11.0(@types/node@22.12.0) + supports-color: 8.1.1 + optionalDependencies: + '@types/node': 22.12.0 + optional: true + + '@rushstack/ts-command-line@4.23.4(@types/node@22.12.0)': + dependencies: + '@rushstack/terminal': 0.14.6(@types/node@22.12.0) + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + optional: true + '@swc/core-darwin-arm64@1.10.12': optional: true @@ -3094,6 +3467,33 @@ snapshots: dependencies: '@swc/counter': 0.1.3 + '@tanstack/history@1.99.0': {} + + '@tanstack/react-router@1.99.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@tanstack/history': 1.99.0 + '@tanstack/react-store': 0.7.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@tanstack/router-core': 1.99.6 + jsesc: 3.1.0 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + + '@tanstack/react-store@0.7.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@tanstack/store': 0.7.0 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + use-sync-external-store: 1.4.0(react@19.0.0) + + '@tanstack/router-core@1.99.6': + dependencies: + '@tanstack/history': 1.99.0 + '@tanstack/store': 0.7.0 + + '@tanstack/store@0.7.0': {} + '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.26.2 @@ -3104,17 +3504,24 @@ snapshots: dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 + optional: true '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)': dependencies: '@testing-library/dom': 10.4.0 + optional: true '@tootallnate/quickjs-emscripten@0.23.0': optional: true - '@types/aria-query@5.0.4': {} + '@types/argparse@1.0.38': + optional: true - '@types/cookie@0.6.0': {} + '@types/aria-query@5.0.4': + optional: true + + '@types/cookie@0.6.0': + optional: true '@types/estree@1.0.6': {} @@ -3139,10 +3546,19 @@ snapshots: dependencies: undici-types: 6.20.0 + '@types/react-dom@19.0.3(@types/react@19.0.8)': + dependencies: + '@types/react': 19.0.8 + + '@types/react@19.0.8': + dependencies: + csstype: 3.1.3 + '@types/sinonjs__fake-timers@8.1.5': optional: true - '@types/statuses@2.0.5': {} + '@types/statuses@2.0.5': + optional: true '@types/tough-cookie@4.0.5': {} @@ -3180,6 +3596,7 @@ snapshots: - typescript - utf-8-validate - vite + optional: true '@vitest/coverage-v8@3.0.4(@vitest/browser@3.0.4)(vitest@3.0.4)': dependencies: @@ -3308,9 +3725,36 @@ snapshots: agent-base@7.1.3: {} + ajv-draft-04@1.0.0(ajv@8.13.0): + optionalDependencies: + ajv: 8.13.0 + optional: true + + ajv-formats@3.0.1(ajv@8.13.0): + optionalDependencies: + ajv: 8.13.0 + optional: true + + ajv@8.12.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + optional: true + + ajv@8.13.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + optional: true + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 + optional: true ansi-regex@5.0.1: {} @@ -3320,7 +3764,8 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} + ansi-styles@5.2.0: + optional: true ansi-styles@6.2.1: {} @@ -3346,9 +3791,15 @@ snapshots: zip-stream: 6.0.1 optional: true + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + optional: true + aria-query@5.3.0: dependencies: dequal: 2.0.3 + optional: true assertion-error@2.0.1: {} @@ -3403,6 +3854,12 @@ snapshots: boolbase@1.0.0: optional: true + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + optional: true + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 @@ -3441,6 +3898,7 @@ snapshots: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + optional: true chalk@5.4.1: optional: true @@ -3472,13 +3930,15 @@ snapshots: whatwg-mimetype: 4.0.0 optional: true - cli-width@4.1.0: {} + cli-width@4.1.0: + optional: true cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + optional: true color-convert@2.0.1: dependencies: @@ -3506,11 +3966,15 @@ snapshots: readable-stream: 4.7.0 optional: true + concat-map@0.0.1: + optional: true + confbox@0.1.8: {} - cookie@0.7.2: {} + cookie@0.7.2: + optional: true - core-js@3.39.0: {} + core-js@3.40.0: {} core-util-is@1.0.3: optional: true @@ -3553,6 +4017,8 @@ snapshots: '@asamuzakjp/css-color': 2.8.3 rrweb-cssom: 0.8.0 + csstype@3.1.3: {} + data-uri-to-buffer@4.0.1: optional: true @@ -3587,9 +4053,11 @@ snapshots: delayed-stream@1.0.0: {} - dequal@2.0.3: {} + dequal@2.0.3: + optional: true - dom-accessibility-api@0.5.16: {} + dom-accessibility-api@0.5.16: + optional: true dom-serializer@2.0.0: dependencies: @@ -3598,8 +4066,6 @@ snapshots: entities: 4.5.0 optional: true - dom-walk@0.1.2: {} - domelementtype@2.3.0: optional: true @@ -3655,6 +4121,10 @@ snapshots: entities@4.5.0: {} + error-stack-parser@2.1.4: + dependencies: + stackframe: 1.3.4 + es-module-lexer@1.6.0: {} esbuild@0.23.1: @@ -3712,7 +4182,8 @@ snapshots: '@esbuild/win32-ia32': 0.24.2 '@esbuild/win32-x64': 0.24.2 - escalade@3.2.0: {} + escalade@3.2.0: + optional: true escodegen@2.1.0: dependencies: @@ -3760,6 +4231,9 @@ snapshots: fast-deep-equal@2.0.1: optional: true + fast-deep-equal@3.1.3: + optional: true + fast-fifo@1.3.2: optional: true @@ -3799,12 +4273,22 @@ snapshots: fetch-blob: 3.2.0 optional: true + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + optional: true + fsevents@2.3.2: optional: true fsevents@2.3.3: optional: true + function-bind@1.1.2: + optional: true + geckodriver@5.0.0: dependencies: '@wdio/logger': 9.4.4 @@ -3820,7 +4304,8 @@ snapshots: - supports-color optional: true - get-caller-file@2.0.5: {} + get-caller-file@2.0.5: + optional: true get-port@7.1.0: optional: true @@ -3852,11 +4337,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - global@4.4.0: - dependencies: - min-document: 2.19.0 - process: 0.11.10 - globrex@0.1.2: {} graceful-fs@4.2.11: @@ -3865,16 +4345,25 @@ snapshots: grapheme-splitter@1.0.4: optional: true - graphql@16.10.0: {} + graphql@16.10.0: + optional: true has-flag@4.0.0: {} - headers-polyfill@4.0.3: {} + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + optional: true + + headers-polyfill@4.0.3: + optional: true html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 + html-entities@2.5.2: {} + html-escaper@2.0.2: {} htmlfy@0.6.0: @@ -3912,25 +4401,30 @@ snapshots: immediate@3.0.6: optional: true + import-lazy@4.0.0: + optional: true + import-meta-resolve@4.1.0: optional: true inherits@2.0.4: optional: true - injection-js@https://codeload.github.com/mgechev/injection-js/tar.gz/81a10e0: - dependencies: - tslib: 2.8.1 - ip-address@9.0.5: dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 optional: true + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + optional: true + is-fullwidth-code-point@3.0.0: {} - is-node-process@1.2.0: {} + is-node-process@1.2.0: + optional: true is-plain-obj@4.1.0: optional: true @@ -3977,7 +4471,11 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - js-tokens@4.0.0: {} + jju@1.4.0: + optional: true + + js-tokens@4.0.0: + optional: true jsbn@1.1.0: optional: true @@ -4010,6 +4508,18 @@ snapshots: - supports-color - utf-8-validate + jsesc@3.1.0: {} + + json-schema-traverse@1.0.0: + optional: true + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + optional: true + jszip@3.10.1: dependencies: lie: 3.3.0 @@ -4058,10 +4568,16 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + optional: true + lru-cache@7.18.3: optional: true - lz-string@1.5.0: {} + lz-string@1.5.0: + optional: true magic-regexp@0.8.0: dependencies: @@ -4093,9 +4609,10 @@ snapshots: dependencies: mime-db: 1.52.0 - min-document@2.19.0: + minimatch@3.0.8: dependencies: - dom-walk: 0.1.2 + brace-expansion: 1.1.11 + optional: true minimatch@5.1.6: dependencies: @@ -4115,12 +4632,8 @@ snapshots: pkg-types: 1.3.1 ufo: 1.5.4 - mock-local-storage@1.1.24: - dependencies: - core-js: 3.39.0 - global: 4.4.0 - - mrmime@2.0.0: {} + mrmime@2.0.0: + optional: true ms@2.1.3: {} @@ -4148,8 +4661,10 @@ snapshots: typescript: 5.7.3 transitivePeerDependencies: - '@types/node' + optional: true - mute-stream@2.0.0: {} + mute-stream@2.0.0: + optional: true nanoid@3.3.8: {} @@ -4181,7 +4696,8 @@ snapshots: wrappy: 1.0.2 optional: true - outvariant@1.4.3: {} + outvariant@1.4.3: + optional: true oxc-parser@0.48.1: dependencies: @@ -4244,12 +4760,16 @@ snapshots: path-key@3.1.1: {} + path-parse@1.0.7: + optional: true + path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@6.3.0: {} + path-to-regexp@6.3.0: + optional: true pathe@2.0.1: {} @@ -4297,11 +4817,13 @@ snapshots: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 + optional: true process-nextick-args@2.0.1: optional: true - process@0.11.10: {} + process@0.11.10: + optional: true progress@2.0.3: optional: true @@ -4326,6 +4848,7 @@ snapshots: psl@1.15.0: dependencies: punycode: 2.3.1 + optional: true pump@3.0.2: dependencies: @@ -4338,9 +4861,20 @@ snapshots: query-selector-shadow-dom@1.0.1: optional: true - querystringify@2.2.0: {} + querystringify@2.2.0: + optional: true - react-is@17.0.2: {} + react-dom@19.0.0(react@19.0.0): + dependencies: + react: 19.0.0 + scheduler: 0.25.0 + + react-is@17.0.2: + optional: true + + react-refresh@0.16.0: {} + + react@19.0.0: {} readable-stream@2.3.8: dependencies: @@ -4369,16 +4903,29 @@ snapshots: reflect-metadata@0.2.2: {} - regenerator-runtime@0.14.1: {} + regenerator-runtime@0.14.1: + optional: true regexp-tree@0.1.27: {} - require-directory@2.1.1: {} + require-directory@2.1.1: + optional: true - requires-port@1.0.0: {} + require-from-string@2.0.2: + optional: true + + requires-port@1.0.0: + optional: true resolve-pkg-maps@1.0.0: {} + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + optional: true + resq@1.11.0: dependencies: fast-deep-equal: 2.0.1 @@ -4416,13 +4963,14 @@ snapshots: rrweb-cssom@0.8.0: {} - rsbuild-plugin-dts@0.3.1(@rsbuild/core@1.2.0-beta.0)(typescript@5.7.3): + rsbuild-plugin-dts@0.4.0(@microsoft/api-extractor@7.49.2(@types/node@22.12.0))(@rsbuild/core@1.2.4)(typescript@5.7.3): dependencies: - '@rsbuild/core': 1.2.0-beta.0 + '@rsbuild/core': 1.2.4 magic-string: 0.30.17 picocolors: 1.1.1 tinyglobby: 0.2.10 optionalDependencies: + '@microsoft/api-extractor': 7.49.2(@types/node@22.12.0) typescript: 5.7.3 rxjs@7.8.1: @@ -4444,6 +4992,13 @@ snapshots: dependencies: xmlchars: 2.2.0 + scheduler@0.25.0: {} + + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + optional: true + semver@7.6.3: {} serialize-error@11.0.3: @@ -4469,6 +5024,7 @@ snapshots: '@polka/url': 1.0.0-next.28 mrmime: 2.0.0 totalist: 3.0.1 + optional: true smart-buffer@4.2.0: optional: true @@ -4499,12 +5055,18 @@ snapshots: split2@4.2.0: optional: true + sprintf-js@1.0.3: + optional: true + sprintf-js@1.1.3: optional: true stackback@0.0.2: {} - statuses@2.0.1: {} + stackframe@1.3.4: {} + + statuses@2.0.1: + optional: true std-env@3.8.0: {} @@ -4516,7 +5078,11 @@ snapshots: bare-events: 2.5.4 optional: true - strict-event-emitter@0.5.1: {} + strict-event-emitter@0.5.1: + optional: true + + string-argv@0.3.2: + optional: true string-width@4.2.3: dependencies: @@ -4548,6 +5114,9 @@ snapshots: dependencies: ansi-regex: 6.1.0 + strip-json-comments@3.1.1: + optional: true + strnum@1.0.5: optional: true @@ -4555,6 +5124,14 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + optional: true + + supports-preserve-symlinks-flag@1.0.0: + optional: true + symbol-tree@3.2.4: {} tar-fs@3.0.8: @@ -4589,6 +5166,10 @@ snapshots: through@2.3.8: optional: true + tiny-invariant@1.3.3: {} + + tiny-warning@1.0.3: {} + tinybench@2.9.0: {} tinyexec@0.3.2: {} @@ -4610,7 +5191,8 @@ snapshots: dependencies: tldts-core: 6.1.75 - totalist@3.0.1: {} + totalist@3.0.1: + optional: true tough-cookie@4.1.4: dependencies: @@ -4618,6 +5200,7 @@ snapshots: punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 + optional: true tough-cookie@5.1.0: dependencies: @@ -4640,7 +5223,8 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - type-fest@0.21.3: {} + type-fest@0.21.3: + optional: true type-fest@2.19.0: optional: true @@ -4648,10 +5232,14 @@ snapshots: type-fest@4.26.0: optional: true - type-fest@4.33.0: {} + type-fest@4.33.0: + optional: true type-level-regexp@0.1.17: {} + typescript@5.7.2: + optional: true + typescript@5.7.3: {} ufo@1.5.4: {} @@ -4674,7 +5262,11 @@ snapshots: undici@6.21.1: optional: true - universalify@0.2.0: {} + universalify@0.2.0: + optional: true + + universalify@2.0.1: + optional: true unplugin-swc@1.5.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(rollup@4.30.1): dependencies: @@ -4690,14 +5282,24 @@ snapshots: acorn: 8.14.0 webpack-virtual-modules: 0.6.2 + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + optional: true + url-parse@1.5.10: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + optional: true urlpattern-polyfill@10.0.0: optional: true + use-sync-external-store@1.4.0(react@19.0.0): + dependencies: + react: 19.0.0 + userhome@1.0.1: optional: true @@ -4891,6 +5493,7 @@ snapshots: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + optional: true wrap-ansi@7.0.0: dependencies: @@ -4913,9 +5516,14 @@ snapshots: xmlchars@2.2.0: {} - y18n@5.0.8: {} + y18n@5.0.8: + optional: true - yargs-parser@21.1.1: {} + yallist@4.0.0: + optional: true + + yargs-parser@21.1.1: + optional: true yargs@17.7.2: dependencies: @@ -4926,6 +5534,7 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + optional: true yauzl@2.10.0: dependencies: @@ -4933,7 +5542,8 @@ snapshots: fd-slicer: 1.1.0 optional: true - yoctocolors-cjs@2.1.2: {} + yoctocolors-cjs@2.1.2: + optional: true zip-stream@6.0.1: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..e1fec93 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - 'examples/*' diff --git a/rslib.config.ts b/rslib.config.ts index 21b55eb..6328a1c 100644 --- a/rslib.config.ts +++ b/rslib.config.ts @@ -2,17 +2,31 @@ import { defineConfig } from '@rslib/core'; export default defineConfig({ source: { - tsconfigPath: './tsconfig.lib.json' + tsconfigPath: './tsconfig.lib.json', }, lib: [ { format: 'esm', syntax: 'es2021', - dts: true, + bundle: false, + dts: { + bundle: false, + build: true, + distPath: './dist', + }, }, { format: 'cjs', syntax: 'es2021', + dts: false, + bundle: true, + source: { + entry: { + index: './src/index.ts', + 'adapters/react': './src/adapters/react/index.ts', + 'adapters/tanstack-router': './src/adapters/tanstack-router/index.ts', + }, + }, }, ], output: { diff --git a/src/adapters/react/index.ts b/src/adapters/react/index.ts new file mode 100644 index 0000000..bf5e74c --- /dev/null +++ b/src/adapters/react/index.ts @@ -0,0 +1,47 @@ +import type { InjectionToken, Injector, Type } from '@outposts/injection-js'; +import { + type PropsWithChildren, + createContext, + createElement, + useContext, + useMemo, +} from 'react'; +import { OidcSecurityService } from '../..'; + +export const InjectorContextVoidInjector: Injector = { + get: (_token: Type | InjectionToken, _notFoundValue?: T): T => { + throw new Error('Please wrap with a InjectorContext.Provider first'); + }, +}; + +export const InjectorContext = createContext( + InjectorContextVoidInjector +); + +export function InjectorProvider({ + injector, + ...props +}: PropsWithChildren<{ injector: Injector }>) { + return createElement(InjectorContext, { + ...props, + value: injector, + }); +} + +export function useInjector() { + return useContext(InjectorContext); +} + +export function useOidcClient() { + const injector = useInjector(); + + const oidcSecurityService = useMemo( + () => injector.get(OidcSecurityService), + [injector] + ); + + return { + injector, + oidcSecurityService, + }; +} diff --git a/src/adapters/tanstack-router/index.ts b/src/adapters/tanstack-router/index.ts new file mode 100644 index 0000000..7542d46 --- /dev/null +++ b/src/adapters/tanstack-router/index.ts @@ -0,0 +1,45 @@ +import { InjectionToken, inject } from '@outposts/injection-js'; +import type { + AnyRoute, + Router, + TrailingSlashOption, +} from '@tanstack/react-router'; +import { AbstractRouter } from 'src/router'; +import type { AuthFeature } from '../../provide-auth'; + +export type TanStackRouter = Router; + +export const TANSTACK_ROUTER = new InjectionToken( + 'TANSTACK_ROUTER' +); + +export class TanStackRouterAdapter implements AbstractRouter { + private router = inject(TANSTACK_ROUTER); + + navigateByUrl(url: string): void { + this.router.navigate({ + href: url, + }); + } + + getCurrentNavigation() { + return { + extractedUrl: this.router.state.location.href, + }; + } +} + +export function withTanstackRouter(router: TanStackRouter): AuthFeature { + return { + ɵproviders: [ + { + provide: TANSTACK_ROUTER, + useValue: router, + }, + { + provide: AbstractRouter, + useClass: TanStackRouterAdapter, + }, + ], + }; +} diff --git a/src/api/data.service.ts b/src/api/data.service.ts index cfb7297..9c8550b 100644 --- a/src/api/data.service.ts +++ b/src/api/data.service.ts @@ -1,5 +1,5 @@ import { HttpHeaders } from '@ngify/http'; -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { Observable } from 'rxjs'; import type { OpenIdConfiguration } from '../config/openid-configuration'; import { HttpParams } from '../http'; diff --git a/src/api/http-base.service.ts b/src/api/http-base.service.ts index 0156b65..d11d472 100644 --- a/src/api/http-base.service.ts +++ b/src/api/http-base.service.ts @@ -1,5 +1,5 @@ import { HttpClient, type HttpHeaders } from '@ngify/http'; -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { Observable } from 'rxjs'; import type { HttpParams } from '../http'; @@ -13,7 +13,7 @@ export class HttpBaseService { ): Observable { return this.http.get(url, { ...options, - params: options.params.toNgify(), + params: options.params?.toNgify(), }); } @@ -24,7 +24,7 @@ export class HttpBaseService { ): Observable { return this.http.post(url, body, { ...options, - params: options.params.toNgify(), + params: options.params?.toNgify(), }); } } diff --git a/src/auth-config.ts b/src/auth-config.ts index 6b441bc..6f65007 100644 --- a/src/auth-config.ts +++ b/src/auth-config.ts @@ -1,4 +1,4 @@ -import { InjectionToken, type Provider } from 'injection-js'; +import { InjectionToken, type Provider } from '@outposts/injection-js'; import { type StsConfigLoader, StsConfigStaticLoader, diff --git a/src/auth-state/auth-state.service.ts b/src/auth-state/auth-state.service.ts index 27489b5..2a359f4 100644 --- a/src/auth-state/auth-state.service.ts +++ b/src/auth-state/auth-state.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { BehaviorSubject, type Observable, throwError } from 'rxjs'; import { distinctUntilChanged } from 'rxjs/operators'; import type { OpenIdConfiguration } from '../config/openid-configuration'; diff --git a/src/auth-state/check-auth.service.ts b/src/auth-state/check-auth.service.ts index a8c72c9..322edbe 100644 --- a/src/auth-state/check-auth.service.ts +++ b/src/auth-state/check-auth.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, forkJoin, of, throwError } from 'rxjs'; import { catchError, map, switchMap, tap } from 'rxjs/operators'; import { AutoLoginService } from '../auto-login/auto-login.service'; diff --git a/src/auth.module.ts b/src/auth.module.ts index a3e2b6b..cf06597 100644 --- a/src/auth.module.ts +++ b/src/auth.module.ts @@ -3,7 +3,7 @@ import { Injector, ReflectiveInjector, type Type, -} from 'injection-js'; +} from '@outposts/injection-js'; import type { PassedInitialConfig } from './auth-config'; import type { Module } from './injection'; import { _provideAuth } from './provide-auth'; @@ -34,7 +34,7 @@ export class AuthModule extends Injector { } get(token: Type | InjectionToken, notFoundValue?: T): T; - get(token: any, notFoundValue?: any); + get(token: any, notFoundValue?: any): any; get(token: unknown, notFoundValue?: unknown): any { return this.injector.get(token, notFoundValue); } diff --git a/src/auto-login/auto-login-partial-routes.guard.spec.ts b/src/auto-login/auto-login-partial-routes.guard.spec.ts index 4557bf7..ecf7cd2 100644 --- a/src/auto-login/auto-login-partial-routes.guard.spec.ts +++ b/src/auto-login/auto-login-partial-routes.guard.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, mockRouterProvider } from '@/testing'; +import { type MockRouter, TestBed, mockRouterProvider } from '@/testing'; import { AbstractRouter, type ActivatedRouteSnapshot, @@ -43,7 +43,7 @@ describe('AutoLoginPartialRoutesGuard', () => { let storagePersistenceService: StoragePersistenceService; let configurationService: ConfigurationService; let autoLoginService: AutoLoginService; - let router: AbstractRouter; + let router: MockRouter; beforeEach(() => { authStateService = TestBed.inject(AuthStateService); @@ -293,11 +293,6 @@ describe('AutoLoginPartialRoutesGuard', () => { extractedUrl: router.parseUrl( 'some-url12/with/some-param?queryParam=true' ), - extras: {}, - id: 1, - initialUrl: router.parseUrl(''), - previousNavigation: null, - trigger: 'imperative', }); await firstValueFrom(guard.canLoad()); @@ -342,7 +337,7 @@ describe('AutoLoginPartialRoutesGuard', () => { let storagePersistenceService: StoragePersistenceService; let configurationService: ConfigurationService; let autoLoginService: AutoLoginService; - let router: AbstractRouter; + let router: MockRouter; beforeEach(() => { authStateService = TestBed.inject(AuthStateService); @@ -398,11 +393,6 @@ describe('AutoLoginPartialRoutesGuard', () => { extractedUrl: router.parseUrl( 'some-url12/with/some-param?queryParam=true' ), - extras: {}, - id: 1, - initialUrl: router.parseUrl(''), - previousNavigation: null, - trigger: 'imperative', }); vi.spyOn(authStateService, 'areAuthStorageTokensValid').mockReturnValue( diff --git a/src/auto-login/auto-login-partial-routes.guard.ts b/src/auto-login/auto-login-partial-routes.guard.ts index 8c50c42..9e1c926 100644 --- a/src/auto-login/auto-login-partial-routes.guard.ts +++ b/src/auto-login/auto-login-partial-routes.guard.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import type { AuthOptions } from '../auth-options'; diff --git a/src/auto-login/auto-login.service.ts b/src/auto-login/auto-login.service.ts index 0f476c2..2a97506 100644 --- a/src/auto-login/auto-login.service.ts +++ b/src/auto-login/auto-login.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { OpenIdConfiguration } from '../config/openid-configuration'; import { injectAbstractType } from '../injection'; import { AbstractRouter } from '../router'; diff --git a/src/callback/callback.service.ts b/src/callback/callback.service.ts index f4e529d..9cb3152 100644 --- a/src/callback/callback.service.ts +++ b/src/callback/callback.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { Observable, Subject } from 'rxjs'; import { tap } from 'rxjs/operators'; import type { OpenIdConfiguration } from '../config/openid-configuration'; diff --git a/src/callback/code-flow-callback.service.ts b/src/callback/code-flow-callback.service.ts index 2f4f3cb..fb04b41 100644 --- a/src/callback/code-flow-callback.service.ts +++ b/src/callback/code-flow-callback.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, throwError } from 'rxjs'; import { catchError, tap } from 'rxjs/operators'; import type { OpenIdConfiguration } from '../config/openid-configuration'; diff --git a/src/callback/implicit-flow-callback.service.ts b/src/callback/implicit-flow-callback.service.ts index 5dd406c..4c1944f 100644 --- a/src/callback/implicit-flow-callback.service.ts +++ b/src/callback/implicit-flow-callback.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, throwError } from 'rxjs'; import { catchError, tap } from 'rxjs/operators'; import type { OpenIdConfiguration } from '../config/openid-configuration'; diff --git a/src/callback/interval.service.ts b/src/callback/interval.service.ts index ee32b7c..2f75f55 100644 --- a/src/callback/interval.service.ts +++ b/src/callback/interval.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, type Subscription, interval } from 'rxjs'; import { DOCUMENT } from '../dom'; diff --git a/src/callback/periodically-token-check.service.ts b/src/callback/periodically-token-check.service.ts index bc73068..a7731e0 100644 --- a/src/callback/periodically-token-check.service.ts +++ b/src/callback/periodically-token-check.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, ReplaySubject, forkJoin, of, throwError } from 'rxjs'; import { catchError, map, share, switchMap } from 'rxjs/operators'; import { AuthStateService } from '../auth-state/auth-state.service'; diff --git a/src/callback/refresh-session-refresh-token.service.ts b/src/callback/refresh-session-refresh-token.service.ts index 63114c6..442f4a7 100644 --- a/src/callback/refresh-session-refresh-token.service.ts +++ b/src/callback/refresh-session-refresh-token.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, throwError } from 'rxjs'; import { catchError, finalize } from 'rxjs/operators'; import type { OpenIdConfiguration } from '../config/openid-configuration'; diff --git a/src/callback/refresh-session.service.ts b/src/callback/refresh-session.service.ts index 496da4a..03542a5 100644 --- a/src/callback/refresh-session.service.ts +++ b/src/callback/refresh-session.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, TimeoutError, diff --git a/src/config/auth-well-known/auth-well-known-data.service.ts b/src/config/auth-well-known/auth-well-known-data.service.ts index 78eeec2..3922b8d 100644 --- a/src/config/auth-well-known/auth-well-known-data.service.ts +++ b/src/config/auth-well-known/auth-well-known-data.service.ts @@ -1,4 +1,4 @@ -import { inject, Injectable } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, throwError } from 'rxjs'; import { map, retry } from 'rxjs/operators'; import { DataService } from '../../api/data.service'; @@ -42,7 +42,7 @@ export class AuthWellKnownDataService { introspectionEndpoint: wellKnownEndpoints.introspection_endpoint, parEndpoint: wellKnownEndpoints.pushed_authorization_request_endpoint, - } as AuthWellKnownEndpoints) + }) as AuthWellKnownEndpoints ), map((mappedWellKnownEndpoints) => ({ ...mappedWellKnownEndpoints, diff --git a/src/config/auth-well-known/auth-well-known.service.ts b/src/config/auth-well-known/auth-well-known.service.ts index 2efe05f..9d72eed 100644 --- a/src/config/auth-well-known/auth-well-known.service.ts +++ b/src/config/auth-well-known/auth-well-known.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, throwError } from 'rxjs'; import { catchError, tap } from 'rxjs/operators'; import { EventTypes } from '../../public-events/event-types'; diff --git a/src/config/config.service.ts b/src/config/config.service.ts index 80ce2ab..bd8e5ef 100644 --- a/src/config/config.service.ts +++ b/src/config/config.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, forkJoin, of } from 'rxjs'; import { concatMap, map } from 'rxjs/operators'; import { injectAbstractType } from '../injection/inject'; diff --git a/src/config/loader/config-loader.ts b/src/config/loader/config-loader.ts index 5d95d71..307801f 100644 --- a/src/config/loader/config-loader.ts +++ b/src/config/loader/config-loader.ts @@ -1,4 +1,4 @@ -import type { Provider } from 'injection-js'; +import type { Provider } from '@outposts/injection-js'; import { type Observable, forkJoin, of } from 'rxjs'; import { map } from 'rxjs/operators'; import type { OpenIdConfiguration } from '../openid-configuration'; diff --git a/src/config/validation/config-validation.service.spec.ts b/src/config/validation/config-validation.service.spec.ts index 39a872e..0af019c 100644 --- a/src/config/validation/config-validation.service.spec.ts +++ b/src/config/validation/config-validation.service.spec.ts @@ -1,4 +1,4 @@ -import { TestBed, mockImplementationWhenArgsEqual } from '@/testing'; +import { TestBed } from '@/testing'; import { mockImplementationWhenArgs, spyOnWithOrigin } from '@/testing/spy'; import { vi } from 'vitest'; import { LogLevel } from '../../logging/log-level'; diff --git a/src/config/validation/config-validation.service.ts b/src/config/validation/config-validation.service.ts index 19aa266..69f243a 100644 --- a/src/config/validation/config-validation.service.ts +++ b/src/config/validation/config-validation.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { LoggerService } from '../../logging/logger.service'; import type { OpenIdConfiguration } from '../openid-configuration'; import type { Level, RuleValidationResult } from './rule'; diff --git a/src/dom/index.ts b/src/dom/index.ts index 432305d..eefc2d0 100644 --- a/src/dom/index.ts +++ b/src/dom/index.ts @@ -1,3 +1,3 @@ -import { InjectionToken } from "injection-js"; +import { InjectionToken } from '@outposts/injection-js'; -export const DOCUMENT = new InjectionToken('document'); \ No newline at end of file +export const DOCUMENT = new InjectionToken('document'); diff --git a/src/extractors/jwk.extractor.ts b/src/extractors/jwk.extractor.ts index d487d85..647d9ad 100644 --- a/src/extractors/jwk.extractor.ts +++ b/src/extractors/jwk.extractor.ts @@ -1,4 +1,4 @@ -import { Injectable } from 'injection-js'; +import { Injectable } from '@outposts/injection-js'; @Injectable() export class JwkExtractor { diff --git a/src/flows/callback-handling/code-flow-callback-handler.service.ts b/src/flows/callback-handling/code-flow-callback-handler.service.ts index a7ef847..f5061ec 100644 --- a/src/flows/callback-handling/code-flow-callback-handler.service.ts +++ b/src/flows/callback-handling/code-flow-callback-handler.service.ts @@ -1,5 +1,5 @@ import { HttpHeaders } from '@ngify/http'; -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of, throwError, timer } from 'rxjs'; import { catchError, mergeMap, retryWhen, switchMap } from 'rxjs/operators'; import { DataService } from '../../api/data.service'; diff --git a/src/flows/callback-handling/history-jwt-keys-callback-handler.service.ts b/src/flows/callback-handling/history-jwt-keys-callback-handler.service.ts index b24e87e..7473327 100644 --- a/src/flows/callback-handling/history-jwt-keys-callback-handler.service.ts +++ b/src/flows/callback-handling/history-jwt-keys-callback-handler.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of, throwError } from 'rxjs'; import { catchError, switchMap, tap } from 'rxjs/operators'; import { AuthStateService } from '../../auth-state/auth-state.service'; diff --git a/src/flows/callback-handling/implicit-flow-callback-handler.service.ts b/src/flows/callback-handling/implicit-flow-callback-handler.service.ts index 16097d1..3938cfd 100644 --- a/src/flows/callback-handling/implicit-flow-callback-handler.service.ts +++ b/src/flows/callback-handling/implicit-flow-callback-handler.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of } from 'rxjs'; import type { OpenIdConfiguration } from '../../config/openid-configuration'; import { DOCUMENT } from '../../dom'; diff --git a/src/flows/callback-handling/refresh-session-callback-handler.service.ts b/src/flows/callback-handling/refresh-session-callback-handler.service.ts index 766eaf2..0ac736b 100644 --- a/src/flows/callback-handling/refresh-session-callback-handler.service.ts +++ b/src/flows/callback-handling/refresh-session-callback-handler.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of, throwError } from 'rxjs'; import { AuthStateService } from '../../auth-state/auth-state.service'; import type { OpenIdConfiguration } from '../../config/openid-configuration'; diff --git a/src/flows/callback-handling/refresh-token-callback-handler.service.ts b/src/flows/callback-handling/refresh-token-callback-handler.service.ts index 7fb59e5..820d27d 100644 --- a/src/flows/callback-handling/refresh-token-callback-handler.service.ts +++ b/src/flows/callback-handling/refresh-token-callback-handler.service.ts @@ -1,5 +1,5 @@ import { HttpHeaders } from '@ngify/http'; -import { inject, Injectable } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of, throwError, timer } from 'rxjs'; import { catchError, mergeMap, retryWhen, switchMap } from 'rxjs/operators'; import { DataService } from '../../api/data.service'; diff --git a/src/flows/callback-handling/state-validation-callback-handler.service.ts b/src/flows/callback-handling/state-validation-callback-handler.service.ts index a2362bf..8d2a331 100644 --- a/src/flows/callback-handling/state-validation-callback-handler.service.ts +++ b/src/flows/callback-handling/state-validation-callback-handler.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { AuthStateService } from '../../auth-state/auth-state.service'; diff --git a/src/flows/callback-handling/user-callback-handler.service.ts b/src/flows/callback-handling/user-callback-handler.service.ts index 5a312cb..2fddc11 100644 --- a/src/flows/callback-handling/user-callback-handler.service.ts +++ b/src/flows/callback-handling/user-callback-handler.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of, throwError } from 'rxjs'; import { catchError, switchMap } from 'rxjs/operators'; import { AuthStateService } from '../../auth-state/auth-state.service'; diff --git a/src/flows/flows-data.service.ts b/src/flows/flows-data.service.ts index 42d55be..cbad8d6 100644 --- a/src/flows/flows-data.service.ts +++ b/src/flows/flows-data.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { OpenIdConfiguration } from '../config/openid-configuration'; import { LoggerService } from '../logging/logger.service'; import { StoragePersistenceService } from '../storage/storage-persistence.service'; diff --git a/src/flows/flows.service.ts b/src/flows/flows.service.ts index 9026b6e..0589950 100644 --- a/src/flows/flows.service.ts +++ b/src/flows/flows.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { Observable } from 'rxjs'; import { concatMap } from 'rxjs/operators'; import type { OpenIdConfiguration } from '../config/openid-configuration'; diff --git a/src/flows/random/random.service.ts b/src/flows/random/random.service.ts index 86b7e14..2a3e13b 100644 --- a/src/flows/random/random.service.ts +++ b/src/flows/random/random.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { OpenIdConfiguration } from '../../config/openid-configuration'; import { LoggerService } from '../../logging/logger.service'; import { CryptoService } from '../../utils/crypto/crypto.service'; diff --git a/src/flows/reset-auth-data.service.ts b/src/flows/reset-auth-data.service.ts index 1caa4e1..c4600a1 100644 --- a/src/flows/reset-auth-data.service.ts +++ b/src/flows/reset-auth-data.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { AuthStateService } from '../auth-state/auth-state.service'; import type { OpenIdConfiguration } from '../config/openid-configuration'; import { LoggerService } from '../logging/logger.service'; diff --git a/src/flows/signin-key-data.service.ts b/src/flows/signin-key-data.service.ts index c18918f..b3fd0ed 100644 --- a/src/flows/signin-key-data.service.ts +++ b/src/flows/signin-key-data.service.ts @@ -1,5 +1,5 @@ import { HttpResponse } from '@ngify/http'; -import { inject, Injectable } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, throwError } from 'rxjs'; import { catchError, retry } from 'rxjs/operators'; import { DataService } from '../api/data.service'; diff --git a/src/http/index.ts b/src/http/index.ts index 256fc95..f945cbe 100644 --- a/src/http/index.ts +++ b/src/http/index.ts @@ -8,9 +8,13 @@ import { withInterceptors, withLegacyInterceptors, } from '@ngify/http'; -import { InjectionToken, Optional, type Provider } from 'injection-js'; +import { + InjectionToken, + Optional, + type Provider, +} from '@outposts/injection-js'; import type { ArrayOrNullableOne } from '../utils/types'; -export { HttpParams, HttpParamsOptions } from './params'; +export { HttpParams, type HttpParamsOptions } from './params'; export const HTTP_FEATURES = new InjectionToken('HTTP_FEATURES'); diff --git a/src/http/params.ts b/src/http/params.ts index 1ed15e9..eef2580 100644 --- a/src/http/params.ts +++ b/src/http/params.ts @@ -88,6 +88,7 @@ function paramParser( // The `window.location.search` can be used while creating an instance of the `HttpParams` class // (e.g. `new HttpParams({ fromString: window.location.search })`). The `window.location.search` // may start with the `?` char, so we strip it if it's present. + // biome-ignore lint/performance/useTopLevelRegex: const params: string[] = rawParams.replace(/^\?/, '').split('&'); params.forEach((param: string) => { const eqIdx = param.indexOf('='); @@ -304,7 +305,7 @@ export class HttpParams { toNgify(): NgifyHttpParams { this.init(); return new NgifyHttpParams().appendAll( - Object.fromEntries(this.map.entries()) + Object.fromEntries(this.map!.entries()) ); } diff --git a/src/iframe/check-session.service.ts b/src/iframe/check-session.service.ts index 02e5dd4..00d6b5b 100644 --- a/src/iframe/check-session.service.ts +++ b/src/iframe/check-session.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { BehaviorSubject, Observable, of } from 'rxjs'; import { take } from 'rxjs/operators'; import type { OpenIdConfiguration } from '../config/openid-configuration'; diff --git a/src/iframe/existing-iframe.service.ts b/src/iframe/existing-iframe.service.ts index c5aa27f..809ad8d 100644 --- a/src/iframe/existing-iframe.service.ts +++ b/src/iframe/existing-iframe.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { OpenIdConfiguration } from '../config/openid-configuration'; import { DOCUMENT } from '../dom'; import { LoggerService } from '../logging/logger.service'; diff --git a/src/iframe/refresh-session-iframe.service.ts b/src/iframe/refresh-session-iframe.service.ts index 9f8fae0..1eb21b5 100644 --- a/src/iframe/refresh-session-iframe.service.ts +++ b/src/iframe/refresh-session-iframe.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { Observable, ReplaySubject, @@ -82,14 +82,14 @@ export class RefreshSessionIframeService { ): void { const instanceId = Math.random(); - const oidcSilentRenewInit$ = fromEventPattern( + const oidcSilentRenewInit$ = fromEventPattern( (handler) => - this.document.defaultView.window.addEventListener( + this.document.defaultView?.window?.addEventListener( 'oidc-silent-renew-init', handler ), (handler) => - this.document.defaultView.window.removeEventListener( + this.document.defaultView?.window?.removeEventListener( 'oidc-silent-renew-init', handler ) @@ -104,12 +104,12 @@ export class RefreshSessionIframeService { } this.silentRenewEventHandlerSubscription = fromEventPattern( (handler) => - this.document.defaultView.window.addEventListener( + this.document.defaultView?.window?.addEventListener( 'oidc-silent-renew-message', handler ), (handler) => - this.document.defaultView.window.removeEventListener( + this.document.defaultView?.window?.removeEventListener( 'oidc-silent-renew-message', handler ) diff --git a/src/iframe/silent-renew.service.ts b/src/iframe/silent-renew.service.ts index 2c2f264..ae12bcc 100644 --- a/src/iframe/silent-renew.service.ts +++ b/src/iframe/silent-renew.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, Subject, of, throwError } from 'rxjs'; import { catchError, map } from 'rxjs/operators'; import { AuthStateService } from '../auth-state/auth-state.service'; diff --git a/src/injection/convention.ts b/src/injection/convention.ts deleted file mode 100644 index 28947a1..0000000 --- a/src/injection/convention.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { InjectionToken } from 'injection-js'; -import type { Observable } from 'rxjs'; - -export const APP_INITIALIZER = new InjectionToken< - // biome-ignore lint/suspicious/noConfusingVoidType: - readonly (() => void | Observable | Promise)[] ->('APP_INITIALIZER'); diff --git a/src/injection/index.ts b/src/injection/index.ts index cf84fe3..da56758 100644 --- a/src/injection/index.ts +++ b/src/injection/index.ts @@ -1,3 +1,2 @@ export type { Module } from './module'; -export { APP_INITIALIZER } from './convention'; export { injectAbstractType } from './inject'; diff --git a/src/injection/inject.ts b/src/injection/inject.ts index 4ad96bb..8a3ca9a 100644 --- a/src/injection/inject.ts +++ b/src/injection/inject.ts @@ -1,4 +1,4 @@ -import { inject } from 'injection-js'; +import { inject } from '@outposts/injection-js'; // biome-ignore lint/complexity/noBannedTypes: export interface AbstractType extends Function { diff --git a/src/injection/module.ts b/src/injection/module.ts index 525cdef..be5b2d2 100644 --- a/src/injection/module.ts +++ b/src/injection/module.ts @@ -1,3 +1,3 @@ -import type { Injector } from 'injection-js'; +import type { Injector } from '@outposts/injection-js'; export type Module = (parentInjector: Injector) => Injector; diff --git a/src/interceptor/auth.interceptor.ts b/src/interceptor/auth.interceptor.ts index 6e5d009..8a5b515 100644 --- a/src/interceptor/auth.interceptor.ts +++ b/src/interceptor/auth.interceptor.ts @@ -6,7 +6,7 @@ import type { HttpInterceptorFn, HttpRequest, } from '@ngify/http'; -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { Observable } from 'rxjs'; import { AuthStateService } from '../auth-state/auth-state.service'; import { ConfigurationService } from '../config/config.service'; diff --git a/src/interceptor/closest-matching-route.service.ts b/src/interceptor/closest-matching-route.service.ts index a478bac..2930804 100644 --- a/src/interceptor/closest-matching-route.service.ts +++ b/src/interceptor/closest-matching-route.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from 'injection-js'; +import { Injectable } from '@outposts/injection-js'; import type { OpenIdConfiguration } from '../config/openid-configuration'; @Injectable() diff --git a/src/logging/abstract-logger.service.ts b/src/logging/abstract-logger.service.ts index c414649..3bb481c 100644 --- a/src/logging/abstract-logger.service.ts +++ b/src/logging/abstract-logger.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from 'injection-js'; +import { Injectable } from '@outposts/injection-js'; /** * Implement this class-interface to create a custom logger service. diff --git a/src/logging/console-logger.service.ts b/src/logging/console-logger.service.ts index 4fd0733..b44c5bb 100644 --- a/src/logging/console-logger.service.ts +++ b/src/logging/console-logger.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from 'injection-js'; +import { Injectable } from '@outposts/injection-js'; import type { AbstractLoggerService } from './abstract-logger.service'; @Injectable() diff --git a/src/logging/logger.service.ts b/src/logging/logger.service.ts index 3e5d251..a0b9ac7 100644 --- a/src/logging/logger.service.ts +++ b/src/logging/logger.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from 'injection-js'; +import { Injectable } from '@outposts/injection-js'; import type { OpenIdConfiguration } from '../config/openid-configuration'; import { injectAbstractType } from '../injection/inject'; import { AbstractLoggerService } from './abstract-logger.service'; diff --git a/src/login/login.service.ts b/src/login/login.service.ts index cd099c8..ebcbae2 100644 --- a/src/login/login.service.ts +++ b/src/login/login.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of, throwError } from 'rxjs'; import type { AuthOptions } from '../auth-options'; import type { OpenIdConfiguration } from '../config/openid-configuration'; diff --git a/src/login/par/par-login.service.ts b/src/login/par/par-login.service.ts index 28c31a8..c1390bf 100644 --- a/src/login/par/par-login.service.ts +++ b/src/login/par/par-login.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of, throwError } from 'rxjs'; import { map, switchMap, take } from 'rxjs/operators'; import type { AuthOptions } from '../../auth-options'; diff --git a/src/login/par/par.service.ts b/src/login/par/par.service.ts index 606927c..bd84a5a 100644 --- a/src/login/par/par.service.ts +++ b/src/login/par/par.service.ts @@ -1,5 +1,5 @@ import { HttpHeaders } from '@ngify/http'; -import { inject, Injectable } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, throwError } from 'rxjs'; import { catchError, map, retry, switchMap } from 'rxjs/operators'; import { DataService } from '../../api/data.service'; @@ -74,7 +74,8 @@ export class ParService { }; }), catchError((error) => { - const errorMessage = 'There was an error on ParService postParRequest'; + const errorMessage = + 'There was an error on ParService postParRequest'; this.loggerService.logError(configuration, errorMessage, error); diff --git a/src/login/popup/popup-login.service.ts b/src/login/popup/popup-login.service.ts index c6411df..e73d635 100644 --- a/src/login/popup/popup-login.service.ts +++ b/src/login/popup/popup-login.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of, throwError } from 'rxjs'; import { switchMap, take, tap } from 'rxjs/operators'; import type { AuthOptions } from '../../auth-options'; diff --git a/src/login/popup/popup.service.ts b/src/login/popup/popup.service.ts index b95bd8d..0120228 100644 --- a/src/login/popup/popup.service.ts +++ b/src/login/popup/popup.service.ts @@ -1,7 +1,7 @@ -import { DOCUMENT } from '../../dom'; -import { inject, Injectable } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, Subject } from 'rxjs'; import type { OpenIdConfiguration } from '../../config/openid-configuration'; +import { DOCUMENT } from '../../dom'; import { LoggerService } from '../../logging/logger.service'; import { StoragePersistenceService } from '../../storage/storage-persistence.service'; import type { PopupOptions } from './popup-options'; diff --git a/src/login/response-type-validation/response-type-validation.service.ts b/src/login/response-type-validation/response-type-validation.service.ts index d746284..ab209e3 100644 --- a/src/login/response-type-validation/response-type-validation.service.ts +++ b/src/login/response-type-validation/response-type-validation.service.ts @@ -1,4 +1,4 @@ -import { inject, Injectable } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { OpenIdConfiguration } from '../../config/openid-configuration'; import { LoggerService } from '../../logging/logger.service'; import { FlowHelper } from '../../utils/flowHelper/flow-helper.service'; diff --git a/src/login/standard/standard-login.service.ts b/src/login/standard/standard-login.service.ts index 53eb1d5..65a4430 100644 --- a/src/login/standard/standard-login.service.ts +++ b/src/login/standard/standard-login.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, map, of, switchMap } from 'rxjs'; import type { AuthOptions } from '../../auth-options'; import { AuthWellKnownService } from '../../config/auth-well-known/auth-well-known.service'; diff --git a/src/logoff-revoke/logoff-revocation.service.ts b/src/logoff-revoke/logoff-revocation.service.ts index 7e1f20b..81f6e19 100644 --- a/src/logoff-revoke/logoff-revocation.service.ts +++ b/src/logoff-revoke/logoff-revocation.service.ts @@ -1,5 +1,5 @@ import { HttpHeaders } from '@ngify/http'; -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of, throwError } from 'rxjs'; import { catchError, concatMap, retry, switchMap } from 'rxjs/operators'; import { DataService } from '../api/data.service'; diff --git a/src/oidc.security.service.ts b/src/oidc.security.service.ts index 802b463..f37a593 100644 --- a/src/oidc.security.service.ts +++ b/src/oidc.security.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { BehaviorSubject, type Observable } from 'rxjs'; import { concatMap, map, switchMap } from 'rxjs/operators'; import type { AuthOptions, LogoutAuthOptions } from './auth-options'; diff --git a/src/provide-auth.spec.ts b/src/provide-auth.spec.ts index fd63ce3..c56f579 100644 --- a/src/provide-auth.spec.ts +++ b/src/provide-auth.spec.ts @@ -1,8 +1,6 @@ import { TestBed } from '@/testing'; -import { mockClass, mockProvider } from '@/testing/mock'; -import { APP_INITIALIZER } from 'oidc-client-rx'; +import { mockProvider } from '@/testing/mock'; import { of } from 'rxjs'; -import { vi } from 'vitest'; import { PASSED_CONFIG } from './auth-config'; import { ConfigurationService } from './config/config.service'; import { @@ -10,8 +8,7 @@ import { StsConfigLoader, StsConfigStaticLoader, } from './config/loader/config-loader'; -import { OidcSecurityService } from './oidc.security.service'; -import { provideAuth, withAppInitializerAuthCheck } from './provide-auth'; +import { provideAuth } from './provide-auth'; describe('provideAuth', () => { describe('APP_CONFIG', () => { @@ -59,37 +56,37 @@ describe('provideAuth', () => { }); }); - describe('features', () => { - let oidcSecurityServiceMock: OidcSecurityService; - let spy: any; + // describe('features', () => { + // let oidcSecurityServiceMock: OidcSecurityService; + // let spy: any; - beforeEach(async () => { - //@ts-ignore + // beforeEach(async () => { + // //@ts-ignore - oidcSecurityServiceMock = new (mockClass(OidcSecurityService))(); - spy = vi.spyOn(oidcSecurityServiceMock, 'checkAuthMultiple'); - await TestBed.configureTestingModule({ - providers: [ - provideAuth( - { config: { authority: 'something' } }, - withAppInitializerAuthCheck() - ), - mockProvider(ConfigurationService), - { - provide: OidcSecurityService, - useValue: oidcSecurityServiceMock, - }, - ], - }).compileComponents(); - }); + // oidcSecurityServiceMock = new (mockClass(OidcSecurityService))(); + // spy = vi.spyOn(oidcSecurityServiceMock, 'checkAuthMultiple'); + // await TestBed.configureTestingModule({ + // providers: [ + // provideAuth( + // { config: { authority: 'something' } }, + // withAppInitializerAuthCheck() + // ), + // mockProvider(ConfigurationService), + // { + // provide: OidcSecurityService, + // useValue: oidcSecurityServiceMock, + // }, + // ], + // }).compileComponents(); + // }); - it('should provide APP_INITIALIZER config', () => { - const config = TestBed.inject(APP_INITIALIZER); - expect( - config.length, - 'Expected an APP_INITIALIZER to be registered' - ).toBe(1); - expect(spy).toHaveBeenCalledTimes(1); - }); - }); + // it('should provide APP_INITIALIZER config', () => { + // const config = TestBed.inject(APP_INITIALIZER); + // expect( + // config.length, + // 'Expected an APP_INITIALIZER to be registered' + // ).toBe(1); + // expect(spy).toHaveBeenCalledTimes(1); + // }); + // }); }); diff --git a/src/provide-auth.ts b/src/provide-auth.ts index 82bfcb3..2369279 100644 --- a/src/provide-auth.ts +++ b/src/provide-auth.ts @@ -1,15 +1,12 @@ -import type { Provider } from 'injection-js'; -import { firstValueFrom } from 'rxjs'; +import type { Provider } from '@outposts/injection-js'; import { PASSED_CONFIG, type PassedInitialConfig, createStaticLoader, } from './auth-config'; import { StsConfigLoader } from './config/loader/config-loader'; -import { APP_INITIALIZER } from './injection'; import { AbstractLoggerService } from './logging/abstract-logger.service'; import { ConsoleLoggerService } from './logging/console-logger.service'; -import { OidcSecurityService } from './oidc.security.service'; import { AbstractSecurityStorage } from './storage/abstract-security-storage'; import { DefaultSessionStorageService } from './storage/default-sessionstorage.service'; @@ -51,26 +48,3 @@ export function _provideAuth(passedConfig: PassedInitialConfig): Provider[] { { provide: AbstractLoggerService, useClass: ConsoleLoggerService }, ]; } - -/** - * Configures an app initializer, which is called before the app starts, and - * resolves any OAuth callback variables. - * When used, it replaces the need to manually call - * `OidcSecurityService.checkAuth(...)` or - * `OidcSecurityService.checkAuthMultiple(...)`. - * - * @see https://angular.dev/api/core/APP_INITIALIZER - */ -export function withAppInitializerAuthCheck(): AuthFeature { - return { - ɵproviders: [ - { - provide: APP_INITIALIZER, - useFactory: (oidcSecurityService: OidcSecurityService) => - oidcSecurityService.checkAuthMultiple(), - multi: true, - deps: [OidcSecurityService], - }, - ], - }; -} diff --git a/src/public-api.ts b/src/public-api.ts deleted file mode 100644 index 559968f..0000000 --- a/src/public-api.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* - * Public API Surface of oidc-client-rx - */ - -export * from '.'; diff --git a/src/public-events/public-events.service.ts b/src/public-events/public-events.service.ts index 3a96091..ffd33c0 100644 --- a/src/public-events/public-events.service.ts +++ b/src/public-events/public-events.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from 'injection-js'; +import { Injectable } from '@outposts/injection-js'; import { type Observable, ReplaySubject } from 'rxjs'; import type { EventTypes } from './event-types'; import type { OidcClientNotification } from './notification'; diff --git a/src/router/index.ts b/src/router/index.ts index 6e94a10..a6f46b1 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -14,24 +14,15 @@ export interface UrlTree { toString(): string; } -export interface NavigationExtras { - [key: string]: any; +export interface Navigation { + extractedUrl: URL; } -export interface Navigation { - id: number; - initialUrl: UrlTree; - extractedUrl: UrlTree; - finalUrl?: UrlTree | undefined; - trigger: 'imperative' | 'popstate' | 'hashchange'; - previousNavigation: Navigation | null; - extras?: NavigationExtras; -} - -export abstract class AbstractRouter { +export abstract class AbstractRouter< + URL extends UrlTree = UrlTree, + NAVIGATION extends Navigation = Navigation, +> { abstract navigateByUrl(url: string): void; - abstract getCurrentNavigation(): Navigation; - - abstract parseUrl(_url: string): any; + abstract getCurrentNavigation(): NAVIGATION; } diff --git a/src/storage/abstract-security-storage.ts b/src/storage/abstract-security-storage.ts index f2efeb6..70cbec0 100644 --- a/src/storage/abstract-security-storage.ts +++ b/src/storage/abstract-security-storage.ts @@ -1,4 +1,4 @@ -import { Injectable } from 'injection-js'; +import { Injectable } from '@outposts/injection-js'; /** * Implement this class-interface to create a custom storage. diff --git a/src/storage/browser-storage.service.ts b/src/storage/browser-storage.service.ts index 00ba029..d0a31b0 100644 --- a/src/storage/browser-storage.service.ts +++ b/src/storage/browser-storage.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { OpenIdConfiguration } from '../config/openid-configuration'; import { injectAbstractType } from '../injection'; import { LoggerService } from '../logging/logger.service'; diff --git a/src/storage/default-localstorage.service.ts b/src/storage/default-localstorage.service.ts index f03ff7f..29bed56 100644 --- a/src/storage/default-localstorage.service.ts +++ b/src/storage/default-localstorage.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from 'injection-js'; +import { Injectable } from '@outposts/injection-js'; import type { AbstractSecurityStorage } from './abstract-security-storage'; @Injectable() diff --git a/src/storage/default-sessionstorage.service.ts b/src/storage/default-sessionstorage.service.ts index 57d22f6..dd35a81 100644 --- a/src/storage/default-sessionstorage.service.ts +++ b/src/storage/default-sessionstorage.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from 'injection-js'; +import { Injectable } from '@outposts/injection-js'; import type { AbstractSecurityStorage } from './abstract-security-storage'; @Injectable() diff --git a/src/storage/storage-persistence.service.ts b/src/storage/storage-persistence.service.ts index ea1adf9..bf796e0 100644 --- a/src/storage/storage-persistence.service.ts +++ b/src/storage/storage-persistence.service.ts @@ -1,4 +1,4 @@ -import { inject } from 'injection-js'; +import { inject } from '@outposts/injection-js'; import type { OpenIdConfiguration } from '../config/openid-configuration'; import type { AuthResult } from '../flows/callback-context'; import { BrowserStorageService } from './browser-storage.service'; diff --git a/src/testing/http.ts b/src/testing/http.ts index 4acf744..724ae92 100644 --- a/src/testing/http.ts +++ b/src/testing/http.ts @@ -1,5 +1,5 @@ import { HttpClientTestingBackend } from '@ngify/http/testing'; -import { InjectionToken, type Provider } from 'injection-js'; +import { InjectionToken, type Provider } from '@outposts/injection-js'; import { HTTP_BACKEND, provideHttpClient } from 'oidc-client-rx'; export const HTTP_CLIENT_TEST_CONTROLLER = diff --git a/src/testing/mock.ts b/src/testing/mock.ts index 05f50d2..53ca093 100644 --- a/src/testing/mock.ts +++ b/src/testing/mock.ts @@ -1,4 +1,4 @@ -import type { Provider } from 'injection-js'; +import type { Provider } from '@outposts/injection-js'; export function mockClass( obj: new (...args: any[]) => T diff --git a/src/testing/router.ts b/src/testing/router.ts index 006526a..7985676 100644 --- a/src/testing/router.ts +++ b/src/testing/router.ts @@ -1,4 +1,4 @@ -import type { Provider } from 'injection-js'; +import type { Provider } from '@outposts/injection-js'; import { JSDOM } from 'jsdom'; import { AbstractRouter, type Navigation, type UrlTree } from 'oidc-client-rx'; @@ -8,26 +8,15 @@ export class MockRouter extends AbstractRouter { }); navigation: Navigation = { - id: 1, - extras: {}, - initialUrl: this.parseUrl(this.dom.window.location.href), extractedUrl: this.parseUrl(this.dom.window.location.href), - trigger: 'imperative', - previousNavigation: null, }; navigateByUrl(url: string): void { - const prevNavigation = this.navigation; this.dom.reconfigure({ url: new URL(url, this.dom.window.location.href).href, }); this.navigation = { - id: prevNavigation.id + 1, - extras: {}, - initialUrl: prevNavigation.initialUrl, extractedUrl: this.parseUrl(this.dom.window.location.href), - trigger: prevNavigation.trigger, - previousNavigation: prevNavigation, }; } getCurrentNavigation(): Navigation { diff --git a/src/testing/testbed.ts b/src/testing/testbed.ts index a827e5d..a11da03 100644 --- a/src/testing/testbed.ts +++ b/src/testing/testbed.ts @@ -4,8 +4,8 @@ import { type Provider, ReflectiveInjector, type Type, -} from 'injection-js'; -import { setCurrentInjector } from 'injection-js/lib/injector_compatibility'; + runInInjectionContext, +} from '@outposts/injection-js'; export interface TestModuleMetadata { providers?: Provider[]; @@ -45,9 +45,6 @@ export class TestBed { return newTestBed; } - /** - * 在 TestBed 的注入上下文中运行函数 - */ static runInInjectionContext(fn: () => T): T { const injector = TestBed.#instance?.injector; if (!injector) { @@ -56,16 +53,7 @@ export class TestBed { ); } - // 保存当前的注入器 - const previousInjector = setCurrentInjector(injector); - - try { - // 在注入上下文中执行函数 - return fn(); - } finally { - // 恢复之前的注入器 - setCurrentInjector(previousInjector); - } + return runInInjectionContext(injector, fn); } compileComponents(): Promise { diff --git a/src/user-data/user.service.ts b/src/user-data/user.service.ts index 4d2597c..b712356 100644 --- a/src/user-data/user.service.ts +++ b/src/user-data/user.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { BehaviorSubject, type Observable, of, throwError } from 'rxjs'; import { map, retry, switchMap } from 'rxjs/operators'; import { DataService } from '../api/data.service'; diff --git a/src/utils/crypto/crypto.service.ts b/src/utils/crypto/crypto.service.ts index 6639148..2e6dd80 100644 --- a/src/utils/crypto/crypto.service.ts +++ b/src/utils/crypto/crypto.service.ts @@ -1,5 +1,5 @@ +import { Injectable, inject } from '@outposts/injection-js'; import { DOCUMENT } from '../../dom'; -import { inject, Injectable } from 'injection-js'; @Injectable() export class CryptoService { diff --git a/src/utils/equality/equality.service.ts b/src/utils/equality/equality.service.ts index 7706340..62f1753 100644 --- a/src/utils/equality/equality.service.ts +++ b/src/utils/equality/equality.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from 'injection-js'; +import { Injectable } from '@outposts/injection-js'; @Injectable() export class EqualityService { diff --git a/src/utils/flowHelper/flow-helper.service.ts b/src/utils/flowHelper/flow-helper.service.ts index 91075c1..352ad8b 100644 --- a/src/utils/flowHelper/flow-helper.service.ts +++ b/src/utils/flowHelper/flow-helper.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from 'injection-js'; +import { Injectable } from '@outposts/injection-js'; import type { OpenIdConfiguration } from '../../config/openid-configuration'; @Injectable() diff --git a/src/utils/platform-provider/platform.provider.ts b/src/utils/platform-provider/platform.provider.ts index 79611b4..c91b697 100644 --- a/src/utils/platform-provider/platform.provider.ts +++ b/src/utils/platform-provider/platform.provider.ts @@ -1,4 +1,4 @@ -import { Injectable, InjectionToken, inject } from 'injection-js'; +import { Injectable, InjectionToken, inject } from '@outposts/injection-js'; export type PlatformId = 'browser' | 'server'; diff --git a/src/utils/redirect/redirect.service.ts b/src/utils/redirect/redirect.service.ts index 1453351..551930e 100644 --- a/src/utils/redirect/redirect.service.ts +++ b/src/utils/redirect/redirect.service.ts @@ -1,6 +1,5 @@ - +import { Injectable, inject } from '@outposts/injection-js'; import { DOCUMENT } from '../../dom'; -import { inject, Injectable } from 'injection-js'; @Injectable() export class RedirectService { diff --git a/src/utils/tokenHelper/token-helper.service.ts b/src/utils/tokenHelper/token-helper.service.ts index d57de07..8a85823 100644 --- a/src/utils/tokenHelper/token-helper.service.ts +++ b/src/utils/tokenHelper/token-helper.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import type { OpenIdConfiguration } from '../../config/openid-configuration'; import { DOCUMENT } from '../../dom'; import { LoggerService } from '../../logging/logger.service'; diff --git a/src/utils/url/current-url.service.ts b/src/utils/url/current-url.service.ts index 59a70ab..6081ac9 100644 --- a/src/utils/url/current-url.service.ts +++ b/src/utils/url/current-url.service.ts @@ -1,5 +1,5 @@ +import { Injectable, inject } from '@outposts/injection-js'; import { DOCUMENT } from '../../dom'; -import { inject, Injectable } from 'injection-js'; @Injectable() export class CurrentUrlService { diff --git a/src/utils/url/url.service.ts b/src/utils/url/url.service.ts index 0272679..7d90cb0 100644 --- a/src/utils/url/url.service.ts +++ b/src/utils/url/url.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of } from 'rxjs'; import { map } from 'rxjs/operators'; import type { AuthOptions } from '../../auth-options'; diff --git a/src/validation/jwk-window-crypto.service.ts b/src/validation/jwk-window-crypto.service.ts index ffb76d6..37584f6 100644 --- a/src/validation/jwk-window-crypto.service.ts +++ b/src/validation/jwk-window-crypto.service.ts @@ -1,4 +1,4 @@ -import { inject, Injectable } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { CryptoService } from '../utils/crypto/crypto.service'; @Injectable() diff --git a/src/validation/jwt-window-crypto.service.ts b/src/validation/jwt-window-crypto.service.ts index 5f97f19..5e25f58 100644 --- a/src/validation/jwt-window-crypto.service.ts +++ b/src/validation/jwt-window-crypto.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { BehaviorSubject, type Observable, from } from 'rxjs'; import { map } from 'rxjs/operators'; import { CryptoService } from '../utils/crypto/crypto.service'; diff --git a/src/validation/state-validation.service.spec.ts b/src/validation/state-validation.service.spec.ts index 46cba8f..5774716 100644 --- a/src/validation/state-validation.service.spec.ts +++ b/src/validation/state-validation.service.spec.ts @@ -1,8 +1,5 @@ import { TestBed } from '@/testing'; -import { - mockImplementationWhenArgs, - mockImplementationWhenArgsEqual, -} from '@/testing/spy'; +import { mockImplementationWhenArgsEqual } from '@/testing/spy'; import { firstValueFrom, of } from 'rxjs'; import { vi } from 'vitest'; import type { AuthWellKnownEndpoints } from '../config/auth-well-known/auth-well-known-endpoints'; diff --git a/src/validation/state-validation.service.ts b/src/validation/state-validation.service.ts index 19839db..f9149df 100644 --- a/src/validation/state-validation.service.ts +++ b/src/validation/state-validation.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { type Observable, of } from 'rxjs'; import { map, mergeMap } from 'rxjs/operators'; import type { OpenIdConfiguration } from '../config/openid-configuration'; diff --git a/src/validation/token-validation.service.ts b/src/validation/token-validation.service.ts index 573941f..16c5e97 100644 --- a/src/validation/token-validation.service.ts +++ b/src/validation/token-validation.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from 'injection-js'; +import { Injectable, inject } from '@outposts/injection-js'; import { base64url } from 'rfc4648'; import { type Observable, from, of } from 'rxjs'; import { map, mergeMap, tap } from 'rxjs/operators'; @@ -390,7 +390,6 @@ export class TokenValidationService { localState: any, configuration: OpenIdConfiguration ): boolean { - console.error(state, localState, `${state}`, `${localState}`); if (`${state}` !== `${localState}`) { this.loggerService.logDebug( configuration, diff --git a/tests/example.spec.ts b/tests/example.spec.ts index dc74c23..7e20c55 100644 --- a/tests/example.spec.ts +++ b/tests/example.spec.ts @@ -4,6 +4,7 @@ test('has title', async ({ page }) => { await page.goto('https://playwright.dev/'); // Expect a title "to contain" a substring. + // biome-ignore lint/performance/useTopLevelRegex: await expect(page).toHaveTitle(/Playwright/); }); diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 0000000..63f4216 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "forceConsistentCasingInFileNames": true, + "esModuleInterop": true, + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + "useDefineForClassFields": true, + "resolveJsonModule": true, + "moduleResolution": "bundler", + "target": "ES2021", + "module": "ESNext" + } +} diff --git a/tsconfig.json b/tsconfig.json index 89328c8..ff580c5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,22 +1,5 @@ { - "compilerOptions": { - "forceConsistentCasingInFileNames": true, - "esModuleInterop": true, - "strict": true, - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "moduleResolution": "bundler", - "target": "ES2022", - "module": "ESNext", - "lib": ["ES2021", "DOM", "DOM.Iterable"], - "useDefineForClassFields": true, - "resolveJsonModule": true - }, + "extends": "./tsconfig.base.json", "files": [], "include": [], "exclude": ["node_modules"], @@ -29,6 +12,9 @@ }, { "path": "./tsconfig.scripts.json" + }, + { + "path": "./examples/react-tanstack-router" } ] } diff --git a/tsconfig.lib.json b/tsconfig.lib.json index 5f7fcc8..3abfcbd 100644 --- a/tsconfig.lib.json +++ b/tsconfig.lib.json @@ -1,14 +1,17 @@ { + "extends": "./tsconfig.base.json", "compilerOptions": { "composite": true, - "rootDir": ".", - "outDir": "./dist/tsc-lib", - "lib": ["dom", "es2018"], + "rootDir": "./src", + "baseUrl": ".", + "declarationDir": "./dist", + "outDir": "./dist", + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, "experimentalDecorators": true, "emitDecoratorMetadata": true, - "paths": { - "injection-js": ["./node_modules/injection-js/lib/index.ts"] - } + "lib": ["ES2021", "DOM", "DOM.Iterable"] }, "include": ["src"], "exclude": ["src/testing/**/*", "**/*.spec.ts"] diff --git a/tsconfig.scripts.json b/tsconfig.scripts.json index 108abb7..1a3bca7 100644 --- a/tsconfig.scripts.json +++ b/tsconfig.scripts.json @@ -1,11 +1,10 @@ { - "extends": "./tsconfig.json", + "extends": "./tsconfig.base.json", "compilerOptions": { "rootDir": ".", "composite": true, - "noUncheckedIndexedAccess": true, - "noEmit": true, - "types": ["node"] + "types": ["node"], + "noEmit": true }, "files": [], "include": ["scripts/"] diff --git a/tsconfig.spec.json b/tsconfig.spec.json index 330d985..ed6f0e6 100644 --- a/tsconfig.spec.json +++ b/tsconfig.spec.json @@ -1,17 +1,15 @@ { - "extends": "./tsconfig.json", + "extends": "./tsconfig.base.json", "compilerOptions": { - "rootDir": ".", "composite": true, - "noUncheckedIndexedAccess": true, - "outDir": "./dist/tsc-test", + "rootDir": ".", "types": ["vitest/globals", "node"], "experimentalDecorators": true, "emitDecoratorMetadata": true, + "noEmit": true, "paths": { "@/testing": ["./src/testing"], "@/testing/*": ["./src/testing/*"], - "injection-js": ["./node_modules/injection-js/lib/index.ts"], "oidc-client-rx": ["./src"], "oidc-client-rx/*": ["./src/*"] } diff --git a/vitest.config.ts b/vitest.config.ts index 3a2a115..b2592a0 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -10,20 +10,23 @@ export default defineConfig({ include: ['src/**/*.spec.ts'], globals: true, restoreMocks: true, - // browser: { - // provider: 'playwright', // or 'webdriverio' - // enabled: true, - // instances: [{ browser: 'chromium' }], - // }, + coverage: { + // you can include other reporters, but 'json-summary' is required, json is recommended + reporter: ['text', 'json-summary', 'json'], + // If you want a coverage reports even if your tests are failing, include the reportOnFailure option + reportOnFailure: true, + }, }, plugins: [ tsconfigPaths(), swc.vite({ include: /\.[mc]?[jt]sx?$/, + // for git+ package only exclude: [ - /node_modules\/(?!injection-js|\.pnpm)/, - /node_modules\/\.pnpm\/(?!injection-js)/, + /node_modules\/(?!injection-js|@outposts\/injection-js|\.pnpm)/, + /node_modules\/\.pnpm\/(?!injection-js|@outposts\/injection-js)/, ] as any, + tsconfigFile: './tsconfig.spec.json', }), ], });