diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 1be89349..16a3a94b 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,27 +1,15 @@ +// Generated by smith from the workspace's projects. `smith add` and `smith ci generate` +// rewrite this file: put your own steps between the smith:slot markers, which are kept. { "name": "opencraw", - "image": "mcr.microsoft.com/devcontainers/typescript-node:24-bookworm", + "image": "mcr.microsoft.com/devcontainers/base:bookworm", "features": { + "ghcr.io/devcontainers/features/node:1": { + "version": "24" + }, "ghcr.io/devcontainers/features/python:1": { "version": "3.12" - }, - "ghcr.io/devcontainers/features/go:1": { - "version": "1.27", - "golangciLintVersion": "2.14.0" - }, - "ghcr.io/devcontainers/features/dotnet:2": { - "version": "10.0" } }, - "postCreateCommand": "npm install -g npm@12 && npm ci && npx mnci ci setup", - "customizations": { - "vscode": { - "extensions": [ - "dbaeumer.vscode-eslint", - "nrwl.angular-console", - "firsttris.vscode-jest-runner" - ] - } - } + "postCreateCommand": "curl -fsSL https://raw.githubusercontent.com/monosmith-app/monosmith/main/install.sh | sh -s -- \"1.10.0\" && \"$HOME/.local/bin/smith\" ci setup" } - diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3233e0c2..98d7f3ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,6 @@ -name: CI - -# Generated by MoNecromanCI. Deliberately thin: Nx builds, 'nx release' -# versions from conventional commits and pushes ONLY a tag to main, and each -# app is packed into dist/drop/-.zip by its own 'package' target. -# The GitHub Actions equivalent of azure-pipelines.yml — see there for the -# fuller rationale; both stay hand-kept in lockstep, there is no shared template. +# Generated by smith from the workspace's projects. `smith add` and `smith ci generate` +# rewrite this file: put your own steps between the smith:slot markers, which are kept. +name: ci on: push: @@ -12,172 +8,64 @@ on: pull_request: branches: [main] -concurrency: - # One run at a time per ref, but `cancel-in-progress` is an **expression** on - # purpose rather than a flat `true`. - # - # A superseded PR run is pure waste, so cancel it. A run on `main` must never - # be cancelled: it publishes packages and pushes release tags, and killing it - # part-way can leave a tag pushed with the publish only half done — a state no - # rerun repairs cleanly, because the version is then already tagged. Those runs - # queue instead, which also stops two `nx release` invocations racing to create - # the same tag when two commits land close together. - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: ${{ github.event_name == 'pull_request' }} - permissions: - # Lets the release step push the version tag nx release creates back to main, - # and (github-only provider) create the GitHub Release itself. contents: write - # Lets azure/login exchange this job's OIDC token for a Microsoft Entra ID one, - # which is how a VS Code extension reaches the Marketplace with no stored secret. - # A token minted on a pull request cannot use it: the federated credential is - # pinned to refs/heads/main. - id-token: write + pull-requests: write + +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: ci: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - # Version resolution needs the release tags. - - run: git fetch --all --prune --tags - name: Fetch branches and release tags - - - run: git config user.name "github-actions[bot]" && git config user.email "github-actions[bot]@users.noreply.github.com" - name: Set the git identity used for release tags - - - uses: actions/setup-node@v7 + - uses: actions/setup-node@v4 with: - node-version: 24 - # Caches ~/.npm keyed on package-lock.json, so `npm ci` restores from - # the local cache instead of re-downloading every tarball on every run. - # Nothing to invalidate by hand: the action keys on the lockfile, so a - # dependency change misses the cache and a no-op change hits it. - cache: npm - - # setup-node installs whatever npm the Node image bundles, and npm's major - # is part of the contract: npm 11 reuses an already-installed tree instead - # of re-resolving, so it applies `overrides` differently from npm 10. See - # NPM_VERSION's remarks for the measurement. - - run: npm install -g npm@12 - name: Pin npm to the major mnci verifies against - - - run: npm ci - name: Install dependencies - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - # mnci:slot after-install (your own steps go between these two lines; mnci upgrade keeps them) - # mnci:slot-end after-install - - # Everything from here to the release is a command of the mnci CLI, a - # devDependency of this workspace, so the version is the lockfile's and a - # developer reproduces CI by running the same line. The guards that used to be - # inline here are tested TypeScript in the CLI's ci-pipeline slice. Node, - # the checkout and 'npm ci' stay above: Node must exist before 'npx' can run. - - # The language toolchains the workspace needs: Python (ruff, pytest, build, - # twine, and every project installed into one shared environment), Go (the - # modules and a checksum-verified golangci-lint, put on PATH) and Flutter (the - # pinned SDK, put on PATH, and one pub get). Each is skipped cleanly when the - # workspace has no project in that language. - - run: npx mnci ci setup - name: Set up the language toolchains (Python, Go, Flutter) - - # Fails ONLY on an advisory that has a published fix, at moderate or above; - # anything upstream has not fixed is printed and passes. pip-audit only - # reports: its output has no "a fix exists" field to draw that line with. - - run: npx mnci ci audit - name: Audit dependencies (fails on an actionable npm advisory) - - # .NET, if the workspace has any. actions/setup-dotnet is the - # maintained, cached installer GitHub itself ships, so this uses it - # directly rather than a hand-rolled 'node -e' guard — see - # DOTNET_DETECT_AZURE's remarks for the full reasoning. hashFiles() - # gates it inline, so a JS-only workspace pays nothing. - - uses: actions/setup-dotnet@v6 - if: ${{ hashFiles('apps/*/*.csproj', 'packages/*/*.csproj', 'libs/*/*.csproj') != '' }} + node-version: '24' + - uses: actions/setup-python@v5 with: - dotnet-version: 10.0.x - - # Fails fast on a stale TypeScript project reference, then the one verify - # step, and deliberately the only one: affected projects on a pull request, - # EVERY project on anything else (a push to main included, so a release is - # always verified in full). Every fallback takes the full path, because a run - # that verifies too little still reports green. Apps that need a C toolchain - # are left to the native job. - - run: npx mnci ci verify - name: Verify (sync check, then affected on a PR, every project on main) - - # mnci:phase pack (delete or comment this block to switch it off; mnci upgrade keeps it off) - # Pack every app into dist/drop/-.zip via each app's 'package' - # target; skipped cleanly when the workspace has no apps yet. - - run: npx mnci ci pack - name: Pack all apps (one zip per app -> dist/drop) - if: ${{ github.event_name == 'push' && github.ref_name == 'main' }} - - - uses: actions/upload-artifact@v7 - if: ${{ github.event_name == 'push' && github.ref_name == 'main' }} + python-version: '3.12' + - name: Install smith + run: curl -fsSL https://raw.githubusercontent.com/monosmith-app/monosmith/main/install.sh | sh -s -- "$SMITH_VERSION" + env: + SMITH_VERSION: 1.10.0 + GITHUB_TOKEN: ${{ github.token }} + # smith:slot before-setup + # The lockfile is written by npm 12: npm 11 prunes the nested @emnapi entries of the + # wasm32-wasi bindings, and npm 12's npm ci then refuses it (AGENTS.md). + - name: Pin npm 12 + run: npm install -g npm@12 + # smith:slot-end before-setup + - name: Setup + run: smith ci setup + - name: Audit + run: smith ci audit + - name: Verify + run: smith ci verify + # smith:slot after-verify + # smith:slot-end after-verify + - name: Release preview + if: github.event_name == 'pull_request' + run: smith release --dry-run --comment + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Pack + if: github.event_name == 'push' && github.ref_name == 'main' + run: smith ci pack + - uses: actions/upload-artifact@v4 + if: github.event_name == 'push' && github.ref_name == 'main' with: name: drop path: dist/drop if-no-files-found: ignore - # mnci:phase-end pack - - # mnci:slot before-release (your own steps go between these two lines; mnci upgrade keeps them) - # mnci:slot-end before-release - - # mnci:phase release (delete or comment this block to switch it off; mnci upgrade keeps it off) - # Signs in to Microsoft Entra ID as the Marketplace publishing identity (an - # app registration with a federated credential for this repository's main - # branch), so the release step publishes VS Code extensions with - # 'vsce publish --azure-credential' and no token. Runs only when the - # AZURE_CLIENT_ID and AZURE_TENANT_ID repository variables exist and the - # workspace has an extension (every one ships a .vscodeignore). No Azure - # subscription is needed. Setup: README, 'VS Code extensions'. - - uses: azure/login@v3 - name: Sign in to Microsoft Entra ID (VS Code Marketplace) - if: ${{ github.event_name == 'push' && github.ref_name == 'main' && vars.AZURE_CLIENT_ID != '' && hashFiles('apps/*/.vscodeignore') != '' }} - with: - client-id: ${{ vars.AZURE_CLIENT_ID }} - tenant-id: ${{ vars.AZURE_TENANT_ID }} - allow-no-subscriptions: true - - # The release, in the order that keeps a failure safe: refuse a shallow - # clone, prove the npm token and name the PyPI projects it would create (all - # BEFORE anything is tagged), then version + tag + publish in one 'nx release' - # for npm, Python, C# and VS Code, then attach a releasable Go app's zips and - # push the tags. Which registry, and whether GitHub Releases are on, are read - # from the 'mnci' block of nx.json, not baked into this file. The secrets are - # mapped here, in the one place a command cannot reach. - # - # RELEASE_SPECIFIER (repository variable, Settings -> Secrets and - # variables -> Actions -> Variables) overrides the bump nx would compute - # from conventional commits for THIS run: 'major', 'minor', 'patch', or an - # exact version ('1.2.3'). With more than one releasable package a bare - # keyword is unreliable (nx versions interdependent packages in two passes, - # and the second computes from a version cached before the first), so the - # command fails the run rather than under-bumping silently: prefer an exact - # version, and clear the variable once the override is no longer needed. - - run: npx mnci ci release - name: Release — version, tag, publish and GitHub Release (npm + Python + C# + VS Code) - if: ${{ github.event_name == 'push' && github.ref_name == 'main' }} + - name: Release + if: github.event_name == 'push' && github.ref_name == 'main' + run: smith ci release env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} - RELEASE_SPECIFIER: ${{ vars.RELEASE_SPECIFIER }} - # A VS Code extension publishes with Entra ID when the sign-in step - # above ran (VSCE_AUTH=entra), else with the VSCE_PAT token; - # tools/vscode-extension.cjs skips the Marketplace with neither. - VSCE_AUTH: ${{ vars.AZURE_CLIENT_ID != '' && 'entra' || '' }} - VSCE_PAT: ${{ secrets.VSCE_PAT }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # mnci:phase-end release - - # mnci:slot after-release (your own steps go between these two lines; mnci upgrade keeps them) - # mnci:slot-end after-release + NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }} + PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} diff --git a/.github/workflows/desktop-package.yml b/.github/workflows/desktop-package.yml index 418a267a..949692d5 100644 --- a/.github/workflows/desktop-package.yml +++ b/.github/workflows/desktop-package.yml @@ -28,6 +28,17 @@ jobs: with: node-version: 24 cache: npm + # The npm scripts run smith (MonoSmith); the same installer the generated ci.yml uses. + - name: Install smith + shell: bash + run: | + curl -fsSL https://raw.githubusercontent.com/monosmith-app/monosmith/main/install.sh | sh -s -- "$SMITH_VERSION" + # install.sh adds its folder to PATH in Git Bash form, which cmd and PowerShell cannot use + # (monosmith-app/monosmith#290): add the Windows form too. + if [ "$RUNNER_OS" = Windows ]; then cygpath -w "$HOME/.local/bin" >> "$GITHUB_PATH"; fi + env: + SMITH_VERSION: 1.10.0 + GITHUB_TOKEN: ${{ github.token }} - run: npm ci - name: Installer run: npm run studio-desktop:package diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a37d1b07..65e10cf0 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -1,7 +1,8 @@ # Browser end-to-end tests for @opencraw/core, @opencraw/office-reader's # check that its published bundle runs in a browser, and # @opencraw/captcha-tesseract's reads of rendered captchas. Kept out of ci.yml on purpose: -# that file is owned and rewritten by `mnci upgrade`, this one is ours. +# that file is generated by `smith ci generate`, this one is ours. Each e2e task installs its browsers +# first (the playwright convention, e2e-browsers) and runs under xvfb-run itself when it opens windows. name: e2e on: @@ -18,13 +19,23 @@ jobs: with: node-version: 24 cache: npm + # The npm scripts run smith (MonoSmith); the same installer the generated ci.yml uses. + - name: Install smith + shell: bash + run: | + curl -fsSL https://raw.githubusercontent.com/monosmith-app/monosmith/main/install.sh | sh -s -- "$SMITH_VERSION" + # install.sh adds its folder to PATH in Git Bash form, which cmd and PowerShell cannot use + # (monosmith-app/monosmith#290): add the Windows form too. + if [ "$RUNNER_OS" = Windows ]; then cygpath -w "$HOME/.local/bin" >> "$GITHUB_PATH"; fi + env: + SMITH_VERSION: 1.10.0 + GITHUB_TOKEN: ${{ github.token }} - run: npm ci - - run: npx playwright install --with-deps chromium - run: npm run core:e2e # The recording flows open a headed window: a virtual display stands in for a screen. - - run: xvfb-run -a npm run studio:e2e + - run: npm run studio:e2e # The desktop app: a real Electron window against the built UI. - - run: xvfb-run -a npm run studio-desktop:e2e + - run: npm run studio-desktop:e2e - run: npm run office-reader:e2e - run: npm run captcha-tesseract:e2e # Every example's recipes load and bind; the examples that run offline run. diff --git a/.github/workflows/vscode-e2e.yml b/.github/workflows/vscode-e2e.yml index 14aae62d..a6ff5f60 100644 --- a/.github/workflows/vscode-e2e.yml +++ b/.github/workflows/vscode-e2e.yml @@ -22,6 +22,17 @@ jobs: with: node-version: 24 cache: npm + # The npm scripts run smith (MonoSmith); the same installer the generated ci.yml uses. + - name: Install smith + shell: bash + run: | + curl -fsSL https://raw.githubusercontent.com/monosmith-app/monosmith/main/install.sh | sh -s -- "$SMITH_VERSION" + # install.sh adds its folder to PATH in Git Bash form, which cmd and PowerShell cannot use + # (monosmith-app/monosmith#290): add the Windows form too. + if [ "$RUNNER_OS" = Windows ]; then cygpath -w "$HOME/.local/bin" >> "$GITHUB_PATH"; fi + env: + SMITH_VERSION: 1.10.0 + GITHUB_TOKEN: ${{ github.token }} - run: npm ci # The libraries an Electron editor needs on a bare runner. - run: npx playwright install-deps chromium diff --git a/.github/workflows/vscode-package.yml b/.github/workflows/vscode-package.yml index ac9f6064..cb7010d9 100644 --- a/.github/workflows/vscode-package.yml +++ b/.github/workflows/vscode-package.yml @@ -26,6 +26,17 @@ jobs: with: node-version: 24 cache: npm + # The npm scripts run smith (MonoSmith); the same installer the generated ci.yml uses. + - name: Install smith + shell: bash + run: | + curl -fsSL https://raw.githubusercontent.com/monosmith-app/monosmith/main/install.sh | sh -s -- "$SMITH_VERSION" + # install.sh adds its folder to PATH in Git Bash form, which cmd and PowerShell cannot use + # (monosmith-app/monosmith#290): add the Windows form too. + if [ "$RUNNER_OS" = Windows ]; then cygpath -w "$HOME/.local/bin" >> "$GITHUB_PATH"; fi + env: + SMITH_VERSION: 1.10.0 + GITHUB_TOKEN: ${{ github.token }} - run: npm ci - name: Package the extension run: npm run vscode:package diff --git a/.github/workflows/vscode-publish.yml b/.github/workflows/vscode-publish.yml index 58c8304d..9c19823c 100644 --- a/.github/workflows/vscode-publish.yml +++ b/.github/workflows/vscode-publish.yml @@ -85,6 +85,17 @@ jobs: with: node-version: 24 cache: npm + # The npm scripts run smith (MonoSmith); the same installer the generated ci.yml uses. + - name: Install smith + shell: bash + run: | + curl -fsSL https://raw.githubusercontent.com/monosmith-app/monosmith/main/install.sh | sh -s -- "$SMITH_VERSION" + # install.sh adds its folder to PATH in Git Bash form, which cmd and PowerShell cannot use + # (monosmith-app/monosmith#290): add the Windows form too. + if [ "$RUNNER_OS" = Windows ]; then cygpath -w "$HOME/.local/bin" >> "$GITHUB_PATH"; fi + env: + SMITH_VERSION: 1.10.0 + GITHUB_TOKEN: ${{ github.token }} - run: npm ci - name: Package the extension run: npm run vscode:package diff --git a/.gitignore b/.gitignore index fef2f16e..6edd77bd 100644 --- a/.gitignore +++ b/.gitignore @@ -81,3 +81,7 @@ apps/vscode-extension/*.vsix # The documentation an agent reads, copied in at build (packages/mcp/scripts/copy-docs.mjs) /packages/mcp/docs/ + +# smith +.smith/ +.venv/ diff --git a/AGENTS.md b/AGENTS.md index 8716c02a..02dfc2f5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,14 +2,15 @@ ## What it is -OpenCraw is an Nx monorepo (generated and maintained with `@mnci/cli`) holding `@opencraw/core`, a -recipe-driven crawler engine. Read `README.md`, then `docs/requirements.md` (the specification) and +OpenCraw is a [MonoSmith](https://github.com/monosmith-app/monosmith) monorepo (`smith`, configured in +`smith.toml`) holding `@opencraw/core`, a recipe-driven crawler engine. Read `README.md`, then `docs/requirements.md` (the specification) and `docs/recipes/authoring.md` (the recipe guide) before changing behaviour. ## Rules that lint enforces The architecture is vertical feature slices, recorded in `docs/architecture/vertical-feature-slices.md` -and enforced by `@mnci/eslint-config`'s `verticalSlices` rules: +and enforced by `@monosmith/eslint-config`'s `verticalSlices` rules (and, for Python, smith's +`vertical-slices` convention): - `packages/*/src//` is flat; only `fixtures/` may sit inside a slice, holding data. - Every production file is `..ts` with a role from: `handler use-case algorithm policy model @@ -17,8 +18,9 @@ and enforced by `@mnci/eslint-config`'s `verticalSlices` rules: - A sibling slice is imported only as `'../'` (its `index.ts`); tests too. No cycles, type imports included: a leaf slice declares its own structural types instead of importing from above. - Only `index.ts` lives at the root of `src/`. Non-library code (`e2e/`, `tools/`) sits outside `src/`. -- Runtime dependencies go in `packages/core/package.json`, never the root (rollup externalises what the - package declares; `@nx/dependency-checks` fails either drift). +- Runtime dependencies go in `packages/core/package.json`, never the root: the build (esbuild with + `--packages=external`) leaves every import to the installed package, so an undeclared one breaks for + whoever installs it. Nothing checks this since the move off Nx; review it. Style is JavaScript Standard as ESLint rules (no semicolons, single quotes, space before function parens, aligned object values, blank line before `return`). `npm run format` fixes most of it; there is no Prettier. @@ -26,16 +28,17 @@ aligned object values, blank line before `return`). `npm run format` fixes most ## Commands ```sh -npm run format && npm run affected # what CI runs: lint, typecheck, test, build -npx nx run core:lint --skip-nx-cache # dependency-checks needs the Nx graph; bare eslint skips it -npm run core:e2e # browser suite; needs `npm run playwright:install` once +npm run format && npm run affected # what CI runs: smith run lint typecheck test build --affected +smith run lint -p core # one task of one project (smith explain core:lint says where it came from) +smith run e2e -p core --parallel 1 # a browser suite; installs its browsers first (e2e-browsers) OPENCRAW_CHROMIUM=/path/to/chrome npm run core:e2e # ...or a preinstalled browser npm run core:schemas # regenerate packages/core/schemas after a contract change -npx --yes @mnci/cli add npm-lib # a new publishable package; never scaffold by hand +smith add package --lang node # a new publishable package; never scaffold by hand +smith doctor # is the workspace healthy? ``` -Commit messages are Conventional Commits (husky + commitlint reject others); `nx release` derives -versions from them. +Commit messages are Conventional Commits (husky + commitlint reject others); `smith release` derives +versions from them. Before 1.0 a `feat:` releases a minor version. ## Things that bit before @@ -44,7 +47,6 @@ versions from them. `package-lock.json`, and npm 12's `npm ci` then fails with "Missing: @emnapi/core ... from lock file". Check with `npm ci --dry-run` before committing a lockfile. - Jest buffers output: a hanging test prints nothing. Suspect an endless `paginate` first. -- `create-nx-workspace` writes AI-agent folders whose scripts fail lint; they were deleted on purpose. - `unicorn/max-nested-calls` is 3: build zod schemas from named sub-schemas. - In-page functions for Playwright must not reference `window`/`document` as variables (lint's isolated-functions rule); pass a string script instead. diff --git a/apps/azure-host/package.json b/apps/azure-host/package.json index 4e625ed6..7fa18b4e 100644 --- a/apps/azure-host/package.json +++ b/apps/azure-host/package.json @@ -15,141 +15,12 @@ "overrides": { "uuid": "^11.1.1" }, - "nx": { - "targets": { - "typecheck": { - "dependsOn": [ - "^build" - ] - }, - "lint": { - "dependsOn": [ - "^build" - ] - }, - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "defaultConfiguration": "production", - "options": { - "platform": "node", - "outputPath": "apps/azure-host/dist", - "format": [ - "esm" - ], - "bundle": false, - "main": "apps/azure-host/src/main.ts", - "tsConfig": "apps/azure-host/tsconfig.app.json", - "assets": [ - { - "input": "apps/azure-host/src/assets", - "glob": "**/*", - "output": "assets" - } - ], - "esbuildOptions": { - "sourcemap": true, - "outExtension": { - ".js": ".js" - } - } - }, - "configurations": { - "development": {}, - "production": { - "esbuildOptions": { - "sourcemap": false, - "outExtension": { - ".js": ".js" - } - } - } - } - }, - "prune-lockfile": { - "dependsOn": [ - "build" - ], - "cache": true, - "executor": "@nx/js:prune-lockfile", - "outputs": [ - "{workspaceRoot}/apps/azure-host/dist/package.json", - "{workspaceRoot}/apps/azure-host/dist/package-lock.json" - ], - "options": { - "buildTarget": "build" - } - }, - "copy-workspace-modules": { - "dependsOn": [ - "build" - ], - "cache": true, - "outputs": [ - "{workspaceRoot}/apps/azure-host/dist/workspace_modules" - ], - "executor": "@nx/js:copy-workspace-modules", - "options": { - "buildTarget": "build" - } - }, - "prune": { - "dependsOn": [ - "prune-lockfile", - "copy-workspace-modules" - ], - "executor": "nx:noop" - }, - "serve": { - "continuous": true, - "executor": "@nx/js:node", - "defaultConfiguration": "development", - "dependsOn": [ - "build" - ], - "options": { - "buildTarget": "@opencraw/azure-host:build", - "runBuildTargetDependencies": false - }, - "configurations": { - "development": { - "buildTarget": "@opencraw/azure-host:build:development" - }, - "production": { - "buildTarget": "@opencraw/azure-host:build:production" - } - } - }, - "test": { - "options": { - "passWithNoTests": true - } - }, - "package": { - "executor": "nx:run-commands", - "dependsOn": [ - "build" - ], - "outputs": [ - "{workspaceRoot}/dist/drop/node-function-app-azure-host.zip" - ], - "options": { - "command": "node -e \"const fs=require('node:fs');fs.mkdirSync('dist/drop',{recursive:true});const A=require('adm-zip');const z=new A();z.addLocalFolder('apps/azure-host/dist','dist');z.addLocalFile('apps/azure-host/host.json');z.addLocalFile('apps/azure-host/package.json');z.writeZip('dist/drop/node-function-app-azure-host.zip')\"" - } - }, - "start": { - "executor": "nx:run-commands", - "dependsOn": [ - "build" - ], - "continuous": true, - "options": { - "command": "func start", - "cwd": "apps/azure-host" - } - } - } + "scripts": { + "build": "node -e \"const ts=require('typescript'),p=require('node:path'),c=ts.getParsedCommandLineOfConfigFile('tsconfig.app.json',{},{...ts.sys,onUnRecoverableConfigFileDiagnostic:d=>{throw new Error(ts.flattenDiagnosticMessageText(d.messageText,' '))}});require('esbuild').buildSync({entryPoints:[...new Set(['src/main.ts',...c.fileNames].map(f=>p.resolve(f)))],outdir:'dist',platform:'node',format:'esm',sourcemap:true,tsconfig:'tsconfig.app.json'})\" && node -e \"const fs=require('node:fs'),p=require('node:path');for(const[i,g,o,w]of[['src/assets','**/*','dist/assets',0]])for(const f of fs.globSync(g,{cwd:i})){const s=p.join(i,f),d=p.join(o,f);if(fs.statSync(s).isDirectory()){if(w)fs.cpSync(s,d,{recursive:true})}else{fs.mkdirSync(p.dirname(d),{recursive:true});fs.copyFileSync(s,d)}}\"", + "lint": "eslint .", + "serve": "node dist/main.js", + "start": "func start", + "test": "jest --passWithNoTests", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" } } diff --git a/apps/studio-desktop/package.json b/apps/studio-desktop/package.json index 740933e3..4ad8a6b8 100644 --- a/apps/studio-desktop/package.json +++ b/apps/studio-desktop/package.json @@ -2,102 +2,6 @@ "name": "@opencraw/studio-desktop", "version": "0.0.1", "private": true, - "nx": { - "targets": { - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "defaultConfiguration": "production", - "options": { - "platform": "node", - "outputPath": "apps/studio-desktop/dist", - "format": [ - "esm" - ], - "bundle": true, - "main": "apps/studio-desktop/src/main.ts", - "tsConfig": "apps/studio-desktop/tsconfig.app.json", - "esbuildOptions": { - "sourcemap": true, - "outExtension": { - ".js": ".js" - } - }, - "thirdParty": false, - "assets": [ - { - "input": "apps/studio-desktop/src/desktop-bridge", - "glob": "preload.cjs", - "output": "." - } - ], - "external": [ - "@opencraw/*" - ] - }, - "configurations": { - "development": {}, - "production": { - "esbuildOptions": { - "sourcemap": false, - "outExtension": { - ".js": ".js" - } - } - } - } - }, - "test": { - "options": { - "passWithNoTests": true - } - }, - "start": { - "executor": "nx:run-commands", - "continuous": true, - "dependsOn": [ - "build", - "@opencraw/cli:build", - "@opencraw/studio:build", - "@opencraw/studio-ui:build" - ], - "options": { - "command": "electron .", - "cwd": "apps/studio-desktop" - } - }, - "package": { - "executor": "nx:run-commands", - "dependsOn": [ - "build", - "@opencraw/cli:build", - "@opencraw/studio:build", - "@opencraw/studio-ui:build" - ], - "cache": false, - "options": { - "command": "node packaging/package-app.mjs", - "cwd": "apps/studio-desktop" - } - }, - "e2e": { - "executor": "nx:run-commands", - "dependsOn": [ - "build" - ], - "inputs": [ - "default", - "^production" - ], - "options": { - "command": "vite build -c ../studio-ui/vite.config.mts && tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts --forceExit", - "cwd": "apps/studio-desktop" - } - } - } - }, "dependencies": { "@opencraw/cli": "^0.0.1", "@opencraw/studio": "^0.0.1" @@ -108,5 +12,21 @@ "devDependencies": { "electron": "^44.7.0", "electron-builder": "^26.15.3" + }, + "scripts": { + "build": "esbuild src/main.ts --bundle --packages=external --platform=node --format=esm --outdir=dist --sourcemap && node -e \"const fs=require('node:fs'),p=require('node:path');for(const[i,g,o,w]of[['src/desktop-bridge','preload.cjs','dist',0]])for(const f of fs.globSync(g,{cwd:i})){const s=p.join(i,f),d=p.join(o,f);if(fs.statSync(s).isDirectory()){if(w)fs.cpSync(s,d,{recursive:true})}else{fs.mkdirSync(p.dirname(d),{recursive:true});fs.copyFileSync(s,d)}}\"", + "e2e": "vite build -c ../studio-ui/vite.config.mts && tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts --forceExit", + "lint": "eslint .", + "package": "node packaging/package-app.mjs", + "package:dir": "node packaging/package-app.mjs --dir", + "start": "electron .", + "test": "jest --passWithNoTests", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" + }, + "smith": { + "playwright": { + "flavour": "library", + "display": true + } } } diff --git a/apps/studio-ui/jest.config.cts b/apps/studio-ui/jest.config.cts index 05d6d841..782c3ba8 100644 --- a/apps/studio-ui/jest.config.cts +++ b/apps/studio-ui/jest.config.cts @@ -3,8 +3,8 @@ module.exports = { preset: '../../jest.preset.js', testEnvironment: 'jsdom', transform: { - '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest', - '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }], + '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '/../../jest.asset-transform.cjs', + '^.+\\.[tj]sx?$': ['babel-jest', { presets: [['@babel/preset-env', { targets: { node: 'current' }, loose: true }], ['@babel/preset-typescript', { allowDeclareFields: true }], ['@babel/preset-react', { runtime: 'automatic', development: true }]] }], }, moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], coverageDirectory: 'test-output/jest/coverage', diff --git a/apps/studio-ui/package.json b/apps/studio-ui/package.json index 062744ae..ef76235e 100644 --- a/apps/studio-ui/package.json +++ b/apps/studio-ui/package.json @@ -2,56 +2,6 @@ "name": "@opencraw/studio-ui", "version": "0.0.1", "private": true, - "nx": { - "targets": { - "build-dev": { - "executor": "nx:run-commands", - "outputs": [ - "{workspaceRoot}/apps/studio-ui/dist-dev" - ], - "options": { - "command": "vite build --mode dev --outDir dist-dev", - "cwd": "apps/studio-ui" - } - }, - "build-uat": { - "executor": "nx:run-commands", - "outputs": [ - "{workspaceRoot}/apps/studio-ui/dist-uat" - ], - "options": { - "command": "vite build --mode uat --outDir dist-uat", - "cwd": "apps/studio-ui" - } - }, - "build-prod": { - "executor": "nx:run-commands", - "outputs": [ - "{workspaceRoot}/apps/studio-ui/dist-prod" - ], - "options": { - "command": "vite build --mode prod --outDir dist-prod", - "cwd": "apps/studio-ui" - } - }, - "package": { - "executor": "nx:run-commands", - "dependsOn": [ - "build-dev", - "build-uat", - "build-prod" - ], - "outputs": [ - "{workspaceRoot}/dist/drop/react-app-studio-ui-dev.zip", - "{workspaceRoot}/dist/drop/react-app-studio-ui-uat.zip", - "{workspaceRoot}/dist/drop/react-app-studio-ui-prod.zip" - ], - "options": { - "command": "node -e \"const fs=require('node:fs');fs.mkdirSync('dist/drop',{recursive:true});const A=require('adm-zip');let z;z=new A();z.addLocalFolder('apps/studio-ui/dist-dev');z.writeZip('dist/drop/react-app-studio-ui-dev.zip');z=new A();z.addLocalFolder('apps/studio-ui/dist-uat');z.writeZip('dist/drop/react-app-studio-ui-uat.zip');z=new A();z.addLocalFolder('apps/studio-ui/dist-prod');z.writeZip('dist/drop/react-app-studio-ui-prod.zip')\"" - } - } - } - }, "dependencies": { "@chakra-ui/react": "3.37.0", "@codemirror/lang-json": "^6.0.2", @@ -65,5 +15,17 @@ "jsonc-parser": "^3.3.1", "pdfjs-dist": "^6.3.289", "zustand": "^5.0.15" + }, + "scripts": { + "build": "vite build", + "build-dev": "vite build --mode dev --outDir dist-dev", + "build-prod": "vite build --mode prod --outDir dist-prod", + "build-uat": "vite build --mode uat --outDir dist-uat", + "dev": "vite", + "lint": "eslint .", + "preview": "vite preview", + "serve": "vite", + "test": "jest", + "typecheck": "tsc --build --emitDeclarationOnly" } } diff --git a/apps/studio-ui/tsconfig.app.json b/apps/studio-ui/tsconfig.app.json index 7b1bfbf7..89f8f528 100644 --- a/apps/studio-ui/tsconfig.app.json +++ b/apps/studio-ui/tsconfig.app.json @@ -9,8 +9,6 @@ ], "types": [ "node", - "@nx/react/typings/cssmodule.d.ts", - "@nx/react/typings/image.d.ts", "vite/client" ], "rootDir": "src", diff --git a/apps/studio-ui/tsconfig.spec.json b/apps/studio-ui/tsconfig.spec.json index d6a46ed4..781d6089 100644 --- a/apps/studio-ui/tsconfig.spec.json +++ b/apps/studio-ui/tsconfig.spec.json @@ -10,8 +10,7 @@ "types": [ "jest", "node", - "@nx/react/typings/cssmodule.d.ts", - "@nx/react/typings/image.d.ts" + "vite/client" ], "module": "esnext", "moduleResolution": "bundler" diff --git a/apps/vscode-extension/package.json b/apps/vscode-extension/package.json index b9205ad2..1f149372 100644 --- a/apps/vscode-extension/package.json +++ b/apps/vscode-extension/package.json @@ -289,95 +289,6 @@ } ] }, - "nx": { - "targets": { - "build": { - "executor": "@nx/esbuild:esbuild", - "outputs": [ - "{options.outputPath}" - ], - "defaultConfiguration": "production", - "options": { - "platform": "node", - "outputPath": "apps/vscode-extension/dist", - "format": [ - "cjs" - ], - "bundle": true, - "main": "apps/vscode-extension/src/extension.ts", - "tsConfig": "apps/vscode-extension/tsconfig.app.json", - "esbuildOptions": { - "sourcemap": true, - "outExtension": { - ".js": ".cjs" - } - }, - "thirdParty": false, - "assets": [ - { - "input": "apps/vscode-extension/src/studio-host", - "glob": "studio-host.process.mjs", - "output": "." - } - ], - "external": [ - "vscode", - "@opencraw/*" - ] - }, - "configurations": { - "development": {}, - "production": { - "esbuildOptions": { - "sourcemap": false, - "outExtension": { - ".js": ".cjs" - } - } - } - } - }, - "test": { - "options": { - "passWithNoTests": true - } - }, - "e2e": { - "executor": "nx:run-commands", - "dependsOn": [ - "build", - "@opencraw/cli:build", - "@opencraw/mcp:build", - "@opencraw/ocr-tesseract:build", - "@opencraw/agent:build", - "@opencraw/studio:build", - "@opencraw/studio-ui:build" - ], - "cache": false, - "options": { - "command": "node packaging/package-vsix.mjs --stage-only && node e2e/run-editor-test.mjs", - "cwd": "apps/vscode-extension" - } - }, - "package": { - "executor": "nx:run-commands", - "dependsOn": [ - "build", - "@opencraw/cli:build", - "@opencraw/mcp:build", - "@opencraw/ocr-tesseract:build", - "@opencraw/agent:build", - "@opencraw/studio:build", - "@opencraw/studio-ui:build" - ], - "cache": false, - "options": { - "command": "node packaging/package-vsix.mjs", - "cwd": "apps/vscode-extension" - } - } - } - }, "dependencies": { "@opencraw/agent": "^0.0.1", "@opencraw/cli": "^0.0.1", @@ -386,5 +297,13 @@ "devDependencies": { "@types/vscode": "1.125.0", "@vscode/test-electron": "^3.1.0" + }, + "scripts": { + "build": "esbuild src/extension.ts --bundle --packages=external --platform=node --format=cjs --outdir=dist --out-extension:.js=.cjs --sourcemap && node -e \"const fs=require('node:fs'),p=require('node:path');for(const[i,g,o,w]of[['src/studio-host','studio-host.process.mjs','dist',0]])for(const f of fs.globSync(g,{cwd:i})){const s=p.join(i,f),d=p.join(o,f);if(fs.statSync(s).isDirectory()){if(w)fs.cpSync(s,d,{recursive:true})}else{fs.mkdirSync(p.dirname(d),{recursive:true});fs.copyFileSync(s,d)}}\"", + "e2e": "node packaging/package-vsix.mjs --stage-only && node e2e/run-editor-test.mjs", + "lint": "eslint .", + "package": "node packaging/package-vsix.mjs", + "test": "jest --passWithNoTests", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" } } diff --git a/declaration-specifiers.mjs b/declaration-specifiers.mjs new file mode 100644 index 00000000..3ad35c4f --- /dev/null +++ b/declaration-specifiers.mjs @@ -0,0 +1,28 @@ +// Written by smith convert: what mnci's rollup plugin did to declarations. +// tsc writes relative specifiers as the sources spell them ('./hooks'); a +// node16 or nodenext consumer of an ES module package needs the file +// ('./hooks.js', or './hooks/index.js' for a folder). Run after tsc with the +// declaration directory: node declaration-specifiers.mjs dist/src +import fs from 'node:fs' +import path from 'node:path' + +const directory = process.argv[2] +const specifier = /((?:from|import)\s*\(?\s*)(['"])(\.{1,2}(?:\/[^'"]*)?)\2/g +const resolved = /\.(?:[cm]?js|json)$/ + +function withFile (from, quote, prefix, name) { + if (resolved.test(name)) return null + const bare = name.replace(/\/$/, '') + if (fs.existsSync(path.join(from, bare + '.d.ts'))) return prefix + quote + bare + '.js' + quote + if (fs.existsSync(path.join(from, bare, 'index.d.ts'))) return prefix + quote + bare + '/index.js' + quote + return null +} + +for (const entry of fs.readdirSync(directory, { recursive: true })) { + if (!String(entry).endsWith('.d.ts')) continue + const file = path.join(directory, String(entry)) + const from = path.dirname(file) + const text = fs.readFileSync(file, 'utf8') + const out = text.replace(specifier, (match, prefix, quote, name) => withFile(from, quote, prefix, name) ?? match) + if (out !== text) fs.writeFileSync(file, out) +} diff --git a/docs/architecture/vertical-feature-slices.md b/docs/architecture/vertical-feature-slices.md index 9d96bb20..40fc7bd2 100644 --- a/docs/architecture/vertical-feature-slices.md +++ b/docs/architecture/vertical-feature-slices.md @@ -11,8 +11,8 @@ no flat-folder limit, no barrel-only-import rule — but its `.tsx` files and hooks *do* follow the file-role naming convention in [UI file naming](#ui-file-naming-appstsx-and-hooks), so a file's role is legible from its name everywhere in the repo, not just under `packages/`. -- **Enforced by:** `@mnci/eslint-config`'s `verticalSlices` rules, switched on in the root `eslint.config.mjs`, for - `packages/**`. The `apps/**` UI naming convention below is not yet lint-enforced — it's a PR-review convention. +- **Enforced by:** `@monosmith/eslint-config`'s `verticalSlices` rules, switched on in the root `eslint.config.mjs`, for + `packages/**`, and smith's `vertical-slices` convention (`smith.toml`) for the other languages. The `apps/**` UI naming convention below is not yet lint-enforced — it's a PR-review convention. ## Decision diff --git a/eslint.config.mjs b/eslint.config.mjs index a9db7ad4..fb3ce469 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,7 +1,7 @@ -import mnci from './eslint.config.mnci.mjs' +import monosmith from '@monosmith/eslint-config' export default [ - ...mnci({ verticalSlices: ['packages/*/src/**/*.ts'] }), + ...monosmith({ verticalSlices: ['packages/*/src/**/*.ts'] }), { name: 'local/test-fixtures-are-data', ignores: ['packages/*/src/**/fixtures/**/*.{html,json,txt}'] }, { name: 'local/contract-regexes-are-flag-free', @@ -14,27 +14,6 @@ export default [ }], }, }, - { - name: 'local/dependency-checks-never-remove', - files: ['packages/*/package.json', 'libs/*/package.json'], - // Rule options replace mnci's rather than merge, so its ignoredFiles are repeated here. - rules: { - '@nx/dependency-checks': ['error', { - checkObsoleteDependencies: false, - checkVersionMismatches: false, - ignoredFiles: [ - '{projectRoot}/eslint.config.{js,cjs,mjs,ts,cts,mts}', - '{projectRoot}/rollup.config.{js,ts,mjs,mts,cjs,cts}', - '{projectRoot}/jest.config.{js,ts,mjs,mts,cjs,cts}', - '{projectRoot}/jest.e2e.config.{js,ts,mjs,mts,cjs,cts}', - '{projectRoot}/e2e/**', - '{projectRoot}/tools/**', - '{projectRoot}/**/*.spec.{js,ts,jsx,tsx}', - '{projectRoot}/**/*.test.{js,ts,jsx,tsx}', - ], - }], - }, - }, { ignores: [ '**/vite.config.*.timestamp*', @@ -46,6 +25,14 @@ export default [ 'apps/vscode-extension/.vscode-test/**', // Runs once to make the tutorial's pictures and video: it drives a browser page (code that runs in the page is a string of the page's own globals). 'docs/studio/capture/**', + // Written by smith (convert, ci generate), which do not pass this config yet: monosmith-app/monosmith#286. + '.devcontainer/devcontainer.json', + 'declaration-specifiers.mjs', + 'jest.asset-transform.cjs', + 'jest.preset.js', + // Local only, never committed: field-test scratch (gitignored) and the browser tool's snapshots. + 'studio-field-tests/**', + '.playwright-mcp/**', ], }, ] diff --git a/eslint.config.mnci.mjs b/eslint.config.mnci.mjs deleted file mode 100644 index 4916bc3d..00000000 --- a/eslint.config.mnci.mjs +++ /dev/null @@ -1,72 +0,0 @@ -// GENERATED BY mnci. Every `mnci upgrade` overwrites this file. -// -// Do not edit it: put your own blocks in eslint.config.mjs next to it, which -// imports this one and which mnci never touches once it exists. -import mnci from '@mnci/eslint-config' - -// WHAT IS IN HERE. Each line is one config block, by the `name` it carries. -// -// mnci/ignores paths never linted (dist, coverage, .venv, …) -// mnci/base JS/TS correctness — @eslint/js, eslint-plugin-unicorn, -// -promise, -n, -unused-imports -// typescript-eslint/* typescript-eslint's own recommended blocks -// mnci/typescript* TS rules on top of them, no type information needed -// mnci/type-aware* the rules that DO read types (no-floating-promises and -// friends), scoped to {apps,libs,packages}/*/src -// mnci/import-graph import cycles — eslint-plugin-import-x -// mnci/react JSX/TSX — @eslint-react/eslint-plugin, -// eslint-plugin-react-hooks, -react-refresh, -jsx-a11y -// mnci/regexp* regex correctness — eslint-plugin-regexp -// mnci/json mnci/jsonc mnci/json5 -// eslint-plugin-jsonc — comments are allowed in .jsonc -// and tsconfig.json, forbidden in plain .json -// mnci/yaml* eslint-plugin-yml — your CI pipeline files -// mnci/toml/base* eslint-plugin-toml, PARSER ONLY: a malformed -// pyproject.toml is a syntax error, nothing is styled -// mnci/markdown @eslint/markdown -// mnci/css @eslint/css -// mnci/html @html-eslint/eslint-plugin -// mnci/tests *.spec/*.test relaxations — eslint-plugin-jest -// (Vitest's globals too; the two stacks share them) -// mnci/tests/mock-aware specs in a project: eslint-plugin-jest's unbound-method, -// which knows expect(mock.method) has no this to lose -// mnci/nx-dependency-checks @nx/eslint-plugin, on publishable packages' manifests -// mnci/standard JavaScript Standard Style as ESLint rules — the -// whole formatting opinion, a faithful port of -// neostandard -// mnci/house-style the deliberate departures from Standard: -// trailing commas, aligned object values, -// consistent-as-needed quote-props, a blank line -// before return. Composed LAST, on purpose: -// nothing may follow that disables it. -// -// To list them as ESLint actually resolves them: npx eslint --inspect-config -// -// FORMATTING IS LINTING HERE. There is no Prettier, no oxfmt and no -// `format:check` — `npm run lint` reports indentation, quotes and spacing as -// ordinary errors, and `npm run format` is `eslint . --fix`. So do not add a -// formatter: whichever one you pick will disagree with the `mnci/standard` -// block above, and because a formatter runs on save it wins silently, leaving -// `lint` to fail on files you never edited by hand. -// -// That also applies to the editor. Installing a Prettier or oxfmt extension is -// enough on its own — neither needs a config file, and with none present they -// format against their own defaults (semicolons, double quotes), which is the -// inverse of Standard. -// -// Exported as a FUNCTION, not as the resolved array. @mnci/eslint-config takes -// options — `verticalSlices` is the one a workspace is most likely to want — -// and an already-resolved array has nowhere to receive them. Calling it from -// eslint.config.mjs is what keeps every option reachable from the file you own. -// -// `workspaceRoot` is resolved HERE because both files sit at the root, and it -// is what enables the @nx/dependency-checks block. -// -// A named function declaration, exported inline. Both shapes matter and both -// are enforced by this very config: `unicorn/no-anonymous-default-export` -// rejects an anonymous arrow, and `unicorn/default-export-style` rejects -// declaring one above the export and referring to it. Either mistake fails a -// generated workspace's own lint on its first run. -export default function mnciConfig (options = {}) { - return mnci({ workspaceRoot: import.meta.dirname, ...options }) -} diff --git a/jest.asset-transform.cjs b/jest.asset-transform.cjs new file mode 100644 index 00000000..2513926f --- /dev/null +++ b/jest.asset-transform.cjs @@ -0,0 +1,40 @@ +// Written by smith convert: what @nx/react/plugins/jest did, without Nx. +// An imported SVG becomes a React component (named as SVGR names it), a JS or +// TS file goes to @swc/jest or babel-jest, and any other file is its name. +const path = require('node:path') + +function className(name) { + const camel = name + .replace(/([^a-zA-Z0-9])+(.)?/g, (_, __, chr) => (chr ? chr.toUpperCase() : '')) + .replace(/[^a-zA-Z\d]/g, '') + return camel.charAt(0).toUpperCase() + camel.slice(1) +} + +function jsTransformer(transforms) { + const swc = (transforms ?? []).some((t) => Array.isArray(t) && t.some((v) => typeof v === 'string' && v.includes('@swc/jest'))) + if (swc) return require('@swc/jest').createTransformer() + return require('babel-jest').default.createTransformer() +} + +module.exports = { + process(src, filename, options) { + const assetFilename = JSON.stringify(path.basename(filename)) + if (filename.endsWith('.svg')) { + const componentName = 'Svg' + className(path.parse(filename).name) + return { + code: `const React = require('react'); +module.exports = { + __esModule: true, + default: ${assetFilename}, + ReactComponent: function ${componentName}(props) { + return React.createElement('svg', Object.assign({}, props, { children: ${assetFilename} })); + }, +};`, + } + } + if (['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'].includes(path.extname(filename))) { + return jsTransformer(options.config?.transform).process(src, filename, options) + } + return { code: `module.exports = ${assetFilename};` } + }, +} diff --git a/jest.config.ts b/jest.config.ts deleted file mode 100644 index 3a5809fb..00000000 --- a/jest.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { Config } from 'jest' -import { getJestProjectsAsync } from '@nx/jest' - -export default async (): Promise => ({ - projects: await getJestProjectsAsync(), -}) diff --git a/jest.preset.js b/jest.preset.js index 8cd53f8e..12b0f6f7 100644 --- a/jest.preset.js +++ b/jest.preset.js @@ -1,3 +1,15 @@ -const nxPreset = require('@nx/jest/preset').default - -module.exports = { ...nxPreset } +// Written by smith convert: the values @nx/jest/preset provided, without Nx. +module.exports = { + testMatch: ['**/?(*.)+(spec|test).?([mc])[jt]s?(x)'], + moduleFileExtensions: ['ts', 'js', 'mts', 'mjs', 'cts', 'cjs', 'html'], + coverageReporters: ['html'], + moduleNameMapper: { '^(\\.{1,2}/.*)\\.js$': '$1' }, + transform: { + '^.+\\.(ts|js|mts|mjs|cts|cjs|html)$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }], + }, + testEnvironment: 'jsdom', + modulePathIgnorePatterns: ['/dist/', '/out-tsc/'], + testEnvironmentOptions: { + customExportConditions: ['node', 'require', 'default'], + }, +} diff --git a/nx.json b/nx.json deleted file mode 100644 index 94049677..00000000 --- a/nx.json +++ /dev/null @@ -1,196 +0,0 @@ -{ - "$schema": "./node_modules/nx/schemas/nx-schema.json", - "namedInputs": { - "default": [ - "{projectRoot}/**/*", - "sharedGlobals" - ], - "production": [ - "default", - "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", - "!{projectRoot}/tsconfig.spec.json", - "!{projectRoot}/jest.config.[jt]s", - "!{projectRoot}/src/test-setup.[jt]s", - "!{projectRoot}/test-setup.[jt]s" - ], - "sharedGlobals": [ - "{workspaceRoot}/eslint.config.mjs", - "{workspaceRoot}/tsconfig.base.json", - "{workspaceRoot}/package.json", - "{workspaceRoot}/eslint.config.mnci.mjs" - ] - }, - "plugins": [ - { - "plugin": "@nx/js/typescript", - "options": { - "typecheck": { - "targetName": "typecheck" - }, - "build": { - "targetName": "build", - "configName": "tsconfig.lib.json", - "buildDepsName": "build-deps", - "watchDepsName": "watch-deps" - } - } - }, - { - "plugin": "@nx/eslint/plugin", - "options": { - "targetName": "lint" - } - }, - { - "plugin": "@nx/rollup/plugin", - "options": { - "buildTargetName": "build", - "buildDepsTargetName": "build-deps", - "watchDepsTargetName": "watch-deps" - } - }, - { - "plugin": "@nx/jest/plugin", - "options": { - "targetName": "test" - } - }, - { - "plugin": "@nx/vite/plugin", - "options": { - "buildTargetName": "build", - "serveTargetName": "serve", - "devTargetName": "dev", - "previewTargetName": "preview", - "serveStaticTargetName": "serve-static", - "typecheckTargetName": "typecheck", - "buildDepsTargetName": "build-deps", - "watchDepsTargetName": "watch-deps" - } - }, - "@mnci/nx-python-pip/graph" - ], - "analytics": false, - "defaultBase": "main", - "release": { - "projectsRelationship": "independent", - "projects": [ - "packages/*", - "python-packages/*", - "tag:type:vscode-extension", - "tag:release:go", - "!tag:type:go-lib" - ], - "releaseTag": { - "pattern": "{projectName}@{version}" - }, - "git": { - "commit": false, - "tag": true, - "push": true - }, - "version": { - "preVersionCommand": "npx nx run-many -t build --projects=packages/*,python-packages/*,tag:type:vscode-extension", - "conventionalCommits": true, - "preserveMatchingDependencyRanges": false, - "fallbackCurrentVersionResolver": "disk", - "versionActionsOptions": { - "skipLockFileUpdate": true - } - }, - "changelog": { - "automaticFromRef": true, - "workspaceChangelog": false, - "projectChangelogs": { - "createRelease": "github", - "file": false - } - } - }, - "generators": { - "@nx/react:application": { - "linter": "none", - "unitTestRunner": "jest" - }, - "@nx/react:library": { - "linter": "none", - "unitTestRunner": "jest" - }, - "@nx/js:library": { - "linter": "none", - "unitTestRunner": "jest" - }, - "@nx/react": { - "application": { - "babel": true, - "style": "css", - "linter": "none", - "bundler": "vite" - }, - "component": { - "style": "css" - }, - "library": { - "style": "css", - "linter": "none" - } - } - }, - "sync": { - "applyChanges": true - }, - "mnci": { - "workspaceName": "opencraw", - "scope": "@opencraw", - "registry": { - "kind": "npm" - }, - "agent": "ubuntu-latest", - "variableGroup": "Build", - "ci": "github", - "stack": { - "testRunner": "jest" - } - }, - "targetDefaults": { - "build": { - "dependsOn": [ - "^build", - "typecheck" - ] - }, - "lint": { - "dependsOn": [ - "^build" - ] - }, - "typecheck": { - "dependsOn": [ - "^build" - ] - }, - "test": { - "dependsOn": [ - "^build" - ] - }, - "@nx/esbuild:esbuild": { - "cache": true, - "dependsOn": [ - "^build" - ], - "inputs": [ - "production", - "^production", - { - "json": "{workspaceRoot}/tsconfig.json", - "fields": [ - "extends", - "files", - "include" - ] - } - ] - } - } -} diff --git a/package-lock.json b/package-lock.json index 65dd4d10..6a4c6e7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,22 +12,17 @@ "packages/*", "apps/*" ], + "dependencies": { + "motion": "^14.3.0" + }, "devDependencies": { + "@babel/preset-env": "^7.29.7", + "@babel/preset-react": "^7.29.7", + "@babel/preset-typescript": "^7.29.7", "@commitlint/cli": "^21.2.3", "@commitlint/config-conventional": "^21.2.3", - "@mnci/cli": ">=4.0.0 <5.0.0", - "@mnci/eslint-config": ">=0.1.0 <1.0.0", - "@mnci/nx-python-pip": "^0.2.23", - "@nx/esbuild": "23.3.0", - "@nx/eslint": "23.3.0", - "@nx/eslint-plugin": "23.3.0", - "@nx/jest": "23.3.0", - "@nx/js": "23.3.0", - "@nx/node": "^23.3.0", - "@nx/react": "^23.3.0", - "@nx/rollup": "23.3.0", - "@nx/vite": "23.3.0", - "@nx/web": "23.3.0", + "@monosmith/eslint-config": "^1.0.0", + "@rollup/plugin-node-resolve": "^15.3.1", "@swc-node/register": "1.11.1", "@swc/cli": "~0.8.1", "@swc/core": "1.15.8", @@ -53,19 +48,15 @@ "jest-environment-node": "~30.3.0", "jest-util": "~30.3.0", "jiti": "2.4.2", - "nx": "23.3.0", "react": "^19.0.0", "react-dom": "^19.0.0", - "rollup": "^4.14.0", + "rollup": "^4.64.8", "swc-loader": "0.1.15", "ts-jest": "^29.4.7", "ts-node": "10.9.1", "tslib": "^2.3.0", "typescript": "npm:@typescript/typescript6@^6.0.2", "vite": "^8.0.0" - }, - "dependencies": { - "motion": "^14.3.0" } }, "apps/azure-host": { @@ -111,8 +102,9 @@ }, "apps/vscode-extension": { "name": "@opencraw/vscode", - "version": "0.0.1", + "version": "0.8.0", "dependencies": { + "@opencraw/agent": "^0.0.1", "@opencraw/cli": "^0.0.1", "@opencraw/studio": "^0.0.1" }, @@ -121,7 +113,7 @@ "@vscode/test-electron": "^3.1.0" }, "engines": { - "vscode": "^1.90.0" + "vscode": "^1.127.0" } }, "node_modules/@ark-ui/react": { @@ -226,6 +218,13 @@ "dev": true, "license": "ISC" }, + "node_modules/@astrojs/compiler": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-3.0.1.tgz", + "integrity": "sha512-z97oYbdebO5aoWzuJ/8q5hLK232+17KcLZ7cJ8BCWk6+qNzVxn/gftC0KzMBUTD8WAaBkPpNSQK6PXLnNrZ0CA==", + "dev": true, + "license": "MIT" + }, "node_modules/@azure-rest/core-client": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/@azure-rest/core-client/-/core-client-2.9.0.tgz", @@ -275,7 +274,6 @@ "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.11.1.tgz", "integrity": "sha512-2QygG2F76ZpMP2eMztiJvAiFMu71M9rDeU7vO/QKg5Css7MgM4frUOslFjhVjRhbGaCNPtz/S8M6y46/fFKVuQ==", "license": "MIT", - "peer": true, "dependencies": { "@azure/abort-controller": "^2.1.2", "@azure/core-auth": "^1.10.0", @@ -347,7 +345,6 @@ "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.25.0.tgz", "integrity": "sha512-bMs8ekJLjX8wPV+9IPBges1SLPyuDtE9g5gLDWOpxzKcoOFQnpLGkbcT1tdw3FaAmDS1gnPmMmJ6y/T5B96kIA==", "license": "MIT", - "peer": true, "dependencies": { "@azure/abort-controller": "^2.1.2", "@azure/core-auth": "^1.10.0", @@ -405,7 +402,6 @@ "resolved": "https://registry.npmjs.org/@azure/functions/-/functions-4.16.5.tgz", "integrity": "sha512-h0lVUeI/Q36SyE2xGQOXZqBbmSgQHNLk8pvMxhq3Dw1TaT3eGWs2X25dceGJ153aXXkjcTEdkxg3D2Gcz1uJ0w==", "license": "MIT", - "peer": true, "dependencies": { "@azure/functions-extensions-base": "0.3.0", "cookie": "^0.7.0" @@ -999,7 +995,6 @@ "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", @@ -1468,24 +1463,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.7.tgz", - "integrity": "sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7", - "@babel/plugin-syntax-decorators": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", @@ -1554,22 +1531,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.29.7.tgz", - "integrity": "sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", @@ -2564,37 +2525,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.7.tgz", - "integrity": "sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.29.7", - "@babel/helper-plugin-utils": "^7.29.7", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", @@ -3045,36 +2975,6 @@ "react-dom": ">=18" } }, - "node_modules/@clack/core": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.4.3.tgz", - "integrity": "sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-wrap-ansi": "^0.2.0", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 20.12.0" - } - }, - "node_modules/@clack/prompts": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.7.0.tgz", - "integrity": "sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@clack/core": "1.4.3", - "fast-string-width": "^3.0.2", - "fast-wrap-ansi": "^0.2.0", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 20.12.0" - } - }, "node_modules/@codemirror/autocomplete": { "version": "6.20.3", "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.3.tgz", @@ -3171,7 +3071,6 @@ "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.43.13.tgz", "integrity": "sha512-sihaFrUzAsYBQsL9J2t69y8nfMQGwcYmggAZsk+kjPbjYZMyuf2hU8tUNTZ+P+isb6XRr8JE22TZlJxBoVdH1A==", "license": "MIT", - "peer": true, "dependencies": { "@codemirror/state": "^6.7.0", "crelt": "^1.0.6", @@ -3589,7 +3488,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -3613,7 +3511,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -3947,6 +3844,7 @@ "dev": true, "license": "BSD-2-Clause", "optional": true, + "peer": true, "dependencies": { "cross-dirname": "^0.1.0", "debug": "^4.3.4", @@ -3962,32 +3860,35 @@ } }, "node_modules/@emnapi/core": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.5.tgz", - "integrity": "sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.2.tgz", + "integrity": "sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.0.4", + "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.5.tgz", - "integrity": "sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.2.tgz", + "integrity": "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.4.tgz", - "integrity": "sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "tslib": "^2.4.0" } @@ -4065,7 +3966,6 @@ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -4616,152 +4516,185 @@ } }, "node_modules/@eslint-react/ast": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/@eslint-react/ast/-/ast-5.20.8.tgz", - "integrity": "sha512-p2LpsgLAbSpn6/TboNRpasnOAMLsSxtPamX9QevRrtbxs1K3aLKWyjuM+mO2D1VJhagknjeyC1x+d4v6yoWf5w==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/@eslint-react/ast/-/ast-5.28.1.tgz", + "integrity": "sha512-b4EK1eFIYwCuNSRPwVMu+qVcNChn73pyynlUM7tu+/23dG2oPPE5Yjec3uREKUNiH3Naj82NUH39uWFgWmweHQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "^8.70.0", - "@typescript-eslint/typescript-estree": "^8.70.0", - "@typescript-eslint/utils": "^8.70.0", - "string-ts": "^2.3.1" + "@typescript-eslint/types": "^8.71.2", + "@typescript-eslint/typescript-estree": "^8.71.2", + "@typescript-eslint/utils": "^8.71.2" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/@eslint-react/core": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/@eslint-react/core/-/core-5.20.8.tgz", - "integrity": "sha512-EreVZ4/IQlHv2TwlNuDwvG92S0vWhuYnunnl5HMZOegKUWI59ypGMZkg+/4vec0fbJE56Ux9pFfZQVnpNGuROw==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/@eslint-react/core/-/core-5.28.1.tgz", + "integrity": "sha512-IczZyXsUk/rJBZ6kHjTAq8Pily5aVp7eHN6v0d9BIz5IkgJAqItzIs75CZ9MljGiNXNyKU51ojZguRbOZy5trg==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-react/ast": "5.20.8", - "@eslint-react/eslint": "5.20.8", - "@eslint-react/shared": "5.20.8", - "@eslint-react/var": "5.20.8", - "@typescript-eslint/scope-manager": "^8.70.0", - "@typescript-eslint/types": "^8.70.0", - "@typescript-eslint/utils": "^8.70.0", - "ts-pattern": "^5.9.0" + "@eslint-react/ast": "5.28.1", + "@eslint-react/eslint": "5.28.1", + "@eslint-react/shared": "5.28.1", + "@eslint-react/var": "5.28.1", + "@typescript-eslint/types": "^8.71.2", + "@typescript-eslint/utils": "^8.71.2", + "ts-pattern": "^5.9.2" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/@eslint-react/eslint": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/@eslint-react/eslint/-/eslint-5.20.8.tgz", - "integrity": "sha512-d3Vbp5IWcBGlvxNCDPwy6WFyo0r1EONNKGAA7KAnOZVqFvoZ7fuYCAHrFclPeUjgVpP/KJ57uuJbymlrq/oawQ==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/@eslint-react/eslint/-/eslint-5.28.1.tgz", + "integrity": "sha512-Qa+4qe7mpw5VJW5czgeKm5i86wM7lCPzID0UjR2CpkY/aSLgJC1kfDDh7SQge03ZycHCSgZrJf3tY+/MEMymxA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^8.70.0" + "@typescript-eslint/types": "^8.71.2", + "@typescript-eslint/utils": "^8.71.2" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/@eslint-react/eslint-plugin": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/@eslint-react/eslint-plugin/-/eslint-plugin-5.20.8.tgz", - "integrity": "sha512-mcpE/HcgcaiPOuhdmnbpcoEclRjw5L+W0SMj71UDz0+pamXP66nJhQbc0hydeR8lI4Ac90QD9yP2ktruDJaGVA==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/@eslint-react/eslint-plugin/-/eslint-plugin-5.28.1.tgz", + "integrity": "sha512-fF7ASyBe5V+SQZ6iRaGv2Z13qMJgcmlKYX7EyCEgeYKn4M9fyLVRHNV37pckeKbWcQnbmWHNYpZMSlBhSN9n9w==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-react/shared": "5.20.8", - "eslint-plugin-react-dom": "5.20.8", - "eslint-plugin-react-jsx": "5.20.8", - "eslint-plugin-react-naming-convention": "5.20.8", - "eslint-plugin-react-rsc": "5.20.8", - "eslint-plugin-react-web-api": "5.20.8", - "eslint-plugin-react-x": "5.20.8" + "@eslint-react/shared": "5.28.1", + "eslint-plugin-react-dom": "5.28.1", + "eslint-plugin-react-jsx": "5.28.1", + "eslint-plugin-react-naming-convention": "5.28.1", + "eslint-plugin-react-rsc": "5.28.1", + "eslint-plugin-react-web-api": "5.28.1", + "eslint-plugin-react-x": "5.28.1" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/@eslint-react/jsx": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/@eslint-react/jsx/-/jsx-5.20.8.tgz", - "integrity": "sha512-eWIPY/j+c5OESPdp8FB+r+EHauRynYRk2MTBKgHoWFz9rduqGY7V0+I6JoL29LU5c/s48O+ZkaRLYVeBB/V+Dg==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/@eslint-react/jsx/-/jsx-5.28.1.tgz", + "integrity": "sha512-2AahTM2dUXvXftI4oyjKFwh1a6an/KI+MHt6qj0WHQzuS5v5jP1youKVFE/h7ZkFAS6woToqZ0Fu56H5Bnbvmw==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-react/ast": "5.20.8", - "@eslint-react/eslint": "5.20.8", - "@eslint-react/shared": "5.20.8", - "@eslint-react/var": "5.20.8", - "@typescript-eslint/types": "^8.70.0", - "@typescript-eslint/utils": "^8.70.0", - "ts-pattern": "^5.9.0" + "@eslint-react/ast": "5.28.1", + "@eslint-react/eslint": "5.28.1", + "@eslint-react/var": "5.28.1", + "@typescript-eslint/types": "^8.71.2", + "@typescript-eslint/utils": "^8.71.2", + "ts-pattern": "^5.9.2" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/@eslint-react/shared": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/@eslint-react/shared/-/shared-5.20.8.tgz", - "integrity": "sha512-U32IV1q31lmo7S1zX0HmbUioK3EeW9jpf2t/NKEBRr/C4IfDxNV/Tv2SoqTcxZWcqCnKeEgABrHzH64idlS9Gw==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/@eslint-react/shared/-/shared-5.28.1.tgz", + "integrity": "sha512-Z1TjJGsGBbZ7bms1AQLSELH0hIYY6t8kO6NPmWQsYD3B2+mf6eS8Lz6K7kxVMg40H3NdeGd9vEDd1a4yBeFA0w==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-react/eslint": "5.20.8", - "@typescript-eslint/utils": "^8.70.0", - "ts-pattern": "^5.9.0", + "@eslint-react/eslint": "5.28.1", + "@typescript-eslint/utils": "^8.71.2", + "ts-pattern": "^5.9.2", "zod": "^3.25.0 || ^4.0.0" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/@eslint-react/var": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/@eslint-react/var/-/var-5.20.8.tgz", - "integrity": "sha512-uGAquJMp3TCaIZZywc2VHuGM2qCDE/Xta1DYvCyyk3qVinR/X9uIXFoHh/SBHeqky5v5Fx8C8nVj40MGa3yRhA==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/@eslint-react/var/-/var-5.28.1.tgz", + "integrity": "sha512-6LPh/CdPMPJM/5PP6571YdiuCSi/OCUErhIBWq+CT9QxU43S8Wnq245aaU0/lWE7NGWDM623Gd80ZWa9NdvxHQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-react/ast": "5.20.8", - "@eslint-react/eslint": "5.20.8", - "@typescript-eslint/scope-manager": "^8.70.0", - "@typescript-eslint/types": "^8.70.0", - "@typescript-eslint/utils": "^8.70.0", - "ts-pattern": "^5.9.0" + "@eslint-react/ast": "5.28.1", + "@eslint-react/eslint": "5.28.1", + "@typescript-eslint/scope-manager": "^8.71.2", + "@typescript-eslint/types": "^8.71.2", + "@typescript-eslint/utils": "^8.71.2", + "ts-pattern": "^5.9.2" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/@eslint/config-array": { @@ -4821,13 +4754,13 @@ } }, "node_modules/@eslint/css-tree": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@eslint/css-tree/-/css-tree-4.1.1.tgz", - "integrity": "sha512-A+s89eP+yDAPkKjnIOfjlkGifg5J7GPn01nWx14UjBVWktfkxOU4975F9ZZ13xNxkGiblNcBaAqgKhnQrW6SWA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@eslint/css-tree/-/css-tree-4.1.2.tgz", + "integrity": "sha512-rVcxLmwSkEL3aWS3vAgsTRrQHoYE1b0XcgDtKHDJ92XOkyUpcbS/g0tUJKhvCtlEhYzgKBWsgDd+Z/aPhd166w==", "dev": true, "license": "MIT", "dependencies": { - "mdn-data": "2.35.0", + "mdn-data": "2.37.2", "source-map-js": "^1.2.1" }, "engines": { @@ -5170,386 +5103,11 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@inquirer/ansi": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.9.tgz", - "integrity": "sha512-0Ywt3S8tqM6TWUcsRlBFQ1x+X3/o8kktX0ZiKAnByYb9GFDknnOhse1PVtfiD2BXPI8ar+BWx9PV9R0lQIcygw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - } - }, - "node_modules/@inquirer/checkbox": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.2.6.tgz", - "integrity": "sha512-XkOardciF3tow2NUlY6/Qjk1QqYa+6WpmVLTpxXl97Uv4erczDEZ+xg1j6LqBf0ekcRSUiICQA4nQXHHkVKQ9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/ansi": "^2.0.9", - "@inquirer/core": "^12.0.4", - "@inquirer/figures": "^2.0.9", - "@inquirer/type": "4.2.0" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/confirm": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.3.3.tgz", - "integrity": "sha512-ImOBgpl/sJTFp8naeSkNu4S0Sf8F8pxv3/CUx+LoBAdQvCVqFz6rSB2A/oZYsJge3+yphbEDxEkfaRNYq1OU0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^12.0.4", - "@inquirer/type": "4.2.0" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/core": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-12.0.4.tgz", - "integrity": "sha512-M5fB67y7jPObI45vhD82RskWwCSm0scOvenV/I6K8tIi2gfr9DXqQqJ+iw+Wi6SgapikdOiJibYzz1gW47fsDg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/ansi": "^2.0.9", - "@inquirer/figures": "^2.0.9", - "@inquirer/type": "4.2.0", - "cli-width": "^4.1.0", - "fast-wrap-ansi": "^0.2.0", - "mute-stream": "^3.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/core/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/@inquirer/editor": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.3.4.tgz", - "integrity": "sha512-imzxQDfw26NpcJAubMj/dE5RjU9Mp80IcT+FzsD6YoxXmL8L1QYnAFdCNv7ccGWh//73+0YP+1kfhwnExdl2VQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^12.0.4", - "@inquirer/external-editor": "^3.0.6", - "@inquirer/type": "4.2.0" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/expand": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.1.6.tgz", - "integrity": "sha512-JfiLKi7qGuHmcQO/DqR10UFEp054Y1FXZaszP5ZEfHhgHeuFoT5nNFQIXFhed/5/p07SbsV2tIJFwG/dg5+NmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^12.0.4", - "@inquirer/type": "4.2.0" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/external-editor": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-3.0.6.tgz", - "integrity": "sha512-rWmw6WG8JZ7LMn/srXEylYGhL6EXXJeROE7/4x4GREh6NgzqJBDbIgpNGsYoLPfobeb4VZtEYzPGnT5EFNYhiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^2.1.1", - "iconv-lite": "^0.7.2" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", - "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/@inquirer/figures": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.9.tgz", - "integrity": "sha512-EAWgUTGQ/Umgga51dE3B2PUHbufuXarDfg86uVgoSgNHNNQnyFKcOrQLWVqYMghuSyHh8+2HUH0Js9cTC1WAdg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - } - }, - "node_modules/@inquirer/input": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.1.7.tgz", - "integrity": "sha512-Icrs9tuMBCxGI+lFYNO71VFOnqGO8IIrLIGqnTGh07X8jZ2la9QLAYxXcikHZQjjVhIZUtU2xyH89DVN/pPhVg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^12.0.4", - "@inquirer/type": "4.2.0" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/number": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.2.4.tgz", - "integrity": "sha512-C6g80U4U2+w2Vxa1CB0MN3a2WnQIfzLSUG0lduO3Au9GsirJsKATZkOwZPK+vZ1BlAlz+/Z5ParfQCS9E0svmg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^12.0.4", - "@inquirer/type": "4.2.0" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/password": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.2.3.tgz", - "integrity": "sha512-1Uo2qfI2K3wXbfunMpvwAzoZPIUf5iEETwDGqRVbswoorXGqYQJ/bfIJFeLj+pxjq+e2UFPNOmx+fsIl4Urigw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/ansi": "^2.0.9", - "@inquirer/core": "^12.0.4", - "@inquirer/type": "4.2.0" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/prompts": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.7.3.tgz", - "integrity": "sha512-DHK20kO+H5k/XcJQpHQUpVQbMYHHhZchlGWhZVMUV4WIuRuBW5744hipOtriE1vMqPLgnIyXFMHWKkIbTepa4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/checkbox": "^5.2.6", - "@inquirer/confirm": "^6.3.3", - "@inquirer/editor": "^5.3.4", - "@inquirer/expand": "^5.1.6", - "@inquirer/input": "^5.1.7", - "@inquirer/number": "^4.2.4", - "@inquirer/password": "^5.2.3", - "@inquirer/rawlist": "^5.3.6", - "@inquirer/search": "^4.3.4", - "@inquirer/select": "^5.2.6" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/rawlist": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.3.6.tgz", - "integrity": "sha512-2exExhQ5xTBqfN/rRlZkvM1Gm3b0eiLcWe2NqxWxe7qYmnU4M3j/n9TwzfPUb+Q7dAAz9TmBtDWWdF3jbp4ZLA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^12.0.4", - "@inquirer/type": "4.2.0" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/search": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.3.4.tgz", - "integrity": "sha512-xsk0UeFP04jsbEeFMzghjUaH2aHXyt+WykSajQzq/8qyBNHsgGYHea/sFwv5T08kW7Sp+KDX8aF124zPUIs1Ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^12.0.4", - "@inquirer/figures": "^2.0.9", - "@inquirer/type": "4.2.0" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/select": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.2.6.tgz", - "integrity": "sha512-jFu7CFghlr0vpi/326a4wz6BGkJH9X3H/iIu+ahyV2Ja52ktqQE3fC9BYP47JKeSPQYGUv5xquE2Vp9PbepZ3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/ansi": "^2.0.9", - "@inquirer/core": "^12.0.4", - "@inquirer/figures": "^2.0.9", - "@inquirer/type": "4.2.0" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/type": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.2.0.tgz", - "integrity": "sha512-2rnHX8RPo4glJYqnFc/v3nQeIhDcjyRRyaT7MGcfL/8xv/8K03SXYoA2tX06WVSKywWOE/ncbG3dtuzLjR5TCQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^20.17.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, "node_modules/@internationalized/date": { "version": "3.12.3", "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.12.3.tgz", "integrity": "sha512-fuLX+3ZKLsxI73y8b01EG/WjHb6gE6weCqlfawPO27kBWGMh9G1yH6Csv1uU7/cac9H2GHmOMt6CjmuQ1aia4Q==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@swc/helpers": "^0.5.0" } @@ -5755,42 +5313,6 @@ "node": ">=8" } }, - "node_modules/@jest/console": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.5.2.tgz", - "integrity": "sha512-e8sQC4pCMHPBrPX7Hk8TJr+DM5dkUnImSTNag8SEWFAFAF6xIz4AJvCKapnrdHnZxep4bxw4PhG+ZbimYBMyKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "jest-message-util": "30.5.1", - "jest-util": "30.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/console/node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/@jest/core": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.3.0.tgz", @@ -6124,16 +5646,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@jest/core/node_modules/brace-expansion": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", - "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/@jest/core/node_modules/expect": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz", @@ -6152,28 +5664,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/core/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "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/@jest/core/node_modules/jest-circus": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.3.0.tgz", @@ -6427,46 +5917,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/core/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/@jest/core/node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@jest/core/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/@jest/core/node_modules/pretty-format": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", @@ -6572,32 +6022,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/diff-sequences": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", - "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/environment": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.5.2.tgz", - "integrity": "sha512-nwFPOUMbmsjNNRCpnJpB9HbSZu4C07wDDds++5j+j1MezzPLxMPDdbdUVjr2o4RULDOValnDd70taPFI1EtxAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "30.5.2", - "@jest/types": "30.5.1", - "@types/node": "*", - "jest-mock": "30.5.2" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/@jest/environment-jsdom-abstract": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.3.0.tgz", @@ -6780,20 +6204,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/expect": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.5.2.tgz", - "integrity": "sha512-2E+1Pg6jJxbRjLNLpciC71iri/3qsKJL222/aXJEFwC0VdUSvfS+JZQQLEVjUYYc8t8pQu2MGE3cF2+bNTYRsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "30.5.2", - "jest-snapshot": "30.5.2" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/@jest/expect-utils": { "version": "30.5.2", "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.5.2.tgz", @@ -6807,109 +6217,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/expect/node_modules/@jest/snapshot-utils": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.5.1.tgz", - "integrity": "sha512-V3wnxNtiVmw5PPVg433Cn3VdXnsOeu/ofLw3KC04Bn2y1wIlU5kozXQn48rhrgj/02LrCVtntTEF1yBha0XSUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "chalk": "^4.1.2", - "graceful-fs": "^4.2.11", - "natural-compare": "^1.4.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/expect/node_modules/jest-snapshot": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.5.2.tgz", - "integrity": "sha512-jKIdes25AnAH73dOCi2qE6J6vHJ6L2vyBS11M89kT50DVJcLTf2AOjvcc+2vVaN8lUbY5v2R83aqXo3Ro9fqYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.27.4", - "@babel/generator": "^7.27.5", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1", - "@babel/types": "^7.27.3", - "@jest/expect-utils": "30.5.2", - "@jest/get-type": "30.5.0", - "@jest/snapshot-utils": "30.5.1", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", - "babel-preset-current-node-syntax": "^1.2.0", - "chalk": "^4.1.2", - "expect": "30.5.2", - "graceful-fs": "^4.2.11", - "jest-diff": "30.5.2", - "jest-matcher-utils": "30.5.2", - "jest-message-util": "30.5.1", - "jest-util": "30.5.1", - "pretty-format": "30.5.1", - "semver": "^7.7.2", - "synckit": "^0.11.8" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/expect/node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.5.2.tgz", - "integrity": "sha512-GKk0h0tKT5SpDPxDhPg3r9mm5s8/YCBzVNMOGdRiQXwUiMsjU10mVPlMaQstH6/cu50vOb8N9oQUMETHuwwxKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@sinonjs/fake-timers": "^15.4.0", - "@types/node": "*", - "jest-message-util": "30.5.1", - "jest-mock": "30.5.2", - "jest-util": "30.5.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/fake-timers/node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/@jest/get-type": { "version": "30.5.0", "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.5.0.tgz", @@ -7217,67 +6524,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@jest/reporters": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.5.2.tgz", - "integrity": "sha512-ev6E9iG73twQcfAfoTnviuYkr3yOrYbzAtMFCimv2fxHXPIp9PBt2u1wNMt0aYWgl8FPwIcS8oqRJg6alnht4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "30.5.2", - "@jest/test-result": "30.5.2", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", - "@jridgewell/trace-mapping": "^0.3.31", - "@types/node": "*", - "chalk": "^4.1.2", - "collect-v8-coverage": "^1.0.2", - "exit-x": "^0.2.2", - "glob": "^13.0.6", - "graceful-fs": "^4.2.11", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^5.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "30.5.1", - "jest-util": "30.5.1", - "jest-worker": "30.5.1", - "slash": "^3.0.0", - "string-length": "^4.0.2", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/@jest/schemas": { "version": "30.5.0", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.5.0.tgz", @@ -7378,82 +6624,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/test-result": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.5.2.tgz", - "integrity": "sha512-eO6YU5rsLfs60ne694e0IAmRgeBnoA8mu0nlxXDbl/1j5km0o2vO9/VbbUIKIH+WRKKEI+ELgwraRGn2Lhep8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "30.5.2", - "@jest/types": "30.5.1", - "@types/istanbul-lib-coverage": "^2.0.6", - "collect-v8-coverage": "^1.0.2" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.5.2.tgz", - "integrity": "sha512-bmij8jZyYAC47ExT2GeP7PcrlwSNS+Bp3KeRuBH88gpcxqDv6fljN8PemS4J/lLZ79xb6mpaennQTTq0zUAVVg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "30.5.2", - "graceful-fs": "^4.2.11", - "jest-haste-map": "30.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.5.2.tgz", - "integrity": "sha512-LBGwmaE886C41jDZ65eqR1YbXM7642MK3ZhTowZd5+xDlrDLuf4ePuDdDmVSvcr8NTVJ3MqxLkMbUCzuigUaoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.27.4", - "@jest/types": "30.5.1", - "@jridgewell/trace-mapping": "^0.3.31", - "babel-plugin-istanbul": "^8.0.0", - "chalk": "^4.1.2", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.11", - "jest-haste-map": "30.5.1", - "jest-regex-util": "30.5.0", - "jest-util": "30.5.1", - "pirates": "^4.0.7", - "slash": "^3.0.0", - "write-file-atomic": "^5.0.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/transform/node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/@jest/types": { "version": "30.5.1", "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.5.1.tgz", @@ -7509,6 +6679,7 @@ "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -7711,92 +6882,16 @@ "durable-functions": ">=3.0.0 <4" } }, - "node_modules/@mnci/cli": { - "version": "4.63.0", - "resolved": "https://registry.npmjs.org/@mnci/cli/-/cli-4.63.0.tgz", - "integrity": "sha512-GpIrIgaOwIuG/W4qXHO9Pk3P9wvFB4mU81Mlro11obYQ+30bCux6NKM2pzQmcdiXVpYIu5kUhgWZwQ0z0I4rdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/prompts": "^8.7.0", - "commander": "^15.0.0", - "cross-spawn": "^7.0.6" - }, - "bin": { - "mnci": "dist/cli.js" - }, - "engines": { - "node": "^22.13.0 || >=24" - } - }, "node_modules/@mnci/cli/node_modules/commander": { "version": "15.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz", "integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==", - "dev": true, + "extraneous": true, "license": "MIT", "engines": { "node": ">=22.12.0" } }, - "node_modules/@mnci/eslint-config": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/@mnci/eslint-config/-/eslint-config-0.3.23.tgz", - "integrity": "sha512-0vMz1iBVZ41uyDnvsUYNldxXfhk828rHLzhJwE/sL0jWtxIeEqZUJNpo/QfuJf+teyk2/Z5Xw155iGUvO2Kf0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-react/eslint-plugin": "^5.20.5", - "@eslint/css": "^1.4.0", - "@eslint/js": "^10.0.0", - "@eslint/markdown": "^8.0.2", - "@html-eslint/eslint-plugin": "^0.65.0", - "@html-eslint/parser": "^0.65.0", - "@stylistic/eslint-plugin": "^5.10.0", - "@typescript-eslint/parser": "^8.68.0", - "eslint-import-resolver-node": "^0.4.0", - "eslint-import-resolver-typescript": "^4.4.5", - "eslint-plugin-import-x": "^4.17.1", - "eslint-plugin-jest": "^29.16.6", - "eslint-plugin-jsonc": "^3.4.0", - "eslint-plugin-jsx-a11y": "^6.10.2", - "eslint-plugin-n": "^18.2.1", - "eslint-plugin-promise": "^7.3.0", - "eslint-plugin-react-hooks": "^7.1.1", - "eslint-plugin-react-refresh": "^0.5.3", - "eslint-plugin-regexp": "^3.1.1", - "eslint-plugin-toml": "^1.5.0", - "eslint-plugin-unicorn": "^72.0.0", - "eslint-plugin-unused-imports": "^4.4.1", - "eslint-plugin-yml": "^3.5.0", - "globals": "^17.9.0", - "jsonc-eslint-parser": "^3.3.0", - "toml-eslint-parser": "^1.0.3", - "typescript-eslint": "^8.69.0" - }, - "peerDependencies": { - "@nx/eslint-plugin": ">=21", - "eslint": "^10.8.1" - }, - "peerDependenciesMeta": { - "@nx/eslint-plugin": { - "optional": true - } - } - }, - "node_modules/@mnci/nx-python-pip": { - "version": "0.2.23", - "resolved": "https://registry.npmjs.org/@mnci/nx-python-pip/-/nx-python-pip-0.2.23.tgz", - "integrity": "sha512-zj7zCeMAwQN78Ux2KqgxyspzPiMSrXPwC0Xh+wPRfHfpClTCbvUuS2+bz+c5t52/lnDoZYUlqNI31Q2v9l1cCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/devkit": ">=21.0.0" - }, - "peerDependencies": { - "nx": ">=21.0.0" - } - }, "node_modules/@modelcontextprotocol/sdk": { "version": "1.32.1", "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.32.1.tgz", @@ -7914,7 +7009,6 @@ "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "license": "MIT", - "peer": true, "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.1", @@ -8188,12 +7282,58 @@ "url": "https://opencollective.com/express" } }, + "node_modules/@monosmith/eslint-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@monosmith/eslint-config/-/eslint-config-1.0.0.tgz", + "integrity": "sha512-ns6BmiCkngFe5SXZyjYoaY89wFDGn9qL/iIozMXo+FhZg8UebTYnuHRDHWU15U7/fZeNS0lDZGBqzA3fBNmXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-react/eslint-plugin": "^5.20.5", + "@eslint/css": "^1.4.0", + "@eslint/js": "^10.0.0", + "@eslint/markdown": "^8.0.2", + "@html-eslint/eslint-plugin": "^0.65.0", + "@html-eslint/parser": "^0.65.0", + "@stylistic/eslint-plugin": "^5.10.0", + "@typescript-eslint/parser": "^8.68.0", + "eslint-import-resolver-node": "^0.4.0", + "eslint-import-resolver-typescript": "^4.4.5", + "eslint-plugin-astro": "^1.7.0", + "eslint-plugin-import-x": "^4.17.1", + "eslint-plugin-jest": "^29.16.6", + "eslint-plugin-jsonc": "^3.4.0", + "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-mdx": "^3.8.1", + "eslint-plugin-n": "^18.2.1", + "eslint-plugin-promise": "^7.3.0", + "eslint-plugin-react-hooks": "^7.1.1", + "eslint-plugin-react-refresh": "^0.5.3", + "eslint-plugin-regexp": "^3.3.1", + "eslint-plugin-svelte": "^3.23.1", + "eslint-plugin-toml": "^1.5.0", + "eslint-plugin-unicorn": "^72.0.0", + "eslint-plugin-unused-imports": "^4.4.1", + "eslint-plugin-yml": "^3.5.0", + "globals": "^17.9.0", + "jsonc-eslint-parser": "^3.3.0", + "toml-eslint-parser": "^1.0.3", + "typescript-eslint": "^8.69.0" + }, + "peerDependencies": { + "eslint": "^10.8.1" + }, + "peerDependenciesMeta": { + "@nx/eslint-plugin": { + "optional": true + } + } + }, "node_modules/@napi-rs/canvas": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-1.0.9.tgz", "integrity": "sha512-QviPdJImDi/jMAvBfqaw+19BndMd/sizXVW3NnpMd3VJGz++QXkOHcP9kWR/smHG0hNjHeyuHFyrx/5lD0oNcQ==", "license": "MIT", - "optional": true, "workspaces": [ "e2e/*" ], @@ -8778,18 +7918,6 @@ "node": ">= 10" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", - "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@emnapi/core": "^1.1.0", - "@emnapi/runtime": "^1.1.0", - "@tybys/wasm-util": "^0.9.0" - } - }, "node_modules/@noble/hashes": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.4.0.tgz", @@ -8815,122 +7943,346 @@ ], "license": "MIT" }, - "node_modules/@nx/devkit": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-23.3.0.tgz", - "integrity": "sha512-xGSV4gCwQsVdt49VRcfxd2L31dAO/9t9Isv2bM5O89vyEzwd/tkW/IQwUzWn3OdhCnHayd37S1tDyJ5DilCv7w==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { - "ejs": "5.0.1", - "minimatch": "10.2.5", - "semver": "^7.6.3", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, - "peerDependencies": { - "nx": ">= 22 <= 24 || ^23.0.0-0" + "engines": { + "node": ">= 8" } }, - "node_modules/@nx/docker": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/docker/-/docker-23.3.0.tgz", - "integrity": "sha512-UxG1UIeBhzU09HMeg9ltbgukYAWGnrMc2flS0pA3RIDKtNGQVLk8G/hLKtwDFM1D/W5jn17bDFzKtKKHv4U2cw==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", - "dependencies": { - "@nx/devkit": "23.3.0", - "tslib": "^2.3.0" + "engines": { + "node": ">= 8" } }, - "node_modules/@nx/esbuild": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/esbuild/-/esbuild-23.3.0.tgz", - "integrity": "sha512-dBZurg/JUlmW9NsOohKOUo9wxm/7zRYVr7Ps1AyPorgX2TF7MwueICg817WtFVg1Mat8EwGZPmtzJVuWr3Rs7Q==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "23.3.0", - "@nx/js": "23.3.0", - "picocolors": "^1.1.0", - "tinyglobby": "^0.2.12", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, - "peerDependencies": { - "esbuild": ">=0.19.2 <1.0.0" + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/config": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-8.3.4.tgz", + "integrity": "sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/package-json": "^5.1.1", + "ci-info": "^4.0.0", + "ini": "^4.1.2", + "nopt": "^7.2.1", + "proc-log": "^4.2.0", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" }, - "peerDependenciesMeta": { - "esbuild": { - "optional": true - } + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/config/node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/config/node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/config/node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/config/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@npmcli/git/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/@npmcli/git/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/map-workspaces": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz", + "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@nx/eslint": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/eslint/-/eslint-23.3.0.tgz", - "integrity": "sha512-gYfB57vBDIFfu+QxZpoKThR9VRgUSgvSm+wheOom6wuPgqPIvAcsg17JklRVGd52j7AAyH5RlaFvjhEo6IsY6w==", + "node_modules/@npmcli/map-workspaces/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/@npmcli/map-workspaces/node_modules/brace-expansion": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", + "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "23.3.0", - "@nx/js": "23.3.0", - "semver": "^7.6.3", - "tslib": "^2.3.0", - "typescript": "~6.0.3" + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, - "peerDependencies": { - "@nx/jest": "23.3.0", - "@zkochan/js-yaml": "0.0.7", - "eslint": "^9.0.0 || ^10.0.0" + "engines": { + "node": ">=16 || 14 >=14.17" }, - "peerDependenciesMeta": { - "@nx/jest": { - "optional": true - }, - "@zkochan/js-yaml": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/name-from-folder": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz", + "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.1.tgz", + "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@nx/eslint-plugin": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/eslint-plugin/-/eslint-plugin-23.3.0.tgz", - "integrity": "sha512-BlB1A//ysBUN0C/f/zZ7f8xT1eWqux6DGoJBqLa+z94PpWIsEViRnD7ftdCx//EeTi83nsaDN4Wsb2cspZhfdw==", + "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, "license": "MIT", - "peer": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json/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/@npmcli/package-json/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", + "dev": true, + "license": "ISC", "dependencies": { - "@nx/devkit": "23.3.0", - "@nx/js": "23.3.0", - "@phenomnomnominal/tsquery": "~6.2.0", - "@typescript-eslint/type-utils": "^8.0.0", - "@typescript-eslint/utils": "^8.0.0", - "confusing-browser-globals": "^1.0.9", - "globals": "^17.0.0", - "jsonc-eslint-parser": "^2.1.0", - "picocolors": "^1.1.0", - "semver": "^7.6.3", - "tslib": "^2.3.0" + "which": "^4.0.0" }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0", - "eslint-config-prettier": "^10.0.0" + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" }, - "peerDependenciesMeta": { - "@typescript-eslint/parser": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@nx/eslint-plugin/node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, + "extraneous": true, "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -8943,7 +8295,7 @@ "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, + "extraneous": true, "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", @@ -8961,7 +8313,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.2.tgz", "integrity": "sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==", - "dev": true, + "extraneous": true, "license": "MIT", "dependencies": { "acorn": "^8.5.0", @@ -8980,7 +8332,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", - "dev": true, + "extraneous": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -8990,556 +8342,107 @@ "node": ">=14.17" } }, - "node_modules/@nx/jest": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/jest/-/jest-23.3.0.tgz", - "integrity": "sha512-Fw9k2F6XFLUGmu61Undgl9AbqjGwhuZTUXAQssVF1CTawp6vgYdZqje9i9HpN1sos01JHAfVsOIp3U+BbRfklA==", + "node_modules/@opencraw/agent": { + "resolved": "packages/agent", + "link": true + }, + "node_modules/@opencraw/azure-durable": { + "resolved": "packages/azure-durable", + "link": true + }, + "node_modules/@opencraw/azure-host": { + "resolved": "apps/azure-host", + "link": true + }, + "node_modules/@opencraw/captcha-tesseract": { + "resolved": "packages/captcha-tesseract", + "link": true + }, + "node_modules/@opencraw/cli": { + "resolved": "packages/cli", + "link": true + }, + "node_modules/@opencraw/core": { + "resolved": "packages/core", + "link": true + }, + "node_modules/@opencraw/mcp": { + "resolved": "packages/mcp", + "link": true + }, + "node_modules/@opencraw/ocr-tesseract": { + "resolved": "packages/ocr-tesseract", + "link": true + }, + "node_modules/@opencraw/office-reader": { + "resolved": "packages/office-reader", + "link": true + }, + "node_modules/@opencraw/probe": { + "resolved": "packages/probe", + "link": true + }, + "node_modules/@opencraw/studio": { + "resolved": "packages/studio", + "link": true + }, + "node_modules/@opencraw/studio-desktop": { + "resolved": "apps/studio-desktop", + "link": true + }, + "node_modules/@opencraw/studio-ui": { + "resolved": "apps/studio-ui", + "link": true + }, + "node_modules/@opencraw/vscode": { + "resolved": "apps/vscode-extension", + "link": true + }, + "node_modules/@opentelemetry/api": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", + "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.220.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.220.0.tgz", + "integrity": "sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@jest/reporters": "^30.0.2", - "@jest/test-result": "^30.0.2", - "@nx/devkit": "23.3.0", - "@nx/js": "23.3.0", - "@phenomnomnominal/tsquery": "~6.2.0", - "identity-obj-proxy": "3.0.0", - "jest-config": "^30.0.2", - "jest-resolve": "^30.0.2", - "jest-util": "^30.0.2", - "jsonc-parser": "^3.2.0", - "minimatch": "10.2.5", - "picocolors": "^1.1.0", - "resolve.exports": "2.0.3", - "semver": "^7.6.3", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" - }, - "peerDependencies": { - "jest": "^29.0.0 || ^30.0.0", - "ts-jest": "^29.0.0" + "@opentelemetry/api": "^1.3.0" }, - "peerDependenciesMeta": { - "jest": { - "optional": true - }, - "ts-jest": { - "optional": true - } + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@nx/js": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/js/-/js-23.3.0.tgz", - "integrity": "sha512-J0XWLwFK405uusy4SPDFyHN2e9LpiQmxqItaqaHSQzcXNUs7fWW/pEeoJ6ZQkwn84yWS+hIzT317T98JaoCZhA==", + "node_modules/@opentelemetry/configuration": { + "version": "0.221.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/configuration/-/configuration-0.221.0.tgz", + "integrity": "sha512-uE9y56Zdi9Gt/RdxYnVOo3YmFZkKJJMA0gqtBe8wh8gdtF5Asqe+Oh/TWiDtFb1s+31jNY4CWgnfIB1KOITfFA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@babel/core": "^7.29.6", - "@babel/plugin-proposal-decorators": "^7.22.7", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", - "@babel/plugin-transform-runtime": "^7.23.2", - "@babel/preset-env": "^7.23.2", - "@babel/preset-typescript": "^7.22.5", - "@babel/runtime": "^7.22.6", - "@nx/devkit": "23.3.0", - "@nx/workspace": "23.3.0", - "@zkochan/js-yaml": "0.0.7", - "babel-plugin-const-enum": "^1.0.1", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-typescript-metadata": "^0.3.1", - "chalk": "^4.1.0", - "columnify": "^1.6.0", - "detect-port": "^2.1.0", - "ignore": "^7.0.5", - "js-tokens": "^4.0.0", - "jsonc-parser": "^3.2.0", - "npm-run-path": "^4.0.1", - "picocolors": "^1.1.0", - "picomatch": "4.0.4", - "semver": "^7.6.3", - "source-map-support": "0.5.19", - "tinyglobby": "^0.2.12", - "tslib": "^2.3.0" + "@opentelemetry/core": "2.10.0", + "yaml": "^2.8.3" }, - "peerDependencies": { - "@swc/cli": ">=0.6.0 <0.9.0", - "verdaccio": "^6.0.5" + "engines": { + "node": "^18.19.0 || >=20.6.0" }, - "peerDependenciesMeta": { - "@swc/cli": { - "optional": true - }, - "verdaccio": { - "optional": true - } + "peerDependencies": { + "@opentelemetry/api": "^1.9.0" } }, - "node_modules/@nx/node": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/node/-/node-23.3.0.tgz", - "integrity": "sha512-T4taAV1wojWvku9uKfEMJ2EvoJJmfXBwGF8Xt0e7MfGst/imKOfsvvMC1m6isNnKa3x5uFdNjfDznPsgYbO/Sg==", + "node_modules/@opentelemetry/configuration/node_modules/@opentelemetry/core": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.10.0.tgz", + "integrity": "sha512-/wNZ8twnEQQA4HoHu22+vcsdru6pWPWxW+7w+FlxT6Id7PE/WIbZmVKkte+PF72e0F2dnImFeHD2syyE1Mw6MQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@nx/devkit": "23.3.0", - "@nx/docker": "23.3.0", - "@nx/eslint": "23.3.0", - "@nx/jest": "23.3.0", - "@nx/js": "23.3.0", - "kill-port": "^1.6.1", - "semver": "^7.6.3", - "tcp-port-used": "^1.0.2", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "express": ">=4.0.0 <6.0.0", - "fastify": ">=4.0.0 <6.0.0", - "koa": ">=2.0.0 <4.0.0" - }, - "peerDependenciesMeta": { - "express": { - "optional": true - }, - "fastify": { - "optional": true - }, - "koa": { - "optional": true - } - } - }, - "node_modules/@nx/nx-darwin-arm64": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-23.3.0.tgz", - "integrity": "sha512-g06RId2Tn99ICwDFisZfDZ2vpM2bXvoCZeNtTWgwLm5mpJ4A7+akI7iXCe50CbzgE4waVRQCOAYpD1zPsKoUVQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@nx/nx-darwin-x64": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-23.3.0.tgz", - "integrity": "sha512-6t9P5ZQ3LPuCf+HBDMTGtpKHjVvINL9/blpY4PucKjdC+vnNSL7uTZwng1ePenlNF0WFtLHqxUx/H1XgohRq0w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@nx/nx-freebsd-x64": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-23.3.0.tgz", - "integrity": "sha512-B8Xuh36ZdMJ2SxpFfUITUvCZQTKoGOFHpSactxCx3ymFBUc24Z0B/hQRIYPv43icugcnp71dIwu6IvI66/aqtQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-23.3.0.tgz", - "integrity": "sha512-piMlCEI0tbHt1+QSgL8J1szlqBSGKV27nax8uvhTxleR2Evl3Kxa80BDIEObrUU3lz+AS4oKrcUHUeyJGPdCsQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-23.3.0.tgz", - "integrity": "sha512-SljVcZYwD4qpwseAUsEQmrXxE0vcPdDMEtvKlpkTProofAMeQFNEh4imw458TylOq7YeFVnNQdZcBnTO+1FeIw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@nx/nx-linux-arm64-musl": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-23.3.0.tgz", - "integrity": "sha512-UwzWPtcWxkAE8IOZl4M1eiqsa1yci+zlZ7Vv5ogozhm9jD9EHZVsgeWLrftW22OtU2u+ude/fzBeacuqUDOMtg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@nx/nx-linux-x64-gnu": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-23.3.0.tgz", - "integrity": "sha512-PJerI1Ag/wkPh8XMBKO4Cx6Ao01QJsSk/ycFNmM7vzW19Db3OvsTSKqiql/z96zINI69MqLDZH2iwHMZXbJupQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@nx/nx-linux-x64-musl": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-23.3.0.tgz", - "integrity": "sha512-CGete35FhqkdlBZM/Oq6Ddu+yQ7UHMRV/ZYCoKeNU4/YIDIWze8VblF7PGKLU4k5JN4bRY1MmDmryHqVIMXMBA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-23.3.0.tgz", - "integrity": "sha512-T/ChrK9uzt9/29TQzc8FGkRGDJC130ltM77eKI3Z67OjyD4SKHhsiTu5GameH1BU72jcF4QEKFf74PoI9JzbuA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@nx/nx-win32-x64-msvc": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-23.3.0.tgz", - "integrity": "sha512-ermx8Qy8qf0ZIEDiGPqIXxQ0OPEL8VVUOyvAsxDec8aft3pCFjX8LrFhlfnAfM6MBFs5Bnc9Xl9D8TMzFBgo9w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@nx/react": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/react/-/react-23.3.0.tgz", - "integrity": "sha512-+EI0dTva2og7bIiI+tC0EWjf+I9g2ZrFMPQbN82rGuEHa4LyItMI2Zql6dupEwBvXD+4TdOEeC+E6Pby+bsJvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/preset-react": "^7.22.5", - "@nx/devkit": "23.3.0", - "@nx/eslint": "23.3.0", - "@nx/js": "23.3.0", - "@nx/web": "23.3.0", - "@phenomnomnominal/tsquery": "~6.2.0", - "minimatch": "10.2.5", - "semver": "^7.6.3", - "tslib": "^2.3.0" - }, - "optionalDependencies": { - "@nx/vite": "23.3.0" - }, - "peerDependencies": { - "@nx/module-federation": "23.3.0", - "babel-plugin-react-compiler": "^1.0.0", - "express": "^4.21.2", - "http-proxy-middleware": "^3.0.7", - "react": ">=18.0.0 <20.0.0", - "react-dom": ">=18.0.0 <20.0.0" - }, - "peerDependenciesMeta": { - "@nx/module-federation": { - "optional": true - }, - "babel-plugin-react-compiler": { - "optional": true - }, - "express": { - "optional": true - }, - "http-proxy-middleware": { - "optional": true - } - } - }, - "node_modules/@nx/rollup": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/rollup/-/rollup-23.3.0.tgz", - "integrity": "sha512-f1IUA1kHDeiXyc9aI+WJMaze2ueO+eCPSB36k1UtOgaQ5+vP6VeoWY3TJ/iA3/BNrEt70ejG4XqiLSd7+spNwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/devkit": "23.3.0", - "@nx/js": "23.3.0", - "@phenomnomnominal/tsquery": "~6.2.0", - "@rollup/plugin-babel": "^6.0.4", - "@rollup/plugin-commonjs": "^25.0.7", - "@rollup/plugin-image": "^3.0.3", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^15.2.3", - "@rollup/plugin-typescript": "^12.1.0", - "autoprefixer": "^10.4.9", - "concat-with-sourcemaps": "^1.1.0", - "picocolors": "^1.1.0", - "picomatch": "4.0.4", - "postcss": "^8.4.38", - "postcss-modules": "^6.0.1", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "rollup": "^3.0.0 || ^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@nx/vite": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/vite/-/vite-23.3.0.tgz", - "integrity": "sha512-2Ci/InGiT8sRFyVBt+FKXqpDMQikHWZtTIHa6GtcAanQDtgYcN7BkVO4K4kAQU8y/lWUNm+omwEQBsOMB6srvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/devkit": "23.3.0", - "@nx/js": "23.3.0", - "@nx/vitest": "23.3.0", - "@phenomnomnominal/tsquery": "~6.2.0", - "ajv": "^8.0.0", - "picomatch": "4.0.4", - "semver": "^7.6.3", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@nx/vitest": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/vitest/-/vitest-23.3.0.tgz", - "integrity": "sha512-cswEU+CbKR+a4Of6mWdDAHZP3utTM+Qx+PagW8Ed7FlxxAQ2nJq7PCoesvdObIomK90MBpIsqYzG/JXCZbU/vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/devkit": "23.3.0", - "@nx/js": "23.3.0", - "@phenomnomnominal/tsquery": "~6.2.0", - "semver": "^7.6.3", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@nx/eslint": "23.3.0", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "vitest": "^3.0.0 || ^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "@nx/eslint": { - "optional": true - }, - "vite": { - "optional": true - }, - "vitest": { - "optional": true - } - } - }, - "node_modules/@nx/web": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/web/-/web-23.3.0.tgz", - "integrity": "sha512-1c8wiQ8EzgAwEeOMB0TOLrGtWfmGY+YnxZdDgXHUC+cP6Vr/+j4FcM1vc3WnobiZX6VzBjSmy1faHD1P5+dTVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/devkit": "23.3.0", - "@nx/js": "23.3.0", - "detect-port": "^2.1.0", - "http-server": "^14.1.0", - "picocolors": "^1.1.0", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@nx/cypress": "23.3.0", - "@nx/eslint": "23.3.0", - "@nx/jest": "23.3.0", - "@nx/playwright": "23.3.0", - "@nx/vite": "23.3.0", - "@nx/webpack": "23.3.0" - }, - "peerDependenciesMeta": { - "@nx/cypress": { - "optional": true - }, - "@nx/eslint": { - "optional": true - }, - "@nx/jest": { - "optional": true - }, - "@nx/playwright": { - "optional": true - }, - "@nx/vite": { - "optional": true - }, - "@nx/webpack": { - "optional": true - } - } - }, - "node_modules/@nx/workspace": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-23.3.0.tgz", - "integrity": "sha512-tAGzqqjk+qtCeJTp+bBEANR9aGkmzo4WxWUBQCZHE4A7quWlCDRkpcAg8OG/cDMX8Kwa6/yw+NSYeH1JuE0eCg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nx/devkit": "23.3.0", - "@zkochan/js-yaml": "0.0.7", - "chalk": "^4.1.0", - "nx": "23.3.0", - "picomatch": "4.0.4", - "semver": "^7.6.3", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" - } - }, - "node_modules/@opencraw/agent": { - "resolved": "packages/agent", - "link": true - }, - "node_modules/@opencraw/azure-durable": { - "resolved": "packages/azure-durable", - "link": true - }, - "node_modules/@opencraw/azure-host": { - "resolved": "apps/azure-host", - "link": true - }, - "node_modules/@opencraw/captcha-tesseract": { - "resolved": "packages/captcha-tesseract", - "link": true - }, - "node_modules/@opencraw/cli": { - "resolved": "packages/cli", - "link": true - }, - "node_modules/@opencraw/core": { - "resolved": "packages/core", - "link": true - }, - "node_modules/@opencraw/mcp": { - "resolved": "packages/mcp", - "link": true - }, - "node_modules/@opencraw/office-reader": { - "resolved": "packages/office-reader", - "link": true - }, - "node_modules/@opencraw/ocr-tesseract": { - "resolved": "packages/ocr-tesseract", - "link": true - }, - "node_modules/@opencraw/probe": { - "resolved": "packages/probe", - "link": true - }, - "node_modules/@opencraw/studio": { - "resolved": "packages/studio", - "link": true - }, - "node_modules/@opencraw/studio-desktop": { - "resolved": "apps/studio-desktop", - "link": true - }, - "node_modules/@opencraw/studio-ui": { - "resolved": "apps/studio-ui", - "link": true - }, - "node_modules/@opencraw/vscode": { - "resolved": "apps/vscode-extension", - "link": true - }, - "node_modules/@opentelemetry/api": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", - "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/api-logs": { - "version": "0.220.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.220.0.tgz", - "integrity": "sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/api": "^1.3.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/configuration": { - "version": "0.221.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/configuration/-/configuration-0.221.0.tgz", - "integrity": "sha512-uE9y56Zdi9Gt/RdxYnVOo3YmFZkKJJMA0gqtBe8wh8gdtF5Asqe+Oh/TWiDtFb1s+31jNY4CWgnfIB1KOITfFA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@opentelemetry/core": "2.10.0", - "yaml": "^2.8.3" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.9.0" - } - }, - "node_modules/@opentelemetry/configuration/node_modules/@opentelemetry/core": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.10.0.tgz", - "integrity": "sha512-/wNZ8twnEQQA4HoHu22+vcsdru6pWPWxW+7w+FlxT6Id7PE/WIbZmVKkte+PF72e0F2dnImFeHD2syyE1Mw6MQ==", - "dev": true, - "license": "Apache-2.0", + "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" }, @@ -12168,40 +11071,6 @@ "node": ">=14.0.0" } }, - "node_modules/@oxc-resolver/binding-wasm32-wasi/node_modules/@emnapi/core": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.2.tgz", - "integrity": "sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0", - "@emnapi/wasi-threads": "1.2.2" - } - }, - "node_modules/@oxc-resolver/binding-wasm32-wasi/node_modules/@emnapi/runtime": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.2.tgz", - "integrity": "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@oxc-resolver/binding-wasm32-wasi/node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@oxc-resolver/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.4.tgz", @@ -12272,293 +11141,6 @@ "node": ">=20" } }, - "node_modules/@parcel/watcher": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", - "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^2.0.3", - "is-glob": "^4.0.3", - "node-addon-api": "^7.0.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.6.0", - "@parcel/watcher-darwin-arm64": "2.6.0", - "@parcel/watcher-darwin-x64": "2.6.0", - "@parcel/watcher-freebsd-x64": "2.6.0", - "@parcel/watcher-linux-arm-glibc": "2.6.0", - "@parcel/watcher-linux-arm-musl": "2.6.0", - "@parcel/watcher-linux-arm64-glibc": "2.6.0", - "@parcel/watcher-linux-arm64-musl": "2.6.0", - "@parcel/watcher-linux-x64-glibc": "2.6.0", - "@parcel/watcher-linux-x64-musl": "2.6.0", - "@parcel/watcher-win32-arm64": "2.6.0", - "@parcel/watcher-win32-x64": "2.6.0" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", - "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", - "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", - "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", - "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", - "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", - "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", - "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", - "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", - "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", - "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", - "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", - "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/@peculiar/asn1-schema": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.10.0.tgz", @@ -12614,20 +11196,6 @@ "node": ">=14.18.0" } }, - "node_modules/@phenomnomnominal/tsquery": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-6.2.0.tgz", - "integrity": "sha512-Vo9nkhfZxDB/sBiqIY3pjDC4mOSyure+AFlEW5hcy/tRE82MqCXjRN4InnVNMldinRt0dLYqg4HAU2XPq5e1LA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/esquery": "^1.5.4", - "esquery": "^1.7.0" - }, - "peerDependencies": { - "typescript": ">3.0.0" - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -12980,153 +11548,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@rollup/plugin-babel": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.1.0.tgz", - "integrity": "sha512-dFZNuFD2YRcoomP4oYf+DvQNSUA9ih+A3vUqopQx5EdtPGo3WBnQcI/S8pwpz91UsGfL0HsMSOlaMld8HrbubA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@rollup/pluginutils": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - }, - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "25.0.8", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.8.tgz", - "integrity": "sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "glob": "^8.0.3", - "is-reference": "1.2.1", - "magic-string": "^0.30.3" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.68.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-commonjs/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/@rollup/plugin-commonjs/node_modules/brace-expansion": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", - "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", - "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@rollup/plugin-image": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-image/-/plugin-image-3.0.3.tgz", - "integrity": "sha512-qXWQwsXpvD4trSb8PeFPFajp8JLpRtqqOeNYRUKnEQNHm7e5UP7fuSRcbjQAJ7wDZBbnJvSdY5ujNBQd9B1iFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "mini-svg-data-uri": "^1.4.4" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-json": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", - "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.1.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, "node_modules/@rollup/plugin-node-resolve": { "version": "15.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", @@ -13152,33 +11573,6 @@ } } }, - "node_modules/@rollup/plugin-typescript": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.3.0.tgz", - "integrity": "sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.1.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0||^3.0.0||^4.0.0", - "tslib": "*", - "typescript": ">=3.7.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "tslib": { - "optional": true - } - } - }, "node_modules/@rollup/pluginutils": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz", @@ -13203,9 +11597,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.5.tgz", - "integrity": "sha512-J25QJU+B78T4FhhBsNpLJyVWOi31mwtpcMwywHmOKH65Q9IWGA81gPj+dnwlhU8wktVriYE+tFAaQgrnJRzAZg==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.64.8.tgz", + "integrity": "sha512-BnnMHi3QjYFCXHXRbBusdUCBqjsTKjAyeCURsWeIatIQOMClg5j/s0j12jnVZgxqd6QghdPW/tvCx3kx2Sk78w==", "cpu": [ "arm" ], @@ -13217,9 +11611,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.5.tgz", - "integrity": "sha512-LDopB3zuZM5Ux9TT2luNEBJW/tYbGU2g1d+VpKk6I+gSKDb+/7sYE6M225gRQt4RbMX6MSwMsVR/phdjVUgRLg==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.64.8.tgz", + "integrity": "sha512-AQb3awz9qixSgcWabdvGMXIzT0OiwEvTy13Q1kT49spQWCQZP5VgUfGAVr4Ud2Lw/Je1X9OVyCWuCk/NfCioOw==", "cpu": [ "arm64" ], @@ -13231,9 +11625,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.5.tgz", - "integrity": "sha512-wlJEERGfeuHeBavCL2qVnNacOK43NDoZM4sjkeRPymd04OAE9T1zBqDJgmZ+CIsPTYKwdzpUC8vmOw84dwY4Tg==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.64.8.tgz", + "integrity": "sha512-sTcQVv/Ce385AN7sc0D+iluzlgJi/1849h2Thrn0MFgYVJPAv5qEM6OIXtulim/FQq1UARjyotvQld6wWnnD5A==", "cpu": [ "arm64" ], @@ -13245,9 +11639,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.5.tgz", - "integrity": "sha512-4nJJGg5jbo2wwPP4JP+LfEBA3bvP8rU9CLuhp7jWvq9sxEyhjQFTFdrqi+/dHEin/pd8jpT0vcehIpnZtmEdcQ==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.64.8.tgz", + "integrity": "sha512-yI98+GscKUk3FnQWh05aEDNxkKZepvpiwyZuDglSJjY2nIvM4wdfzOLYvehi7VHVvGrVG6QmfG3G/TNjq4S9Ng==", "cpu": [ "x64" ], @@ -13259,9 +11653,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.5.tgz", - "integrity": "sha512-DrZbyCDF1hneuO6jRbvZ2D7+PIBM6yIwYnJpg2vIk58T+wuFpiaGZrfUr59lDWw45bg+IrpTGLPiNi/Fk4w3Cg==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.64.8.tgz", + "integrity": "sha512-w+qZWfP/VUs2JJSP21pYXcF/aIcOpMfAKHb3t1Zs5mYgFA6SlU8YrsOLJlv1NMczLgNO596nfcgG8lJfTorYJQ==", "cpu": [ "arm64" ], @@ -13273,9 +11667,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.5.tgz", - "integrity": "sha512-gqfUVMJMB3mehqywxp6hTBFfgtMQykZY19+cfiaYP0toIJLb/1DZRJHVkQQGP13W4TAwfZDWeg1qBcheTRioXQ==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.64.8.tgz", + "integrity": "sha512-xSJuvHlcJCVys2av7TCotzdU7Srfp8IEZRxVGfm8JBmO8BGigiiFYYUkHzBlddF3K3XqomEsI2BkV2leDDEUXA==", "cpu": [ "x64" ], @@ -13287,13 +11681,16 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.5.tgz", - "integrity": "sha512-CFmhpvAwzSaWMlN3VN7UtmoTihlZNzoP0juQib5TQRnYUyDV8dXeWOp29sobWAT6gXl/hQgAClLlEiYozQG3OQ==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.64.8.tgz", + "integrity": "sha512-J+Rog4vrVeEN0ZGwbUqUiMFQ/6TmiuhBZ0NzSbDh64gb1weFZsKyKZrCj5jZ0NENoYmaq4CFMSvEU97IXILheA==", "cpu": [ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -13301,13 +11698,16 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.5.tgz", - "integrity": "sha512-Uc9H8eXCOayV6JLTH5bXKMId6qbhNHa818/BgYjm4jrlq3vZquC9cqyvHBw17xy5Mnj5f+I3gFK5JcEf3hSqrw==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.64.8.tgz", + "integrity": "sha512-sBav+JhTKyOww+UTCSLumc0rP8IKqiWaj9eqkSf71EkbYI5lmjDVrn/gWEkkx8EZ8SQltk57O1bY88BvCQlbbA==", "cpu": [ "arm" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -13315,13 +11715,16 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.5.tgz", - "integrity": "sha512-VcPr/szv/1BFw112Kt//fxulXt/JPqzzidU84iW68L2DdjnOO8QFUv2zTSYBEPHD6movBD4z+bbr5y60GYM7Jw==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.64.8.tgz", + "integrity": "sha512-KBNMmyw4lPdL+2KtvE5vqODZRJgv7Y0Qg/v8uBL+i2KYLtAnfrvW6ukxZPO2lt6mfCOmvKJ1IcKAp3Smi3JpBQ==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -13329,13 +11732,16 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.5.tgz", - "integrity": "sha512-BnxtJ5/91BrIHYIkGrmjz/lbMhqEHt1dPFqIxIFR+jPn0xVc/oUSCtIT089zfp5ufwGDlYz2UC+Fe1SRBpYFbQ==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.64.8.tgz", + "integrity": "sha512-9nHlIQ4tPRGXtagihrZ18goMlEqUgMGABif4tR5xekhoSlDbJ7A/bX5M56ahnEoar2PQ4ATV9XAO/yb8QmFjJg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -13343,13 +11749,16 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.5.tgz", - "integrity": "sha512-LrYcHZwF+fAMNKHYTOQ5osWM4AZF7YF6D+XtsjDyEvljtt11twc+zHVXBLNEjxVSUnKYsOhvVz4Z213eW02COQ==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.64.8.tgz", + "integrity": "sha512-l49DA3ag8LvxOmNK/dWoHGwR76wDhm7PPuvEYbYsOvawJesFHx3OAB2l7q/9NQV/YAVxJcwsRKuuYXaTNaqUlQ==", "cpu": [ "loong64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -13357,13 +11766,16 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.5.tgz", - "integrity": "sha512-nj7QKQePAAUpCpJHtg0pR0W/b92A9NO17JS3BAQmHDn/yhmkir2p8llrKY9TOhleKIaSzy1JhxS3T9FVld6coA==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.64.8.tgz", + "integrity": "sha512-zVfhNtrhP6EChtPZiN4nDe7i8/w5ZcZD0FcQK6/2iMh6HONK/h3TIp3esiTwNtM5NJe2oK5Ne4XRQ2sS5PIygw==", "cpu": [ "loong64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -13371,13 +11783,16 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.5.tgz", - "integrity": "sha512-5ylkX6dWMeBKge9nTU+Rxfb+ZfaCIJ9lRqIFaK0eAMcWp7OJbYnLveLgXmm0VrvuLKb8qIK+mHyH0qu88RM+iA==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.64.8.tgz", + "integrity": "sha512-0hIKbTlXTW7+lFBT7cvioWtkqyk66mGsF39Cq7h6oQ1RcZKie+6IV3ibFJwkTpx8/vjJUu9x3YUOxLv1k2okYA==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -13385,13 +11800,16 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.5.tgz", - "integrity": "sha512-oHK4ZHYFDKjZviK34I+NwgfbGxgI7ztrNxj2hPTSSNFgeq1a/lEd7dHV2fdGAuTH4Iym3RHJg+vAbWaWG4B7Zg==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.64.8.tgz", + "integrity": "sha512-zFi1Y+oFvUJVYEK3L8p9cnW7c0D4w6SgmYmtI4HXAPTrWWR2oFWVPiYl4z6SIUGvmd6VLkAwu3Xp9wEBAcyAqw==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -13399,13 +11817,16 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.5.tgz", - "integrity": "sha512-UcetmHZ6XOXuUByiKZyQmb55ZPr0LABr3Ec/HB9wKZn6CEAFWZkE+hsJErJ9hbPBC7nI0dKuELx7CoV6IM7TMg==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.64.8.tgz", + "integrity": "sha512-D+F/Rd3bgE025QWOtDTo7XMWJtI+14kci6Ycm+rtJKqii3sEOtU73x14jCzD9ERa15ULAjHjEg87azzm9E3zwQ==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -13413,13 +11834,16 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.5.tgz", - "integrity": "sha512-C5CmDPQBtvjVo8cgQsBs+w6WB0JLkiixhgi6hVLV11hERWdn/p0XcPU2OUcZzac9BPOFq7SbaHFa8r3SWEysCQ==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.64.8.tgz", + "integrity": "sha512-AxJlslhrRboB4d0+aersly2stJ6T3LjcMfoWGLZDQ0LQOgInphCcnnf4y5CHJtJgG+KVIMcaewaO3cKJzRF/jg==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -13427,13 +11851,16 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.5.tgz", - "integrity": "sha512-lHVQHJFKsuuxLMi3MQO9XVL8Tje3JR82CzB+QDKC5NWBcsIWuwsn9uIM5e3lBhI+fF1/s63qnyYqsg65+8rV/w==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.64.8.tgz", + "integrity": "sha512-my+8+NBmsKYrWK/SaE0Xt88hFvz56QY0yjX9eb08wf5IBAZeOBk6jAAAJ9dccw4Y84UHY/d7IwxCH54T2zkcsg==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -13441,13 +11868,16 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.5.tgz", - "integrity": "sha512-3W9bTFcQNJn71cSJVM9RKIiZOy8DO/XLDii8Uv/Pm6WKqDRj7JV3ZfuXIEfyuy5LXpIzAbB/1M4Ukp9GKNa7nA==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.64.8.tgz", + "integrity": "sha512-Bwp7WxFHzzLMuP9u4xuBe1grnUWvue509m/K/x+54MMTvVnl+w2DCRcDr+19GNuCXds0TGjiUA3vEbvGxXunWg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -13455,13 +11885,16 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.5.tgz", - "integrity": "sha512-VDC7rRJlee/scpki96GZ27Omf6yU87s1YXwVTpjE5841faVlDYYT565rgfmoR1U0sqL7z5ivQSDjcsF6VRXyBA==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.64.8.tgz", + "integrity": "sha512-TJyG67S76khvAB9yR2rpVyk4ih5ZXXYbQJ6bcALMWh7B6skZNXHpjoW31edQxle8lffxMsRxEA1s7GymRGE9HA==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -13469,9 +11902,9 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.5.tgz", - "integrity": "sha512-z86Ok2p4pTdv5xqCKZsTooO7yBEiaJR/HzU3Wx8RmWsPoLppnMKROhJusQob8B3IE1ghC343kUW9rC2r+Wf3ig==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.64.8.tgz", + "integrity": "sha512-3++uCBoEi20nAttqubxh17baikJIg1ZRpVe/e8RtcFIcj1XFNLczGu+ovyfP2RRmVtUHL01SokWRPLS/3d6BNQ==", "cpu": [ "x64" ], @@ -13483,9 +11916,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.5.tgz", - "integrity": "sha512-IzQmj+xXwQFGhMAMKMQVXkMwMZN3TqkJgAE0nSsqvVwWWciP4AIPMmWRqOQ2GfX7TUDZr+xqGFcBS36CRPGw0g==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.64.8.tgz", + "integrity": "sha512-PCzS1Wd+SlZUBcdxZ8OZm68i0nhWMmIbIyVrykRJ8vbcK7aV/dyMEOTD9ZanbPryCjA8tQyA0YyvD3c3s/5zsQ==", "cpu": [ "arm64" ], @@ -13497,9 +11930,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.5.tgz", - "integrity": "sha512-F6qpTaPc9bwBH85kjy0/BLmLSW1uv7AoOXCoRIkg2arlgCYlWYcAbiMkvZuAcaWk9TpCRG//okznLAqLGshkMw==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.64.8.tgz", + "integrity": "sha512-7QasVWH7Lzd9svwZCW2NYGkwGnduYpdcVxtpiORvM5ZjjlCQG8MOEPnsioa3glzy6tuXp8TSQ7iMJH6tERcxEQ==", "cpu": [ "arm64" ], @@ -13511,9 +11944,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.5.tgz", - "integrity": "sha512-igoDsTFhhwECBeGbUuLeIk7t8Y1apa+cs6mDWpx2EZ0ch7oEQgzHbFUXN9euoHekCAQzXdXApAGkV6jznS7tWw==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.64.8.tgz", + "integrity": "sha512-YGDgHfzvWMgp1kHAkWCZ6EqNv+0ULd7kG+6Q6BNElmCvGJFe6t46eSoWObxtt18GaluKrmaVNgk8IpOoUWQA2Q==", "cpu": [ "ia32" ], @@ -13525,9 +11958,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.5.tgz", - "integrity": "sha512-U3teMeMbXFmaM5D+OTJpsOXd+wV/qftIeYF9kBKL4v73641qyJmoXFtA28DQLsnmlyayEsTe72xpLHrArq6vHw==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.64.8.tgz", + "integrity": "sha512-RFZJ8vTWnfPhWzn3yOsJpXr8DVwwrslhbXpr0sLhd+bzzjwBguYVuTg55tAHeO9KDKEPlp6mQ8g15/vGT2kmlQ==", "cpu": [ "x64" ], @@ -13539,9 +11972,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.5.tgz", - "integrity": "sha512-ypfC34F3RKXvCXBglGqGMsUSMKlgwd1HX9AOAlx9RoZZ6GaI42YHVeKpzg3JG+wpBUJYTG+NNZhqbDWL8tBZkw==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.64.8.tgz", + "integrity": "sha512-X7fMFfqN0w465q/DRFlSQGcjUwjk5xB5CFjF6W+dhIfyJrfpUhcKzdDWjPQae2iDL6guBEssV1S1g0Kb0Ku/bA==", "cpu": [ "x64" ], @@ -13704,7 +12137,6 @@ "integrity": "sha512-VQ0hJ5jX31TVv/fhZx4xJRzd8pwn6VvzYd2tGOHHr2TfXGCBixZoqdPDXTiEoJLCTS2MmvBf6zyQZZ0M8aGQCQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@swc-node/core": "^1.14.1", "@swc-node/sourcemap-support": "^0.6.1", @@ -13751,7 +12183,6 @@ "integrity": "sha512-L+ACCGHCiS0VqHVep/INLVnvRvJ2XooQFLZq4L8snhxw1jsqz+XRcY313UsyPVturPPE1shW3jic7rt3qEQTSQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@swc/counter": "^0.1.3", "@xhmikosr/bin-wrapper": "^14.0.0", @@ -13781,6 +12212,23 @@ } } }, + "node_modules/@swc/cli/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/@swc/cli/node_modules/brace-expansion": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", + "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/@swc/cli/node_modules/minimatch": { "version": "9.0.9", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", @@ -13814,7 +12262,6 @@ "dev": true, "hasInstallScript": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@swc/counter": "^0.1.3", "@swc/types": "^0.1.25" @@ -14057,7 +12504,6 @@ "integrity": "sha512-V6Mnml8v09QALx6K0elJ7o9K/MkVDtW3t6L+7Ou/JcWtb3xwId2AH4FeOceySd2JaO87IMw4+6vSZxLm34LPbw==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@swc/counter": "^0.1.3" } @@ -14374,16 +12820,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@tybys/wasm-util": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", - "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -14397,7 +12833,6 @@ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -14460,6 +12895,16 @@ "@types/responselike": "^1.0.0" } }, + "node_modules/@types/concat-stream": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.3.tgz", + "integrity": "sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/css-tree": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/@types/css-tree/-/css-tree-2.3.11.tgz", @@ -14477,16 +12922,6 @@ "@types/ms": "*" } }, - "node_modules/@types/esquery": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/esquery/-/esquery-1.5.4.tgz", - "integrity": "sha512-yYO4Q8H+KJHKW1rEeSzHxcZi90durqYgWVfnh5K6ZADVBjBv2e1NEveYX5yT2bffgN7RqzH3k9930m+i2yBoMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, "node_modules/@types/esrecurse": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", @@ -14501,6 +12936,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/@types/fs-extra": { "version": "9.0.13", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", @@ -14528,6 +12973,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/is-empty": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.3.tgz", + "integrity": "sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -14635,7 +13087,6 @@ "integrity": "sha512-SGrw/h3KPFshy3OE6ZL53LMBG5vGQQ8/gIpiqz/kRZhPJ7HgwCEs8LBuNtWLa8dvGZVpSF7+Bf+c11HUrCb/yg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~7.18.0" } @@ -14684,7 +13135,6 @@ "integrity": "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -14695,7 +13145,6 @@ "integrity": "sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.3.0" } @@ -14734,6 +13183,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/supports-color": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.3.tgz", + "integrity": "sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/tough-cookie": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", @@ -14787,18 +13243,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.70.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.70.1.tgz", - "integrity": "sha512-nDNrUQ/4ruSNYbu749TRY7cfrzPtoLHEXSNBI8aaNY32LlZCajixqRf3FqcKC4p5Cam4VOHYx/t+i5+nKXvrqA==", + "version": "8.71.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.71.2.tgz", + "integrity": "sha512-K72/pvT7qpm8q3k8G5u93NCSN1RcLxX5h7Gw0bQpbMXviBHeY6Nx1WEwmk9wP+eKTSQ8ecxvcgt/ZX/rB938xQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.70.1", - "@typescript-eslint/type-utils": "8.70.1", - "@typescript-eslint/utils": "8.70.1", - "@typescript-eslint/visitor-keys": "8.70.1", + "@typescript-eslint/scope-manager": "8.71.2", + "@typescript-eslint/type-utils": "8.71.2", + "@typescript-eslint/utils": "8.71.2", + "@typescript-eslint/visitor-keys": "8.71.2", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -14811,23 +13266,32 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.70.1", + "@typescript-eslint/parser": "^8.71.2", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.12.tgz", + "integrity": "sha512-/8UvqAPU9DGTI9k4mxtf49U37Isfwr8Uts96+SBHIkFxPJnHS0Ew4f00sM4Scd8V8EjM0jUNtVDdv1kPdt35lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/@typescript-eslint/parser": { - "version": "8.70.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.70.1.tgz", - "integrity": "sha512-nO974WLllwhSFWQXnMLj6nDGa8f0khKEz1JzpPJ1u7Vm/4X1X6ZHajpoknU4bb41vJyMB0HHVyS2GqdhWfIXZw==", + "version": "8.71.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.71.2.tgz", + "integrity": "sha512-aTtmZjp/x3gsGHkDs04/1I8kNogBJkpQaeGaN0PfiG43NzDEmW2n+OP5im9wfsvyX0yP1UZWBrAGtDBfH9jEVw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.70.1", - "@typescript-eslint/types": "8.70.1", - "@typescript-eslint/typescript-estree": "8.70.1", - "@typescript-eslint/visitor-keys": "8.70.1", + "@typescript-eslint/scope-manager": "8.71.2", + "@typescript-eslint/types": "8.71.2", + "@typescript-eslint/typescript-estree": "8.71.2", + "@typescript-eslint/visitor-keys": "8.71.2", "debug": "^4.4.3" }, "engines": { @@ -14843,14 +13307,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.70.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.70.1.tgz", - "integrity": "sha512-62xOgboPfwc3/IgPSX/W6oQR3ZbF04194FPGUGH8HL8iLFHbt/456/8Ph1wLNUgVF+s94FlHoipBsz+v7+LMnA==", + "version": "8.71.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.71.2.tgz", + "integrity": "sha512-Pd68GsLVh5ZXlcEccFPdhSOvtHZ/2WU0XsA8zmXOS3F158lVlcTLhfQ6qvtL1RzbMie0Kp8xtbVwAg4nejKPHw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.70.1", - "@typescript-eslint/types": "^8.70.1", + "@typescript-eslint/tsconfig-utils": "^8.71.2", + "@typescript-eslint/types": "^8.71.2", "debug": "^4.4.3" }, "engines": { @@ -14865,14 +13329,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.70.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.70.1.tgz", - "integrity": "sha512-Pa0EeSeAusQc1WbjQMac+YfenewYTBu0KjgYvkUKwhXaHUKbFog23Dm/rp0DX/6tyYOQ3Xl1a+3EcFNZynGHCw==", + "version": "8.71.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.71.2.tgz", + "integrity": "sha512-YF4wgg5iUX5Obywoac27B56FhozMNFhdJSbh11H5GBAwmBtfyRhmgTQqW9tRNNmHDvsZ2CX6UGzoz+YfYn2Leg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.70.1", - "@typescript-eslint/visitor-keys": "8.70.1" + "@typescript-eslint/types": "8.71.2", + "@typescript-eslint/visitor-keys": "8.71.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -14883,9 +13347,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.70.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.70.1.tgz", - "integrity": "sha512-jumze1fPI+sDOaM2TWGQdn39PDxTr7TZGeuyLkAbNyx2vtMT3uRnVKChN0hfht5V2TugphJzF6bYXvBcE09qqg==", + "version": "8.71.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.71.2.tgz", + "integrity": "sha512-jz49TAWokm/7yWD9/o837nYax9DyALxIPOImdImvVzo6canBCZYzin8zJyqNR5k1j9K1DE0bVvr0XYB+99uAdg==", "dev": true, "license": "MIT", "engines": { @@ -14900,15 +13364,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.70.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.70.1.tgz", - "integrity": "sha512-7zKTnyvaVWqzLZHPFQtX1hVHqgkMC+WebPWakNCSyrQVbIP1AM0L0TlBZtACldIRb6PptI8Odk+jyZ5kP3B1VA==", + "version": "8.71.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.71.2.tgz", + "integrity": "sha512-cC8UaalCViJkb3rH/xLIvidEwoFRtMZMUqDjjJMGEKaTFwYRHYBcoczlEGHuvkHEO8svRDrgZ0yQgOArFmwang==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.70.1", - "@typescript-eslint/typescript-estree": "8.70.1", - "@typescript-eslint/utils": "8.70.1", + "@typescript-eslint/types": "8.71.2", + "@typescript-eslint/typescript-estree": "8.71.2", + "@typescript-eslint/utils": "8.71.2", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -14925,9 +13389,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.70.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.70.1.tgz", - "integrity": "sha512-Dm1ypdhhrGCTyyehxElhgJ6kgk8MVCv5qXdoOVqPr1uqk42jX8KjrZqhROvdShczA8qrDoYiOWn1ykWlx2k81Q==", + "version": "8.71.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.71.2.tgz", + "integrity": "sha512-y5Ukl3oVp7e/VGxqIoEXoeb/Roj71PAJ4WG/N/RGj+eeDvKRLM15kGr9MijLbN0i03S52zxu31Z98E5gWChJKw==", "dev": true, "license": "MIT", "engines": { @@ -14939,16 +13403,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.70.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.70.1.tgz", - "integrity": "sha512-TU8PwyGN0PQJUcE96mw8eCQ44SmxGdQlJmlWakHaHQ15eIuuvye5yNtmh/i6oS88jzXVQB71xdNkbkB/fMwL0g==", + "version": "8.71.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.71.2.tgz", + "integrity": "sha512-DgNOEsl4pdYzwSL+N/Cl33tX1Hlw3FvId73LnKXfq7jnrF2viOEn7X+P7RBkkSWCVm92gnWd28GIC5vJuLREeA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.70.1", - "@typescript-eslint/tsconfig-utils": "8.70.1", - "@typescript-eslint/types": "8.70.1", - "@typescript-eslint/visitor-keys": "8.70.1", + "@typescript-eslint/project-service": "8.71.2", + "@typescript-eslint/tsconfig-utils": "8.71.2", + "@typescript-eslint/types": "8.71.2", + "@typescript-eslint/visitor-keys": "8.71.2", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -14967,16 +13431,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.70.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.70.1.tgz", - "integrity": "sha512-Esgul8MsnKnRLdYU2Eb2cRV9bS5HJYtKj1ByJnOzzG2M58DGdSUQ1jUuILxipqcpB2h9WLrbD5GijIWUjX/Tqw==", + "version": "8.71.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.71.2.tgz", + "integrity": "sha512-RyKa1G1M9rKHDhrk+HJtiF1MvLD5Ux2JW3TSkzw+02pRALdpJb+QzG1Y5em+LvCgzGwgg8H7mBRFKljNz7ImPw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.70.1", - "@typescript-eslint/types": "8.70.1", - "@typescript-eslint/typescript-estree": "8.70.1" + "@typescript-eslint/scope-manager": "8.71.2", + "@typescript-eslint/types": "8.71.2", + "@typescript-eslint/typescript-estree": "8.71.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -14991,13 +13455,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.70.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.70.1.tgz", - "integrity": "sha512-Vwj9lUIW5Xq3wQ9w6gv3R86g1hMK8f2zNOdGTAgeXUMMXFK78G9ruCjjqutHMNJc0+CH7LYRnHeUB9IT8wFmcw==", + "version": "8.71.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.71.2.tgz", + "integrity": "sha512-zozlN0UA32bSG2zkKAgQyRYSbEISVoyU6vvkKYo2aSny74D8Jh4e+POkJ6Lk0dlezZi5x7TtD+88Xb06IB8nhg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.70.1", + "@typescript-eslint/types": "8.71.2", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -15787,8 +14251,8 @@ "license": "MIT", "optional": true, "dependencies": { - "tslib": "^2.4.0", - "@emnapi/wasi-threads": "1.2.1" + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" } }, "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@emnapi/runtime": { @@ -16194,6 +14658,7 @@ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" @@ -16204,21 +14669,24 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.13.2", @@ -16226,6 +14694,7 @@ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", @@ -16237,7 +14706,8 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.14.1", @@ -16245,6 +14715,7 @@ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -16258,6 +14729,7 @@ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -16268,6 +14740,7 @@ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@xtuc/long": "4.2.2" } @@ -16277,7 +14750,8 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.14.1", @@ -16285,6 +14759,7 @@ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -16302,6 +14777,7 @@ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", @@ -16316,6 +14792,7 @@ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -16329,6 +14806,7 @@ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", @@ -16344,6 +14822,7 @@ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" @@ -16540,21 +15019,16 @@ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true, - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true, - "license": "BSD-2-Clause" + "license": "Apache-2.0", + "peer": true }, "node_modules/@zag-js/accordion": { "version": "1.43.3", @@ -17518,20 +15992,6 @@ "integrity": "sha512-9P9fvFFxuiDcLqX0BYgGNkf0/a/id32nHvQpwgv/Xv3b9n5yeyw2U8nKefpWr+1VfFsrpf2XMXiA2CDSWZgt2g==", "license": "MIT" }, - "node_modules/@zkochan/js-yaml": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", - "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/abbrev": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", @@ -17561,7 +16021,6 @@ "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -17602,16 +16061,6 @@ "node": ">=0.4.0" } }, - "node_modules/address": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/address/-/address-2.0.3.tgz", - "integrity": "sha512-XNAb/a6TCqou+TufU8/u11HCu9x1gYvOoxLwtlXgIqmkrYQADVv6ljyW2zwiPhHz9R1gItAWpuDrdJMmrOBFEA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16.0.0" - } - }, "node_modules/adm-zip": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.6.1.tgz", @@ -17639,7 +16088,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -17674,6 +16122,7 @@ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -18519,6 +16968,82 @@ "dev": true, "license": "MIT" }, + "node_modules/astro-eslint-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/astro-eslint-parser/-/astro-eslint-parser-1.4.0.tgz", + "integrity": "sha512-+QDcgc7e+au6EZ0YjMmRRjNoQo5bDMlaR45aWDoFsuxQTCM9qmCHRoiKJPELgckJ8Wmr7vcfpa9eCDHBFh6G4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^2.0.0 || ^3.0.0", + "@typescript-eslint/scope-manager": "^7.0.0 || ^8.0.0", + "@typescript-eslint/types": "^7.0.0 || ^8.0.0", + "astrojs-compiler-sync": "^1.0.0", + "debug": "^4.3.4", + "entities": "^7.0.0", + "eslint-scope": "^8.0.1", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.0.0", + "fast-glob": "^3.3.3", + "is-glob": "^4.0.3", + "semver": "^7.3.8" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/astro-eslint-parser/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/astro-eslint-parser/node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/astrojs-compiler-sync": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/astrojs-compiler-sync/-/astrojs-compiler-sync-1.1.1.tgz", + "integrity": "sha512-0mKvB9sDQRIZPsEJadw6OaFbGJ92cJPPR++ICca9XEyiUAZqgVuk25jNmzHPT0KF80rI94trSZrUR5iHFXGGOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "synckit": "^0.11.0" + }, + "engines": { + "node": "^18.18.0 || >=20.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "@astrojs/compiler": ">=0.27.0" + } + }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -18562,43 +17087,6 @@ "node": ">= 4.0.0" } }, - "node_modules/autoprefixer": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.6.1.tgz", - "integrity": "sha512-cL1Qz6ADZhcEbny/8HPfe99J6HhNoYtpX2LFLIbhgGE7Q1hlQVkYFdetDN7Id3KiQxhDrHwzlHr/YQCnZ8+xSA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.9", - "caniuse-lite": "^1.0.30001810", - "fraction.js": "^5.3.4", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -18633,9 +17121,9 @@ "license": "MIT" }, "node_modules/axe-core": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.13.0.tgz", - "integrity": "sha512-UzGt8zg7Ny8djbYMhxl2zuEevVa7r2gJjYY5Lwr1xM7+XU2nd6CkIWFTVcCIbAP63vSz71NaVyyuSk9lHKcy0A==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.14.0.tgz", + "integrity": "sha512-9WTZxEjsZ7b13TH8JPmbV2z8CHbl80/2hm3XPEG4JgNdQLK81IBRXmSxHfMAOkSqQeRxT/0dwNDz2GOm3zzpcQ==", "dev": true, "license": "MPL-2.0", "engines": { @@ -19319,41 +17807,6 @@ "node": ">=8" } }, - "node_modules/babel-plugin-const-enum": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-const-enum/-/babel-plugin-const-enum-1.2.0.tgz", - "integrity": "sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-typescript": "^7.3.3", - "@babel/traverse": "^7.16.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-8.0.0.tgz", - "integrity": "sha512-18wCskrN3DgbuBmp1gr7LBGT8xdz5xhQQqFvFhVxbkl8VBCrMKQ2YtqBWtUal1Zrc1HTuX0011+Brjw78TCFkg==", - "dev": true, - "license": "BSD-3-Clause", - "workspaces": [ - "test/babel-8" - ], - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-instrument": "^6.0.2", - "test-exclude": "^7.0.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/babel-plugin-jest-hoist": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.3.0.tgz", @@ -19432,20 +17885,6 @@ "semver": "bin/semver.js" } }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5", - "core-js-compat": "^3.43.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/babel-plugin-polyfill-regenerator": { "version": "0.6.8", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", @@ -19459,16 +17898,6 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-transform-typescript-metadata": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.3.2.tgz", - "integrity": "sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, "node_modules/babel-preset-current-node-syntax": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", @@ -19513,6 +17942,17 @@ "@babel/core": "^7.11.0 || ^8.0.0-beta.1" } }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/balanced-match": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", @@ -19781,18 +18221,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -19834,6 +18262,19 @@ "node": "20 || >=22" } }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/browserslist": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.1.tgz", @@ -19854,7 +18295,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.11.25", "caniuse-lite": "^1.0.30001810", @@ -20258,12 +18698,38 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/chardet": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.2.0.tgz", - "integrity": "sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==", + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", "dev": true, - "license": "MIT" + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, "node_modules/cheerio": { "version": "1.2.0", @@ -20353,6 +18819,7 @@ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6.0" } @@ -20387,42 +18854,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 12" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -20438,16 +18869,6 @@ "node": ">=12" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, "node_modules/clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -20591,20 +19012,6 @@ "dev": true, "license": "MIT" }, - "node_modules/columnify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -20637,13 +19044,6 @@ "node": ">= 12.0.0" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "license": "MIT" - }, "node_modules/compare-version": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", @@ -20668,23 +19068,22 @@ "dev": true, "license": "MIT" }, - "node_modules/concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, - "license": "ISC", + "engines": [ + "node >= 6.0" + ], + "license": "MIT", "dependencies": { - "source-map": "^0.6.1" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" } }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true, - "license": "MIT" - }, "node_modules/content-disposition": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-2.0.1.tgz", @@ -20821,23 +19220,12 @@ "url": "https://opencollective.com/express" } }, - "node_modules/corser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", - "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/cosmiconfig": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -20906,7 +19294,8 @@ "integrity": "sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==", "dev": true, "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/cross-spawn": { "version": "7.0.6", @@ -21247,19 +19636,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", @@ -21388,23 +19764,6 @@ "license": "MIT", "optional": true }, - "node_modules/detect-port": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-2.1.0.tgz", - "integrity": "sha512-epZuWb/6Q62L+nDHJc/hQAqf8pylsqgk3BpZXVBx1CDnr3nkrVNn73Uu1rXcFzkNcc+hkP3whuOg7JZYaQB65Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "address": "^2.0.1" - }, - "bin": { - "detect": "dist/commonjs/bin/detect-port.js", - "detect-port": "dist/commonjs/bin/detect-port.js" - }, - "engines": { - "node": ">= 16.0.0" - } - }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", @@ -21487,7 +19846,6 @@ "integrity": "sha512-O3zJUFUYHJKgzPqioHxfxzBzlSC1eXCSr79gMSBKBP5AgjjpmrydMsMLotEg9fAJF36vdUncb+4ndRNxoPdlSQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "app-builder-lib": "26.15.3", "builder-util": "26.15.3", @@ -21631,22 +19989,6 @@ "url": "https://dotenvx.com" } }, - "node_modules/dotenv-expand": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-12.0.3.tgz", - "integrity": "sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dotenv": "^16.4.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, "node_modules/dottie": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.7.tgz", @@ -21724,7 +20066,6 @@ "resolved": "https://registry.npmjs.org/durable-functions/-/durable-functions-3.5.0.tgz", "integrity": "sha512-FgdiAEQQURCrzpjKV1Ue41dGDFWsQKDp9FJh00fcRXqbnLbJ98jrn/4y8vxCGTKHitmrXTBxdeV5v/y4xDVxiA==", "license": "MIT", - "peer": true, "dependencies": { "@azure/functions": "^4.14.0", "@opentelemetry/api": "^1.9.0", @@ -21777,19 +20118,6 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "license": "MIT" }, - "node_modules/ejs": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-5.0.1.tgz", - "integrity": "sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.12.18" - } - }, "node_modules/electron": { "version": "44.7.0", "resolved": "https://registry.npmjs.org/electron/-/electron-44.7.0.tgz", @@ -21929,6 +20257,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "dependencies": { "@electron/asar": "^3.2.1", "debug": "^4.1.1", @@ -21949,6 +20278,7 @@ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -21964,6 +20294,7 @@ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, "license": "MIT", + "peer": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -21974,6 +20305,7 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 4.0.0" } @@ -22229,7 +20561,8 @@ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/es-object-atoms": { "version": "1.1.2", @@ -22320,7 +20653,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -22390,7 +20722,6 @@ "integrity": "sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ==", "dev": true, "license": "MIT", - "peer": true, "workspaces": [ "packages/*" ], @@ -22445,9 +20776,9 @@ } }, "node_modules/eslint-compat-utils": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", - "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.5.tgz", + "integrity": "sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==", "dev": true, "license": "MIT", "dependencies": { @@ -22588,6 +20919,82 @@ } } }, + "node_modules/eslint-mdx": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/eslint-mdx/-/eslint-mdx-3.8.1.tgz", + "integrity": "sha512-hnsqWwMOHqUANwxWEGt8XbwABPEr5sTOolAzqyUDFdlERpqjFE/icylb+mJl60VICL+kLbbvXWbnFLWZdTqJ2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "espree": "^9.6.1 || ^10.4.0 || ^11.2.0", + "estree-util-visit": "^2.0.0", + "remark-mdx": "^3.1.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "synckit": "^0.11.8", + "unified": "^11.0.5", + "unified-engine": "^11.2.2", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.3" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "eslint": ">=8.0.0", + "remark-lint-file-extension": "*" + }, + "peerDependenciesMeta": { + "remark-lint-file-extension": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-astro": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-astro/-/eslint-plugin-astro-1.7.0.tgz", + "integrity": "sha512-89xpAn528UKCdmyysbg0AHHqi6sqcK89wXnJIpu4F0mFBN03zATEBNK7pRtMfl6gwtMOm5ECXs+Wz5qDHhwTFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@jridgewell/sourcemap-codec": "^1.4.14", + "@typescript-eslint/types": "^7.7.1 || ^8", + "astro-eslint-parser": "^1.3.0", + "eslint-compat-utils": "^0.6.0", + "globals": "^16.0.0", + "postcss": "^8.4.14", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8.57.0" + } + }, + "node_modules/eslint-plugin-astro/node_modules/globals": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-plugin-es-x": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", @@ -22610,13 +21017,28 @@ "eslint": ">=8" } }, + "node_modules/eslint-plugin-es-x/node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, "node_modules/eslint-plugin-import-x": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.17.1.tgz", "integrity": "sha512-4cdstYkKCyjumM2Q9NSI03K8D2a9F4Ssz33K2lv2hQa4KmR9jPLwk3uWGtNvclfqBrPGfGuMBwsGMbe6dMRbfg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/types": "^8.56.0", "comment-parser": "^1.4.1", @@ -22649,9 +21071,9 @@ } }, "node_modules/eslint-plugin-jest": { - "version": "29.16.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.16.6.tgz", - "integrity": "sha512-q8TVr0rlNvUD0XnafGWkwtPeX+tTl2llP86EDl3sJtwWrQA/JT9SIu2hLLZbhhX6fT5SDE4O0gIKyZUujKnkYA==", + "version": "29.17.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.17.0.tgz", + "integrity": "sha512-6jtpU6MhYKbagkES02TupWAUUooJpZtKg94Ax0b8HhUorv3InSTBU8RRtlSBe0LocOcShXOpyec3PHzPDkJCSg==", "dev": true, "license": "MIT", "dependencies": { @@ -22766,10 +21188,39 @@ "node": "*" } }, + "node_modules/eslint-plugin-mdx": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-mdx/-/eslint-plugin-mdx-3.8.1.tgz", + "integrity": "sha512-4OLgotfBxUDc1f6ihXSagT/1+JCCUABA/2r6Kzl6gqFftg4dCV0wBfdwFo6X6UO/FzTHr3g6mVt+6prRXffc/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-mdx": "^3.8.1", + "mdast-util-from-markdown": "^2.0.2", + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0", + "remark-mdx": "^3.1.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "synckit": "^0.11.8", + "unified": "^11.0.5", + "vfile": "^6.0.3" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "eslint": ">=8.0.0" + } + }, "node_modules/eslint-plugin-n": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-18.3.0.tgz", - "integrity": "sha512-cPVguuDe6DrIPb/qUXHf8P89MaVTUmiYWwpt5gX5AILsvRIiZAxMFXcFR6QHYBksqKJpjfUBlL/RleCJUWcD7w==", + "version": "18.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-18.4.1.tgz", + "integrity": "sha512-2sBReWOvCbzgkPri9M5SFmD5EbIwZLa1xz6B5RZsrI19WSFKpyx1sOMr+pdk8puCiXuEgCbErEHy1PuaUrc/4w==", "dev": true, "license": "MIT", "dependencies": { @@ -22780,6 +21231,7 @@ "globals": "^15.11.0", "globrex": "^0.1.2", "ignore": "^5.3.2", + "js-yaml": "^5.4.1", "semver": "^7.6.3" }, "engines": { @@ -22802,6 +21254,23 @@ } } }, + "node_modules/eslint-plugin-n/node_modules/argparse": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-3.0.3.tgz", + "integrity": "sha512-Sn98ftV3KfsO8xfLPHG6oT8y+b0yvbrLgZjgPDXsharNY15tTAjqIsIju4S32nl6/iEUNNE4v+yL2Zhm8ooP3w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "PSF-2.0" + }, "node_modules/eslint-plugin-n/node_modules/globals": { "version": "15.15.0", "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", @@ -22815,14 +21284,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-n/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "node_modules/eslint-plugin-n/node_modules/js-yaml": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.5.0.tgz", + "integrity": "sha512-paNr4LFIFPjeeSmwNYdrb8FafLLG/Cr2Af3GjbsHJ5CxIjH4r0c2emlmRdAtpPAieP1gRVzk6buBbVP5gBMGAg==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", - "engines": { - "node": ">= 4" + "dependencies": { + "argparse": "^3.0.3" + }, + "bin": { + "js-yaml": "bin/js-yaml.mjs" } }, "node_modules/eslint-plugin-promise": { @@ -22845,28 +21327,33 @@ } }, "node_modules/eslint-plugin-react-dom": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-dom/-/eslint-plugin-react-dom-5.20.8.tgz", - "integrity": "sha512-IQYQbC0v+F8FlxAabLrQCXxxD6kDy8YHylQLZ1/E2iO2ufUnjOyAsVhhX9VEGVHvUpHck4CDoHCZr47msQ4pow==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-dom/-/eslint-plugin-react-dom-5.28.1.tgz", + "integrity": "sha512-pCxNfncwqffujtFRVNCsGdHUll4vUMrOPMc6oyfAtDTuOSyylpvrNszEemvwzhyKqK2u+chgy0zSoCYZNKfQVg==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-react/ast": "5.20.8", - "@eslint-react/core": "5.20.8", - "@eslint-react/eslint": "5.20.8", - "@eslint-react/jsx": "5.20.8", - "@eslint-react/shared": "5.20.8", - "@eslint-react/var": "5.20.8", - "@typescript-eslint/types": "^8.70.0", - "@typescript-eslint/utils": "^8.70.0", - "compare-versions": "^6.1.1" + "@eslint-react/ast": "5.28.1", + "@eslint-react/eslint": "5.28.1", + "@eslint-react/jsx": "5.28.1", + "@eslint-react/shared": "5.28.1", + "@eslint-react/var": "5.28.1", + "@typescript-eslint/types": "^8.71.2", + "@typescript-eslint/utils": "^8.71.2", + "compare-versions": "^6.1.1", + "ts-pattern": "^5.9.2" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-plugin-react-hooks": { @@ -22890,50 +21377,60 @@ } }, "node_modules/eslint-plugin-react-jsx": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-jsx/-/eslint-plugin-react-jsx-5.20.8.tgz", - "integrity": "sha512-PHRxUYaezGl6E74TvnR4HP+SfIHoKPOUsfaB8gNiFxVmnMmAsEowZlErmHUciorUEQsD582qXTkkMKMBU2qhJA==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-jsx/-/eslint-plugin-react-jsx-5.28.1.tgz", + "integrity": "sha512-+pQ95B6areodxaQlY9uvbWX78ousi0Q8VZhGr/buu3zIX6myiPq7zjylML5tmSsURIPSv8LHM7BPNx1bb9gkJQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-react/ast": "5.20.8", - "@eslint-react/core": "5.20.8", - "@eslint-react/eslint": "5.20.8", - "@eslint-react/jsx": "5.20.8", - "@eslint-react/shared": "5.20.8", - "@typescript-eslint/types": "^8.70.0", - "@typescript-eslint/utils": "^8.70.0" + "@eslint-react/ast": "5.28.1", + "@eslint-react/core": "5.28.1", + "@eslint-react/eslint": "5.28.1", + "@eslint-react/jsx": "5.28.1", + "@eslint-react/shared": "5.28.1", + "@typescript-eslint/types": "^8.71.2", + "@typescript-eslint/utils": "^8.71.2" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-plugin-react-naming-convention": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-naming-convention/-/eslint-plugin-react-naming-convention-5.20.8.tgz", - "integrity": "sha512-ECodOVXG7Xp8xVSZeNaFdEPmletWQ49JzIbeAtzDjg54Yn2cnpoxnAuy3eMFJhs8waDc409QoxTrKIX+PSBwnw==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-naming-convention/-/eslint-plugin-react-naming-convention-5.28.1.tgz", + "integrity": "sha512-8joiY9su/kpsoKHGpaqmep2ksIHoBW7pjFEHIkzFQLdHx2zB+/KWKyGyYttbX+vbR+Vph9nlwKx/JUlyEgmeJA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-react/ast": "5.20.8", - "@eslint-react/core": "5.20.8", - "@eslint-react/eslint": "5.20.8", - "@eslint-react/shared": "5.20.8", - "@eslint-react/var": "5.20.8", - "@typescript-eslint/types": "^8.70.0", - "@typescript-eslint/utils": "^8.70.0", - "ts-pattern": "^5.9.0" + "@eslint-react/ast": "5.28.1", + "@eslint-react/core": "5.28.1", + "@eslint-react/eslint": "5.28.1", + "@eslint-react/shared": "5.28.1", + "@eslint-react/var": "5.28.1", + "@typescript-eslint/types": "^8.71.2", + "@typescript-eslint/utils": "^8.71.2", + "ts-pattern": "^5.9.2" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-plugin-react-refresh": { @@ -22947,81 +21444,95 @@ } }, "node_modules/eslint-plugin-react-rsc": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-rsc/-/eslint-plugin-react-rsc-5.20.8.tgz", - "integrity": "sha512-6G6YLzjsB76jZwy9ifYGf7hcE434+xPF8WSilXJ9EZSBpyrfuT6OUktWXTSYLSqVbHTVceZW82DKs/SYfmRa6Q==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-rsc/-/eslint-plugin-react-rsc-5.28.1.tgz", + "integrity": "sha512-gJiSqPFX7g8SjyuSVlHEiso/0ns2Q/EOIJuphZbEflbvEdu/9PkQBrnAGbrvZvUtLP5KK5FN7DAlpjpAMrt06g==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-react/ast": "5.20.8", - "@eslint-react/core": "5.20.8", - "@eslint-react/eslint": "5.20.8", - "@eslint-react/shared": "5.20.8", - "@eslint-react/var": "5.20.8", - "@typescript-eslint/types": "^8.70.0", - "@typescript-eslint/utils": "^8.70.0" + "@eslint-react/ast": "5.28.1", + "@eslint-react/core": "5.28.1", + "@eslint-react/eslint": "5.28.1", + "@eslint-react/shared": "5.28.1", + "@eslint-react/var": "5.28.1", + "@typescript-eslint/types": "^8.71.2", + "@typescript-eslint/utils": "^8.71.2" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-plugin-react-web-api": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-web-api/-/eslint-plugin-react-web-api-5.20.8.tgz", - "integrity": "sha512-iTmDL57D3xH2MGFMNyVMYFbaj6d/obAa/2WAN1P0hvOwNfADHw0DYKjV+IcXg0Mke5wWNExNgWsq3ksXfD4ZOw==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-web-api/-/eslint-plugin-react-web-api-5.28.1.tgz", + "integrity": "sha512-zJWPexMn+uSjjy0bMMpAAMVMTKXIpT64T69LjnbJH1LrU35YJDymYkLYiv5h1udS3QpCGzH+DKSVX6zJ8fJeqw==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-react/ast": "5.20.8", - "@eslint-react/core": "5.20.8", - "@eslint-react/eslint": "5.20.8", - "@eslint-react/shared": "5.20.8", - "@eslint-react/var": "5.20.8", - "@typescript-eslint/types": "^8.70.0", - "@typescript-eslint/utils": "^8.70.0", - "ts-pattern": "^5.9.0" + "@eslint-react/ast": "5.28.1", + "@eslint-react/core": "5.28.1", + "@eslint-react/eslint": "5.28.1", + "@eslint-react/shared": "5.28.1", + "@eslint-react/var": "5.28.1", + "@typescript-eslint/types": "^8.71.2", + "@typescript-eslint/utils": "^8.71.2", + "ts-pattern": "^5.9.2" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-plugin-react-x": { - "version": "5.20.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-x/-/eslint-plugin-react-x-5.20.8.tgz", - "integrity": "sha512-G86Iu4K3cDjFTVwQ+24aZ+fu3+2U6zrIFcJ0xCdMVD3OcAPdreLidwDtHB9NLLWTK3dQ4DeM0H/q0d3jar5Rwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-react/ast": "5.20.8", - "@eslint-react/core": "5.20.8", - "@eslint-react/eslint": "5.20.8", - "@eslint-react/jsx": "5.20.8", - "@eslint-react/shared": "5.20.8", - "@eslint-react/var": "5.20.8", - "@typescript-eslint/scope-manager": "^8.70.0", - "@typescript-eslint/type-utils": "^8.70.0", - "@typescript-eslint/types": "^8.70.0", - "@typescript-eslint/typescript-estree": "^8.70.0", - "@typescript-eslint/utils": "^8.70.0", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-x/-/eslint-plugin-react-x-5.28.1.tgz", + "integrity": "sha512-6DkQbbUWjGmURcr9lr5t+fwhmMp5qijqx8l9z1zJhNx3QcNWn37DpK23Vjfxw4CegFRObkl1qita/q+5jNLBxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-react/ast": "5.28.1", + "@eslint-react/core": "5.28.1", + "@eslint-react/eslint": "5.28.1", + "@eslint-react/jsx": "5.28.1", + "@eslint-react/shared": "5.28.1", + "@eslint-react/var": "5.28.1", + "@typescript-eslint/scope-manager": "^8.71.2", + "@typescript-eslint/types": "^8.71.2", + "@typescript-eslint/typescript-estree": "^8.71.2", + "@typescript-eslint/utils": "^8.71.2", "compare-versions": "^6.1.1", "string-ts": "^2.3.1", "ts-api-utils": "^2.5.0", - "ts-pattern": "^5.9.0" + "ts-pattern": "^5.9.2" }, "engines": { - "node": ">=22.0.0" + "node": ">=20.19.0" }, "peerDependencies": { "eslint": "*", "typescript": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-plugin-regexp": { @@ -23046,6 +21557,53 @@ "eslint": ">=9.38.0" } }, + "node_modules/eslint-plugin-svelte": { + "version": "3.23.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.23.1.tgz", + "integrity": "sha512-+w86Jlx4IRUuuvtqD6j4njql+akx+81JnpvbN5de3AV5iq2SexvST/Jr51CiTlKeY0i+vhoKjPO/ywFKIP75sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.6.1", + "@jridgewell/sourcemap-codec": "^1.5.0", + "esutils": "^2.0.3", + "globals": "^16.0.0", + "known-css-properties": "^0.37.0", + "postcss": "^8.4.49", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^7.0.0", + "semver": "^7.6.3", + "svelte-eslint-parser": "^1.7.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^8.57.1 || ^9.0.0 || ^10.0.0", + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-svelte/node_modules/globals": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-plugin-toml": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/eslint-plugin-toml/-/eslint-plugin-toml-1.5.0.tgz", @@ -23124,9 +21682,9 @@ } }, "node_modules/eslint-plugin-yml": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-3.8.1.tgz", - "integrity": "sha512-E/70psRwxz5EJ8dBtzrFfqSiiInuSytbdtFCjueb/GcKjsWzPBfxfhtQePImMAPjHwMA/VDurO7DJwStDJ4wWg==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-3.9.0.tgz", + "integrity": "sha512-o4ByMVFd/mGc0Q/vJmbG9pz7Kyg/BiKAGnWCzvMLqzpa2KMdpUrLgF5a6yYeL2mf1Br/9dckd0ADl3vw7uF+jA==", "dev": true, "license": "MIT", "dependencies": { @@ -23241,16 +21799,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -23312,6 +21860,32 @@ "node": ">=4.0" } }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -23348,13 +21922,6 @@ "node": ">=6" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true, - "license": "MIT" - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -23574,6 +22141,13 @@ "node": ">=4" } }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -23587,6 +22161,36 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -23601,23 +22205,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-string-truncated-width": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz", - "integrity": "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-string-width": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz", - "integrity": "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-string-truncated-width": "^3.0.2" - } - }, "node_modules/fast-uri": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", @@ -23634,16 +22221,6 @@ ], "license": "BSD-3-Clause" }, - "node_modules/fast-wrap-ansi": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.0.tgz", - "integrity": "sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-string-width": "^3.0.2" - } - }, "node_modules/fast-xml-builder": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.3.1.tgz", @@ -23683,6 +22260,16 @@ "fxparser": "src/cli/cli.js" } }, + "node_modules/fastq": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz", + "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fault": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", @@ -23738,32 +22325,6 @@ "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", "license": "MIT" }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/file-entry-cache": { "version": "11.1.5", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.5.tgz", @@ -23862,6 +22423,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", @@ -24064,27 +22638,29 @@ "dev": true, "license": "MIT" }, - "node_modules/fraction.js": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", - "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", - "dev": true, + "node_modules/framer-motion": { + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-14.3.0.tgz", + "integrity": "sha512-d8WCrU0ZQn7ukKMykCsDyIOwb/taZeDqqrDBK0du5GO0AO/ynz8fdR/LIIz9Pyy3n3tGwrneR+n0egyrrLa3fw==", "license": "MIT", - "engines": { - "node": "*" + "dependencies": { + "motion-dom": "14.3.0", + "motion-utils": "14.1.1", + "tslib": "^2.4.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/rawify" + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "license": "MIT" - }, "node_modules/fs-extra": { "version": "11.4.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.1.tgz", @@ -24198,16 +22774,6 @@ "node": ">= 0.4" } }, - "node_modules/generic-names": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz", - "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "loader-utils": "^3.2.0" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -24323,13 +22889,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-them-args": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/get-them-args/-/get-them-args-1.3.2.tgz", - "integrity": "sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw==", - "dev": true, - "license": "MIT" - }, "node_modules/get-tsconfig": { "version": "4.14.3", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.3.tgz", @@ -24351,18 +22910,22 @@ "license": "ISC" }, "node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, - "license": "BlueOak-1.0.0", + "license": "ISC", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "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" }, - "engines": { - "node": "18 || 20 || >=22" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -24388,6 +22951,39 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/glob/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/glob/node_modules/brace-expansion": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", + "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/global-agent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", @@ -24424,9 +23020,9 @@ } }, "node_modules/globals": { - "version": "17.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.12.0.tgz", - "integrity": "sha512-cezEd/DTyyht9cvSSURyygXPfy04GtWO/5e6ZPvH7fCtjKz9PYOmuawphw1Ctd1f6C+5JypXfGD7ahNMXvevBA==", + "version": "17.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.13.0.tgz", + "integrity": "sha512-RwMTC61u7hrG3ZJMkZQOK4JLJrKS8QtoTii63EmWvFXHqycY9FObBJQCbsLxSO8kjKhWE5kV1GC+Vb1g3RI0Zg==", "dev": true, "license": "MIT", "engines": { @@ -24528,13 +23124,6 @@ "uglify-js": "^3.1.4" } }, - "node_modules/harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", - "dev": true, - "license": "(Apache-2.0 OR MPL-1.1)" - }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", @@ -24639,16 +23228,6 @@ "node": ">= 0.4" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "node_modules/hermes-estree": { "version": "0.25.1", "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", @@ -24686,7 +23265,6 @@ "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.9.tgz", "integrity": "sha512-7dMkQmZoC4E6F7AtaQSPhlWAdnBti+j7rreMZl8QB4jFiEhP9TWbGWUMi8WYzBCgmgulxuvLQupKqo+Co6Omyg==", "license": "MIT", - "peer": true, "engines": { "node": ">=16.9.0" } @@ -24731,46 +23309,6 @@ "dev": true, "license": "ISC" }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-encoding-sniffer/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/html-encoding-sniffer/node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -24862,21 +23400,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", @@ -24899,47 +23422,6 @@ "node": ">= 14" } }, - "node_modules/http-server": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", - "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "basic-auth": "^2.0.1", - "chalk": "^4.1.2", - "corser": "^2.0.1", - "he": "^1.2.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy": "^1.18.1", - "mime": "^1.6.0", - "minimist": "^1.2.6", - "opener": "^1.5.1", - "portfinder": "^1.0.28", - "secure-compare": "3.0.1", - "union": "~0.5.0", - "url-join": "^4.0.1" - }, - "bin": { - "http-server": "bin/http-server" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/http-server/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/http2-wrapper": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", @@ -24993,19 +23475,6 @@ "url": "https://github.com/sponsors/typicode" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/idb-keyval": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.3.0.tgz", @@ -25028,19 +23497,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", - "dev": true, - "license": "MIT", - "dependencies": { - "harmony-reflect": "^1.4.6" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -25063,9 +23519,9 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.10.tgz", - "integrity": "sha512-HpbUakT7xp5miBUywCHf36ZEuAJNklBJDDsGpUIjMzOSmM8ELSfA9Sa/QDPeNeqeoN31u+UTCkL4klCOVvRm4Q==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { @@ -25146,6 +23602,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -25241,16 +23708,6 @@ "node": ">= 12" } }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -25260,6 +23717,32 @@ "node": ">= 0.10" } }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -25426,6 +23909,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-docker": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", @@ -25458,6 +23952,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-empty": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz", + "integrity": "sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==", + "dev": true, + "license": "MIT" + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -25537,6 +24038,17 @@ "node": ">=0.10.0" } }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-identifier": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-identifier/-/is-identifier-1.1.0.tgz", @@ -25573,16 +24085,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", @@ -25616,6 +24118,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/is-number-object": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", @@ -25660,16 +24172,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -25782,19 +24284,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-unsafe": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-unsafe/-/is-unsafe-2.0.2.tgz", @@ -25875,21 +24364,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz", - "integrity": "sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "ip-regex": "^2.1.0", - "is-url": "^1.2.2" - }, - "engines": { - "node": ">=v0.10.0" - } - }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -26027,7 +24501,6 @@ "integrity": "sha512-AkXIIFcaazymvey2i/+F94XRnM6TsVLZDhBMLsd1Sf/W0wzsvvpjeyUrCZD6HGG4SDYPgDJDBKeiJTBb10WzMg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jest/core": "30.3.0", "@jest/types": "30.3.0", @@ -26134,182 +24607,6 @@ "node": ">=6" } }, - "node_modules/jest-circus": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.5.2.tgz", - "integrity": "sha512-vffFgjs5JSJ9q4ds1vNW3klKYPJfYfIY61LT/zaZgvTeASJOWZUt8LBfHgIcV4rwxlPBLl/ePBGccHEclS4PlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "30.5.2", - "@jest/expect": "30.5.2", - "@jest/test-result": "30.5.2", - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "co": "^4.6.0", - "dedent": "^1.6.0", - "is-generator-fn": "^2.1.0", - "jest-each": "30.5.2", - "jest-matcher-utils": "30.5.2", - "jest-message-util": "30.5.1", - "jest-runtime": "30.5.2", - "jest-snapshot": "30.5.2", - "jest-util": "30.5.1", - "p-limit": "^3.1.0", - "pretty-format": "30.5.1", - "pure-rand": "^7.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.6" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-circus/node_modules/@jest/globals": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.5.2.tgz", - "integrity": "sha512-62zfS+dL+M5aTNHXCNLyqD+j4oqxTIzDYrZbpqMP8Yn+gvlAGyzC6BSPNb1ZmFOakV1RtFYX/O3FCQXSWmQdgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "30.5.2", - "@jest/expect": "30.5.2", - "@jest/types": "30.5.1", - "jest-mock": "30.5.2" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-circus/node_modules/@jest/snapshot-utils": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.5.1.tgz", - "integrity": "sha512-V3wnxNtiVmw5PPVg433Cn3VdXnsOeu/ofLw3KC04Bn2y1wIlU5kozXQn48rhrgj/02LrCVtntTEF1yBha0XSUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "chalk": "^4.1.2", - "graceful-fs": "^4.2.11", - "natural-compare": "^1.4.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-circus/node_modules/@jest/source-map": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.5.2.tgz", - "integrity": "sha512-c5CehvkbfHX6yyNg7bMn2ylqlp9AHXuZ/3hPH/Lh5bxD/vefd/lV9HBjMqXef9yQNqkdwyZvkLSVSwB38hy8Qw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.31", - "callsites": "^3.1.0", - "convert-source-map": "^2.0.0", - "graceful-fs": "^4.2.11" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-runtime": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.5.2.tgz", - "integrity": "sha512-0paUAHBlheai10A3XSy9Xh+YBG0IROy+/qzcDPzQ/nbbXrznQzeWy5qniICWK6d3W3scaRQCVAbXdcK0ibBq4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "30.5.2", - "@jest/fake-timers": "30.5.2", - "@jest/globals": "30.5.2", - "@jest/source-map": "30.5.2", - "@jest/test-result": "30.5.2", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "cjs-module-lexer": "^2.2.0", - "collect-v8-coverage": "^1.0.2", - "es-module-lexer": "^2.1.0", - "glob": "^13.0.6", - "graceful-fs": "^4.2.11", - "jest-haste-map": "30.5.1", - "jest-message-util": "30.5.1", - "jest-mock": "30.5.2", - "jest-regex-util": "30.5.0", - "jest-resolve": "30.5.1", - "jest-snapshot": "30.5.2", - "jest-util": "30.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-snapshot": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.5.2.tgz", - "integrity": "sha512-jKIdes25AnAH73dOCi2qE6J6vHJ6L2vyBS11M89kT50DVJcLTf2AOjvcc+2vVaN8lUbY5v2R83aqXo3Ro9fqYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.27.4", - "@babel/generator": "^7.27.5", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1", - "@babel/types": "^7.27.3", - "@jest/expect-utils": "30.5.2", - "@jest/get-type": "30.5.0", - "@jest/snapshot-utils": "30.5.1", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", - "babel-preset-current-node-syntax": "^1.2.0", - "chalk": "^4.1.2", - "expect": "30.5.2", - "graceful-fs": "^4.2.11", - "jest-diff": "30.5.2", - "jest-matcher-utils": "30.5.2", - "jest-message-util": "30.5.1", - "jest-util": "30.5.1", - "pretty-format": "30.5.1", - "semver": "^7.7.2", - "synckit": "^0.11.8" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-circus/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/jest-cli": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.3.0.tgz", @@ -26533,23 +24830,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-cli/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/jest-cli/node_modules/brace-expansion": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", - "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/jest-cli/node_modules/expect": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz", @@ -26568,28 +24848,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-cli/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "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/jest-cli/node_modules/jest-circus": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.3.0.tgz", @@ -26673,629 +24931,224 @@ } } }, - "node_modules/jest-cli/node_modules/jest-diff": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz", - "integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/diff-sequences": "30.3.0", - "@jest/get-type": "30.1.0", - "chalk": "^4.1.2", - "pretty-format": "30.3.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-cli/node_modules/jest-docblock": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", - "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.1.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-cli/node_modules/jest-each": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.3.0.tgz", - "integrity": "sha512-V8eMndg/aZ+3LnCJgSm13IxS5XSBM22QSZc9BtPK8Dek6pm+hfUNfwBdvsB3d342bo1q7wnSkC38zjX259qZNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/get-type": "30.1.0", - "@jest/types": "30.3.0", - "chalk": "^4.1.2", - "jest-util": "30.3.0", - "pretty-format": "30.3.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-cli/node_modules/jest-haste-map": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.3.0.tgz", - "integrity": "sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.3.0", - "@types/node": "*", - "anymatch": "^3.1.3", - "fb-watchman": "^2.0.2", - "graceful-fs": "^4.2.11", - "jest-regex-util": "30.0.1", - "jest-util": "30.3.0", - "jest-worker": "30.3.0", - "picomatch": "^4.0.3", - "walker": "^1.0.8" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.3" - } - }, - "node_modules/jest-cli/node_modules/jest-matcher-utils": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz", - "integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/get-type": "30.1.0", - "chalk": "^4.1.2", - "jest-diff": "30.3.0", - "pretty-format": "30.3.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-cli/node_modules/jest-message-util": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz", - "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@jest/types": "30.3.0", - "@types/stack-utils": "^2.0.3", - "chalk": "^4.1.2", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3", - "pretty-format": "30.3.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.6" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-cli/node_modules/jest-mock": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz", - "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.3.0", - "@types/node": "*", - "jest-util": "30.3.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-cli/node_modules/jest-regex-util": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", - "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-cli/node_modules/jest-resolve": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.3.0.tgz", - "integrity": "sha512-NRtTAHQlpd15F9rUR36jqwelbrDV/dY4vzNte3S2kxCKUJRYNd5/6nTSbYiak1VX5g8IoFF23Uj5TURkUW8O5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "graceful-fs": "^4.2.11", - "jest-haste-map": "30.3.0", - "jest-pnp-resolver": "^1.2.3", - "jest-util": "30.3.0", - "jest-validate": "30.3.0", - "slash": "^3.0.0", - "unrs-resolver": "^1.7.11" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-cli/node_modules/jest-worker": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.3.0.tgz", - "integrity": "sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.3.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.1.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-cli/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/jest-cli/node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jest-cli/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/jest-cli/node_modules/pretty-format": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", - "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "30.0.5", - "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "17.7.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz", - "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-config": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.5.2.tgz", - "integrity": "sha512-U6221OZekabePvGcGPf4raIBKMvYQWFHvhobDJRojOYaFMj2HaGytAdknjDhYc6JTz2fdHW9+6k0wWUDaNeOFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.27.4", - "@jest/get-type": "30.5.0", - "@jest/pattern": "30.5.0", - "@jest/test-sequencer": "30.5.2", - "@jest/types": "30.5.1", - "babel-jest": "30.5.2", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "deepmerge": "^4.3.1", - "glob": "^13.0.6", - "graceful-fs": "^4.2.11", - "jest-circus": "30.5.2", - "jest-docblock": "30.5.0", - "jest-environment-node": "30.5.2", - "jest-regex-util": "30.5.0", - "jest-resolve": "30.5.1", - "jest-runner": "30.5.2", - "jest-util": "30.5.1", - "jest-validate": "30.5.1", - "parse-json": "^5.2.0", - "pretty-format": "30.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "esbuild-register": ">=3.4.0", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "esbuild-register": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/@jest/globals": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.5.2.tgz", - "integrity": "sha512-62zfS+dL+M5aTNHXCNLyqD+j4oqxTIzDYrZbpqMP8Yn+gvlAGyzC6BSPNb1ZmFOakV1RtFYX/O3FCQXSWmQdgg==", + "node_modules/jest-cli/node_modules/jest-diff": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz", + "integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.5.2", - "@jest/expect": "30.5.2", - "@jest/types": "30.5.1", - "jest-mock": "30.5.2" + "@jest/diff-sequences": "30.3.0", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-config/node_modules/@jest/snapshot-utils": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.5.1.tgz", - "integrity": "sha512-V3wnxNtiVmw5PPVg433Cn3VdXnsOeu/ofLw3KC04Bn2y1wIlU5kozXQn48rhrgj/02LrCVtntTEF1yBha0XSUw==", + "node_modules/jest-cli/node_modules/jest-docblock": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", + "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.5.1", - "chalk": "^4.1.2", - "graceful-fs": "^4.2.11", - "natural-compare": "^1.4.0" + "detect-newline": "^3.1.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-config/node_modules/@jest/source-map": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.5.2.tgz", - "integrity": "sha512-c5CehvkbfHX6yyNg7bMn2ylqlp9AHXuZ/3hPH/Lh5bxD/vefd/lV9HBjMqXef9yQNqkdwyZvkLSVSwB38hy8Qw==", + "node_modules/jest-cli/node_modules/jest-each": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.3.0.tgz", + "integrity": "sha512-V8eMndg/aZ+3LnCJgSm13IxS5XSBM22QSZc9BtPK8Dek6pm+hfUNfwBdvsB3d342bo1q7wnSkC38zjX259qZNA==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.31", - "callsites": "^3.1.0", - "convert-source-map": "^2.0.0", - "graceful-fs": "^4.2.11" + "@jest/get-type": "30.1.0", + "@jest/types": "30.3.0", + "chalk": "^4.1.2", + "jest-util": "30.3.0", + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-config/node_modules/babel-jest": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.5.2.tgz", - "integrity": "sha512-ES8WeJ2fNWPEDunyAtUfJ12nHyaWUloCHdkfK2oW5uSoQSUmjNKdWiGaXJITJwvFEWoD/evHEg/QoCXAvLaQqQ==", + "node_modules/jest-cli/node_modules/jest-haste-map": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.3.0.tgz", + "integrity": "sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "30.5.2", - "@types/babel__core": "^7.20.5", - "babel-plugin-istanbul": "^8.0.0", - "babel-preset-jest": "30.5.0", - "chalk": "^4.1.2", + "@jest/types": "30.3.0", + "@types/node": "*", + "anymatch": "^3.1.3", + "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", - "slash": "^3.0.0" + "jest-regex-util": "30.0.1", + "jest-util": "30.3.0", + "jest-worker": "30.3.0", + "picomatch": "^4.0.3", + "walker": "^1.0.8" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, - "peerDependencies": { - "@babel/core": "^7.11.0 || ^8.0.0-0" + "optionalDependencies": { + "fsevents": "^2.3.3" } }, - "node_modules/jest-config/node_modules/babel-jest/node_modules/babel-preset-jest": { - "version": "30.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.5.0.tgz", - "integrity": "sha512-ZGPn5ClP4lBDpuOK8W1yQIOy359HmbnZv3suucAlIe+SEE9yDsxV4S2PjSbH2Vc97U+WmzYD7vw3kr8NsQ/i6w==", + "node_modules/jest-cli/node_modules/jest-matcher-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz", + "integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "30.5.0", - "babel-preset-current-node-syntax": "^1.2.0" + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.3.0", + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0 || ^8.0.0-beta.1 || ^8.0.0" } }, - "node_modules/jest-config/node_modules/babel-plugin-jest-hoist": { - "version": "30.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.5.0.tgz", - "integrity": "sha512-gtGo1B+u14jrZQv6TdSWIWkTqclboo7Qn+dFAGUOIuXLFuJKAdg3U5MIWzZnW4vfUb4dX9skmAMiby86e/SF4A==", + "node_modules/jest-cli/node_modules/jest-message-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz", + "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==", "dev": true, "license": "MIT", "dependencies": { - "@types/babel__core": "^7.20.5" + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.3.0", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3", + "pretty-format": "30.3.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-config/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-config/node_modules/jest-environment-node": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.5.2.tgz", - "integrity": "sha512-Ciz4KgTGIbojxSKpuFImgWJj5EyqfE8xMq9NxWmOXnQywHHS03H9Mv+vaCB29J5pr3JBrY27WbRV18rBdjh8Dg==", + "node_modules/jest-cli/node_modules/jest-mock": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz", + "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.5.2", - "@jest/fake-timers": "30.5.2", - "@jest/types": "30.5.1", + "@jest/types": "30.3.0", "@types/node": "*", - "jest-mock": "30.5.2", - "jest-util": "30.5.1", - "jest-validate": "30.5.1" + "jest-util": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-config/node_modules/jest-leak-detector": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.5.1.tgz", - "integrity": "sha512-gt4GT2aWgEoCNTcBe4rqS74xTIUJxi+UD9SNSu9aOk5LmTEd6fS5KSTmAKAfitCCktQHNN+upUuL6EkBfFbMDQ==", + "node_modules/jest-cli/node_modules/jest-regex-util": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", "dev": true, "license": "MIT", - "dependencies": { - "@jest/get-type": "30.5.0", - "pretty-format": "30.5.1" - }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-config/node_modules/jest-runner": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.5.2.tgz", - "integrity": "sha512-/B6px7hiiNhVSRwuv9AGn0nawYvwsHeQZ3ItTd5Gp2diFd0EOKaWVeWqcbw3L88vx1GfpCKjQkxWItZCTl11Rw==", + "node_modules/jest-cli/node_modules/jest-resolve": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.3.0.tgz", + "integrity": "sha512-NRtTAHQlpd15F9rUR36jqwelbrDV/dY4vzNte3S2kxCKUJRYNd5/6nTSbYiak1VX5g8IoFF23Uj5TURkUW8O5g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.5.2", - "@jest/environment": "30.5.2", - "@jest/source-map": "30.5.2", - "@jest/test-result": "30.5.2", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", - "@types/node": "*", "chalk": "^4.1.2", - "emittery": "^0.13.1", - "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", - "jest-docblock": "30.5.0", - "jest-environment-node": "30.5.2", - "jest-haste-map": "30.5.1", - "jest-leak-detector": "30.5.1", - "jest-message-util": "30.5.1", - "jest-resolve": "30.5.1", - "jest-runtime": "30.5.2", - "jest-util": "30.5.1", - "jest-watcher": "30.5.2", - "jest-worker": "30.5.1", - "p-limit": "^3.1.0" + "jest-haste-map": "30.3.0", + "jest-pnp-resolver": "^1.2.3", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "slash": "^3.0.0", + "unrs-resolver": "^1.7.11" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-config/node_modules/jest-runtime": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.5.2.tgz", - "integrity": "sha512-0paUAHBlheai10A3XSy9Xh+YBG0IROy+/qzcDPzQ/nbbXrznQzeWy5qniICWK6d3W3scaRQCVAbXdcK0ibBq4w==", + "node_modules/jest-cli/node_modules/jest-worker": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.3.0.tgz", + "integrity": "sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.5.2", - "@jest/fake-timers": "30.5.2", - "@jest/globals": "30.5.2", - "@jest/source-map": "30.5.2", - "@jest/test-result": "30.5.2", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", "@types/node": "*", - "chalk": "^4.1.2", - "cjs-module-lexer": "^2.2.0", - "collect-v8-coverage": "^1.0.2", - "es-module-lexer": "^2.1.0", - "glob": "^13.0.6", - "graceful-fs": "^4.2.11", - "jest-haste-map": "30.5.1", - "jest-message-util": "30.5.1", - "jest-mock": "30.5.2", - "jest-regex-util": "30.5.0", - "jest-resolve": "30.5.1", - "jest-snapshot": "30.5.2", - "jest-util": "30.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "@ungap/structured-clone": "^1.3.0", + "jest-util": "30.3.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.1.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-config/node_modules/jest-snapshot": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.5.2.tgz", - "integrity": "sha512-jKIdes25AnAH73dOCi2qE6J6vHJ6L2vyBS11M89kT50DVJcLTf2AOjvcc+2vVaN8lUbY5v2R83aqXo3Ro9fqYA==", + "node_modules/jest-cli/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.27.4", - "@babel/generator": "^7.27.5", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1", - "@babel/types": "^7.27.3", - "@jest/expect-utils": "30.5.2", - "@jest/get-type": "30.5.0", - "@jest/snapshot-utils": "30.5.1", - "@jest/transform": "30.5.2", - "@jest/types": "30.5.1", - "babel-preset-current-node-syntax": "^1.2.0", - "chalk": "^4.1.2", - "expect": "30.5.2", - "graceful-fs": "^4.2.11", - "jest-diff": "30.5.2", - "jest-matcher-utils": "30.5.2", - "jest-message-util": "30.5.1", - "jest-util": "30.5.1", - "pretty-format": "30.5.1", - "semver": "^7.7.2", - "synckit": "^0.11.8" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-config/node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", + "node_modules/jest-cli/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" + "has-flag": "^4.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-config/node_modules/jest-validate": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.5.1.tgz", - "integrity": "sha512-i/buJ56wTpxihE93hQYNMfdOThS87+HGvLZzZJmU4xggPcdTYQq051iwALLCHp3q+SkCGH+EFejQZz5EbBSkkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/get-type": "30.5.0", - "@jest/types": "30.5.1", - "camelcase": "^6.3.0", - "chalk": "^4.1.2", - "leven": "^3.1.0", - "pretty-format": "30.5.1" + "node": ">=10" }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jest-config/node_modules/jest-watcher": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.5.2.tgz", - "integrity": "sha512-rqRgg4R11GA9m1UsEZwQeixHsgZReCn6TOHAHtIH33yXrIvoX0OGPA20Yzzjkz7X40fZvcRSxEpQppYPcWzmcQ==", + "node_modules/jest-cli/node_modules/yargs": { + "version": "17.7.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz", + "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.5.2", - "@jest/types": "30.5.1", - "@types/node": "*", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "emittery": "^0.13.1", - "jest-util": "30.5.1", - "string-length": "^4.0.2" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-config/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/jest-diff": { @@ -27324,55 +25177,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-docblock": { - "version": "30.5.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.5.0.tgz", - "integrity": "sha512-NwDqcxtoZi33RhuW+zJS/RVA3rmheQ8BnwpYZuc/Eruaz6seQb7+aoCeDZu/3X7W2XmD8DbSo9Pn72DbKsBFYw==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.1.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-each": { - "version": "30.5.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.5.2.tgz", - "integrity": "sha512-GRrW+7fmmgmkvyfEBqc1QFdWnF1Ex5yG6Y6AWL4TTxnkWlKIT98dsKh3P3UuWm6v4XsQwVE6DEzXIPMzWJ3ZbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/get-type": "30.5.0", - "@jest/types": "30.5.1", - "chalk": "^4.1.2", - "jest-regex-util": "30.5.0", - "jest-util": "30.5.1", - "pretty-format": "30.5.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-each/node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/jest-environment-jsdom": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-30.3.0.tgz", @@ -27723,47 +25527,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-haste-map": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.5.1.tgz", - "integrity": "sha512-VIFgt67jW480YDxKfEv9IYQKrFpYt7bOCMn3VsnjK7AK9qo7p6acpnA1DHwsVOULE3dTaYew/6JaTD/d0VDHoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@parcel/watcher": "^2.6.0", - "@types/node": "*", - "anymatch": "^3.1.3", - "fb-watchman": "^2.0.2", - "fdir": "^6.5.0", - "graceful-fs": "^4.2.11", - "jest-regex-util": "30.5.0", - "jest-util": "30.5.1", - "jest-worker": "30.5.1", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-haste-map/node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/jest-leak-detector": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.3.0.tgz", @@ -27947,25 +25710,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-resolve": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.5.1.tgz", - "integrity": "sha512-wprhLejRtwN6h8ZgaqC0eYjGJ1uMdGPT/+b3eFncbG4NWuuP9QL+vWwRinu9waw7hkOLcpMJGVJAMgBwsPssMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "graceful-fs": "^4.2.11", - "jest-haste-map": "30.5.1", - "jest-util": "30.5.1", - "jest-validate": "30.5.1", - "slash": "^3.0.0", - "unrs-resolver": "^1.12.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/jest-resolve-dependencies": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.3.0.tgz", @@ -27990,55 +25734,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-resolve/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-resolve/node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-resolve/node_modules/jest-validate": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.5.1.tgz", - "integrity": "sha512-i/buJ56wTpxihE93hQYNMfdOThS87+HGvLZzZJmU4xggPcdTYQq051iwALLCHp3q+SkCGH+EFejQZz5EbBSkkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/get-type": "30.5.0", - "@jest/types": "30.5.1", - "camelcase": "^6.3.0", - "chalk": "^4.1.2", - "leven": "^3.1.0", - "pretty-format": "30.5.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/jest-runner": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.3.0.tgz", @@ -28691,38 +26386,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jest-runtime/node_modules/brace-expansion": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", - "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/jest-runtime/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "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/jest-runtime/node_modules/jest-haste-map": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.3.0.tgz", @@ -28831,46 +26494,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-runtime/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/jest-runtime/node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jest-runtime/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/jest-runtime/node_modules/pretty-format": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", @@ -29739,57 +27362,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-worker": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.5.1.tgz", - "integrity": "sha512-Cbxh5v7AoLuFRmFJSM4/aHdQ68rjXvUWr716EE0Dh3I7T+T/3FgFKhOERGXHcU2Meftq9+9zxPM3TSNyI9D+HA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.5.1", - "merge-stream": "^2.0.0", - "supports-color": "^8.1.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-worker/node_modules/jest-util": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz", - "integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.5.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/jest/node_modules/@jest/pattern": { "version": "30.0.1", "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", @@ -29902,43 +27474,24 @@ } }, "node_modules/jsdoc-type-pratt-parser": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-9.2.2.tgz", - "integrity": "sha512-eFY7Rlscvv/BpY6UsVsjKwMhu1tJO/F4U/vC9g3yeRy/JqszuO1UP6Vdq+85G+3FP6fEw/sWR8a5ftPFY86csw==", + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-9.2.3.tgz", + "integrity": "sha512-xsCb5EbmLWNlQ8v5zQIgSYSyf1rSyVPjh8p9G2xviOl1weHm8a611fHWUOGn7ISquCL6LoBKZvh0tcKmpVGgzw==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "^1.0.9", - "@types/node": "^26.4.0" + "@types/estree": "^1.0.9" }, "engines": { "node": "^22.22.2 || >=24.15.0" } }, - "node_modules/jsdoc-type-pratt-parser/node_modules/@types/node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.2.tgz", - "integrity": "sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~8.9.0" - } - }, - "node_modules/jsdoc-type-pratt-parser/node_modules/undici-types": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", - "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", - "dev": true, - "license": "MIT" - }, "node_modules/jsdom": { "version": "26.1.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", @@ -30052,7 +27605,6 @@ "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", "license": "MIT", - "peer": true, "engines": { "node": ">= 10.16.0" } @@ -30134,7 +27686,6 @@ "integrity": "sha512-hYTGkHGNRZnXOFZ1urhINADoqDrGfpy53cjw+dxk84QE0pUDujQzeUeamNs6Mz44/TKD49z2x6/GVSu4ZrtA+Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "acorn": "^8.5.0", "eslint-visitor-keys": "^5.0.0", @@ -30335,25 +27886,10 @@ "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } }, - "node_modules/kill-port": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/kill-port/-/kill-port-1.6.1.tgz", - "integrity": "sha512-un0Y55cOM7JKGaLnGja28T38tDDop0AQ8N0KlAdyh+B1nmMoX8AnNmqPNZbS3mUMgiST51DCVqmbFT1gNJpVNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-them-args": "1.3.2", - "shell-exec": "1.0.2" - }, - "bin": { - "kill-port": "cli.js" - } - }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -30364,6 +27900,13 @@ "node": ">=0.10.0" } }, + "node_modules/known-css-properties": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", + "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", + "dev": true, + "license": "MIT" + }, "node_modules/kuler": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", @@ -30693,24 +28236,39 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", + "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", "dev": true, "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "node_modules/load-plugin": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-6.0.3.tgz", + "integrity": "sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 12.13.0" + "dependencies": { + "@npmcli/config": "^8.0.0", + "import-meta-resolve": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/locate-path": { @@ -30805,23 +28363,6 @@ "dev": true, "license": "MIT" }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/logform": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", @@ -30924,16 +28465,6 @@ "lz-string": "bin/bin.js" } }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, "node_modules/make-asynchronous": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/make-asynchronous/-/make-asynchronous-1.1.0.tgz", @@ -31032,9 +28563,9 @@ } }, "node_modules/mdast-util-find-and-replace": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", - "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.3.tgz", + "integrity": "sha512-xPgpDNl0/OXHsI7TlaIs22lWnH3KlpvZdXG1ET/m/YT2Hhdkx8lJV4kLphE6l9simyM4KPDFBwas08BgEob6Jw==", "dev": true, "license": "MIT", "dependencies": { @@ -31062,9 +28593,9 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", - "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.1.0.tgz", + "integrity": "sha512-KRLgmPaP2H1ul2bpoJkOS+9pAcDAAj9Nu1mqLnh8NLeJG5tlvj42TH80PIGBpROWlRXLk0lDrWNuZCFy/tsB4A==", "dev": true, "license": "MIT", "dependencies": { @@ -31175,9 +28706,9 @@ } }, "node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.1.tgz", + "integrity": "sha512-OuJHqvr455pwu2OaOrir7dbzqs4jlWKOtlu9L6GjcIjjQwNyw02VntQsr/Ek6/A13vgnXfUhBekWRUP1OkNivw==", "dev": true, "license": "MIT", "dependencies": { @@ -31245,6 +28776,87 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-phrasing": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", @@ -31261,9 +28873,9 @@ } }, "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.2.0.tgz", + "integrity": "sha512-2Jn/ADrHFFyyniBMi0bncTbJqU78K3/TEYvzvwrWWzD9MYPUa/Gm4r3nOeKFQg/PDM5BsbDYdc8ackW4NTY6NA==", "dev": true, "license": "MIT", "dependencies": { @@ -31272,8 +28884,10 @@ "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", + "micromark-util-character": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" }, @@ -31297,9 +28911,9 @@ } }, "node_modules/mdn-data": { - "version": "2.35.0", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.35.0.tgz", - "integrity": "sha512-k+1+dEIm2z/BEfdvYzT/fIyAGeDBo/1AJNJI4ilFXJRYoxP/3Ds+GP8shAOIq8jYXY9N5nGB3Ag104NsagmLAA==", + "version": "2.37.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.37.2.tgz", + "integrity": "sha512-rz9YOBGItdSbe7HcSArUbhiAv4SB/4DKRYg96CSFS2CcIYMbUvBtZlzA1NCbk2AdgbmYwMqwNblLpR441lLeiQ==", "dev": true, "license": "CC0-1.0" }, @@ -31310,10 +28924,20 @@ "dev": true, "license": "MIT" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/micromark": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.3.tgz", + "integrity": "sha512-oGYfQzHSG5dOMovQcJ3fyTmZlWAWpi0XA0sJwJs+i6OT88o1+Jtw/8z0CmdowSLxGhhFK89rQ/oXph/wN02PNw==", "dev": true, "funding": [ { @@ -31337,6 +28961,7 @@ "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-edit-map": "^1.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", @@ -31347,9 +28972,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.4.tgz", + "integrity": "sha512-wxEeE8v8XVvOrxn1TZj74qYhAtTQsSqufHVS3uNVyT1MupXxhyaHk8/9xDNPh9BmL77QNDgWTkZ3RsYHB2ry7w==", "dev": true, "funding": [ { @@ -31367,18 +28992,19 @@ "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", + "micromark-factory-space": "^2.1.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", + "micromark-util-edit-map": "^1.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "micromark-util-types": "^2.0.3" } }, "node_modules/micromark-extension-frontmatter": { @@ -31546,6 +29172,113 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/micromark-factory-destination": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", @@ -31591,10 +29324,38 @@ "micromark-util-types": "^2.0.0" } }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, "node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.1.0.tgz", + "integrity": "sha512-fS8hnLIjnjvdQIj39Geug8wWsR0HrYZ43KShKxNfwT7t2LOHo/LbWZEzEaSOjwtjdCsjoE6syHhonEzW0zv0+Q==", "dev": true, "funding": [ { @@ -31785,6 +29546,26 @@ "micromark-util-symbol": "^2.0.0" } }, + "node_modules/micromark-util-edit-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-edit-map/-/micromark-util-edit-map-1.0.0.tgz", + "integrity": "sha512-Pa2ljlsEL6sVwFaYeyrOLSYbQt73JvGbPOYFq+9AElXiSnfI5Q4465RRZ1sHv7lDjDOnGRDDaqPXqClqWK/q1Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, "node_modules/micromark-util-encode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", @@ -31802,6 +29583,32 @@ ], "license": "MIT" }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, "node_modules/micromark-util-html-tag-name": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", @@ -31922,9 +29729,9 @@ "license": "MIT" }, "node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.3.tgz", + "integrity": "sha512-oxB2Ik03hI0gv+VNn9tnh1t1YEe9MDPptViAEgfdf3YQHsn0pzGTgCdlSCJXcwhqm8phaEuM7zeEu3QQzVBrPg==", "dev": true, "funding": [ { @@ -31938,6 +29745,33 @@ ], "license": "MIT" }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", @@ -32008,16 +29842,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mini-svg-data-uri": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", - "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", - "dev": true, - "license": "MIT", - "bin": { - "mini-svg-data-uri": "cli.js" - } - }, "node_modules/minimatch": { "version": "10.2.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", @@ -32050,6 +29874,7 @@ "integrity": "sha512-PCN1x1OzFeFB2GlP91s46q7Gz8Jf16Z7M45bzpoqrYZlh12QeY6tYVM5h299wbwy1DxnQ69VFmmh8Hb2Ff8mbw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.31", "jest-worker": "^27.4.5", @@ -32123,6 +29948,7 @@ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -32138,6 +29964,7 @@ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -32177,6 +30004,7 @@ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "minimist": "^1.2.6" }, @@ -32251,6 +30079,43 @@ "dev": true, "license": "MIT" }, + "node_modules/motion": { + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/motion/-/motion-14.3.0.tgz", + "integrity": "sha512-yh/nHYjikl68+FTxAMywFYzzj21/oGY7RGCfkqN5zpuT1rk3rp0lKfVU8EUq0A64qQeGnxuKUJWP85MipqdLBw==", + "license": "MIT", + "dependencies": { + "framer-motion": "14.3.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/motion-dom": { + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-14.3.0.tgz", + "integrity": "sha512-rcKO4aEJzAqDEsrH6qFzhLZxs7bNqZpiUEuEATz9LaRwt6dG7hZEbcFUSHNR8NECaKYM0Iuw6Iv6NpWEGXDI+w==", + "license": "MIT", + "dependencies": { + "motion-utils": "14.1.1" + } + }, + "node_modules/motion-utils": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-14.1.1.tgz", + "integrity": "sha512-3VvN5Uvf8B6qG+OfOui6Nht5EWp+vLuU3IqcAj7ItZGKqtmTjCebl5sGZF7/08gEHRnEl1AP/fIwbcEyVrcQGQ==", + "license": "MIT" + }, "node_modules/mri": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", @@ -32292,16 +30157,6 @@ "readable-stream": "^3.6.0" } }, - "node_modules/mute-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-3.0.0.tgz", - "integrity": "sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/mysql2": { "version": "3.24.4", "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.24.4.tgz", @@ -32423,13 +30278,6 @@ "node": ">=22.12.0" } }, - "node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, - "license": "MIT" - }, "node_modules/node-api-version": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.1.tgz", @@ -32583,6 +30431,41 @@ "node": "^20.17.0 || >=22.9.0" } }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/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/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -32606,6 +30489,91 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg/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/npm-package-arg/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -32638,147 +30606,11 @@ "dev": true, "license": "MIT" }, - "node_modules/nx": { - "version": "23.3.0", - "resolved": "https://registry.npmjs.org/nx/-/nx-23.3.0.tgz", - "integrity": "sha512-R7Kl+hURSGiG9uEjc19Cg3o+vGCDHqCVp6mioiBMEsOSol/LgzP+K8TVF06TnnSC8uzxMeB0ymu+LGMJGXnbbw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@clack/core": "1.4.3", - "@clack/prompts": "1.7.0", - "@emnapi/core": "1.4.5", - "@emnapi/runtime": "1.4.5", - "@emnapi/wasi-threads": "1.0.4", - "@jest/diff-sequences": "30.0.1", - "@napi-rs/wasm-runtime": "0.2.4", - "@tybys/wasm-util": "0.9.0", - "@yarnpkg/lockfile": "1.1.0", - "@zkochan/js-yaml": "0.0.7", - "ansi-regex": "5.0.1", - "ansi-styles": "4.3.0", - "argparse": "2.0.1", - "balanced-match": "4.0.3", - "base64-js": "1.5.1", - "bl": "4.1.0", - "brace-expansion": "5.0.12", - "buffer": "5.7.1", - "bundle-name": "4.1.0", - "chalk": "4.1.2", - "cli-cursor": "3.1.0", - "cli-spinners": "2.6.1", - "cliui": "8.0.1", - "clone": "1.0.4", - "color-convert": "2.0.1", - "color-name": "1.1.4", - "default-browser": "5.2.1", - "default-browser-id": "5.0.0", - "defaults": "1.0.4", - "define-lazy-prop": "3.0.0", - "dotenv": "16.4.7", - "dotenv-expand": "12.0.3", - "ejs": "5.0.1", - "emoji-regex": "8.0.0", - "end-of-stream": "1.4.5", - "escalade": "3.2.0", - "escape-string-regexp": "1.0.5", - "fast-string-truncated-width": "3.0.3", - "fast-string-width": "3.0.2", - "fast-wrap-ansi": "0.2.0", - "figures": "3.2.0", - "fs-constants": "1.0.0", - "get-caller-file": "2.0.5", - "has-flag": "4.0.0", - "ieee754": "1.2.1", - "ignore": "7.0.6", - "inherits": "2.0.4", - "is-docker": "3.0.0", - "is-fullwidth-code-point": "3.0.0", - "is-inside-container": "1.0.0", - "is-interactive": "1.0.0", - "is-unicode-supported": "0.1.0", - "is-wsl": "3.1.0", - "isexe": "2.0.0", - "json5": "2.2.3", - "jsonc-parser": "3.3.1", - "lines-and-columns": "2.0.3", - "log-symbols": "4.1.0", - "mimic-fn": "2.1.0", - "minimatch": "10.2.5", - "minimist": "1.2.8", - "npm-run-path": "4.0.1", - "once": "1.4.0", - "onetime": "5.1.2", - "open": "10.1.0", - "ora": "5.4.1", - "path-key": "3.1.1", - "picocolors": "1.1.1", - "readable-stream": "3.6.2", - "require-directory": "2.1.1", - "resolve.exports": "2.0.3", - "restore-cursor": "3.1.0", - "run-applescript": "7.0.0", - "safe-buffer": "5.2.1", - "semver": "7.8.5", - "signal-exit": "3.0.7", - "sisteransi": "1.0.5", - "smol-toml": "1.9.0", - "string_decoder": "1.3.0", - "string-width": "4.2.3", - "strip-ansi": "6.0.1", - "strip-bom": "3.0.0", - "supports-color": "7.2.0", - "tar-stream": "2.2.0", - "tmp": "0.2.7", - "tsconfig-paths": "4.2.0", - "tslib": "2.8.1", - "undici": "7.29.0", - "util-deprecate": "1.0.2", - "wcwidth": "1.0.1", - "which": "3.0.1", - "wrap-ansi": "7.0.0", - "wrappy": "1.0.2", - "y18n": "5.0.8", - "yaml": "2.9.0", - "yargs": "17.7.2", - "yargs-parser": "21.1.1" - }, - "bin": { - "nx": "dist/bin/nx.js", - "nx-cloud": "dist/bin/nx-cloud.js" - }, - "optionalDependencies": { - "@nx/nx-darwin-arm64": "23.3.0", - "@nx/nx-darwin-x64": "23.3.0", - "@nx/nx-freebsd-x64": "23.3.0", - "@nx/nx-linux-arm-gnueabihf": "23.3.0", - "@nx/nx-linux-arm64-gnu": "23.3.0", - "@nx/nx-linux-arm64-musl": "23.3.0", - "@nx/nx-linux-x64-gnu": "23.3.0", - "@nx/nx-linux-x64-musl": "23.3.0", - "@nx/nx-win32-arm64-msvc": "23.3.0", - "@nx/nx-win32-x64-msvc": "23.3.0" - }, - "peerDependencies": { - "@swc-node/register": "^1.11.1", - "@swc/core": "^1.15.8" - }, - "peerDependenciesMeta": { - "@swc-node/register": { - "optional": true - }, - "@swc/core": { - "optional": true - } - } - }, "node_modules/nx/node_modules/balanced-match": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz", "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==", - "dev": true, + "extraneous": true, "license": "MIT", "engines": { "node": "20 || >=22" @@ -32788,14 +30620,14 @@ "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, + "extraneous": true, "license": "MIT" }, "node_modules/nx/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, + "extraneous": true, "license": "MIT", "engines": { "node": ">=0.8.0" @@ -32805,7 +30637,7 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", - "dev": true, + "extraneous": true, "license": "MIT", "engines": { "node": ">= 4" @@ -32815,7 +30647,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "dev": true, + "extraneous": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -32831,7 +30663,7 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", - "dev": true, + "extraneous": true, "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -32847,7 +30679,7 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, + "extraneous": true, "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -33053,16 +30885,6 @@ "opencollective-postinstall": "index.js" } }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true, - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "bin/opener-bin.js" - } - }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -33081,30 +30903,6 @@ "node": ">= 0.8.0" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/own-keys": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.2.tgz", @@ -33262,6 +31060,33 @@ "node": ">=6" } }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -33423,31 +31248,28 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "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": "^11.0.0", - "minipass": "^7.1.2" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", - "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "ISC" }, "node_modules/path-type": { "version": "4.0.0", @@ -33771,20 +31593,6 @@ "node": ">=14.19.0" } }, - "node_modules/portfinder": { - "version": "1.0.38", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz", - "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^3.2.6", - "debug": "^4.3.6" - }, - "engines": { - "node": ">= 10.12" - } - }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -33815,7 +31623,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.18", "picocolors": "^1.1.1", @@ -33825,87 +31632,98 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-modules": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-6.0.1.tgz", - "integrity": "sha512-zyo2sAkVvuZFFy0gc2+4O+xar5dYlaVy/ebO24KT0ftk/iJevSNyPyQellsBLlnccwh7f6V6Y4GvuKRYToNgpQ==", + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", "dev": true, "license": "MIT", "dependencies": { - "generic-names": "^4.0.0", - "icss-utils": "^5.1.0", - "lodash.camelcase": "^4.3.0", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "string-hash": "^1.1.3" + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "dev": true, - "license": "ISC", "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, + "license": "ISC", "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">= 6" } }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "node_modules/postcss-safe-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.1.0.tgz", + "integrity": "sha512-1WzZxRLaAFwEh6Do+zyGpjWV3nGJNxxhuh7Ubu/q1ICImMgZJnLwhoaEpRbG4pJppp2Y1ncL9ffA2f+LhrefQg==", "dev": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">=18.0" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": "^8.4.31" } }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">=12.0" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": "^8.4.29" } }, "node_modules/postcss-selector-parser": { @@ -33922,13 +31740,6 @@ "node": ">=4" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, "node_modules/postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", @@ -33979,6 +31790,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "commander": "^9.4.0" }, @@ -33996,6 +31808,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "engines": { "node": "^12.20.0 || >=14" } @@ -34092,6 +31905,13 @@ "node": ">=0.4.0" } }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "license": "ISC" + }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", @@ -34277,6 +32097,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -34317,7 +32158,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -34327,7 +32167,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.28.0" }, @@ -34355,6 +32194,30 @@ "read-binary-file-arch": "cli.js" } }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -34505,6 +32368,54 @@ "regjsparser": "bin/parser" } }, + "node_modules/remark-mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -34538,13 +32449,6 @@ "node": ">=9.3.0 || >=8.10.0 <9.0.0" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, - "license": "MIT" - }, "node_modules/resedit": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/resedit/-/resedit-1.7.2.tgz", @@ -34637,16 +32541,6 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", - "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/responselike": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-4.0.2.tgz", @@ -34663,20 +32557,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -34694,6 +32574,17 @@ "dev": true, "license": "MIT" }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -34701,6 +32592,7 @@ "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -34713,7 +32605,8 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/rimraf/node_modules/brace-expansion": { "version": "1.1.21", @@ -34721,6 +32614,7 @@ "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -34733,6 +32627,7 @@ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -34754,6 +32649,7 @@ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -34815,12 +32711,11 @@ } }, "node_modules/rollup": { - "version": "4.63.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.5.tgz", - "integrity": "sha512-KRWwmNLlPw5M7HcdYfm15oBv9n9LPtjzpzCIxS/phwqvPyxHSoKX6Y2YU3pxSPfy0CLquVgsx/j/hBi6OvH1Nw==", + "version": "4.64.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.64.8.tgz", + "integrity": "sha512-84drzDkIe/HXnPOc9ghGtvlYCL66EY7iULmGl6s65DwzduZMYNgQ0Y77TOWfpd0tGNL44G+2j0EiGCEosuNXPQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.9" }, @@ -34833,31 +32728,31 @@ }, "optionalDependencies": { "@napi-rs/lzma-linux-x64-gnu": "1.5.1", - "@rollup/rollup-android-arm-eabi": "4.63.5", - "@rollup/rollup-android-arm64": "4.63.5", - "@rollup/rollup-darwin-arm64": "4.63.5", - "@rollup/rollup-darwin-x64": "4.63.5", - "@rollup/rollup-freebsd-arm64": "4.63.5", - "@rollup/rollup-freebsd-x64": "4.63.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.63.5", - "@rollup/rollup-linux-arm-musleabihf": "4.63.5", - "@rollup/rollup-linux-arm64-gnu": "4.63.5", - "@rollup/rollup-linux-arm64-musl": "4.63.5", - "@rollup/rollup-linux-loong64-gnu": "4.63.5", - "@rollup/rollup-linux-loong64-musl": "4.63.5", - "@rollup/rollup-linux-ppc64-gnu": "4.63.5", - "@rollup/rollup-linux-ppc64-musl": "4.63.5", - "@rollup/rollup-linux-riscv64-gnu": "4.63.5", - "@rollup/rollup-linux-riscv64-musl": "4.63.5", - "@rollup/rollup-linux-s390x-gnu": "4.63.5", - "@rollup/rollup-linux-x64-gnu": "4.63.5", - "@rollup/rollup-linux-x64-musl": "4.63.5", - "@rollup/rollup-openbsd-x64": "4.63.5", - "@rollup/rollup-openharmony-arm64": "4.63.5", - "@rollup/rollup-win32-arm64-msvc": "4.63.5", - "@rollup/rollup-win32-ia32-msvc": "4.63.5", - "@rollup/rollup-win32-x64-gnu": "4.63.5", - "@rollup/rollup-win32-x64-msvc": "4.63.5", + "@rollup/rollup-android-arm-eabi": "4.64.8", + "@rollup/rollup-android-arm64": "4.64.8", + "@rollup/rollup-darwin-arm64": "4.64.8", + "@rollup/rollup-darwin-x64": "4.64.8", + "@rollup/rollup-freebsd-arm64": "4.64.8", + "@rollup/rollup-freebsd-x64": "4.64.8", + "@rollup/rollup-linux-arm-gnueabihf": "4.64.8", + "@rollup/rollup-linux-arm-musleabihf": "4.64.8", + "@rollup/rollup-linux-arm64-gnu": "4.64.8", + "@rollup/rollup-linux-arm64-musl": "4.64.8", + "@rollup/rollup-linux-loong64-gnu": "4.64.8", + "@rollup/rollup-linux-loong64-musl": "4.64.8", + "@rollup/rollup-linux-ppc64-gnu": "4.64.8", + "@rollup/rollup-linux-ppc64-musl": "4.64.8", + "@rollup/rollup-linux-riscv64-gnu": "4.64.8", + "@rollup/rollup-linux-riscv64-musl": "4.64.8", + "@rollup/rollup-linux-s390x-gnu": "4.64.8", + "@rollup/rollup-linux-x64-gnu": "4.64.8", + "@rollup/rollup-linux-x64-musl": "4.64.8", + "@rollup/rollup-openbsd-x64": "4.64.8", + "@rollup/rollup-openharmony-arm64": "4.64.8", + "@rollup/rollup-win32-arm64-msvc": "4.64.8", + "@rollup/rollup-win32-ia32-msvc": "4.64.8", + "@rollup/rollup-win32-x64-gnu": "4.64.8", + "@rollup/rollup-win32-x64-msvc": "4.64.8", "fsevents": "~2.3.2" } }, @@ -34913,6 +32808,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safe-array-concat": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", @@ -35050,6 +32969,7 @@ "integrity": "sha512-zJlMCZ0cAR5p/Y4oVpRoqioDMJcGxaXRrQ/4rP4WyR84vc5z/DolXdbvXeDpTwbtocDFr2rhPqHPErDCUtz2kA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/json-schema": "^7.0.15", "ajv": "^8.20.0", @@ -35079,13 +32999,6 @@ "node": "^14.0.0 || >=16.0.0" } }, - "node_modules/secure-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", - "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", - "dev": true, - "license": "MIT" - }, "node_modules/seek-bzip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-2.0.0.tgz", @@ -35347,13 +33260,6 @@ "node": ">=8" } }, - "node_modules/shell-exec": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shell-exec/-/shell-exec-1.0.2.tgz", - "integrity": "sha512-jyVd+kU2X+mWKMmGhx4fpWbPsjvD53k9ivqetutVW/BQ+WIZoDoP4d8vUMGezV6saZsiNoW2f9GIhg9Dondohg==", - "dev": true, - "license": "MIT" - }, "node_modules/side-channel": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", @@ -35446,13 +33352,6 @@ "node": ">=10" } }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "license": "MIT" - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -35463,19 +33362,6 @@ "node": ">=8" } }, - "node_modules/smol-toml": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.9.0.tgz", - "integrity": "sha512-hpd+HLON7HdZXqYchMM/+LaTTbdK0AU3NngIJ4KVyWbY9bfQqdL9cD+4yf6dUoU2Ap4VsU0JkQi6FxAI1B2mXQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 18" - }, - "funding": { - "url": "https://github.com/sponsors/cyyynthia" - } - }, "node_modules/sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -35543,6 +33429,42 @@ "source-map": "^0.6.0" } }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.24.tgz", + "integrity": "sha512-cLS9TtWkIQFyLkJ3/5aFQAOHOSKTlOs/7WDut/XPSdjom1fJhUdkepeJAKXa9Y05+FabHd0sti+Et559vDtkpQ==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", @@ -35688,13 +33610,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==", - "dev": true, - "license": "CC0-1.0" - }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -35836,6 +33751,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -35863,16 +33793,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/strip-dirs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-3.0.0.tgz", @@ -36033,6 +33953,54 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svelte-eslint-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.9.0.tgz", + "integrity": "sha512-aKdKQAZP7MobfVcQNyy5Yk0QjlC9m5T1lTS0qA7+0EIsFzFX3WgbGHfb8267QK+4hI8Az9+2f+hk5sp39op8sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.0.0", + "postcss": "^8.4.49", + "postcss-scss": "^4.0.9", + "postcss-selector-parser": "^7.0.0", + "semver": "^7.7.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0", + "pnpm": "10.34.6" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-eslint-parser/node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/swc-loader": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/swc-loader/-/swc-loader-0.1.15.tgz", @@ -36129,23 +34097,6 @@ "node": ">=18" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/tar/node_modules/yallist": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", @@ -36156,42 +34107,6 @@ "node": ">=18" } }, - "node_modules/tcp-port-used": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.3.tgz", - "integrity": "sha512-4CEQ3qRJYo+mtEbJ+OoQu3dF4TDkwaO3RDVC4UzP5cpAOIUWwuwPjD7sdxDFFqsMUjsXVVYBMlg/boAaloThMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4.3.1", - "is2": "2.0.1" - } - }, - "node_modules/tcp-port-used/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/tcp-port-used/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, "node_modules/tedious": { "version": "20.0.0", "resolved": "https://registry.npmjs.org/tedious/-/tedious-20.0.0.tgz", @@ -36292,6 +34207,7 @@ "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "mkdirp": "^0.5.1", "rimraf": "~2.6.2" @@ -36332,6 +34248,7 @@ "integrity": "sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", @@ -36350,7 +34267,8 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/terser/node_modules/source-map-support": { "version": "0.5.21", @@ -36358,6 +34276,7 @@ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -36387,100 +34306,6 @@ "integrity": "sha512-WnNH518NzmbSq9zgTPeoF8c+xmilS8rFIl1YKbk/ptuuc7p6cLNELNuPAzcmsYw450ca6bLa8j3t0VAtq435Vw==", "license": "Apache-2.0" }, - "node_modules/test-exclude": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz", - "integrity": "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^10.4.1", - "minimatch": "^10.2.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/test-exclude/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/test-exclude/node_modules/brace-expansion": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", - "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "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/test-exclude/node_modules/glob/node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/test-exclude/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/test-exclude/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/text-decoder": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", @@ -36615,6 +34440,19 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -36708,6 +34546,17 @@ "node": ">= 14.0.0" } }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/truncate-utf8-bytes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", @@ -36737,7 +34586,6 @@ "integrity": "sha512-rUQG+Ar95cNQf//KvsSjvabLpCTbwk+vKGWkAgiKFugqVwmOpGR7n7xa3S68/AB21Wn0KNhIAVxmxrUsz0L1AQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "bs-logger": "^0.2.6", "fast-json-stable-stringify": "^2.1.0", @@ -36791,7 +34639,6 @@ "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -36831,27 +34678,12 @@ } }, "node_modules/ts-pattern": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-5.9.0.tgz", - "integrity": "sha512-6s5V71mX8qBUmlgbrfL33xDUwO0fq48rxAu2LBE11WBeGdpCPOsXksQbZJHvHwhrd3QjUusd3mAOM5Gg0mFBLg==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-5.9.2.tgz", + "integrity": "sha512-qAf+7M7Jjk7uebZeIo9uEzyintfuRtgHdzM9dqxRKcMi2dt76Ec+FH2wW3bnU9TuGLkZIJLoLs7cCQnU7Tu8ig==", "dev": true, "license": "MIT" }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -36981,6 +34813,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, "node_modules/typescript": { "name": "@typescript/typescript6", "version": "6.0.2", @@ -36988,7 +34827,6 @@ "integrity": "sha512-mbCddXd+jm7hfx7w2YU64/Av4/NqqeG3GoRZgxPcgoTxYjhrcfJRw9ULch71SS4G+Q3bOXFhRvPqjguN0Hyp5w==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@typescript/old": "npm:typescript@^6" }, @@ -36997,16 +34835,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.70.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.70.1.tgz", - "integrity": "sha512-AcWG7KDjZ2THNXsgwttMaGmzVi0VFRlFYfqFHYQRbDpF3owuYbuiL8c7UUrd2k8s3PoSfIQrWfrGXfcElrWLYA==", + "version": "8.71.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.71.2.tgz", + "integrity": "sha512-Rz4effbMy2g9wnvOJZG6SbVavX313Lap1vNEbk1RUochzickvzP8P4HB+bkNg5e50eVz1hQGjh9K1omI1xB4Bw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.70.1", - "@typescript-eslint/parser": "8.70.1", - "@typescript-eslint/typescript-estree": "8.70.1", - "@typescript-eslint/utils": "8.70.1" + "@typescript-eslint/eslint-plugin": "8.71.2", + "@typescript-eslint/parser": "8.71.2", + "@typescript-eslint/typescript-estree": "8.71.2", + "@typescript-eslint/utils": "8.71.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -37150,16 +34988,142 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/union": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", - "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "dev": true, + "license": "MIT", "dependencies": { - "qs": "^6.4.0" + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified-engine": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-11.2.2.tgz", + "integrity": "sha512-15g/gWE7qQl9tQ3nAEbMd5h9HV1EACtFs6N9xaRBZICoCwnNGbal1kOs++ICf4aiTdItZxU2s/kYWhW7htlqJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/concat-stream": "^2.0.0", + "@types/debug": "^4.0.0", + "@types/is-empty": "^1.0.0", + "@types/node": "^22.0.0", + "@types/unist": "^3.0.0", + "concat-stream": "^2.0.0", + "debug": "^4.0.0", + "extend": "^3.0.0", + "glob": "^10.0.0", + "ignore": "^6.0.0", + "is-empty": "^1.0.0", + "is-plain-obj": "^4.0.0", + "load-plugin": "^6.0.0", + "parse-json": "^7.0.0", + "trough": "^2.0.0", + "unist-util-inspect": "^8.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0", + "vfile-reporter": "^8.0.0", + "vfile-statistics": "^3.0.0", + "yaml": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified-engine/node_modules/@types/node": { + "version": "22.20.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.5.tgz", + "integrity": "sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/unified-engine/node_modules/ignore": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">= 4" + } + }, + "node_modules/unified-engine/node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unified-engine/node_modules/parse-json": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", + "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unified-engine/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unified-engine/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unist-util-inspect": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-8.1.0.tgz", + "integrity": "sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-is": { @@ -37176,6 +35140,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-remove-position": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", @@ -37376,13 +35354,6 @@ "dev": true, "license": "http://geraintluff.github.io/tv4/LICENSE.txt" }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true, - "license": "MIT" - }, "node_modules/use-sync-external-store": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.7.0.tgz", @@ -37441,6 +35412,27 @@ "node": ">=10.12.0" } }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/validator": { "version": "13.15.26", "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.26.tgz", @@ -37482,6 +35474,154 @@ "url": "https://github.com/sponsors/sxzz" } }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-reporter": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.1.tgz", + "integrity": "sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/supports-color": "^8.0.0", + "string-width": "^6.0.0", + "supports-color": "^9.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0", + "vfile-sort": "^4.0.0", + "vfile-statistics": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-reporter/node_modules/ansi-regex": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz", + "integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/vfile-reporter/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/vfile-reporter/node_modules/string-width": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", + "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^10.2.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vfile-reporter/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/vfile-reporter/node_modules/supports-color": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/vfile-sort": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz", + "integrity": "sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-statistics": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz", + "integrity": "sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/vite": { "version": "8.3.1", "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.1.tgz", @@ -37587,9 +35727,9 @@ } }, "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.14.tgz", - "integrity": "sha512-EQyqJMi552E4ZTf46izQ4Fj6XquqxCySR3J5ZSD1SisMf6RfpeOWHxGBE8Gr6V0/3GHIGdAzDn8F8+1nTGCnoQ==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.15.tgz", + "integrity": "sha512-Gsfr9S8LU3S6885cS+NaleasJ0n3V5y/SOTqHCifQiXWFw3G9w9/YItDfwHrlCz+dSZWWZ8ilYVMcJe7Sz7Sxw==", "dev": true, "license": "MIT" }, @@ -37626,6 +35766,13 @@ "node": ">=18" } }, + "node_modules/walk-up-path": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", + "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", + "dev": true, + "license": "ISC" + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -37648,6 +35795,7 @@ "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "graceful-fs": "^4.1.2" }, @@ -37655,16 +35803,6 @@ "node": ">=10.13.0" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/web-worker": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", @@ -37698,6 +35836,7 @@ "integrity": "sha512-cNypaz0RP+S4cvQVi1M/3bRUkvNP0xZpL0TjFx+c6jg64VbxD+2weWDgY9UnjRI6dhZgtaj8DU76GGFcJ79xPQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", @@ -37739,6 +35878,7 @@ "integrity": "sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10.13.0" } @@ -37749,6 +35889,7 @@ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -38444,7 +36585,6 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.5.tgz", "integrity": "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -38632,11 +36772,11 @@ "pngjs": "^7.0.0", "tesseract.js": "^7.0.0" }, - "peerDependencies": { - "@opencraw/core": "^0.0.1" - }, "engines": { "node": ">=22" + }, + "peerDependencies": { + "@opencraw/core": "^0.0.1" } }, "packages/office-reader": { @@ -38680,66 +36820,6 @@ "engines": { "node": ">=22" } - }, - "node_modules/framer-motion": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-14.3.0.tgz", - "integrity": "sha512-d8WCrU0ZQn7ukKMykCsDyIOwb/taZeDqqrDBK0du5GO0AO/ynz8fdR/LIIz9Pyy3n3tGwrneR+n0egyrrLa3fw==", - "license": "MIT", - "dependencies": { - "motion-dom": "14.3.0", - "motion-utils": "14.1.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/motion": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/motion/-/motion-14.3.0.tgz", - "integrity": "sha512-yh/nHYjikl68+FTxAMywFYzzj21/oGY7RGCfkqN5zpuT1rk3rp0lKfVU8EUq0A64qQeGnxuKUJWP85MipqdLBw==", - "license": "MIT", - "dependencies": { - "framer-motion": "14.3.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/motion-dom": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-14.3.0.tgz", - "integrity": "sha512-rcKO4aEJzAqDEsrH6qFzhLZxs7bNqZpiUEuEATz9LaRwt6dG7hZEbcFUSHNR8NECaKYM0Iuw6Iv6NpWEGXDI+w==", - "license": "MIT", - "dependencies": { - "motion-utils": "14.1.1" - } - }, - "node_modules/motion-utils": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-14.1.1.tgz", - "integrity": "sha512-3VvN5Uvf8B6qG+OfOui6Nht5EWp+vLuU3IqcAj7ItZGKqtmTjCebl5sGZF7/08gEHRnEl1AP/fIwbcEyVrcQGQ==", - "license": "MIT" } } } diff --git a/package.json b/package.json index be78e4eb..01225e56 100644 --- a/package.json +++ b/package.json @@ -3,82 +3,45 @@ "version": "0.0.0", "license": "MIT", "scripts": { - "build": "nx run-many -t build", - "lint": "nx run-many -t lint", - "test": "nx run-many -t test", - "typecheck": "nx run-many -t typecheck", - "affected": "nx affected -t lint,typecheck,test,build", - "graph": "nx graph", - "release:preview": "nx release --dry-run", + "build": "smith run build", + "lint": "smith run lint", + "test": "smith run test", + "typecheck": "smith run typecheck", + "affected": "smith run lint typecheck test build --affected", + "graph": "smith graph", + "release:preview": "smith release --dry-run", "prepare": "husky", "format": "eslint . --fix --cache", - "python:install": "node -e \"if(!require('node:fs').existsSync('requirements-dev.txt')){console.log('No Python projects - skipping.');process.exit(0)}const py=process.platform==='win32'?'python':'python3';process.exit(require('node:child_process').spawnSync(py+' -m pip install -r requirements-dev.txt',{stdio:'inherit',shell:true}).status ?? 1)\" && node -e \"const fs=require('node:fs'),path=require('node:path');const editableDirs=[...fs.globSync('apps/*/pyproject.toml'),...fs.globSync('python-packages/*/pyproject.toml'),...fs.globSync('libs/*/pyproject.toml')].map((p)=>path.dirname(p));const requirementsFiles=fs.globSync('apps/*/requirements.txt');if(editableDirs.length===0&&requirementsFiles.length===0){console.log('No Python projects - skipping.');process.exit(0)}const args=['-m','pip','install','--quiet',...editableDirs.flatMap((d)=>['-e',d]),...requirementsFiles.flatMap((f)=>['-r',f])];const py=process.platform==='win32'?'python':'python3';process.exit(require('node:child_process').spawnSync(py,args,{stdio:'inherit'}).status ?? 1)\"", - "core:qa": "nx run core:lint && nx run core:test", - "core:build": "nx run core:build", - "core:e2e": "nx run core:e2e", - "core:schemas": "nx run core:schemas", + "core:e2e": "smith run e2e -p core", + "core:schemas": "smith run schemas -p core", "playwright:install": "playwright install chromium", - "examples:check": "nx run core:build && node examples/check.mjs", - "examples:test": "nx run-many -t build -p core cli && node --test \"examples/*/*.test.mjs\"", - "docs:capture": "nx run core:build && node docs/how-it-works/capture/capture.mjs", - "docs:check": "nx run core:build && node docs/how-it-works/capture/capture.mjs --check", - "cli:qa": "nx run cli:lint && nx run cli:test", - "cli:build": "nx run cli:build", - "cli:e2e": "nx run cli:e2e", - "mcp:qa": "nx run mcp:lint && nx run mcp:test", - "mcp:build": "nx run mcp:build", - "office-reader:qa": "nx run office-reader:lint && nx run office-reader:test", - "office-reader:build": "nx run office-reader:build", - "office-reader:e2e": "nx run office-reader:e2e", - "captcha-tesseract:qa": "nx run captcha-tesseract:lint && nx run captcha-tesseract:test", - "captcha-tesseract:build": "nx run captcha-tesseract:build", - "captcha-tesseract:e2e": "nx run captcha-tesseract:e2e", - "ocr-tesseract:qa": "nx run ocr-tesseract:lint && nx run ocr-tesseract:test", - "ocr-tesseract:build": "nx run ocr-tesseract:build", - "azure-durable:qa": "nx run azure-durable:lint && nx run azure-durable:test", - "azure-durable:build": "nx run azure-durable:build", - "azure-durable:e2e": "nx run azure-durable:e2e", - "azure-host:qa": "nx run azure-host:lint && nx run azure-host:test", - "azure-host:build": "nx run azure-host:build", - "azure-host:start": "nx run azure-host:start", - "studio:qa": "nx run studio:lint && nx run studio:test", - "studio:build": "nx run studio:build", - "studio:e2e": "nx run studio:e2e", - "studio-ui:qa": "nx run studio-ui:lint && nx run studio-ui:test", - "studio-ui:build": "nx run studio-ui:build", - "studio-ui:start": "nx run studio-ui:serve", - "probe:qa": "nx run probe:lint && nx run probe:test", - "probe:build": "nx run probe:build", - "opencraw:qa": "nx run opencraw:lint && nx run opencraw:test", - "opencraw:build": "nx run opencraw:build", - "studio-desktop:qa": "nx run studio-desktop:lint && nx run studio-desktop:test", - "studio-desktop:build": "nx run studio-desktop:build", - "studio-desktop:start": "nx run studio-desktop:start", - "studio-desktop:e2e": "nx run studio-desktop:e2e", - "studio-desktop:package": "nx run studio-desktop:package", - "studio-desktop:package:dir": "nx run studio-desktop:package -- --dir", - "vscode:qa": "nx run @opencraw/vscode:lint && nx run @opencraw/vscode:test", - "vscode:build": "nx run @opencraw/vscode:build", - "vscode:package": "nx run @opencraw/vscode:package", - "vscode:e2e": "nx run @opencraw/vscode:e2e" + "examples:check": "smith run build -p core && node examples/check.mjs", + "examples:test": "smith run build -p core,cli && node --test \"examples/*/*.test.mjs\"", + "docs:capture": "smith run build -p core && node docs/how-it-works/capture/capture.mjs", + "docs:check": "smith run build -p core && node docs/how-it-works/capture/capture.mjs --check", + "cli:e2e": "smith run e2e -p cli", + "office-reader:e2e": "smith run e2e -p office-reader", + "captcha-tesseract:e2e": "smith run e2e -p captcha-tesseract", + "azure-durable:e2e": "smith run e2e -p azure-durable", + "studio:e2e": "smith run e2e -p studio", + "studio-desktop:e2e": "smith run e2e -p studio-desktop", + "studio-desktop:package": "smith run package -p studio-desktop", + "studio-desktop:package:dir": "smith run package:dir -p studio-desktop", + "vscode:qa": "smith run lint -p vscode-extension && smith run test -p vscode-extension", + "vscode:build": "smith run build -p vscode-extension", + "vscode:package": "smith run package -p vscode-extension", + "vscode:e2e": "smith run e2e -p vscode-extension", + "lint:workspace": "eslint . --cache --ignore-pattern \"apps/**\" --ignore-pattern \"libs/**\" --ignore-pattern \"packages/**\" --ignore-pattern \"python-packages/**\" --ignore-pattern package-lock.json" }, "private": true, "devDependencies": { + "@babel/preset-env": "^7.29.7", + "@babel/preset-react": "^7.29.7", + "@babel/preset-typescript": "^7.29.7", "@commitlint/cli": "^21.2.3", "@commitlint/config-conventional": "^21.2.3", - "@mnci/cli": ">=4.0.0 <5.0.0", - "@mnci/eslint-config": ">=0.1.0 <1.0.0", - "@mnci/nx-python-pip": "^0.2.23", - "@nx/esbuild": "23.3.0", - "@nx/eslint": "23.3.0", - "@nx/eslint-plugin": "23.3.0", - "@nx/jest": "23.3.0", - "@nx/js": "23.3.0", - "@nx/node": "^23.3.0", - "@nx/react": "^23.3.0", - "@nx/rollup": "23.3.0", - "@nx/vite": "23.3.0", - "@nx/web": "23.3.0", + "@monosmith/eslint-config": "^1.0.0", + "@rollup/plugin-node-resolve": "^15.3.1", "@swc-node/register": "1.11.1", "@swc/cli": "~0.8.1", "@swc/core": "1.15.8", @@ -104,10 +67,9 @@ "jest-environment-node": "~30.3.0", "jest-util": "~30.3.0", "jiti": "2.4.2", - "nx": "23.3.0", "react": "^19.0.0", "react-dom": "^19.0.0", - "rollup": "^4.14.0", + "rollup": "^4.64.8", "swc-loader": "0.1.15", "ts-jest": "^29.4.7", "ts-node": "10.9.1", @@ -130,24 +92,6 @@ "eslint-plugin-jsx-a11y": { "eslint": "$eslint" }, - "nx": { - "brace-expansion": "^5.0.9", - "smol-toml": "^1.7.1", - "axios": "^1.20.0", - "undici": "^7.29.1" - }, - "@nx/js": { - "brace-expansion": "^5.0.9" - }, - "@nx/eslint": { - "brace-expansion": "^5.0.9" - }, - "@nx/eslint-plugin": { - "brace-expansion": "^5.0.9" - }, - "@nx/workspace": { - "brace-expansion": "^5.0.9" - }, "postcss": { "nanoid": "^3.3.18" }, @@ -155,23 +99,7 @@ "uuid": "^11.1.1", "compression": "^1.8.2", "http-cache-semantics": "^4.3.0", - "source-map-js": "^1.2.2", - "@nx/react": { - "express": ">=4.0.0 <6.0.0" - } - }, - "nx": { - "includedScripts": [], - "targets": { - "lint": { - "executor": "nx:run-commands", - "cache": true, - "options": { - "command": "eslint . --cache --ignore-pattern \"apps/**\" --ignore-pattern \"libs/**\" --ignore-pattern \"packages/**\" --ignore-pattern \"python-packages/**\" --ignore-pattern package-lock.json", - "cwd": "." - } - } - } + "source-map-js": "^1.2.2" }, "dependencies": { "motion": "^14.3.0" diff --git a/packages/agent/package.json b/packages/agent/package.json index ccfd5619..9d43045c 100644 --- a/packages/agent/package.json +++ b/packages/agent/package.json @@ -41,21 +41,13 @@ "node": ">=22" }, "sideEffects": false, - "nx": { - "targets": { - "typecheck": { - "dependsOn": [ - "^build" - ] - }, - "lint": { - "dependsOn": [ - "^build" - ] - } - } - }, "devDependencies": { "yaml": "^2.9.1" + }, + "scripts": { + "build": "esbuild src/index.ts --bundle --packages=external --format=esm --outfile=dist/index.esm.js --sourcemap && tsc -p tsconfig.lib.json --emitDeclarationOnly --declaration --declarationDir dist/src --tsBuildInfoFile dist/src/tsconfig.lib.tsbuildinfo && node ../../declaration-specifiers.mjs dist/src", + "lint": "eslint .", + "test": "jest", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" } } diff --git a/packages/agent/rollup.config.cjs b/packages/agent/rollup.config.cjs deleted file mode 100644 index 3596d961..00000000 --- a/packages/agent/rollup.config.cjs +++ /dev/null @@ -1,116 +0,0 @@ -const { withNx } = require('@nx/rollup/with-nx') - -module.exports = withNx( - { - main: './src/index.ts', - outputPath: './dist', - tsConfig: './tsconfig.lib.json', - // Swapped from swc by MoNecromanCI. @nx/rollup runs swc without - // sourceMaps, so it returns no map and the bundle's map comes out empty - - // valid-looking, and useless for debugging. See ROADMAP. - compiler: 'babel', - format: ['esm'], - // Added by MoNecromanCI: without this rollup emits no .js.map at all, so - // a breakpoint in a .ts file can never bind. Not published - see `files`. - sourceMap: true, - }, - { - // Added by MoNecromanCI. rollup hands sourcemapPathTransform an OS-NATIVE - // path with one parent segment too many, so `sources` resolve to nothing - // and no breakpoint can bind. Separators are normalised too: a sources - // entry is URL-style, so a backslash is wrong on every platform. - output: { - sourcemapPathTransform: relativeSourcePath => - relativeSourcePath - .replaceAll(String.fromCodePoint(92), '/') - .replace(/^(\.\.\/)+/, '../'), - }, - // Added by MoNecromanCI. @nx/rollup's dts-bundle plugin writes dist/index.d.ts - // as a stub re-exporting the real declarations, and builds that specifier with - // path.relative() - an OS-NATIVE path. On Windows it emits - // export * from "./src\\index"; - // which is not a valid module specifier on ANY platform: a specifier is - // URL-style, so / is correct everywhere and a backslash nowhere. It resolves on - // Windows only because the resolver normalises separators there, leaving the - // package untyped on Linux and macOS. - // - // mnci also points `types` past this stub, so nothing depends on it being - // correct; this makes the emitted file correct too. Remove once Nx fixes the - // plugin - its own devkit already exports normalizePath for exactly this. - // - // The second half fixes a separate defect in the REAL declarations `types` - // points at: tsconfig.lib.json declares under moduleResolution "bundler", - // where a bare relative specifier ("./lib/align") is valid, so every emitted - // .d.ts keeps the source's own extensionless imports verbatim. A consumer on - // "moduleResolution": "nodenext" - the workspace root default - requires an - // explicit extension on every relative specifier and gets TS2834 (or, - // combined with skipLibCheck, a silent zero-export module) instead. Declared - // extensions are left untouched; only a bare relative specifier gets .js - // appended, matching what tsc itself emits under node16/nodenext. - plugins: [ - { - name: 'mnci-normalise-declaration-specifiers', - writeBundle (outputOptions) { - const { existsSync, readdirSync, readFileSync, writeFileSync } = require('node:fs') - const { join } = require('node:path') - const dir = outputOptions.dir ?? './dist' - const stub = join(dir, 'index.d.ts') - let source - try { - source = readFileSync(stub, 'utf8') - } catch { - return - } - // The stub carries a TWO-character escape (JSON.stringify escaped one - // backslash), so this must not match a single one - that would turn - // "./src\index" into "./src//index". Built from char codes so there is - // no escaping in this file to get wrong. - const separator = String.fromCodePoint(92, 92) - const normalised = source.replaceAll(separator, '/') - if (normalised !== source) writeFileSync(stub, normalised) - - const bareRelativeSpecifier = /from(\s+)(['"])(\.[^'"]+)\2/g - const hasExtension = /\.(?:mjs|cjs|jsx?|json)$/ - let entries - try { - entries = readdirSync(dir, { recursive: true, withFileTypes: true }) - } catch { - return - } - for (const entry of entries) { - if (!entry.name.endsWith('.d.ts')) continue - const from = entry.parentPath ?? entry.path - const filePath = join(from, entry.name) - let declaration - try { - declaration = readFileSync(filePath, 'utf8') - } catch { - continue - } - // A bare specifier may name a FILE or a DIRECTORY BARREL - resolved - // against what rollup actually emitted next to this file, never - // guessed. A directory needs /index.js, not .js (a file that was - // never written); anything neither form matches is left alone rather - // than rewritten to a specifier that cannot resolve. - const resolveSpecifierSuffix = (specifier) => { - if (hasExtension.test(specifier)) return null - if (existsSync(join(from, specifier + '.d.ts'))) return specifier + '.js' - if (existsSync(join(from, specifier, 'index.d.ts'))) return specifier + '/index.js' - - return null - } - const withExtensions = declaration.replaceAll( - bareRelativeSpecifier, - (match, space, quote, specifier) => { - const resolved = resolveSpecifierSuffix(specifier) - - return resolved === null ? match : `from${space}${quote}${resolved}${quote}` - }, - ) - if (withExtensions !== declaration) writeFileSync(filePath, withExtensions) - } - }, - }, - ], - }, -) diff --git a/packages/azure-durable/package.json b/packages/azure-durable/package.json index e5667758..c050bb9d 100644 --- a/packages/azure-durable/package.json +++ b/packages/azure-durable/package.json @@ -55,39 +55,11 @@ "node": ">=22" }, "sideEffects": false, - "nx": { - "targets": { - "typecheck": { - "dependsOn": [ - "^build" - ] - }, - "lint": { - "dependsOn": [ - "^build" - ] - }, - "e2e": { - "executor": "nx:run-commands", - "dependsOn": [ - "build", - { - "projects": [ - "@opencraw/core" - ], - "target": "build" - } - ], - "inputs": [ - "default", - "^production", - "{workspaceRoot}/packages/core/e2e/**" - ], - "options": { - "command": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", - "cwd": "packages/azure-durable" - } - } - } + "scripts": { + "build": "esbuild src/index.ts --bundle --packages=external --format=esm --outfile=dist/index.esm.js --sourcemap && tsc -p tsconfig.lib.json --emitDeclarationOnly --declaration --declarationDir dist/src --tsBuildInfoFile dist/src/tsconfig.lib.tsbuildinfo && node ../../declaration-specifiers.mjs dist/src", + "e2e": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", + "lint": "eslint .", + "test": "jest", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" } } diff --git a/packages/azure-durable/rollup.config.cjs b/packages/azure-durable/rollup.config.cjs deleted file mode 100644 index 3596d961..00000000 --- a/packages/azure-durable/rollup.config.cjs +++ /dev/null @@ -1,116 +0,0 @@ -const { withNx } = require('@nx/rollup/with-nx') - -module.exports = withNx( - { - main: './src/index.ts', - outputPath: './dist', - tsConfig: './tsconfig.lib.json', - // Swapped from swc by MoNecromanCI. @nx/rollup runs swc without - // sourceMaps, so it returns no map and the bundle's map comes out empty - - // valid-looking, and useless for debugging. See ROADMAP. - compiler: 'babel', - format: ['esm'], - // Added by MoNecromanCI: without this rollup emits no .js.map at all, so - // a breakpoint in a .ts file can never bind. Not published - see `files`. - sourceMap: true, - }, - { - // Added by MoNecromanCI. rollup hands sourcemapPathTransform an OS-NATIVE - // path with one parent segment too many, so `sources` resolve to nothing - // and no breakpoint can bind. Separators are normalised too: a sources - // entry is URL-style, so a backslash is wrong on every platform. - output: { - sourcemapPathTransform: relativeSourcePath => - relativeSourcePath - .replaceAll(String.fromCodePoint(92), '/') - .replace(/^(\.\.\/)+/, '../'), - }, - // Added by MoNecromanCI. @nx/rollup's dts-bundle plugin writes dist/index.d.ts - // as a stub re-exporting the real declarations, and builds that specifier with - // path.relative() - an OS-NATIVE path. On Windows it emits - // export * from "./src\\index"; - // which is not a valid module specifier on ANY platform: a specifier is - // URL-style, so / is correct everywhere and a backslash nowhere. It resolves on - // Windows only because the resolver normalises separators there, leaving the - // package untyped on Linux and macOS. - // - // mnci also points `types` past this stub, so nothing depends on it being - // correct; this makes the emitted file correct too. Remove once Nx fixes the - // plugin - its own devkit already exports normalizePath for exactly this. - // - // The second half fixes a separate defect in the REAL declarations `types` - // points at: tsconfig.lib.json declares under moduleResolution "bundler", - // where a bare relative specifier ("./lib/align") is valid, so every emitted - // .d.ts keeps the source's own extensionless imports verbatim. A consumer on - // "moduleResolution": "nodenext" - the workspace root default - requires an - // explicit extension on every relative specifier and gets TS2834 (or, - // combined with skipLibCheck, a silent zero-export module) instead. Declared - // extensions are left untouched; only a bare relative specifier gets .js - // appended, matching what tsc itself emits under node16/nodenext. - plugins: [ - { - name: 'mnci-normalise-declaration-specifiers', - writeBundle (outputOptions) { - const { existsSync, readdirSync, readFileSync, writeFileSync } = require('node:fs') - const { join } = require('node:path') - const dir = outputOptions.dir ?? './dist' - const stub = join(dir, 'index.d.ts') - let source - try { - source = readFileSync(stub, 'utf8') - } catch { - return - } - // The stub carries a TWO-character escape (JSON.stringify escaped one - // backslash), so this must not match a single one - that would turn - // "./src\index" into "./src//index". Built from char codes so there is - // no escaping in this file to get wrong. - const separator = String.fromCodePoint(92, 92) - const normalised = source.replaceAll(separator, '/') - if (normalised !== source) writeFileSync(stub, normalised) - - const bareRelativeSpecifier = /from(\s+)(['"])(\.[^'"]+)\2/g - const hasExtension = /\.(?:mjs|cjs|jsx?|json)$/ - let entries - try { - entries = readdirSync(dir, { recursive: true, withFileTypes: true }) - } catch { - return - } - for (const entry of entries) { - if (!entry.name.endsWith('.d.ts')) continue - const from = entry.parentPath ?? entry.path - const filePath = join(from, entry.name) - let declaration - try { - declaration = readFileSync(filePath, 'utf8') - } catch { - continue - } - // A bare specifier may name a FILE or a DIRECTORY BARREL - resolved - // against what rollup actually emitted next to this file, never - // guessed. A directory needs /index.js, not .js (a file that was - // never written); anything neither form matches is left alone rather - // than rewritten to a specifier that cannot resolve. - const resolveSpecifierSuffix = (specifier) => { - if (hasExtension.test(specifier)) return null - if (existsSync(join(from, specifier + '.d.ts'))) return specifier + '.js' - if (existsSync(join(from, specifier, 'index.d.ts'))) return specifier + '/index.js' - - return null - } - const withExtensions = declaration.replaceAll( - bareRelativeSpecifier, - (match, space, quote, specifier) => { - const resolved = resolveSpecifierSuffix(specifier) - - return resolved === null ? match : `from${space}${quote}${resolved}${quote}` - }, - ) - if (withExtensions !== declaration) writeFileSync(filePath, withExtensions) - } - }, - }, - ], - }, -) diff --git a/packages/captcha-tesseract/package.json b/packages/captcha-tesseract/package.json index fc9c1c7e..6fe6f445 100644 --- a/packages/captcha-tesseract/package.json +++ b/packages/captcha-tesseract/package.json @@ -46,29 +46,16 @@ "node": ">=20" }, "sideEffects": false, - "nx": { - "targets": { - "e2e": { - "executor": "nx:run-commands", - "dependsOn": [ - "build", - { - "projects": [ - "@opencraw/core" - ], - "target": "build" - } - ], - "inputs": [ - "default", - "^production", - "{workspaceRoot}/packages/core/e2e/**" - ], - "options": { - "command": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", - "cwd": "packages/captcha-tesseract" - } - } + "scripts": { + "build": "esbuild src/index.ts --bundle --packages=external --format=esm --outfile=dist/index.esm.js --sourcemap && tsc -p tsconfig.lib.json --emitDeclarationOnly --declaration --declarationDir dist/src --tsBuildInfoFile dist/src/tsconfig.lib.tsbuildinfo && node ../../declaration-specifiers.mjs dist/src", + "e2e": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", + "lint": "eslint .", + "test": "jest", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" + }, + "smith": { + "playwright": { + "flavour": "library" } } } diff --git a/packages/captcha-tesseract/rollup.config.cjs b/packages/captcha-tesseract/rollup.config.cjs deleted file mode 100644 index 3596d961..00000000 --- a/packages/captcha-tesseract/rollup.config.cjs +++ /dev/null @@ -1,116 +0,0 @@ -const { withNx } = require('@nx/rollup/with-nx') - -module.exports = withNx( - { - main: './src/index.ts', - outputPath: './dist', - tsConfig: './tsconfig.lib.json', - // Swapped from swc by MoNecromanCI. @nx/rollup runs swc without - // sourceMaps, so it returns no map and the bundle's map comes out empty - - // valid-looking, and useless for debugging. See ROADMAP. - compiler: 'babel', - format: ['esm'], - // Added by MoNecromanCI: without this rollup emits no .js.map at all, so - // a breakpoint in a .ts file can never bind. Not published - see `files`. - sourceMap: true, - }, - { - // Added by MoNecromanCI. rollup hands sourcemapPathTransform an OS-NATIVE - // path with one parent segment too many, so `sources` resolve to nothing - // and no breakpoint can bind. Separators are normalised too: a sources - // entry is URL-style, so a backslash is wrong on every platform. - output: { - sourcemapPathTransform: relativeSourcePath => - relativeSourcePath - .replaceAll(String.fromCodePoint(92), '/') - .replace(/^(\.\.\/)+/, '../'), - }, - // Added by MoNecromanCI. @nx/rollup's dts-bundle plugin writes dist/index.d.ts - // as a stub re-exporting the real declarations, and builds that specifier with - // path.relative() - an OS-NATIVE path. On Windows it emits - // export * from "./src\\index"; - // which is not a valid module specifier on ANY platform: a specifier is - // URL-style, so / is correct everywhere and a backslash nowhere. It resolves on - // Windows only because the resolver normalises separators there, leaving the - // package untyped on Linux and macOS. - // - // mnci also points `types` past this stub, so nothing depends on it being - // correct; this makes the emitted file correct too. Remove once Nx fixes the - // plugin - its own devkit already exports normalizePath for exactly this. - // - // The second half fixes a separate defect in the REAL declarations `types` - // points at: tsconfig.lib.json declares under moduleResolution "bundler", - // where a bare relative specifier ("./lib/align") is valid, so every emitted - // .d.ts keeps the source's own extensionless imports verbatim. A consumer on - // "moduleResolution": "nodenext" - the workspace root default - requires an - // explicit extension on every relative specifier and gets TS2834 (or, - // combined with skipLibCheck, a silent zero-export module) instead. Declared - // extensions are left untouched; only a bare relative specifier gets .js - // appended, matching what tsc itself emits under node16/nodenext. - plugins: [ - { - name: 'mnci-normalise-declaration-specifiers', - writeBundle (outputOptions) { - const { existsSync, readdirSync, readFileSync, writeFileSync } = require('node:fs') - const { join } = require('node:path') - const dir = outputOptions.dir ?? './dist' - const stub = join(dir, 'index.d.ts') - let source - try { - source = readFileSync(stub, 'utf8') - } catch { - return - } - // The stub carries a TWO-character escape (JSON.stringify escaped one - // backslash), so this must not match a single one - that would turn - // "./src\index" into "./src//index". Built from char codes so there is - // no escaping in this file to get wrong. - const separator = String.fromCodePoint(92, 92) - const normalised = source.replaceAll(separator, '/') - if (normalised !== source) writeFileSync(stub, normalised) - - const bareRelativeSpecifier = /from(\s+)(['"])(\.[^'"]+)\2/g - const hasExtension = /\.(?:mjs|cjs|jsx?|json)$/ - let entries - try { - entries = readdirSync(dir, { recursive: true, withFileTypes: true }) - } catch { - return - } - for (const entry of entries) { - if (!entry.name.endsWith('.d.ts')) continue - const from = entry.parentPath ?? entry.path - const filePath = join(from, entry.name) - let declaration - try { - declaration = readFileSync(filePath, 'utf8') - } catch { - continue - } - // A bare specifier may name a FILE or a DIRECTORY BARREL - resolved - // against what rollup actually emitted next to this file, never - // guessed. A directory needs /index.js, not .js (a file that was - // never written); anything neither form matches is left alone rather - // than rewritten to a specifier that cannot resolve. - const resolveSpecifierSuffix = (specifier) => { - if (hasExtension.test(specifier)) return null - if (existsSync(join(from, specifier + '.d.ts'))) return specifier + '.js' - if (existsSync(join(from, specifier, 'index.d.ts'))) return specifier + '/index.js' - - return null - } - const withExtensions = declaration.replaceAll( - bareRelativeSpecifier, - (match, space, quote, specifier) => { - const resolved = resolveSpecifierSuffix(specifier) - - return resolved === null ? match : `from${space}${quote}${resolved}${quote}` - }, - ) - if (withExtensions !== declaration) writeFileSync(filePath, withExtensions) - } - }, - }, - ], - }, -) diff --git a/packages/cli/package.json b/packages/cli/package.json index fc7f58e6..85f288dc 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -56,39 +56,11 @@ "node": ">=22" }, "sideEffects": false, - "nx": { - "targets": { - "typecheck": { - "dependsOn": [ - "^build" - ] - }, - "lint": { - "dependsOn": [ - "^build" - ] - }, - "e2e": { - "executor": "nx:run-commands", - "dependsOn": [ - "build", - { - "projects": [ - "@opencraw/core" - ], - "target": "e2e" - } - ], - "inputs": [ - "default", - "^production", - "{workspaceRoot}/packages/core/e2e/**" - ], - "options": { - "command": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", - "cwd": "packages/cli" - } - } - } + "scripts": { + "build": "esbuild src/index.ts --bundle --packages=external --format=esm --outfile=dist/index.esm.js --sourcemap && tsc -p tsconfig.lib.json --emitDeclarationOnly --declaration --declarationDir dist/src --tsBuildInfoFile dist/src/tsconfig.lib.tsbuildinfo && node ../../declaration-specifiers.mjs dist/src", + "e2e": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", + "lint": "eslint .", + "test": "jest", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" } } diff --git a/packages/cli/rollup.config.cjs b/packages/cli/rollup.config.cjs deleted file mode 100644 index 3596d961..00000000 --- a/packages/cli/rollup.config.cjs +++ /dev/null @@ -1,116 +0,0 @@ -const { withNx } = require('@nx/rollup/with-nx') - -module.exports = withNx( - { - main: './src/index.ts', - outputPath: './dist', - tsConfig: './tsconfig.lib.json', - // Swapped from swc by MoNecromanCI. @nx/rollup runs swc without - // sourceMaps, so it returns no map and the bundle's map comes out empty - - // valid-looking, and useless for debugging. See ROADMAP. - compiler: 'babel', - format: ['esm'], - // Added by MoNecromanCI: without this rollup emits no .js.map at all, so - // a breakpoint in a .ts file can never bind. Not published - see `files`. - sourceMap: true, - }, - { - // Added by MoNecromanCI. rollup hands sourcemapPathTransform an OS-NATIVE - // path with one parent segment too many, so `sources` resolve to nothing - // and no breakpoint can bind. Separators are normalised too: a sources - // entry is URL-style, so a backslash is wrong on every platform. - output: { - sourcemapPathTransform: relativeSourcePath => - relativeSourcePath - .replaceAll(String.fromCodePoint(92), '/') - .replace(/^(\.\.\/)+/, '../'), - }, - // Added by MoNecromanCI. @nx/rollup's dts-bundle plugin writes dist/index.d.ts - // as a stub re-exporting the real declarations, and builds that specifier with - // path.relative() - an OS-NATIVE path. On Windows it emits - // export * from "./src\\index"; - // which is not a valid module specifier on ANY platform: a specifier is - // URL-style, so / is correct everywhere and a backslash nowhere. It resolves on - // Windows only because the resolver normalises separators there, leaving the - // package untyped on Linux and macOS. - // - // mnci also points `types` past this stub, so nothing depends on it being - // correct; this makes the emitted file correct too. Remove once Nx fixes the - // plugin - its own devkit already exports normalizePath for exactly this. - // - // The second half fixes a separate defect in the REAL declarations `types` - // points at: tsconfig.lib.json declares under moduleResolution "bundler", - // where a bare relative specifier ("./lib/align") is valid, so every emitted - // .d.ts keeps the source's own extensionless imports verbatim. A consumer on - // "moduleResolution": "nodenext" - the workspace root default - requires an - // explicit extension on every relative specifier and gets TS2834 (or, - // combined with skipLibCheck, a silent zero-export module) instead. Declared - // extensions are left untouched; only a bare relative specifier gets .js - // appended, matching what tsc itself emits under node16/nodenext. - plugins: [ - { - name: 'mnci-normalise-declaration-specifiers', - writeBundle (outputOptions) { - const { existsSync, readdirSync, readFileSync, writeFileSync } = require('node:fs') - const { join } = require('node:path') - const dir = outputOptions.dir ?? './dist' - const stub = join(dir, 'index.d.ts') - let source - try { - source = readFileSync(stub, 'utf8') - } catch { - return - } - // The stub carries a TWO-character escape (JSON.stringify escaped one - // backslash), so this must not match a single one - that would turn - // "./src\index" into "./src//index". Built from char codes so there is - // no escaping in this file to get wrong. - const separator = String.fromCodePoint(92, 92) - const normalised = source.replaceAll(separator, '/') - if (normalised !== source) writeFileSync(stub, normalised) - - const bareRelativeSpecifier = /from(\s+)(['"])(\.[^'"]+)\2/g - const hasExtension = /\.(?:mjs|cjs|jsx?|json)$/ - let entries - try { - entries = readdirSync(dir, { recursive: true, withFileTypes: true }) - } catch { - return - } - for (const entry of entries) { - if (!entry.name.endsWith('.d.ts')) continue - const from = entry.parentPath ?? entry.path - const filePath = join(from, entry.name) - let declaration - try { - declaration = readFileSync(filePath, 'utf8') - } catch { - continue - } - // A bare specifier may name a FILE or a DIRECTORY BARREL - resolved - // against what rollup actually emitted next to this file, never - // guessed. A directory needs /index.js, not .js (a file that was - // never written); anything neither form matches is left alone rather - // than rewritten to a specifier that cannot resolve. - const resolveSpecifierSuffix = (specifier) => { - if (hasExtension.test(specifier)) return null - if (existsSync(join(from, specifier + '.d.ts'))) return specifier + '.js' - if (existsSync(join(from, specifier, 'index.d.ts'))) return specifier + '/index.js' - - return null - } - const withExtensions = declaration.replaceAll( - bareRelativeSpecifier, - (match, space, quote, specifier) => { - const resolved = resolveSpecifierSuffix(specifier) - - return resolved === null ? match : `from${space}${quote}${resolved}${quote}` - }, - ) - if (withExtensions !== declaration) writeFileSync(filePath, withExtensions) - } - }, - }, - ], - }, -) diff --git a/packages/core/package.json b/packages/core/package.json index 29296d03..4e9a0819 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -20,7 +20,13 @@ "!**/*.js.map" ], "scripts": { - "prepublishOnly": "node -e \"for (const f of ['dist/index.esm.js', 'dist/src/index.d.ts']) if (!require('node:fs').existsSync(f)) { console.error('@opencraw/core: ' + f + ' is missing, so this publish would ship no code: build first (0.1.47 went out like that)'); process.exit(1) }\"" + "prepublishOnly": "node -e \"for (const f of ['dist/index.esm.js', 'dist/src/index.d.ts']) if (!require('node:fs').existsSync(f)) { console.error('@opencraw/core: ' + f + ' is missing, so this publish would ship no code: build first (0.1.47 went out like that)'); process.exit(1) }\"", + "build": "esbuild src/index.ts --bundle --packages=external --format=esm --outfile=dist/index.esm.js --sourcemap && tsc -p tsconfig.lib.json --emitDeclarationOnly --declaration --declarationDir dist/src --tsBuildInfoFile dist/src/tsconfig.lib.tsbuildinfo && node ../../declaration-specifiers.mjs dist/src", + "e2e": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", + "lint": "eslint .", + "schemas": "node tools/emit-json-schemas.mjs", + "test": "jest", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" }, "dependencies": { "@napi-rs/canvas": "^1.0.0", @@ -58,40 +64,5 @@ "engines": { "node": ">=22" }, - "sideEffects": false, - "nx": { - "targets": { - "e2e": { - "executor": "nx:run-commands", - "dependsOn": [ - "build", - "^build" - ], - "options": { - "command": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", - "cwd": "packages/core" - } - }, - "schemas": { - "executor": "nx:run-commands", - "dependsOn": [ - "build" - ], - "options": { - "command": "node tools/emit-json-schemas.mjs", - "cwd": "packages/core" - } - }, - "typecheck": { - "dependsOn": [ - "^build" - ] - }, - "lint": { - "dependsOn": [ - "^build" - ] - } - } - } + "sideEffects": false } diff --git a/packages/core/rollup.config.cjs b/packages/core/rollup.config.cjs deleted file mode 100644 index 3596d961..00000000 --- a/packages/core/rollup.config.cjs +++ /dev/null @@ -1,116 +0,0 @@ -const { withNx } = require('@nx/rollup/with-nx') - -module.exports = withNx( - { - main: './src/index.ts', - outputPath: './dist', - tsConfig: './tsconfig.lib.json', - // Swapped from swc by MoNecromanCI. @nx/rollup runs swc without - // sourceMaps, so it returns no map and the bundle's map comes out empty - - // valid-looking, and useless for debugging. See ROADMAP. - compiler: 'babel', - format: ['esm'], - // Added by MoNecromanCI: without this rollup emits no .js.map at all, so - // a breakpoint in a .ts file can never bind. Not published - see `files`. - sourceMap: true, - }, - { - // Added by MoNecromanCI. rollup hands sourcemapPathTransform an OS-NATIVE - // path with one parent segment too many, so `sources` resolve to nothing - // and no breakpoint can bind. Separators are normalised too: a sources - // entry is URL-style, so a backslash is wrong on every platform. - output: { - sourcemapPathTransform: relativeSourcePath => - relativeSourcePath - .replaceAll(String.fromCodePoint(92), '/') - .replace(/^(\.\.\/)+/, '../'), - }, - // Added by MoNecromanCI. @nx/rollup's dts-bundle plugin writes dist/index.d.ts - // as a stub re-exporting the real declarations, and builds that specifier with - // path.relative() - an OS-NATIVE path. On Windows it emits - // export * from "./src\\index"; - // which is not a valid module specifier on ANY platform: a specifier is - // URL-style, so / is correct everywhere and a backslash nowhere. It resolves on - // Windows only because the resolver normalises separators there, leaving the - // package untyped on Linux and macOS. - // - // mnci also points `types` past this stub, so nothing depends on it being - // correct; this makes the emitted file correct too. Remove once Nx fixes the - // plugin - its own devkit already exports normalizePath for exactly this. - // - // The second half fixes a separate defect in the REAL declarations `types` - // points at: tsconfig.lib.json declares under moduleResolution "bundler", - // where a bare relative specifier ("./lib/align") is valid, so every emitted - // .d.ts keeps the source's own extensionless imports verbatim. A consumer on - // "moduleResolution": "nodenext" - the workspace root default - requires an - // explicit extension on every relative specifier and gets TS2834 (or, - // combined with skipLibCheck, a silent zero-export module) instead. Declared - // extensions are left untouched; only a bare relative specifier gets .js - // appended, matching what tsc itself emits under node16/nodenext. - plugins: [ - { - name: 'mnci-normalise-declaration-specifiers', - writeBundle (outputOptions) { - const { existsSync, readdirSync, readFileSync, writeFileSync } = require('node:fs') - const { join } = require('node:path') - const dir = outputOptions.dir ?? './dist' - const stub = join(dir, 'index.d.ts') - let source - try { - source = readFileSync(stub, 'utf8') - } catch { - return - } - // The stub carries a TWO-character escape (JSON.stringify escaped one - // backslash), so this must not match a single one - that would turn - // "./src\index" into "./src//index". Built from char codes so there is - // no escaping in this file to get wrong. - const separator = String.fromCodePoint(92, 92) - const normalised = source.replaceAll(separator, '/') - if (normalised !== source) writeFileSync(stub, normalised) - - const bareRelativeSpecifier = /from(\s+)(['"])(\.[^'"]+)\2/g - const hasExtension = /\.(?:mjs|cjs|jsx?|json)$/ - let entries - try { - entries = readdirSync(dir, { recursive: true, withFileTypes: true }) - } catch { - return - } - for (const entry of entries) { - if (!entry.name.endsWith('.d.ts')) continue - const from = entry.parentPath ?? entry.path - const filePath = join(from, entry.name) - let declaration - try { - declaration = readFileSync(filePath, 'utf8') - } catch { - continue - } - // A bare specifier may name a FILE or a DIRECTORY BARREL - resolved - // against what rollup actually emitted next to this file, never - // guessed. A directory needs /index.js, not .js (a file that was - // never written); anything neither form matches is left alone rather - // than rewritten to a specifier that cannot resolve. - const resolveSpecifierSuffix = (specifier) => { - if (hasExtension.test(specifier)) return null - if (existsSync(join(from, specifier + '.d.ts'))) return specifier + '.js' - if (existsSync(join(from, specifier, 'index.d.ts'))) return specifier + '/index.js' - - return null - } - const withExtensions = declaration.replaceAll( - bareRelativeSpecifier, - (match, space, quote, specifier) => { - const resolved = resolveSpecifierSuffix(specifier) - - return resolved === null ? match : `from${space}${quote}${resolved}${quote}` - }, - ) - if (withExtensions !== declaration) writeFileSync(filePath, withExtensions) - } - }, - }, - ], - }, -) diff --git a/packages/mcp/package.json b/packages/mcp/package.json index c645da51..5bb34dbf 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -52,69 +52,12 @@ "node": ">=22" }, "sideEffects": false, - "nx": { - "targets": { - "typecheck": { - "dependsOn": [ - "^build" - ] - }, - "lint": { - "dependsOn": [ - "^build" - ] - }, - "e2e": { - "executor": "nx:run-commands", - "dependsOn": [ - "build", - { - "projects": [ - "@opencraw/core" - ], - "target": "e2e" - }, - { - "projects": [ - "@opencraw/cli" - ], - "target": "e2e" - }, - "copy-docs" - ], - "inputs": [ - "default", - "^production", - "{workspaceRoot}/packages/core/e2e/**" - ], - "options": { - "command": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", - "cwd": "packages/mcp" - } - }, - "copy-docs": { - "executor": "nx:run-commands", - "cache": true, - "inputs": [ - "{workspaceRoot}/docs/recipes/*.md", - "{workspaceRoot}/docs/how-it-works/*.md", - "{workspaceRoot}/docs/studio/*.md", - "{projectRoot}/scripts/copy-docs.mjs" - ], - "outputs": [ - "{projectRoot}/docs" - ], - "options": { - "command": "node scripts/copy-docs.mjs", - "cwd": "packages/mcp" - } - }, - "build": { - "dependsOn": [ - "^build", - "copy-docs" - ] - } - } + "scripts": { + "build": "esbuild src/index.ts --bundle --packages=external --format=esm --outfile=dist/index.esm.js --sourcemap && tsc -p tsconfig.lib.json --emitDeclarationOnly --declaration --declarationDir dist/src --tsBuildInfoFile dist/src/tsconfig.lib.tsbuildinfo && node ../../declaration-specifiers.mjs dist/src", + "copy-docs": "node scripts/copy-docs.mjs", + "e2e": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", + "lint": "eslint .", + "test": "jest", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" } } diff --git a/packages/mcp/rollup.config.cjs b/packages/mcp/rollup.config.cjs deleted file mode 100644 index 3596d961..00000000 --- a/packages/mcp/rollup.config.cjs +++ /dev/null @@ -1,116 +0,0 @@ -const { withNx } = require('@nx/rollup/with-nx') - -module.exports = withNx( - { - main: './src/index.ts', - outputPath: './dist', - tsConfig: './tsconfig.lib.json', - // Swapped from swc by MoNecromanCI. @nx/rollup runs swc without - // sourceMaps, so it returns no map and the bundle's map comes out empty - - // valid-looking, and useless for debugging. See ROADMAP. - compiler: 'babel', - format: ['esm'], - // Added by MoNecromanCI: without this rollup emits no .js.map at all, so - // a breakpoint in a .ts file can never bind. Not published - see `files`. - sourceMap: true, - }, - { - // Added by MoNecromanCI. rollup hands sourcemapPathTransform an OS-NATIVE - // path with one parent segment too many, so `sources` resolve to nothing - // and no breakpoint can bind. Separators are normalised too: a sources - // entry is URL-style, so a backslash is wrong on every platform. - output: { - sourcemapPathTransform: relativeSourcePath => - relativeSourcePath - .replaceAll(String.fromCodePoint(92), '/') - .replace(/^(\.\.\/)+/, '../'), - }, - // Added by MoNecromanCI. @nx/rollup's dts-bundle plugin writes dist/index.d.ts - // as a stub re-exporting the real declarations, and builds that specifier with - // path.relative() - an OS-NATIVE path. On Windows it emits - // export * from "./src\\index"; - // which is not a valid module specifier on ANY platform: a specifier is - // URL-style, so / is correct everywhere and a backslash nowhere. It resolves on - // Windows only because the resolver normalises separators there, leaving the - // package untyped on Linux and macOS. - // - // mnci also points `types` past this stub, so nothing depends on it being - // correct; this makes the emitted file correct too. Remove once Nx fixes the - // plugin - its own devkit already exports normalizePath for exactly this. - // - // The second half fixes a separate defect in the REAL declarations `types` - // points at: tsconfig.lib.json declares under moduleResolution "bundler", - // where a bare relative specifier ("./lib/align") is valid, so every emitted - // .d.ts keeps the source's own extensionless imports verbatim. A consumer on - // "moduleResolution": "nodenext" - the workspace root default - requires an - // explicit extension on every relative specifier and gets TS2834 (or, - // combined with skipLibCheck, a silent zero-export module) instead. Declared - // extensions are left untouched; only a bare relative specifier gets .js - // appended, matching what tsc itself emits under node16/nodenext. - plugins: [ - { - name: 'mnci-normalise-declaration-specifiers', - writeBundle (outputOptions) { - const { existsSync, readdirSync, readFileSync, writeFileSync } = require('node:fs') - const { join } = require('node:path') - const dir = outputOptions.dir ?? './dist' - const stub = join(dir, 'index.d.ts') - let source - try { - source = readFileSync(stub, 'utf8') - } catch { - return - } - // The stub carries a TWO-character escape (JSON.stringify escaped one - // backslash), so this must not match a single one - that would turn - // "./src\index" into "./src//index". Built from char codes so there is - // no escaping in this file to get wrong. - const separator = String.fromCodePoint(92, 92) - const normalised = source.replaceAll(separator, '/') - if (normalised !== source) writeFileSync(stub, normalised) - - const bareRelativeSpecifier = /from(\s+)(['"])(\.[^'"]+)\2/g - const hasExtension = /\.(?:mjs|cjs|jsx?|json)$/ - let entries - try { - entries = readdirSync(dir, { recursive: true, withFileTypes: true }) - } catch { - return - } - for (const entry of entries) { - if (!entry.name.endsWith('.d.ts')) continue - const from = entry.parentPath ?? entry.path - const filePath = join(from, entry.name) - let declaration - try { - declaration = readFileSync(filePath, 'utf8') - } catch { - continue - } - // A bare specifier may name a FILE or a DIRECTORY BARREL - resolved - // against what rollup actually emitted next to this file, never - // guessed. A directory needs /index.js, not .js (a file that was - // never written); anything neither form matches is left alone rather - // than rewritten to a specifier that cannot resolve. - const resolveSpecifierSuffix = (specifier) => { - if (hasExtension.test(specifier)) return null - if (existsSync(join(from, specifier + '.d.ts'))) return specifier + '.js' - if (existsSync(join(from, specifier, 'index.d.ts'))) return specifier + '/index.js' - - return null - } - const withExtensions = declaration.replaceAll( - bareRelativeSpecifier, - (match, space, quote, specifier) => { - const resolved = resolveSpecifierSuffix(specifier) - - return resolved === null ? match : `from${space}${quote}${resolved}${quote}` - }, - ) - if (withExtensions !== declaration) writeFileSync(filePath, withExtensions) - } - }, - }, - ], - }, -) diff --git a/packages/ocr-tesseract/package.json b/packages/ocr-tesseract/package.json index 3b87c785..3201cdc2 100644 --- a/packages/ocr-tesseract/package.json +++ b/packages/ocr-tesseract/package.json @@ -48,5 +48,11 @@ "engines": { "node": ">=22" }, - "sideEffects": false + "sideEffects": false, + "scripts": { + "build": "esbuild src/index.ts --bundle --packages=external --format=esm --outfile=dist/index.esm.js --sourcemap && tsc -p tsconfig.lib.json --emitDeclarationOnly --declaration --declarationDir dist/src --tsBuildInfoFile dist/src/tsconfig.lib.tsbuildinfo && node ../../declaration-specifiers.mjs dist/src", + "lint": "eslint .", + "test": "jest", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" + } } diff --git a/packages/ocr-tesseract/rollup.config.cjs b/packages/ocr-tesseract/rollup.config.cjs deleted file mode 100644 index 3596d961..00000000 --- a/packages/ocr-tesseract/rollup.config.cjs +++ /dev/null @@ -1,116 +0,0 @@ -const { withNx } = require('@nx/rollup/with-nx') - -module.exports = withNx( - { - main: './src/index.ts', - outputPath: './dist', - tsConfig: './tsconfig.lib.json', - // Swapped from swc by MoNecromanCI. @nx/rollup runs swc without - // sourceMaps, so it returns no map and the bundle's map comes out empty - - // valid-looking, and useless for debugging. See ROADMAP. - compiler: 'babel', - format: ['esm'], - // Added by MoNecromanCI: without this rollup emits no .js.map at all, so - // a breakpoint in a .ts file can never bind. Not published - see `files`. - sourceMap: true, - }, - { - // Added by MoNecromanCI. rollup hands sourcemapPathTransform an OS-NATIVE - // path with one parent segment too many, so `sources` resolve to nothing - // and no breakpoint can bind. Separators are normalised too: a sources - // entry is URL-style, so a backslash is wrong on every platform. - output: { - sourcemapPathTransform: relativeSourcePath => - relativeSourcePath - .replaceAll(String.fromCodePoint(92), '/') - .replace(/^(\.\.\/)+/, '../'), - }, - // Added by MoNecromanCI. @nx/rollup's dts-bundle plugin writes dist/index.d.ts - // as a stub re-exporting the real declarations, and builds that specifier with - // path.relative() - an OS-NATIVE path. On Windows it emits - // export * from "./src\\index"; - // which is not a valid module specifier on ANY platform: a specifier is - // URL-style, so / is correct everywhere and a backslash nowhere. It resolves on - // Windows only because the resolver normalises separators there, leaving the - // package untyped on Linux and macOS. - // - // mnci also points `types` past this stub, so nothing depends on it being - // correct; this makes the emitted file correct too. Remove once Nx fixes the - // plugin - its own devkit already exports normalizePath for exactly this. - // - // The second half fixes a separate defect in the REAL declarations `types` - // points at: tsconfig.lib.json declares under moduleResolution "bundler", - // where a bare relative specifier ("./lib/align") is valid, so every emitted - // .d.ts keeps the source's own extensionless imports verbatim. A consumer on - // "moduleResolution": "nodenext" - the workspace root default - requires an - // explicit extension on every relative specifier and gets TS2834 (or, - // combined with skipLibCheck, a silent zero-export module) instead. Declared - // extensions are left untouched; only a bare relative specifier gets .js - // appended, matching what tsc itself emits under node16/nodenext. - plugins: [ - { - name: 'mnci-normalise-declaration-specifiers', - writeBundle (outputOptions) { - const { existsSync, readdirSync, readFileSync, writeFileSync } = require('node:fs') - const { join } = require('node:path') - const dir = outputOptions.dir ?? './dist' - const stub = join(dir, 'index.d.ts') - let source - try { - source = readFileSync(stub, 'utf8') - } catch { - return - } - // The stub carries a TWO-character escape (JSON.stringify escaped one - // backslash), so this must not match a single one - that would turn - // "./src\index" into "./src//index". Built from char codes so there is - // no escaping in this file to get wrong. - const separator = String.fromCodePoint(92, 92) - const normalised = source.replaceAll(separator, '/') - if (normalised !== source) writeFileSync(stub, normalised) - - const bareRelativeSpecifier = /from(\s+)(['"])(\.[^'"]+)\2/g - const hasExtension = /\.(?:mjs|cjs|jsx?|json)$/ - let entries - try { - entries = readdirSync(dir, { recursive: true, withFileTypes: true }) - } catch { - return - } - for (const entry of entries) { - if (!entry.name.endsWith('.d.ts')) continue - const from = entry.parentPath ?? entry.path - const filePath = join(from, entry.name) - let declaration - try { - declaration = readFileSync(filePath, 'utf8') - } catch { - continue - } - // A bare specifier may name a FILE or a DIRECTORY BARREL - resolved - // against what rollup actually emitted next to this file, never - // guessed. A directory needs /index.js, not .js (a file that was - // never written); anything neither form matches is left alone rather - // than rewritten to a specifier that cannot resolve. - const resolveSpecifierSuffix = (specifier) => { - if (hasExtension.test(specifier)) return null - if (existsSync(join(from, specifier + '.d.ts'))) return specifier + '.js' - if (existsSync(join(from, specifier, 'index.d.ts'))) return specifier + '/index.js' - - return null - } - const withExtensions = declaration.replaceAll( - bareRelativeSpecifier, - (match, space, quote, specifier) => { - const resolved = resolveSpecifierSuffix(specifier) - - return resolved === null ? match : `from${space}${quote}${resolved}${quote}` - }, - ) - if (withExtensions !== declaration) writeFileSync(filePath, withExtensions) - } - }, - }, - ], - }, -) diff --git a/packages/office-reader/package.json b/packages/office-reader/package.json index fc5e4e7d..c9335d86 100644 --- a/packages/office-reader/package.json +++ b/packages/office-reader/package.json @@ -82,18 +82,16 @@ "node": ">=20" }, "sideEffects": false, - "nx": { - "targets": { - "e2e": { - "executor": "nx:run-commands", - "dependsOn": [ - "build" - ], - "options": { - "command": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", - "cwd": "packages/office-reader" - } - } + "scripts": { + "build": "esbuild index=src/index.ts xlsx=src/spreadsheet/index.ts pptx=src/presentation/index.ts docx=src/document/index.ts ods=src/opendocument-spreadsheet/index.ts odt=src/opendocument-text/index.ts odp=src/opendocument-presentation/index.ts --bundle --splitting --packages=external --format=esm --outdir=dist --out-extension:.js=.esm.js --chunk-names=chunks/[name]-[hash] --sourcemap && tsc -p tsconfig.lib.json --emitDeclarationOnly --declaration --declarationDir dist/src --tsBuildInfoFile dist/src/tsconfig.lib.tsbuildinfo && node ../../declaration-specifiers.mjs dist/src", + "e2e": "tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", + "lint": "eslint .", + "test": "jest", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" + }, + "smith": { + "playwright": { + "flavour": "library" } } } diff --git a/packages/office-reader/rollup.config.cjs b/packages/office-reader/rollup.config.cjs deleted file mode 100644 index 20a20fdb..00000000 --- a/packages/office-reader/rollup.config.cjs +++ /dev/null @@ -1,129 +0,0 @@ -const { withNx } = require('@nx/rollup/with-nx') - -module.exports = withNx( - { - main: './src/index.ts', - outputPath: './dist', - tsConfig: './tsconfig.lib.json', - // Swapped from swc by MoNecromanCI. @nx/rollup runs swc without - // sourceMaps, so it returns no map and the bundle's map comes out empty - - // valid-looking, and useless for debugging. See ROADMAP. - compiler: 'babel', - format: ['esm'], - // Added by MoNecromanCI: without this rollup emits no .js.map at all, so - // a breakpoint in a .ts file can never bind. Not published - see `files`. - sourceMap: true, - }, - { - // One entry per format, so `@opencraw/office-reader/xlsx` loads the - // spreadsheet reader alone (and `/pptx` the presentation reader, `/docx` the Word one). Set here rather than as `additionalEntryPoints`, - // which names an entry after its file and so collides every slice's - // index.ts with the main one. - input: { - index: `${__dirname}/src/index.ts`, - xlsx: `${__dirname}/src/spreadsheet/index.ts`, - pptx: `${__dirname}/src/presentation/index.ts`, - docx: `${__dirname}/src/document/index.ts`, - ods: `${__dirname}/src/opendocument-spreadsheet/index.ts`, - odt: `${__dirname}/src/opendocument-text/index.ts`, - odp: `${__dirname}/src/opendocument-presentation/index.ts`, - }, - // Added by MoNecromanCI. rollup hands sourcemapPathTransform an OS-NATIVE - // path with one parent segment too many, so `sources` resolve to nothing - // and no breakpoint can bind. Separators are normalised too: a sources - // entry is URL-style, so a backslash is wrong on every platform. - output: { - sourcemapPathTransform: relativeSourcePath => - relativeSourcePath - .replaceAll(String.fromCodePoint(92), '/') - .replace(/^(\.\.\/)+/, '../'), - }, - // Added by MoNecromanCI. @nx/rollup's dts-bundle plugin writes dist/index.d.ts - // as a stub re-exporting the real declarations, and builds that specifier with - // path.relative() - an OS-NATIVE path. On Windows it emits - // export * from "./src\\index"; - // which is not a valid module specifier on ANY platform: a specifier is - // URL-style, so / is correct everywhere and a backslash nowhere. It resolves on - // Windows only because the resolver normalises separators there, leaving the - // package untyped on Linux and macOS. - // - // mnci also points `types` past this stub, so nothing depends on it being - // correct; this makes the emitted file correct too. Remove once Nx fixes the - // plugin - its own devkit already exports normalizePath for exactly this. - // - // The second half fixes a separate defect in the REAL declarations `types` - // points at: tsconfig.lib.json declares under moduleResolution "bundler", - // where a bare relative specifier ("./lib/align") is valid, so every emitted - // .d.ts keeps the source's own extensionless imports verbatim. A consumer on - // "moduleResolution": "nodenext" - the workspace root default - requires an - // explicit extension on every relative specifier and gets TS2834 (or, - // combined with skipLibCheck, a silent zero-export module) instead. Declared - // extensions are left untouched; only a bare relative specifier gets .js - // appended, matching what tsc itself emits under node16/nodenext. - plugins: [ - { - name: 'mnci-normalise-declaration-specifiers', - writeBundle (outputOptions) { - const { existsSync, readdirSync, readFileSync, writeFileSync } = require('node:fs') - const { join } = require('node:path') - const dir = outputOptions.dir ?? './dist' - const stub = join(dir, 'index.d.ts') - let source - try { - source = readFileSync(stub, 'utf8') - } catch { - return - } - // The stub carries a TWO-character escape (JSON.stringify escaped one - // backslash), so this must not match a single one - that would turn - // "./src\index" into "./src//index". Built from char codes so there is - // no escaping in this file to get wrong. - const separator = String.fromCodePoint(92, 92) - const normalised = source.replaceAll(separator, '/') - if (normalised !== source) writeFileSync(stub, normalised) - - const bareRelativeSpecifier = /from(\s+)(['"])(\.[^'"]+)\2/g - const hasExtension = /\.(?:mjs|cjs|jsx?|json)$/ - let entries - try { - entries = readdirSync(dir, { recursive: true, withFileTypes: true }) - } catch { - return - } - for (const entry of entries) { - if (!entry.name.endsWith('.d.ts')) continue - const from = entry.parentPath ?? entry.path - const filePath = join(from, entry.name) - let declaration - try { - declaration = readFileSync(filePath, 'utf8') - } catch { - continue - } - // A bare specifier may name a FILE or a DIRECTORY BARREL - resolved - // against what rollup actually emitted next to this file, never - // guessed. A directory needs /index.js, not .js (a file that was - // never written); anything neither form matches is left alone rather - // than rewritten to a specifier that cannot resolve. - const resolveSpecifierSuffix = (specifier) => { - if (hasExtension.test(specifier)) return null - if (existsSync(join(from, specifier + '.d.ts'))) return specifier + '.js' - if (existsSync(join(from, specifier, 'index.d.ts'))) return specifier + '/index.js' - - return null - } - const withExtensions = declaration.replaceAll( - bareRelativeSpecifier, - (match, space, quote, specifier) => { - const resolved = resolveSpecifierSuffix(specifier) - - return resolved === null ? match : `from${space}${quote}${resolved}${quote}` - }, - ) - if (withExtensions !== declaration) writeFileSync(filePath, withExtensions) - } - }, - }, - ], - }, -) diff --git a/packages/probe/package.json b/packages/probe/package.json index d668aae7..a898015f 100644 --- a/packages/probe/package.json +++ b/packages/probe/package.json @@ -43,18 +43,10 @@ "node": ">=22" }, "sideEffects": false, - "nx": { - "targets": { - "typecheck": { - "dependsOn": [ - "^build" - ] - }, - "lint": { - "dependsOn": [ - "^build" - ] - } - } + "scripts": { + "build": "esbuild src/index.ts --bundle --packages=external --format=esm --outfile=dist/index.esm.js --sourcemap && tsc -p tsconfig.lib.json --emitDeclarationOnly --declaration --declarationDir dist/src --tsBuildInfoFile dist/src/tsconfig.lib.tsbuildinfo && node ../../declaration-specifiers.mjs dist/src", + "lint": "eslint .", + "test": "jest", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" } } diff --git a/packages/probe/rollup.config.cjs b/packages/probe/rollup.config.cjs deleted file mode 100644 index 3596d961..00000000 --- a/packages/probe/rollup.config.cjs +++ /dev/null @@ -1,116 +0,0 @@ -const { withNx } = require('@nx/rollup/with-nx') - -module.exports = withNx( - { - main: './src/index.ts', - outputPath: './dist', - tsConfig: './tsconfig.lib.json', - // Swapped from swc by MoNecromanCI. @nx/rollup runs swc without - // sourceMaps, so it returns no map and the bundle's map comes out empty - - // valid-looking, and useless for debugging. See ROADMAP. - compiler: 'babel', - format: ['esm'], - // Added by MoNecromanCI: without this rollup emits no .js.map at all, so - // a breakpoint in a .ts file can never bind. Not published - see `files`. - sourceMap: true, - }, - { - // Added by MoNecromanCI. rollup hands sourcemapPathTransform an OS-NATIVE - // path with one parent segment too many, so `sources` resolve to nothing - // and no breakpoint can bind. Separators are normalised too: a sources - // entry is URL-style, so a backslash is wrong on every platform. - output: { - sourcemapPathTransform: relativeSourcePath => - relativeSourcePath - .replaceAll(String.fromCodePoint(92), '/') - .replace(/^(\.\.\/)+/, '../'), - }, - // Added by MoNecromanCI. @nx/rollup's dts-bundle plugin writes dist/index.d.ts - // as a stub re-exporting the real declarations, and builds that specifier with - // path.relative() - an OS-NATIVE path. On Windows it emits - // export * from "./src\\index"; - // which is not a valid module specifier on ANY platform: a specifier is - // URL-style, so / is correct everywhere and a backslash nowhere. It resolves on - // Windows only because the resolver normalises separators there, leaving the - // package untyped on Linux and macOS. - // - // mnci also points `types` past this stub, so nothing depends on it being - // correct; this makes the emitted file correct too. Remove once Nx fixes the - // plugin - its own devkit already exports normalizePath for exactly this. - // - // The second half fixes a separate defect in the REAL declarations `types` - // points at: tsconfig.lib.json declares under moduleResolution "bundler", - // where a bare relative specifier ("./lib/align") is valid, so every emitted - // .d.ts keeps the source's own extensionless imports verbatim. A consumer on - // "moduleResolution": "nodenext" - the workspace root default - requires an - // explicit extension on every relative specifier and gets TS2834 (or, - // combined with skipLibCheck, a silent zero-export module) instead. Declared - // extensions are left untouched; only a bare relative specifier gets .js - // appended, matching what tsc itself emits under node16/nodenext. - plugins: [ - { - name: 'mnci-normalise-declaration-specifiers', - writeBundle (outputOptions) { - const { existsSync, readdirSync, readFileSync, writeFileSync } = require('node:fs') - const { join } = require('node:path') - const dir = outputOptions.dir ?? './dist' - const stub = join(dir, 'index.d.ts') - let source - try { - source = readFileSync(stub, 'utf8') - } catch { - return - } - // The stub carries a TWO-character escape (JSON.stringify escaped one - // backslash), so this must not match a single one - that would turn - // "./src\index" into "./src//index". Built from char codes so there is - // no escaping in this file to get wrong. - const separator = String.fromCodePoint(92, 92) - const normalised = source.replaceAll(separator, '/') - if (normalised !== source) writeFileSync(stub, normalised) - - const bareRelativeSpecifier = /from(\s+)(['"])(\.[^'"]+)\2/g - const hasExtension = /\.(?:mjs|cjs|jsx?|json)$/ - let entries - try { - entries = readdirSync(dir, { recursive: true, withFileTypes: true }) - } catch { - return - } - for (const entry of entries) { - if (!entry.name.endsWith('.d.ts')) continue - const from = entry.parentPath ?? entry.path - const filePath = join(from, entry.name) - let declaration - try { - declaration = readFileSync(filePath, 'utf8') - } catch { - continue - } - // A bare specifier may name a FILE or a DIRECTORY BARREL - resolved - // against what rollup actually emitted next to this file, never - // guessed. A directory needs /index.js, not .js (a file that was - // never written); anything neither form matches is left alone rather - // than rewritten to a specifier that cannot resolve. - const resolveSpecifierSuffix = (specifier) => { - if (hasExtension.test(specifier)) return null - if (existsSync(join(from, specifier + '.d.ts'))) return specifier + '.js' - if (existsSync(join(from, specifier, 'index.d.ts'))) return specifier + '/index.js' - - return null - } - const withExtensions = declaration.replaceAll( - bareRelativeSpecifier, - (match, space, quote, specifier) => { - const resolved = resolveSpecifierSuffix(specifier) - - return resolved === null ? match : `from${space}${quote}${resolved}${quote}` - }, - ) - if (withExtensions !== declaration) writeFileSync(filePath, withExtensions) - } - }, - }, - ], - }, -) diff --git a/packages/studio/package.json b/packages/studio/package.json index dc9fdd1e..e3e148ad 100644 --- a/packages/studio/package.json +++ b/packages/studio/package.json @@ -53,34 +53,16 @@ }, "sideEffects": false, "scripts": { - "prepack": "node -e \"const {execFileSync}=require('node:child_process');const {existsSync}=require('node:fs');const built=()=>existsSync('dist/ui/index.html');if(!built()){console.log('@opencraw/studio: building @opencraw/studio-ui (apps/studio-ui/vite.config.mts writes straight into dist/ui) before packing...');execFileSync('npx',['nx','run','@opencraw/studio-ui:build','--skip-nx-cache'],{cwd:'../..',stdio:'inherit'})}if(!built())throw new Error('dist/ui/index.html is still missing after building @opencraw/studio-ui: this package would ship a server with nothing to serve. See docs/research/recipe-studio.md.')\"" + "prepack": "node -e \"const {execFileSync}=require('node:child_process');const {existsSync}=require('node:fs');const built=()=>existsSync('dist/ui/index.html');if(!built()){console.log('@opencraw/studio: building @opencraw/studio-ui (apps/studio-ui/vite.config.mts writes straight into dist/ui) before packing...');execFileSync('npx',['nx','run','@opencraw/studio-ui:build','--skip-nx-cache'],{cwd:'../..',stdio:'inherit'})}if(!built())throw new Error('dist/ui/index.html is still missing after building @opencraw/studio-ui: this package would ship a server with nothing to serve. See docs/research/recipe-studio.md.')\"", + "build": "esbuild src/index.ts --bundle --packages=external --format=esm --outfile=dist/index.esm.js --sourcemap && tsc -p tsconfig.lib.json --emitDeclarationOnly --declaration --declarationDir dist/src --tsBuildInfoFile dist/src/tsconfig.lib.tsbuildinfo && node ../../declaration-specifiers.mjs dist/src", + "e2e": "vite build -c ../../apps/studio-ui/vite.config.mts && tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", + "lint": "eslint .", + "test": "jest", + "typecheck": "tsc --build tsconfig.json --emitDeclarationOnly" }, - "nx": { - "targets": { - "typecheck": { - "dependsOn": [ - "^build" - ] - }, - "lint": { - "dependsOn": [ - "^build" - ] - }, - "e2e": { - "executor": "nx:run-commands", - "dependsOn": [ - "build" - ], - "inputs": [ - "default", - "^production" - ], - "options": { - "command": "vite build -c ../../apps/studio-ui/vite.config.mts && tsc -p tsconfig.e2e.json && jest --config jest.e2e.config.cts", - "cwd": "packages/studio" - } - } + "smith": { + "playwright": { + "display": true } } } diff --git a/packages/studio/rollup.config.cjs b/packages/studio/rollup.config.cjs deleted file mode 100644 index 3596d961..00000000 --- a/packages/studio/rollup.config.cjs +++ /dev/null @@ -1,116 +0,0 @@ -const { withNx } = require('@nx/rollup/with-nx') - -module.exports = withNx( - { - main: './src/index.ts', - outputPath: './dist', - tsConfig: './tsconfig.lib.json', - // Swapped from swc by MoNecromanCI. @nx/rollup runs swc without - // sourceMaps, so it returns no map and the bundle's map comes out empty - - // valid-looking, and useless for debugging. See ROADMAP. - compiler: 'babel', - format: ['esm'], - // Added by MoNecromanCI: without this rollup emits no .js.map at all, so - // a breakpoint in a .ts file can never bind. Not published - see `files`. - sourceMap: true, - }, - { - // Added by MoNecromanCI. rollup hands sourcemapPathTransform an OS-NATIVE - // path with one parent segment too many, so `sources` resolve to nothing - // and no breakpoint can bind. Separators are normalised too: a sources - // entry is URL-style, so a backslash is wrong on every platform. - output: { - sourcemapPathTransform: relativeSourcePath => - relativeSourcePath - .replaceAll(String.fromCodePoint(92), '/') - .replace(/^(\.\.\/)+/, '../'), - }, - // Added by MoNecromanCI. @nx/rollup's dts-bundle plugin writes dist/index.d.ts - // as a stub re-exporting the real declarations, and builds that specifier with - // path.relative() - an OS-NATIVE path. On Windows it emits - // export * from "./src\\index"; - // which is not a valid module specifier on ANY platform: a specifier is - // URL-style, so / is correct everywhere and a backslash nowhere. It resolves on - // Windows only because the resolver normalises separators there, leaving the - // package untyped on Linux and macOS. - // - // mnci also points `types` past this stub, so nothing depends on it being - // correct; this makes the emitted file correct too. Remove once Nx fixes the - // plugin - its own devkit already exports normalizePath for exactly this. - // - // The second half fixes a separate defect in the REAL declarations `types` - // points at: tsconfig.lib.json declares under moduleResolution "bundler", - // where a bare relative specifier ("./lib/align") is valid, so every emitted - // .d.ts keeps the source's own extensionless imports verbatim. A consumer on - // "moduleResolution": "nodenext" - the workspace root default - requires an - // explicit extension on every relative specifier and gets TS2834 (or, - // combined with skipLibCheck, a silent zero-export module) instead. Declared - // extensions are left untouched; only a bare relative specifier gets .js - // appended, matching what tsc itself emits under node16/nodenext. - plugins: [ - { - name: 'mnci-normalise-declaration-specifiers', - writeBundle (outputOptions) { - const { existsSync, readdirSync, readFileSync, writeFileSync } = require('node:fs') - const { join } = require('node:path') - const dir = outputOptions.dir ?? './dist' - const stub = join(dir, 'index.d.ts') - let source - try { - source = readFileSync(stub, 'utf8') - } catch { - return - } - // The stub carries a TWO-character escape (JSON.stringify escaped one - // backslash), so this must not match a single one - that would turn - // "./src\index" into "./src//index". Built from char codes so there is - // no escaping in this file to get wrong. - const separator = String.fromCodePoint(92, 92) - const normalised = source.replaceAll(separator, '/') - if (normalised !== source) writeFileSync(stub, normalised) - - const bareRelativeSpecifier = /from(\s+)(['"])(\.[^'"]+)\2/g - const hasExtension = /\.(?:mjs|cjs|jsx?|json)$/ - let entries - try { - entries = readdirSync(dir, { recursive: true, withFileTypes: true }) - } catch { - return - } - for (const entry of entries) { - if (!entry.name.endsWith('.d.ts')) continue - const from = entry.parentPath ?? entry.path - const filePath = join(from, entry.name) - let declaration - try { - declaration = readFileSync(filePath, 'utf8') - } catch { - continue - } - // A bare specifier may name a FILE or a DIRECTORY BARREL - resolved - // against what rollup actually emitted next to this file, never - // guessed. A directory needs /index.js, not .js (a file that was - // never written); anything neither form matches is left alone rather - // than rewritten to a specifier that cannot resolve. - const resolveSpecifierSuffix = (specifier) => { - if (hasExtension.test(specifier)) return null - if (existsSync(join(from, specifier + '.d.ts'))) return specifier + '.js' - if (existsSync(join(from, specifier, 'index.d.ts'))) return specifier + '/index.js' - - return null - } - const withExtensions = declaration.replaceAll( - bareRelativeSpecifier, - (match, space, quote, specifier) => { - const resolved = resolveSpecifierSuffix(specifier) - - return resolved === null ? match : `from${space}${quote}${resolved}${quote}` - }, - ) - if (withExtensions !== declaration) writeFileSync(filePath, withExtensions) - } - }, - }, - ], - }, -) diff --git a/python-packages/opencraw/README.md b/python-packages/opencraw/README.md index ca037d2a..7edfb219 100644 --- a/python-packages/opencraw/README.md +++ b/python-packages/opencraw/README.md @@ -82,5 +82,10 @@ under `python-packages/`. ## Development -`nx test opencraw` (pytest; the CLI integration tests use this repository's built CLI and skip without it), -`nx lint opencraw` (Ruff), `nx typecheck opencraw` (mypy strict). +`smith run test -p opencraw` (pytest; the CLI integration tests use this repository's built CLI and skip +without it), `smith run lint -p opencraw` (Ruff), `smith run typecheck -p opencraw` (mypy strict). + +**Layout exception.** The package's seven modules sit at its top level rather than in slice packages, which +the vertical-slices convention forbids, so `smith.toml` excludes `opencraw` from it. The constraint is that +this client is replaced, not refactored: phase 3 of `docs/research/driver-and-language-packages.md` rewrites +it over the driver, in slices. Temporary: the exclusion goes with that rewrite. diff --git a/python-packages/opencraw/project.json b/python-packages/opencraw/project.json deleted file mode 100644 index 9afc4542..00000000 --- a/python-packages/opencraw/project.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "opencraw", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "projectType": "library", - "sourceRoot": "python-packages/opencraw", - "targets": { - "lint": { - "executor": "@mnci/nx-python-pip:lint", - "options": {} - }, - "test": { - "executor": "@mnci/nx-python-pip:test", - "options": {}, - "dependsOn": [ - "^build" - ] - }, - "typecheck": { - "executor": "@mnci/nx-python-pip:typecheck", - "options": {} - }, - "build": { - "executor": "@mnci/nx-python-pip:build", - "outputs": [ - "{projectRoot}/dist" - ], - "options": {} - }, - "nx-release-publish": { - "executor": "@mnci/nx-python-pip:publish", - "dependsOn": [ - "build" - ], - "options": {} - } - }, - "implicitDependencies": [ - "@opencraw/cli" - ], - "release": { - "version": { - "versionActions": "@mnci/nx-python-pip/release/version-actions" - } - } -} diff --git a/python-packages/opencraw/pyproject.toml b/python-packages/opencraw/pyproject.toml index b5e4d3bf..deb37b9e 100644 --- a/python-packages/opencraw/pyproject.toml +++ b/python-packages/opencraw/pyproject.toml @@ -32,3 +32,6 @@ strict = true # that one code keeps every other strict check on your own code, and a module # that genuinely cannot be found still fails, as import-not-found. disable_error_code = ["import-untyped"] + +[tool.smith] +kind = "package" diff --git a/requirements-dev.txt b/requirements-dev.txt index cd678ddf..dac32d3a 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -4,3 +4,4 @@ ruff mypy pytest pip-audit +setuptools==84.0.0 diff --git a/smith.toml b/smith.toml new file mode 100644 index 00000000..a1a25593 --- /dev/null +++ b/smith.toml @@ -0,0 +1,206 @@ +#:schema https://raw.githubusercontent.com/monosmith-app/monosmith/main/apps/smith/workspace/smith.schema.json +# smith workspace configuration. Written by `smith convert`; edit it freely or with the TUI. +# Every setting is optional except [workspace] name; see docs/configuration.md. +schema = 1 + +[workspace] +name = "opencraw" +scope = "@opencraw" +# The examples are standalone folders a reader copies and installs on their own +# (examples/README.md), not workspace projects: smith leaves them alone. +exclude = ["examples/*"] + +[ci] +providers = ["github"] +# A dev container with the toolchains CI installs, at the same versions. +devcontainer = true + +# New Node projects: TypeScript, ESLint and Vitest. Existing projects keep Jest. +[default_stacks] +node = "node-vitest" + +[release] +github_releases = true + +# Files named for their role, one folder per outcome: Node is checked by the ESLint +# config, the other languages by a slice-check task that runs before lint. +[conventions.vertical-slices] +# python-packages/opencraw is flat (seven modules at the package top) and is rewritten as +# the driver client in phase 3 of docs/research/driver-and-language-packages.md, laid out +# in slices then. Remove the exclusion with that rewrite. +exclude = ["opencraw"] + +# The e2e task of every project with a Playwright suite, with its browsers installed first. +[conventions.playwright] + +[projects.agent] +tag_prefix = "@opencraw/agent@" + +[projects.agent.tasks.build] +depends_on = ["^build", "typecheck"] + +[projects.agent.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.azure-durable] +tag_prefix = "@opencraw/azure-durable@" + +[projects.azure-durable.tasks.build] +depends_on = ["^build", "typecheck"] + +[projects.azure-durable.tasks.e2e] +depends_on = ["build", "core:build"] + +[projects.azure-durable.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.azure-host.tasks.package] +command = ["node", "-e", "const fs=require('node:fs');fs.mkdirSync('dist/drop',{recursive:true});const A=require('adm-zip');const z=new A();z.addLocalFolder('apps/azure-host/dist','dist');z.addLocalFile('apps/azure-host/host.json');z.addLocalFile('apps/azure-host/package.json');z.writeZip('dist/drop/node-function-app-azure-host.zip')"] +cwd = "." +depends_on = ["build"] +outputs = ["../../dist/drop"] + +[projects.azure-host.tasks.serve] +depends_on = ["build"] + +[projects.azure-host.tasks.start] +depends_on = ["build"] + +[projects.azure-host.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.captcha-tesseract] +tag_prefix = "@opencraw/captcha-tesseract@" + +[projects.captcha-tesseract.tasks.build] +depends_on = ["^build", "typecheck"] + +[projects.captcha-tesseract.tasks.e2e] +depends_on = ["e2e-browsers", "build", "core:build"] + +[projects.captcha-tesseract.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.cli] +tag_prefix = "@opencraw/cli@" + +[projects.cli.tasks.build] +depends_on = ["^build", "typecheck"] + +[projects.cli.tasks.e2e] +depends_on = ["e2e-browsers", "build", "core:e2e"] + +[projects.cli.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.core] +tag_prefix = "@opencraw/core@" + +[projects.core.tasks.build] +depends_on = ["^build", "typecheck"] + +[projects.core.tasks.e2e] +depends_on = ["e2e-browsers", "build", "^build"] + +[projects.core.tasks.schemas] +depends_on = ["build"] + +[projects.core.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.mcp] +tag_prefix = "@opencraw/mcp@" + +[projects.mcp.tasks.build] +depends_on = ["^build", "copy-docs"] + +[projects.mcp.tasks.e2e] +depends_on = ["e2e-browsers", "build", "core:e2e", "cli:e2e", "copy-docs"] + +[projects.mcp.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.ocr-tesseract] +tag_prefix = "@opencraw/ocr-tesseract@" + +[projects.ocr-tesseract.tasks.build] +depends_on = ["^build", "typecheck"] + +[projects.ocr-tesseract.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.office-reader] +tag_prefix = "@opencraw/office-reader@" + +[projects.office-reader.tasks.build] +depends_on = ["^build", "typecheck"] + +[projects.office-reader.tasks.e2e] +depends_on = ["e2e-browsers", "build"] + +[projects.office-reader.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.opencraw.tasks.build] +depends_on = ["^build", "typecheck"] + +[projects.probe] +tag_prefix = "@opencraw/probe@" + +[projects.probe.tasks.build] +depends_on = ["^build", "typecheck"] + +[projects.probe.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.studio] +tag_prefix = "@opencraw/studio@" + +[projects.studio.tasks.build] +depends_on = ["^build", "typecheck"] + +[projects.studio.tasks.e2e] +depends_on = ["e2e-browsers", "build"] + +[projects.studio.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.studio-desktop.tasks.e2e] +depends_on = ["e2e-browsers", "build"] + +[projects.studio-desktop.tasks.package] +depends_on = ["build", "cli:build", "studio:build", "studio-ui:build"] + +[projects.studio-desktop.tasks.start] +depends_on = ["build", "cli:build", "studio:build", "studio-ui:build"] + +[projects.studio-desktop.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.studio-ui.tasks.build] +depends_on = ["^build", "typecheck"] + +[projects.studio-ui.tasks.package] +command = ["node", "-e", "const fs=require('node:fs');fs.mkdirSync('dist/drop',{recursive:true});const A=require('adm-zip');let z;z=new A();z.addLocalFolder('apps/studio-ui/dist-dev');z.writeZip('dist/drop/react-app-studio-ui-dev.zip');z=new A();z.addLocalFolder('apps/studio-ui/dist-uat');z.writeZip('dist/drop/react-app-studio-ui-uat.zip');z=new A();z.addLocalFolder('apps/studio-ui/dist-prod');z.writeZip('dist/drop/react-app-studio-ui-prod.zip')"] +cwd = "." +depends_on = ["build-dev", "build-uat", "build-prod"] +outputs = ["../../dist/drop"] + +[projects.studio-ui.tasks.preview] +depends_on = ["build"] + +[projects.studio-ui.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +[projects.vscode-extension.tasks.e2e] +depends_on = ["build", "cli:build", "mcp:build", "ocr-tesseract:build", "agent:build", "studio:build", "studio-ui:build"] + +[projects.vscode-extension.tasks.package] +depends_on = ["build", "cli:build", "mcp:build", "ocr-tesseract:build", "agent:build", "studio:build", "studio-ui:build"] + +[projects.vscode-extension.tasks.test] +env = { TS_NODE_COMPILER_OPTIONS = "{\"moduleResolution\":\"node10\",\"module\":\"commonjs\",\"customConditions\":null}" } + +# The unpacked app only, for a quick try (desktop-package.yml): same inputs as package. +[projects.studio-desktop.tasks."package:dir"] +depends_on = ["build", "cli:build", "studio:build", "studio-ui:build"]